LongHaiHandle.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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 LongHaiTe : DeviceList
  11. {
  12. private static LongHaiTe _LongHaiTe = new LongHaiTe();
  13. public static LongHaiTe Instance { get { return _LongHaiTe; } }
  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. pLC_S7Handle = new DeviceS7(HslCommunication.Profinet.Siemens.SiemensPLCS.S1200, "192.168.170.81");
  21. pLC_S7Handle.DeviceInit();
  22. pLC_S7Handle.DeviceState();
  23. weiLiDefaultList.PropertyChanged += WeiLiDefaultList_PropertyChanged;
  24. base.DeviceInit();
  25. }
  26. private void WeiLiDefaultList_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
  27. {
  28. WeiLiDefaultList item = sender as WeiLiDefaultList;
  29. Msg?.Invoke("LHT", "DB3.10", item.RunResult.ToString());
  30. }
  31. public override void DeviceSend(object ob, object ob1)
  32. {
  33. pLC_S7Handle.DeviceSend(ob, ob1);
  34. }
  35. public override T DeviceRead<T>(string value,ushort leng=0)
  36. {
  37. return pLC_S7Handle.DeviceRead<T>(value);
  38. }
  39. public override void DeviceStart()
  40. {
  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("DB3.10", 4);
  49. if (result.Content != null)
  50. {
  51. short taskID = result.Content.GetShort(0);
  52. short taskStart = result.Content.GetShort(2);
  53. if (result.IsSuccess)
  54. {
  55. weiLiDefaultList.RunResult = $"{taskID},{taskStart}";
  56. }
  57. else
  58. {
  59. YG.Log.Instance.WriteLogAdd($"{pLC_S7Handle.SiemensS7Net.IpAddress}+读取地址DB3.10失败");
  60. }
  61. }
  62. }
  63. else
  64. {
  65. YG.Log.Instance.WriteLogAdd($"{pLC_S7Handle.SiemensS7Net.IpAddress}+连接失败");
  66. }
  67. }
  68. });
  69. base.DeviceStart();
  70. }
  71. }
  72. }