| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | using IMCS.DefaultList;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using YG.Device;namespace IMCS.Logic{    public class LongHaiTe : DeviceList    {        private static LongHaiTe _LongHaiTe = new LongHaiTe();        public static LongHaiTe Instance { get { return _LongHaiTe; } }        public override event RunMessage Msg;        public override event RunState rState;        WeiLiDefaultList weiLiDefaultList = new WeiLiDefaultList();        DeviceS7 pLC_S7Handle;        public override void DeviceInit()        {            pLC_S7Handle = new DeviceS7(HslCommunication.Profinet.Siemens.SiemensPLCS.S1200, "192.168.170.81");            pLC_S7Handle.DeviceInit();            pLC_S7Handle.DeviceState();            weiLiDefaultList.PropertyChanged += WeiLiDefaultList_PropertyChanged;            base.DeviceInit();        }        private void WeiLiDefaultList_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)        {            WeiLiDefaultList item = sender as WeiLiDefaultList;            Msg?.Invoke("LHT", "DB3.10", item.RunResult.ToString());        }        public override void DeviceSend(object ob, object ob1)        {            pLC_S7Handle.DeviceSend(ob, ob1);        }        public override T DeviceRead<T>(string value,ushort leng=0)        {            return pLC_S7Handle.DeviceRead<T>(value);        }        public override void DeviceStart()        {                      Task.Factory.StartNew(async () =>            {                while (true)                {                    await Task.Delay(100);                    if (pLC_S7Handle.ConnectionResult.IsSuccess)                    {                        HslCommunication.OperateResult<byte[]> result = pLC_S7Handle.SiemensS7Net.Read("DB3.10", 4);                        if (result.Content != null)                        {                            short taskID = result.Content.GetShort(0);                            short taskStart = result.Content.GetShort(2);                                                       if (result.IsSuccess)                            {                                weiLiDefaultList.RunResult = $"{taskID},{taskStart}";                            }                            else                            {                                YG.Log.Instance.WriteLogAdd($"{pLC_S7Handle.SiemensS7Net.IpAddress}+读取地址DB3.10失败");                            }                        }                    }                    else                    {                        YG.Log.Instance.WriteLogAdd($"{pLC_S7Handle.SiemensS7Net.IpAddress}+连接失败");                    }                }            });            base.DeviceStart();        }    }}
 |