ZhiLiangZhongXinHandle.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using IMCS.DefaultList;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using YG.Device;
  8. namespace IMCS.Logic
  9. {
  10. public class ZhiLiangZhongXinHandle : DeviceList
  11. {
  12. private static ZhiLiangZhongXinHandle weiLi = new ZhiLiangZhongXinHandle();
  13. public static ZhiLiangZhongXinHandle Instance { get { return weiLi; } }
  14. public override event RunMessage Msg;
  15. public override event RunState rState;
  16. WeiLiDefaultList weiLiDefaultList = new WeiLiDefaultList();
  17. DeviceS7 pLC_S7Handle;
  18. public override void DeviceInit()
  19. {
  20. weiLiDefaultList.PropertyChanged += WeiLiDefaultList_PropertyChanged;
  21. base.DeviceInit();
  22. }
  23. private void WeiLiDefaultList_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
  24. {
  25. WeiLiDefaultList item = sender as WeiLiDefaultList;
  26. Msg?.Invoke("ZLZC", "DB250", item.RunResult.ToString());
  27. }
  28. public override void DeviceSend(object ob, object ob1)
  29. {
  30. pLC_S7Handle.DeviceSend(ob, ob1);
  31. }
  32. //public override T DeviceRead<T>(string value,ushort leng=0)
  33. //{
  34. // return pLC_S7Handle.DeviceRead<T>(value, leng);
  35. //}
  36. public override void DeviceStart()
  37. {
  38. pLC_S7Handle = new DeviceS7(HslCommunication.Profinet.Siemens.SiemensPLCS.S1500, "192.168.170.61");
  39. pLC_S7Handle.DeviceInit();
  40. pLC_S7Handle.DeviceState();
  41. Task.Factory.StartNew(async () =>
  42. {
  43. while (true)
  44. {
  45. await Task.Delay(100);
  46. if (pLC_S7Handle.ConnectionResult.IsSuccess)
  47. {
  48. HslCommunication.OperateResult<byte[]> result = pLC_S7Handle.SiemensS7Net.Read("DB200.44", 8);
  49. if (result.Content != null&&result.Content.Length==8)
  50. {
  51. short taskID = result.Content.GetShort(0);
  52. short taskStart = result.Content.GetShort(2);
  53. short taskEnd = result.Content.GetShort(4);
  54. short taskResult = result.Content.GetShort(6);
  55. if (result.IsSuccess)
  56. {
  57. weiLiDefaultList.RunResult = $"{taskID},{taskResult}";
  58. }
  59. else
  60. {
  61. YG.Log.Instance.WriteLogAdd($"{pLC_S7Handle.SiemensS7Net.IpAddress}+读取地址DB200.50失败");
  62. }
  63. }
  64. }
  65. else
  66. {
  67. YG.Log.Instance.WriteLogAdd($"{pLC_S7Handle.SiemensS7Net.IpAddress}+连接失败");
  68. }
  69. }
  70. });
  71. base.DeviceStart();
  72. }
  73. }
  74. }