示例#1
0
        public int CheckCircuit_ForNetwork(GenerateNetworkModel gnmodel)
        {
            int ret = 0;

            report.Dispatcher.Invoke(() => { report.Text += String.Format("开始检查程序{0:s}的线路{1:d}...\r\n", gnmodel.Name, gnmodel.ID); });
            gnmodel.LGraph = gnmodel.LChart.Generate();
            if (gnmodel.LGraph.checkOpenCircuit())
            {
                report.Dispatcher.Invoke(() => { report.Text += String.Format("程序{0:s}的线路{1:d}发生断路错误!\r\n", gnmodel.Name, gnmodel.ID); });
                ret++;
            }
            if (ret > 0)
            {
                return(ret);
            }
            _treeItemCC.Value = (_netnum_done + 0.333) / _netnum;
            if (gnmodel.LGraph.checkShortCircuit())
            {
                report.Dispatcher.Invoke(() => { report.Text += String.Format("程序{0:s}的线路{1:d}发生短路错误!\r\n", gnmodel.Name, gnmodel.ID); });
                ret++;
            }
            if (ret > 0)
            {
                return(ret);
            }
            _treeItemCC.Value = (_netnum_done + 0.666) / _netnum;
            if (gnmodel.LGraph.CheckFusionCircuit())
            {
                report.Dispatcher.Invoke(() => { report.Text += String.Format("程序{0:s}的线路{1:d}发生混联错误!\r\n", gnmodel.Name, gnmodel.ID); });
                ret++;
            }
            _treeItemCC.Value = (_netnum_done + 1.0) / _netnum;
            _netnum_done++;
            return(ret);
        }
示例#2
0
        public int GenerateBin_ForNetwork(List <InstHelper.PLCInstNetwork> nets, GenerateNetworkModel gnmodel)
        {
            int ret = 0;

            InstHelper.PLCInstNetwork net = new InstHelper.PLCInstNetwork(
                gnmodel.Name, gnmodel.PLCInsts.ToArray());
            nets.Add(net);
            return(ret);
        }
示例#3
0
        public int GeneratePLCInsts_ForNetwork(GenerateNetworkModel gnmodel)
        {
            int ret = 0;

            report.Dispatcher.Invoke(() => { report.Text += String.Format("开始生成程序{0:s}的线路{1:d}的指令程序...\r\n", gnmodel.Name, gnmodel.ID); });
            gnmodel.PLCInsts = gnmodel.LGraph.GenInst();
            _netnum_done++;
            _treeItemGI.Value = _netnum_done / _netnum;
            return(ret);
        }
示例#4
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);
            }
        }
示例#5
0
 public void CreateNetworkModel_FromNetworkModel(GenerateNetworkModel gnmodel, LadderNetworkViewModel lnvmodel)
 {
     _netnum++;
     gnmodel.LChart = GenerateHelper.CreateLadderChart(lnvmodel.GetAllLadderViewModels());
 }