コード例 #1
0
        public void CreateViewModel_FromProjectModel(ProjectModel pmodel)
        {
            _projectModel = pmodel;
            Name          = pmodel.ProjectName;

            _generateViewModel          = new GenerateViewModel();
            _generateViewModel.MRModel  = new GenerateRoutineModel();
            _generateViewModel.SRModels = new List <GenerateRoutineModel>();
            _generateViewModel.FBModel  = new GenerateFuncBlockModel();

            _netnum = 0;

            CreateRoutineModel_FromDiagramModel(_generateViewModel.MRModel, pmodel.MainRoutine);
            foreach (LadderDiagramViewModel submodel in pmodel.SubRoutines)
            {
                GenerateRoutineModel grmodel = new GenerateRoutineModel();
                CreateRoutineModel_FromDiagramModel(grmodel, submodel);
                _generateViewModel.SRModels.Add(grmodel);
            }

            foreach (FuncBlockViewModel fbvmodel in pmodel.FuncBlocks)
            {
                CreateFuncBlockModel(fbvmodel);
            }
        }
コード例 #2
0
        public int GenerateBin_ForRoutine(List <InstHelper.PLCInstNetwork> nets, GenerateRoutineModel grmodel)
        {
            int ret = 0;

            foreach (GenerateNetworkModel gnmodel in grmodel.NetworkModels)
            {
                ret += GenerateBin_ForNetwork(nets, gnmodel);
            }
            return(ret);
        }
コード例 #3
0
        public int CheckCircuit_ForRoutine(GenerateRoutineModel grmodel)
        {
            int ret = 0;

            report.Dispatcher.Invoke(() => { report.Text += String.Format("开始检查程序{0:s}...\r\n", grmodel.Name); });
            foreach (GenerateNetworkModel gnmodel in grmodel.NetworkModels)
            {
                ret += CheckCircuit_ForNetwork(gnmodel);
            }
            return(ret);
        }
コード例 #4
0
        public int GeneratePLCInsts_ForRoutine(GenerateRoutineModel grmodel)
        {
            int ret = 0;

            report.Dispatcher.Invoke(() => { report.Text += String.Format("开始生成程序{0:s}的指令程序...\r\n", grmodel.Name); });
            foreach (GenerateNetworkModel gnmodel in grmodel.NetworkModels)
            {
                ret += GeneratePLCInsts_ForNetwork(gnmodel);
            }
            return(ret);
        }
コード例 #5
0
        public void CreateRoutineModel_FromDiagramModel(GenerateRoutineModel grmodel, LadderDiagramViewModel ldvmodel)
        {
            ldvmodel.Dispatcher.Invoke(() => { grmodel.Name = ldvmodel.Name; });

            grmodel.NetworkModels = new LinkedList <GenerateNetworkModel>();
            foreach (LadderNetworkViewModel lnvmodel in ldvmodel.GetNetworks())
            {
                GenerateNetworkModel gnmodel = new GenerateNetworkModel();
                gnmodel.ID   = grmodel.NetworkModels.Count() + 1;
                gnmodel.Name = "NETWORK" + gnmodel.ID;
                CreateNetworkModel_FromNetworkModel(gnmodel, lnvmodel);
                grmodel.NetworkModels.AddLast(gnmodel);
            }
        }