DeviceManager.cs 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. using Aitex.Core.RT.DataCenter;
  2. using Aitex.Core.RT.Device;
  3. using Aitex.Core.RT.Event;
  4. using Aitex.Core.RT.SCCore;
  5. using Aitex.Core.Util;
  6. using Aitex.Sorter.Common;
  7. using MECF.Framework.Common.Device.Bases;
  8. using MECF.Framework.Common.Equipment;
  9. using System;
  10. using System.Collections.Generic;
  11. using FurnaceRT.Equipments.PMs.Devices;
  12. using FurnaceRT.Equipments.Systems;
  13. using FurnaceRT.Devices;
  14. using Aitex.Core.RT.Device.Unit;
  15. using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.HRC100Robots.GM201LVPRobot;
  16. using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.CarrierIdReaders.CarrierIDReaderBase;
  17. using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.CarrierIdReaders.OmronV640;
  18. using System.Linq;
  19. namespace FurnaceRT.Instances
  20. {
  21. public class DeviceEntity : DeviceEntityT<DeviceManager>
  22. {
  23. public DeviceEntity()
  24. {
  25. }
  26. }
  27. public class DeviceManager : DeviceManagerBase
  28. {
  29. public DeviceManager()
  30. {
  31. }
  32. public override bool Initialize()
  33. {
  34. //AddCustomModuleDevice(new SZSTRfPower(ModuleName.PM1.ToString(), "RfPower"));
  35. //AddCustomModuleDevice(new SZSTRfMatch(ModuleName.PM1.ToString(), "RfMatch"));
  36. DATA.Subscribe("System.LiveAlarmEvent", () =>
  37. {
  38. var alarms = EV.GetAlarmEvent();
  39. if (alarms != null && alarms.Count > 0)
  40. {
  41. alarms = alarms.OrderBy(a => a.OccuringTime).ToList();
  42. }
  43. return alarms;
  44. });
  45. //Mag7RobotConvertor.Converter = new FurnaceMag7RobotConverter();
  46. var waferRobot = new GM201LVPRobot("", ModuleName.WaferRobot.ToString(), "Robot", GM201LVPRobot.MaterialType.Wafer, null, null);
  47. waferRobot.IsCarrierMove = false;
  48. waferRobot._MaterialType = GM201LVPRobot.MaterialType.Wafer;
  49. waferRobot.ModuleAssociateStationDic = new Dictionary<string, string>()
  50. {
  51. {ModuleName.FIMS1.ToString(), "C01" },
  52. {ModuleName.FIMS2.ToString(), "C02" },
  53. {ModuleName.PM1.ToString(), "C03" },
  54. };
  55. AddCustomDevice(waferRobot);
  56. var carrierRobot = new GM201LVPRobot("", ModuleName.CarrierRobot.ToString(), "Robot", GM201LVPRobot.MaterialType.Carrier, null, null);
  57. carrierRobot.IsCarrierMove = true;
  58. carrierRobot._MaterialType = GM201LVPRobot.MaterialType.Carrier;
  59. carrierRobot.ModuleAssociateStationDic = new Dictionary<string, string>()
  60. {
  61. {ModuleName.Stocker1.ToString(), "C09" },
  62. {ModuleName.Stocker2.ToString(), "C09" },
  63. {ModuleName.Stocker3.ToString(), "C09" },
  64. {ModuleName.Stocker4.ToString(), "C09" },
  65. {ModuleName.Stocker5.ToString(), "C10" },
  66. {ModuleName.Stocker6.ToString(), "C10" },
  67. {ModuleName.Stocker7.ToString(), "C10" },
  68. {ModuleName.Stocker8.ToString(), "C10" },
  69. {ModuleName.Stocker9.ToString(), "C11" },
  70. {ModuleName.Stocker10.ToString(), "C11" },
  71. {ModuleName.Stocker11.ToString(), "C11" },
  72. {ModuleName.Stocker12.ToString(), "C11" },
  73. {ModuleName.Stocker13.ToString(), "C12" },
  74. {ModuleName.Stocker14.ToString(), "C12" },
  75. {ModuleName.Stocker15.ToString(), "C12" },
  76. {ModuleName.Stocker16.ToString(), "C12" },
  77. {ModuleName.Stocker17.ToString(), "C05" },
  78. {ModuleName.Stocker18.ToString(), "C06" },
  79. {ModuleName.FIMS1.ToString(), "C07" },
  80. {ModuleName.FIMS2.ToString(), "C08" },
  81. {ModuleName.LP1.ToString(), "C01" },
  82. {ModuleName.LP2.ToString(), "C02" },
  83. {ModuleName.LP3.ToString(), "C03" },
  84. {ModuleName.LP4.ToString(), "C04" },
  85. };
  86. carrierRobot.ModuleAssociateHandDic = new Dictionary<string, string>()
  87. {
  88. {ModuleName.Stocker1.ToString(), "001" },
  89. {ModuleName.Stocker2.ToString(), "002" },
  90. {ModuleName.Stocker3.ToString(), "003" },
  91. {ModuleName.Stocker4.ToString(), "004" },
  92. {ModuleName.Stocker5.ToString(), "001" },
  93. {ModuleName.Stocker6.ToString(), "002" },
  94. {ModuleName.Stocker7.ToString(), "003" },
  95. {ModuleName.Stocker8.ToString(), "004" },
  96. {ModuleName.Stocker9.ToString(), "001" },
  97. {ModuleName.Stocker10.ToString(), "002" },
  98. {ModuleName.Stocker11.ToString(), "003" },
  99. {ModuleName.Stocker12.ToString(), "004" },
  100. {ModuleName.Stocker13.ToString(), "001" },
  101. {ModuleName.Stocker14.ToString(), "002" },
  102. {ModuleName.Stocker15.ToString(), "003" },
  103. {ModuleName.Stocker16.ToString(), "004" },
  104. {ModuleName.Stocker17.ToString(), "001" },
  105. {ModuleName.Stocker18.ToString(), "001" },
  106. {ModuleName.FIMS1.ToString(), "001" },
  107. {ModuleName.FIMS2.ToString(), "001" },
  108. {ModuleName.LP1.ToString(), "001" },
  109. {ModuleName.LP2.ToString(), "001" },
  110. {ModuleName.LP3.ToString(), "001" },
  111. {ModuleName.LP4.ToString(), "001" },
  112. };
  113. AddCustomDevice(carrierRobot);
  114. //CIDReaderBaseDevice rfidreader1 = new OmronV640Tcp("CarrierIDReader", "RFIDReaderA", "CarrierID", lp1);
  115. //lp1.CarrierIDReaderCallBack = rfidreader1;
  116. //lp1.CIDReaders = new CIDReaderBaseDevice[] { rfidreader1 };
  117. if (SC.ContainsItem("CarrierID.CarrierIdReaderProtocolType") && SC.GetStringValue("CarrierID.CarrierIdReaderProtocolType") == "1:N")
  118. {
  119. CIDReaderBaseDevice rfidreader1 = new OmronV640NSerial("CarrierIDReader", "RFIDReader1", "CarrierID", null);
  120. AddCustomDevice(rfidreader1, "CarrierIDReader", typeof(CIDReaderBaseDevice));
  121. }
  122. else
  123. {
  124. CIDReaderBaseDevice rfidreader1 = new OmronV640Serial("CarrierIDReader", "RFIDReader1", "CarrierID", null);
  125. AddCustomDevice(rfidreader1, "CarrierIDReader", typeof(CIDReaderBaseDevice));
  126. CIDReaderBaseDevice rfidreader2 = new OmronV640Serial("CarrierIDReader", "RFIDReader2", "CarrierID", null);
  127. AddCustomDevice(rfidreader2, "CarrierIDReader", typeof(CIDReaderBaseDevice));
  128. }
  129. return true;
  130. }
  131. protected override void QueueDevice(IDevice device)
  132. {
  133. //if (!string.IsNullOrEmpty(device.Module) && device.Module != "System" && device.Module.StartsWith("PM"))
  134. {
  135. QueueDevice($"{device.Module}.{device.Name}", device);
  136. }
  137. //else
  138. {
  139. // QueueDevice($"{device.Name}", device);
  140. }
  141. }
  142. private void InitFIMS()
  143. {
  144. }
  145. }
  146. }