| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | 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 WeiLiHandle : DeviceList    {        private static WeiLiHandle weiLi = new WeiLiHandle();        public static WeiLiHandle Instance { get { return weiLi; } }        public override event RunMessage Msg;        public override event RunState rState;        WeiLiDefaultList weiLiDefaultList = new WeiLiDefaultList();        DeviceS7 pLC_S7Handle;        public override void DeviceInit()        {            weiLiDefaultList.PropertyChanged += WeiLiDefaultList_PropertyChanged;            base.DeviceInit();        }        private void WeiLiDefaultList_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)        {            WeiLiDefaultList item = sender as WeiLiDefaultList;            Msg?.Invoke("WL", "DB250", 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()        {            pLC_S7Handle = new DeviceS7(HslCommunication.Profinet.Siemens.SiemensPLCS.S1200, "192.168.170.81");            pLC_S7Handle.DeviceInit();            pLC_S7Handle.DeviceState();            Task.Factory.StartNew(async () =>            {                while (true)                {                    await Task.Delay(100);                    if (pLC_S7Handle.ConnectionResult.IsSuccess)                    {                        HslCommunication.OperateResult<byte[]> result = pLC_S7Handle.SiemensS7Net.Read("DB200.44", 8);                        if (result.Content != null&&result.Content.Length==8)                        {                            short taskID = result.Content.GetShort(0);                            short taskStart = result.Content.GetShort(2);                            short taskEnd = result.Content.GetShort(4);                            short taskResult = result.Content.GetShort(6);                            if (result.IsSuccess)                            {                                weiLiDefaultList.RunResult = $"{taskID},{taskResult}";                            }                            else                            {                                YG.Log.Instance.WriteLogAdd($"{pLC_S7Handle.SiemensS7Net.IpAddress}+读取地址DB200.50失败");                            }                        }                    }                    else                    {                        YG.Log.Instance.WriteLogAdd($"{pLC_S7Handle.SiemensS7Net.IpAddress}+连接失败");                    }                }            });            base.DeviceStart();        }    }}
 |