示例#1
0
        /// <summary>
        /// 系统控制初始化
        /// </summary>
        /// <returns></returns>
        public bool SysCtlInit()
        {
            try
            {
                mesAcc = new PrcsCtlModelsAoyou.MesAccAoyou();

                ctlNodeManager.DevCommManager = devCommManager;
                // 1加载配置文件
                string   reStr = "";
                XElement root  = null;
                SysCfg.SysCfgModel.cfgFilefullPath = AppDomain.CurrentDomain.BaseDirectory + @"\data\AoyouWCSCfg.xml";
                if (!SysCfg.SysCfgModel.LoadCfg(ref root, ref reStr))
                {
                    Console.WriteLine("系统配置解析错误,{0}", reStr);
                    return(false);
                }

                if (root.Element("sysSet").Element("ExtLogSrc") != null)
                {
                    string logSrcStr = root.Element("sysSet").Element("ExtLogSrc").Value.ToString();
                    ExtLogSrc = logSrcStr.Split(new string[] { ",", ";" }, StringSplitOptions.RemoveEmptyEntries);
                }


                //2 初始化通信模块
                XElement commDevXERoot = root.Element("CommDevCfg");
                if (!devCommManager.ParseCommdev(commDevXERoot, ref reStr))
                {
                    Console.WriteLine("通信设备配置参数解析设备:" + reStr);
                    return(false);
                }
                devCommManager.CommDevConnect();
                //3 初始化立库控制系统

                XElement asrsRoot = root.Element("AsrsNodes");
                if (!asrsPresenter.CtlInit(asrsRoot, ref reStr))
                {
                    Console.WriteLine("立库控制系统初始化失败:" + reStr);
                    return(false);
                }
                foreach (AsrsControl.AsrsCtlModel asrsCtl in asrsPresenter.AsrsCtls)
                {
                    asrsCtl.dlgtAsrsOutportBusiness = AsrsOutportBusiness;

                    asrsCtl.dlgtGetLogicArea = AsrsAreaToCheckin;
                }


                //4 初始化流水线控制系统
                XElement prcsNodeRoot = root.Element("CtlNodes");
                if (!prsNodeManager.CtlInit(prcsNodeRoot, ref reStr))
                {
                    Console.WriteLine("流水线系统初始化失败:" + reStr);
                    return(false);
                }

                //5 注册控制节点
                ctlNodeManager.AddCtlNodeRange(prsNodeManager.GetAllCtlNodes());
                ctlNodeManager.AddCtlNodeRange(asrsPresenter.GetAllCtlNodes());
                foreach (FlowCtlBaseModel.CtlNodeBaseModel node in ctlNodeManager.MonitorNodeList)
                {
                    node.MesAcc = mesAcc;
                }
                foreach (AsrsControl.AsrsCtlModel asrsCtl in asrsPresenter.AsrsCtls)
                {
                    asrsCtl.MesAcc = mesAcc;
                }


                taskRunCtl             = new PrcsCtlModelsAoyou.CtlTaskManage();
                taskRunCtl.WmsSvc      = WmsSvc;
                taskRunCtl.NodeManager = ctlNodeManager;
                if (!taskRunCtl.Init())
                {
                    Console.WriteLine("任务控制管理初始化失败");
                    return(false);
                }

                XElement wcsPathRoot = root.Element("WCSPath");
                if (!taskRunCtl.BuildFlowPath(wcsPathRoot, ref reStr))
                {
                    Console.WriteLine("WCS路径配置错误,{0}", reStr);
                    return(false);
                }
                //注册限高检测委托
                List <string> heightCheckStations = new List <string>();
                heightCheckStations.AddRange(new string[] { "12112" });
                foreach (string devID in heightCheckStations)
                {
                    TransDevModel.NodeTransStation transDev = ctlNodeManager.GetNodeByID(devID) as TransDevModel.NodeTransStation;
                    if (transDev == null)
                    {
                        continue;
                    }
                    transDev.dlgtHeightChecked = AsrsHeightChecked;
                }
                //6 通信设备分配
                ctlNodeManager.AllocateCommdev();

                asrsPresenter.DevStatusRestore();
                prsNodeManager.DevStatusRestore();

                //建立节点路径
                //  ctlNodeManager.BuildNodePath();

                //7 线程分配
                XElement threadRoot = root.Element("ThreadAlloc");
                if (!ctlNodeManager.ParseTheadNodes(threadRoot, ref reStr))
                {
                    Console.WriteLine("分配线程时出现错误");
                    return(false);
                }


                return(true);
            }
            catch (Exception ex)
            {
                Console.WriteLine("控制系统初始化错误:" + ex.ToString());
                return(false);
            }
        }
示例#2
0
        /// <summary>
        /// 系统控制初始化
        /// </summary>
        /// <returns></returns>
        public bool SysCtlInit()
        {
            try
            {
                mesAcc = new PrcsCtlModelsAoyou.MesAccAoyou();

                ctlNodeManager.DevCommManager = devCommManager;
                // 1加载配置文件
                string   reStr = "";
                XElement root  = null;
                SysCfg.SysCfgModel.cfgFilefullPath = AppDomain.CurrentDomain.BaseDirectory + @"\data\AoyouCfg.xml";
                if (!SysCfg.SysCfgModel.LoadCfg(ref root, ref reStr))
                {
                    Console.WriteLine("系统配置解析错误,{0}", reStr);
                    return(false);
                }

                if (root.Element("sysSet").Element("ExtLogSrc") != null)
                {
                    string logSrcStr = root.Element("sysSet").Element("ExtLogSrc").Value.ToString();
                    ExtLogSrc = logSrcStr.Split(new string[] { ",", ";" }, StringSplitOptions.RemoveEmptyEntries);
                }


                //2 初始化通信模块
                XElement commDevXERoot = root.Element("CommDevCfg");
                if (!devCommManager.ParseCommdev(commDevXERoot, ref reStr))
                {
                    Console.WriteLine("通信设备配置参数解析设备:" + reStr);
                    return(false);
                }
                devCommManager.CommDevConnect();
                //3 初始化立库控制系统

                XElement asrsRoot = root.Element("AsrsNodes");
                if (!asrsPresenter.CtlInit(asrsRoot, ref reStr))
                {
                    Console.WriteLine("立库控制系统初始化失败:" + reStr);
                    return(false);
                }
                foreach (AsrsControl.AsrsCtlModel asrsCtl in asrsPresenter.AsrsCtls)
                {
                    asrsCtl.dlgtAsrsOutportBusiness = AsrsOutportBusiness;
                    if (asrsCtl.HouseName == "A1库房" || asrsCtl.HouseName == "A2库房" || asrsCtl.HouseName == "C1库房" || asrsCtl.HouseName == "C2库房" || asrsCtl.HouseName == "C3库房")
                    {
                        asrsCtl.dlgtGetAsrsCheckoutTaskTorun = AsrsCheckoutTaskTorun;
                    }
                    asrsCtl.dlgtGetLogicArea = AsrsAreaToCheckin;
                    if (asrsCtl.HouseName == "B1库房")
                    {
                        asrsCtl.dlgtAsrsOutTaskPost = AsrsOutTaskBusiness;
                    }

                    foreach (AsrsPortalModel port in asrsCtl.Ports)
                    {
                        port.dlgtGroupEnabled = AsrsCheckinGroupEnabled;
                        if (asrsCtl.NodeName == "C1库房" || asrsCtl.NodeName == "C2库房" || asrsCtl.NodeName == "C3库房")
                        {
                            port.dlgtBarcodeCheck = AsrsPortBarcodeCheck;//条码校验
                        }
                    }
                }

                //4 初始化流水线控制系统
                XElement prcsNodeRoot = root.Element("CtlNodes");
                if (!prsNodeManager.CtlInit(prcsNodeRoot, ref reStr))
                {
                    Console.WriteLine("流水线系统初始化失败:" + reStr);
                    return(false);
                }

                //5 注册控制节点
                ctlNodeManager.AddCtlNodeRange(prsNodeManager.GetAllCtlNodes());
                ctlNodeManager.AddCtlNodeRange(asrsPresenter.GetAllCtlNodes());
                foreach (FlowCtlBaseModel.CtlNodeBaseModel node in ctlNodeManager.MonitorNodeList)
                {
                    node.MesAcc = mesAcc;
                }
                foreach (AsrsControl.AsrsCtlModel asrsCtl in asrsPresenter.AsrsCtls)
                {
                    asrsCtl.MesAcc = mesAcc;
                }
                (ctlNodeManager.GetNodeByID("4004") as PrcsCtlModelsAoyou.NodeSwitchInput).dlgtGetLogicArea = AsrsAreaToCheckin;
                //6 通信设备分配
                ctlNodeManager.AllocateCommdev();

                asrsPresenter.DevStatusRestore();
                prsNodeManager.DevStatusRestore();

                //建立节点路径
                ctlNodeManager.BuildNodePath();

                //7 线程分配
                XElement threadRoot = root.Element("ThreadAlloc");
                if (!ctlNodeManager.ParseTheadNodes(threadRoot, ref reStr))
                {
                    Console.WriteLine("分配线程时出现错误");
                    return(false);
                }
                //historyDataClearThread = new ThreadBaseModel("历史数据集清理");

                //historyDataClearThread.SetThreadRoutine(ClearHistoryLoop);
                //historyDataClearThread.LoopInterval = 5000;
                //historyDataClearThread.TaskInit();

                return(true);
            }
            catch (Exception ex)
            {
                Console.WriteLine("控制系统初始化错误:" + ex.ToString());
                return(false);
            }
        }