示例#1
0
        /// <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 { }
        }
示例#2
0
        /// <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);
            }
        }
示例#3
0
        // 写设备的值
        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);
        }
示例#4
0
        /// 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);
            }
        }
示例#5
0
        /// 获取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);
            }
        }
示例#6
0
        // 读设备的值
        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);
            }
        }
示例#7
0
 public object GetValue(Common.PlcDevice plcDevice)
 {
     Config.PlcDataItem devData = this.GetPlcDataItem(plcDevice);
     return(devData.ValueNew);
 }