/// <summary> /// 视觉处理类 /// </summary> //private Logic.VisionHandle VP //{ // get // { // return Logic.VisionHandle.Instance; // } //} /// <summary> /// 写值PLC,Modbus /// </summary> /// <param name="itemid"></param> /// <param name="value"></param> public void PlcWrite(Common.PlcDevice device, object value) { try { Logic.PlcHandle.Instance.WriteValue(device, value); } catch { } }
/// <summary> /// 处理图像 /// </summary> //public virtual bool HalconMachineImage(Config.VisionItem vi) //{ // return true; //} /// <summary> /// /// </summary> /// <param name="vi"></param> //public virtual void GrabImage(Config.VisionItem vi) //{ // //抓图 // VisionHandle.Instance.GrabImage(vi); //} #region PLC&Mudbus操作 /// <summary> /// 读PLC,Modbus /// </summary> /// <param name="itemid"></param> /// <returns></returns> public object PlcRead(Common.PlcDevice device) { try { return(Logic.PlcHandle.Instance.ReadValue(device)); } catch { return(null); } }
// 写设备的值 public bool WriteValue(Common.PlcDevice plcDevice, object value) { bool IsOk = false; try { Config.PlcDataItem devData = this.GetPlcDataItem(plcDevice); Config.PlcTypeItem devType = this.GetPlcTypeItem(devData.DeviceName); switch (devType.DevType) { //Keyence case Common.DeviceType.Keyence: KeyenceMcNet kPlcClient = (KeyenceMcNet)devType.Tag; IsOk = this.WriteSieTcpValue(devType, devData, kPlcClient, value); break; //Melsec case Common.DeviceType.Qseries: MelsecMcNet mPlcClient = (MelsecMcNet)devType.Tag; IsOk = this.WriteSieTcpValue(devType, devData, mPlcClient, value); break; case Common.DeviceType.S1200: case Common.DeviceType.S300: case Common.DeviceType.S400: case Common.DeviceType.S1500: case Common.DeviceType.S200Smart: case Common.DeviceType.S200: SiemensS7Net sPlcClient = (SiemensS7Net)devType.Tag; IsOk = this.WriteSieTcpValue(devType, devData, sPlcClient, value); break; case Common.DeviceType.ModbusTcp: ModbusTcpNet mTcpClient = (ModbusTcpNet)devType.Tag; IsOk = this.WriteModTcpValue(devType, devData, mTcpClient, value); break; case Common.DeviceType.ModbusRtu: ModbusRtu mRtuClinet = (ModbusRtu)devType.Tag; IsOk = this.WriteModRtuValue(devType, devData, mRtuClinet, value); break; default: break; } } catch { } return(IsOk); }
/// SiemensPLC客户端 public SiemensS7Net GetPlcClient(Common.PlcDevice device) { string[] sArry = device.ToString().Split('_'); string name = sArry[1]; IEnumerable ie = from lst in this.config.PlcTypeItems where lst.DevName == name select lst.Tag; List <SiemensS7Net> ioLst = ie.Cast <SiemensS7Net>().ToList(); if (ioLst.Count > 0) { return(ioLst[0]); } else { return(null); } }
/// 获取PLC数据项 public Config.PlcDataItem GetPlcDataItem(Common.PlcDevice device) { //string[] sArry = device.ToString().Split('_'); //Test.Config.PlcTypeItem item = this.GetPlcTypeItem(sArry[1]); IEnumerable ie = from lst in this.config.PlcDataItems where lst.PlcDevice == device select lst; List <Config.PlcDataItem> ioLst = ie.Cast <Config.PlcDataItem>().ToList(); if (ioLst.Count > 0) { return(ioLst[0]); } else { return(null); } }
// 读设备的值 public object ReadValue(Common.PlcDevice plcDevice) { Config.PlcDataItem devData = this.GetPlcDataItem(plcDevice); if (devData == null) { return(null); } Config.PlcTypeItem devType = this.GetPlcTypeItem(devData.DeviceName); switch (devType.DevType) { //Keyence case Common.DeviceType.Keyence: KeyenceMcNet kPlcClient = (KeyenceMcNet)devType.Tag; return(this.ReadSieTcpValue(devType, devData, kPlcClient)); //Melsec 三菱PLC case Common.DeviceType.Qseries: MelsecMcNet mPlcClient = (MelsecMcNet)devType.Tag; return(this.ReadSieTcpValue(devType, devData, mPlcClient)); //Siemens case Common.DeviceType.S1200: case Common.DeviceType.S300: case Common.DeviceType.S400: case Common.DeviceType.S1500: case Common.DeviceType.S200Smart: case Common.DeviceType.S200: SiemensS7Net sPlcClient = (SiemensS7Net)devType.Tag; return(this.ReadSieTcpValue(devType, devData, sPlcClient)); case Common.DeviceType.ModbusTcp: ModbusTcpNet mTcpClient = (ModbusTcpNet)devType.Tag; return(this.ReadModTcpValue(devType, devData, mTcpClient)); case Common.DeviceType.ModbusRtu: ModbusRtu mRtuClinet = (ModbusRtu)devType.Tag; return(this.ReadModRtuValue(devType, devData, mRtuClinet)); default: return(null); } }
public object GetValue(Common.PlcDevice plcDevice) { Config.PlcDataItem devData = this.GetPlcDataItem(plcDevice); return(devData.ValueNew); }