public ParamSetView(IGrapTB grapTb, ISuperTextEdit iSuperTextEdit, CtlDevBaseModel dev) { InitializeComponent(); this.IGrapTB = grapTb; this.ISuperEdit = iSuperTextEdit; this.CurrDev = dev; }
private bool SetModPalletNum(ref string restr) { int modPallet = 0; foreach (Control ctl in this.flowLayoutPanel2.Controls) { PLProcessModel.ParamCfgBase.ParamCfgItemCtl paramCtl = ctl as PLProcessModel.ParamCfgBase.ParamCfgItemCtl; paramCtl.ParamApply(); modPallet = int.Parse(paramCtl.GetParamObj().ParamVal); break; } if (this.devList == null) { return(false); } CtlDevBaseModel screw1 = GetDev("C线1号绝缘板锁螺丝机"); if (screw1 == null) { restr = "C线绝缘板锁螺丝机1,设备对象为空!"; return(false); } bool status1 = screw1.PlcRW.WriteDB("D8500", modPallet); if (status1 == false) { restr = "C线绝缘板锁螺丝机1,发送模块数量失败!"; return(false); } CtlDevBaseModel screw2 = GetDev("C线2号绝缘板锁螺丝机"); if (screw2 == null) { restr = "C线绝缘板锁螺丝机2,设备对象为空!"; return(false); } bool status2 = screw2.PlcRW.WriteDB("D8500", modPallet); if (status2 == false) { restr = "C线绝缘板锁螺丝机2,发送模块数量失败!"; return(false); } restr = "C线绝缘板锁螺丝机1、C线绝缘板锁螺丝机2设备模块数量设置成功!"; return(true); }
/// <summary> /// 显示设备列表 /// </summary> private void ShowDevList() { if (this.DevList == null) { return; } this.dgv_DevList.Rows.Clear(); for (int i = 0; i < this.DevList.Count; i++) { CtlDevBaseModel dev = this.DevList[i]; this.dgv_DevList.Rows.Add(); this.dgv_DevList.Rows[i].Cells["col_DeviceID"].Value = dev.DevID; this.dgv_DevList.Rows[i].Cells["col_DeviceName"].Value = dev.DevName; } }
private CtlDevBaseModel GetDev(string devname) { if (this.devList == null) { return(null); } for (int i = 0; i < this.devList.Count; i++) { CtlDevBaseModel dev = this.devList[i]; if (dev.DevName == devname) { return(dev); } } return(null); }
private string GetWarnningStr() { StringBuilder sb = new StringBuilder(); if (this.currDevName == "所有") { string warnStr = GetAllDevWarnningStr(); sb.Append(warnStr); } else { CtlDevBaseModel currDev = GetDev(this.devList, this.currDevName); string warnStr = GetSelectDevWarnningStr(currDev); sb.Append(warnStr); } return(sb.ToString()); }
//public override void RegisterMenus(MenuStrip parentMenu, string rootMenuText) //{ // ToolStripMenuItem rootMenuItem = new ToolStripMenuItem(rootMenuText);//parentMenu.Items.Add("仓储管理"); // //rootMenuItem.Click += LoadMainform_MenuHandler; // parentMenu.Items.Add(rootMenuItem); // // if(parentPNP.RoleID<3) // { // ToolStripItem productDSItem = rootMenuItem.DropDownItems.Add("PLC设置"); // // ToolStripItem mesofflineItem = rootMenuItem.DropDownItems.Add("MES离线模式"); // productDSItem.Click += PLCSettingHandler; // // mesofflineItem.Click += LoadView_MenuHandler; // } //} //public override void SetParent(/*Control parentContainer, Form parentForm, */IParentModule parentPnP) //{ // this.parentPNP = parentPnP; // //if (parentPNP.RoleID == 1) // //{ // // sysDefineView = new SysDefineView("系统维护"); // // this.sysDefineView.SetParent(parentPnP); // //} // //this.SetParent(parentPnP); //} //public override void SetLoginterface(ILogRecorder logRecorder) //{ // this.logRecorder = logRecorder; //} #endregion #region 私有函数 /// <summary> /// 显示指定设备的配置 /// </summary> /// <param name="deviceID"></param> private void ShowPLCSet(string deviceID, bool readPLCValue) { CtlDevBaseModel devModel = null; if (GetDeviceModel(deviceID, ref devModel) == false) { return; } this.CurrDev = devModel; XmlDocument xmldoc = new XmlDocument(); XmlNode root = xmldoc.CreateElement("Root"); int readtimes = 0;//读取三个地址都不上来就不读取了 IDictionary <string, DevCfgItemModel> devCfg = devModel.devCfgList; DevInterface.IPlcRWEtd plcEtd = devModel.PlcRW as DevInterface.IPlcRWEtd; foreach (DevCfgItemModel cfg in devCfg.Values) { XmlElement objElement = xmldoc.CreateElement("Item"); int [] addrValue = new int[1]; if (devModel.PlcRW.IsConnect == true && readPLCValue == true && readtimes < 3) { if (plcEtd.ReadMultiDB(cfg.PlcAddr, 1, ref addrValue) == false)//每次都读取plc地址的值 { readtimes++; } else { readtimes = 0; } } objElement.InnerXml = addrValue[0].ToString(); objElement.SetAttribute("name", cfg.PlcAddr); objElement.SetAttribute("type", cfg.AddrDataType.ToString()); objElement.SetAttribute("style", "EDITOR"); objElement.SetAttribute("desc", cfg.Desc); root.AppendChild(objElement); } this.superTextEdit1.DataSource = root.OuterXml; }
private string GetSelectDevWarnningStr(CtlDevBaseModel dev) { StringBuilder warnStr = new StringBuilder(); foreach (DevWarnItemModel warn in dev.devWarnList.Values) { if (warn == null) { continue; } if (warn.WarnStat == 0) { continue; } warnStr.Append("[" + warn.WarnInfo + "]"); } return(warnStr.ToString()); }
/// <summary> /// 获取指定设备模型 /// </summary> /// <param name="deviceID"></param> /// <param name="device"></param> /// <returns></returns> private bool GetDeviceModel(string deviceID, ref CtlDevBaseModel device) { if (this.DevList == null) { return(false); } CtlDevBaseModel devModel = null; foreach (CtlDevBaseModel dev in this.DevList) { if (dev.DevID == deviceID) { devModel = dev; break; } } device = devModel; if (device == null) { return(false); } return(true); }
public virtual bool ParseCfg(XElement xe, ref string reStr) { try { this.lineName = xe.Attribute("name").Value.ToString(); XElement devCfgRoot = xe.Element("DevCfg"); if (devCfgRoot != null) { IEnumerable <XElement> devXEList = devCfgRoot.Elements("Dev"); foreach (XElement el in devXEList) { CtlDevBaseModel ctlDev = new CtlDevBaseModel(); if (!ctlDev.ParseCfg(el, ref reStr)) { return(false); } devList.Add(ctlDev); } } XElement nodeCfgRoot = xe.Element("NodeCfg"); if (nodeCfgRoot != null) { IEnumerable <XElement> nodeXEList = nodeCfgRoot.Elements("Node"); foreach (XElement el in nodeXEList) { string className = (string)el.Attribute("className"); CtlNodeBaseModel ctlNode = null; switch (className) { case "LineNodes.NodePalletBind": { ctlNode = new NodePalletBind(); break; } case "LineNodes.NodeScrewLock": { ctlNode = new NodeScrewLock(); break; } case "LineNodes.NodeUV": { ctlNode = new NodeUV(); break; } case "LineNodes.NodeDianjiao": { ctlNode = new NodeDianjiao(); break; } case "LineNodes.NodeSwitchBind": { ctlNode = new NodeSwitchBind(); break; } case "LineNodes.NodeCCDCheck": { ctlNode = new NodeCCDCheck(); break; } case "LineNodes.NodeLaserClean": { ctlNode = new NodeLaserClean(); break; } case "LineNodes.NodeWeld": { ctlNode = new NodeWeld(); break; } case "LineNodes.NodePackFasten": { ctlNode = new NodePackFasten(); break; } case "LineNodes.NodePackLabel": { ctlNode = new NodePackLabel(); break; } case "LineNodes.NodePackWeld": { ctlNode = new NodePackWeld(); break; } case "LineNodes.NodePackOutput": { ctlNode = new NodePackOutput(); break; } case "LineNodes.NodeUpDownMachine": { ctlNode = new NodeUpDownMachine(); break; } case "LineNodes.NodeTailRobot": { ctlNode = new NodeTailRobot(); break; } case "LineNodes.NodeManualStation": { ctlNode = new NodeManualStation(); break; } case "LineNodes.BakeStation": { ctlNode = new BakeStation(); break; } case "LineNodes.NodeCManualStation": { ctlNode = new NodeCManualStation(); break; } default: break; } if (ctlNode != null) { if (this.lineName == "A线") { ctlNode.LineID = 1; } else if (this.lineName == "B线") { ctlNode.LineID = 2; } else { ctlNode.LineID = 3; } if (!ctlNode.BuildCfg(el, ref reStr)) { return(false); } this.nodeList.Add(ctlNode); } } } return(true); } catch (Exception ex) { reStr = ex.ToString(); return(false); } }