SrmSystems.cs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. using System.ComponentModel;
  2. using WCS.Core;
  3. using WCS.WorkEngineering.Extensions;
  4. using WCS.WorkEngineering.Protocol.SRM;
  5. using WCS.WorkEngineering.Protocol.Station;
  6. using WCS.WorkEngineering.Worlds;
  7. namespace WCS.WorkEngineering.Systems
  8. {
  9. /// <summary>
  10. /// 堆垛机系统
  11. /// </summary>
  12. [BelongTo(typeof(MainWorld))]
  13. [Description("堆垛机系统")]
  14. public class SrmSystems : DeviceSystem<Device<ISRM520, ISRM521>>
  15. {
  16. /// <summary>
  17. /// 取货点设备集合
  18. /// </summary>
  19. private Dictionary<string, List<Station>> PickUpDevices = new();
  20. /// <summary>
  21. /// 放货设备
  22. /// </summary>
  23. private Dictionary<string, List<Station>> PutDevices = new();
  24. public SrmSystems()
  25. {
  26. }
  27. protected override bool ParallelDo => true;
  28. protected override bool SaveLogsToFile => true;
  29. public override void Do(Device<ISRM520, ISRM521> obj)
  30. {
  31. if (obj.Data.VoucherNo_2 != obj.Data2.VoucherNo_2) throw new Exception("凭证号不一致");
  32. if (obj.Data2.TaskFinishiID_1 != 0 || obj.Data2.TaskFinishiID_2 != 0)
  33. {
  34. obj.Data.OK_ACK_1 = 1;
  35. obj.Data.OK_ACK_2 = 1;
  36. return;
  37. }
  38. if (obj.Data2.SrmRunStatus != WCS.Entity.Protocol.SRM.SRMFRunStatus.空闲) throw new Exception("任务执行中");
  39. //obj.Data.TaskID_1 = 123456;
  40. //obj.Data.RowPos1_1 = 0;
  41. //obj.Data.TravelPos1_1 = 3745;
  42. //obj.Data.LiftPos1_1 = 0;
  43. //obj.Data.ForkStartPos1_1 = WCS.Entity.Protocol.SRM.SRMForkPos.深度1;
  44. //obj.Data.RowPos2_1 = 31;
  45. //obj.Data.TravelPos2_1 = 1;
  46. //obj.Data.LiftPos2_1 = 1;
  47. //obj.Data.ForkDestPos2_1 = WCS.Entity.Protocol.SRM.SRMForkPos.深度1;
  48. //obj.Data.TaskType_1 = WCS.Entity.Protocol.SRM.SRMTaskType.取放货任务;
  49. //obj.Data.TaskSum_2 = 1;
  50. //var a = false;
  51. //if (a)
  52. //{
  53. // obj.Data.TaskID_2 = 123457;
  54. // obj.Data.RowPos1_2 = 0;
  55. // obj.Data.Travelpos1_2 = 3746;
  56. // obj.Data.Liftpos1_2 = 0;
  57. // obj.Data.ForkStartPos1_2 = WCS.Entity.Protocol.SRM.SRMForkPos.深度1;
  58. // obj.Data.RowPos2_2 = 31;
  59. // obj.Data.Travelpos2_2 = 2;
  60. // obj.Data.Liftpos2_2 = 1;
  61. // obj.Data.ForkStartPos2_2 = WCS.Entity.Protocol.SRM.SRMForkPos.深度1;
  62. // obj.Data.TaskType_2 = WCS.Entity.Protocol.SRM.SRMTaskType.取放货任务;
  63. // obj.Data.TaskSum_2 = 2;
  64. //}
  65. obj.Data.TaskID_1 = 123456;
  66. obj.Data.RowPos1_1 = 31;
  67. obj.Data.TravelPos1_1 = 1;
  68. obj.Data.LiftPos1_1 = 1;
  69. obj.Data.ForkStartPos1_1 = WCS.Entity.Protocol.SRM.SRMForkPos.深度1;
  70. obj.Data.RowPos2_1 = 0;
  71. obj.Data.TravelPos2_1 = 3736;
  72. obj.Data.LiftPos2_1 = 0;
  73. obj.Data.RES_1_2 = 3745;
  74. obj.Data.ForkDestPos2_1 = WCS.Entity.Protocol.SRM.SRMForkPos.深度1;
  75. obj.Data.TaskType_1 = WCS.Entity.Protocol.SRM.SRMTaskType.取放货任务;
  76. obj.Data.TaskSum_2 = 1;
  77. var b = true;
  78. if (b)
  79. {
  80. obj.Data.TaskID_2 = 123456;
  81. obj.Data.RowPos1_2 = 31;
  82. obj.Data.Travelpos1_2 = 2;
  83. obj.Data.Liftpos1_2 = 1;
  84. obj.Data.ForkStartPos1_2 = WCS.Entity.Protocol.SRM.SRMForkPos.深度1;
  85. obj.Data.RowPos2_2 = 0;
  86. obj.Data.Travelpos2_2 = 3737;
  87. obj.Data.Liftpos2_2 = 0;
  88. obj.Data.ForkStartPos2_2 = WCS.Entity.Protocol.SRM.SRMForkPos.深度1;
  89. obj.Data.TaskType_2 = WCS.Entity.Protocol.SRM.SRMTaskType.取放货任务;
  90. obj.Data.RES_2_1 = 3746;
  91. obj.Data.TaskSum_2 = 2;
  92. }
  93. obj.Data.VoucherNo_2++;
  94. }
  95. public override bool Select(Device dev)
  96. {
  97. return dev.Code != "1";
  98. }
  99. }
  100. /// <summary>
  101. /// 堆垛机系统1
  102. /// </summary>
  103. [BelongTo(typeof(MainWorld))]
  104. [Description("堆垛机系统1")]
  105. public class SrmSystems1 : DeviceSystem<Device<IStation520>>
  106. {
  107. /// <summary>
  108. /// 取货点设备集合
  109. /// </summary>
  110. private Dictionary<string, List<Station>> PickUpDevices = new();
  111. /// <summary>
  112. /// 放货设备
  113. /// </summary>
  114. private Dictionary<string, List<Station>> PutDevices = new();
  115. public SrmSystems1()
  116. {
  117. }
  118. protected override bool ParallelDo => true;
  119. protected override bool SaveLogsToFile => true;
  120. public override void Do(Device<IStation520> obj)
  121. {
  122. Console.WriteLine($"{obj.Data.TaskNumber}+{obj.Data.GoodsEnd}+{obj.Data.GoodsStart}");
  123. obj.Data.TaskNumber = 2;
  124. obj.Data.GoodsEnd = 2;
  125. obj.Data.GoodsStart = 2;
  126. }
  127. public override bool Select(Device dev)
  128. {
  129. return dev.Code == "1";
  130. }
  131. }
  132. }