PMModuleDevice.cs 93 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255
  1. using Aitex.Core.Common.DeviceData;
  2. using Aitex.Core.RT.Device;
  3. using Aitex.Core.RT.Device.Unit;
  4. using Aitex.Core.RT.Event;
  5. using Aitex.Core.Util;
  6. using Aitex.Core.Utilities;
  7. using MECF.Framework.Common.Event;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. using System.Reflection;
  12. using MECF.Framework.Common.SubstrateTrackings;
  13. using Aitex.Core.Common;
  14. using FurnaceRT.Equipments.Systems;
  15. using Aitex.Core.RT.IOCore;
  16. using MECF.Framework.Common.Equipment;
  17. using MECF.Framework.RT.Core.IoProviders;
  18. using MECF.Framework.Common.Device.Bases;
  19. using FurnaceRT.Equipments.Boats;
  20. using IoHeater = FurnaceRT.Devices.IoHeater;
  21. using IoPressureMeter = FurnaceRT.Devices.IoPressureMeter;
  22. using FurnaceRT.Devices;
  23. using Aitex.Core.RT.Log;
  24. using FurnaceRT.Equipments.PMs.Devices;
  25. using Aitex.Core.RT.SCCore;
  26. using static Aitex.Core.RT.Device.Unit.IoBoat;
  27. namespace FurnaceRT.Equipments.PMs
  28. {
  29. public partial class PMModule
  30. {
  31. // -------------------------------------------------------------------------
  32. #region AlarmSignal
  33. [Tag("AlarmSignalO2ConcentrationHI")]
  34. public IoAlarmSignal AlarmSignalO2ConcentrationHI { get; set; }
  35. [Tag("AlarmSignalO2ConcentrationLow")]
  36. public IoAlarmSignal AlarmSignalO2ConcentrationLow { get; set; }
  37. [Tag("AlarmSignalO2ConcentrationEcho1")]
  38. public IoAlarmSignal AlarmSignalO2ConcentrationEcho1 { get; set; }
  39. [Tag("AlarmSignalO2ConcentrationEcho2")]
  40. public IoAlarmSignal AlarmSignalO2ConcentrationEcho2 { get; set; }
  41. [Tag("AlarmSignalSMK1DetectorSensorOperates")]
  42. public IoAlarmSignal AlarmSignalSMK1DetectorSensorOperates { get; set; }
  43. [Tag("AlarmSignalSMK1DetectorSensorFireAlarm")]
  44. public IoAlarmSignal AlarmSignalSMK1DetectorSensorFireAlarm { get; set; }
  45. [Tag("AlarmSignalSMK1DetectorSensorFault")]
  46. public IoAlarmSignal AlarmSignalSMK1DetectorSensorFault { get; set; }
  47. [Tag("AlarmSignalHCLGasLeak1stAlarm")]
  48. public IoAlarmSignal AlarmSignalHCLGasLeak1stAlarm { get; set; }
  49. [Tag("AlarmSignalHCLGasLeak2ndAlarm")]
  50. public IoAlarmSignal AlarmSignalHCLGasLeak2ndAlarm { get; set; }
  51. [Tag("AlarmSignalNH3GasLeak1stAlarm")]
  52. public IoAlarmSignal AlarmSignalNH3GasLeak1stAlarm { get; set; }
  53. [Tag("AlarmSignalNH3GasLeak2ndAlarm")]
  54. public IoAlarmSignal AlarmSignalNH3GasLeak2ndAlarm { get; set; }
  55. [Tag("AlarmSignalF2GasLeak1stAlarm")]
  56. public IoAlarmSignal AlarmSignalF2GasLeak1stAlarm { get; set; }
  57. [Tag("AlarmSignalF2GasLeak2ndAlarm")]
  58. public IoAlarmSignal AlarmSignalF2GasLeak2ndAlarm { get; set; }
  59. [Tag("AlarmSignalGasLeakFault")]
  60. public IoAlarmSignal AlarmSignalGasLeakFault { get; set; }
  61. [Tag("AlarmSignalTS34RotationTempSW")]
  62. public IoAlarmSignal AlarmSignalTS34RotationTempSW { get; set; }
  63. [Tag("AlarmSignalTS30CapInsideTempSW")]
  64. public IoAlarmSignal AlarmSignalTS30CapInsideTempSW { get; set; }
  65. [Tag("AlarmSignalTS31CapOutsideTempSW")]
  66. public IoAlarmSignal AlarmSignalTS31CapOutsideTempSW { get; set; }
  67. [Tag("AlarmSignalGasBoxLowerDoorSW")]
  68. public IoAlarmSignal AlarmSignalGasBoxLowerDoorSW { get; set; }
  69. [Tag("AlarmSignalGasBoxUpperDoorSW")]
  70. public IoAlarmSignal AlarmSignalGasBoxUpperDoorSW { get; set; }
  71. [Tag("AlarmSignalEXHBoxWaterLeak")]
  72. public IoAlarmSignal AlarmSignalEXHBoxWaterLeak { get; set; }
  73. [Tag("AlarmSignalOPPanelEMO1")]
  74. public IoAlarmSignal AlarmSignalOPPanelEMO1 { get; set; }
  75. [Tag("AlarmSignalOPPanelEMO2")]
  76. public IoAlarmSignal AlarmSignalOPPanelEMO2 { get; set; }
  77. [Tag("AlarmSignalMainFurnaceCellingTS306")]
  78. public IoAlarmSignal AlarmSignalMainFurnaceCellingTS306 { get; set; }
  79. [Tag("AlarmSignalHeaterRoomSWS11S12")]
  80. public IoAlarmSignal AlarmSignalHeaterRoomSWS11S12 { get; set; }
  81. [Tag("AlarmSignalFilterBox1DoorSwitch")]
  82. public IoAlarmSignal AlarmSignalFilterBox1DoorSwitch { get; set; }
  83. [Tag("AlarmSignalLABacksideDoorSwitch")]
  84. public IoAlarmSignal AlarmSignalLABacksideDoorSwitch { get; set; }
  85. [Tag("AlarmSignalRHCTS305")]
  86. public IoAlarmSignal AlarmSignalRHCTS305 { get; set; }
  87. [Tag("AlarmSignalGasBoxExhaust1stAlarmMS2")]
  88. public IoAlarmSignal AlarmSignalGasBoxExhaust1stAlarmMS2 { get; set; }
  89. [Tag("AlarmSignalGasBoxExhaust2ndAlarmMS2")]
  90. public IoAlarmSignal AlarmSignalGasBoxExhaust2ndAlarmMS2 { get; set; }
  91. [Tag("AlarmSignalMachineEMO1")]
  92. public IoAlarmSignal AlarmSignalMachineEMO1 { get; set; }
  93. [Tag("AlarmSignalMachineEMO2")]
  94. public IoAlarmSignal AlarmSignalMachineEMO2 { get; set; }
  95. [Tag("AlarmSignalT101TempStatus")]
  96. public IoAlarmSignal AlarmSignalT101TempStatus { get; set; }
  97. [Tag("AlarmSignalT102TempStatus")]
  98. public IoAlarmSignal AlarmSignalT102TempStatus { get; set; }
  99. [Tag("AlarmSignalT103TempStatus")]
  100. public IoAlarmSignal AlarmSignalT103TempStatus { get; set; }
  101. [Tag("AlarmSignalBufferMotorHardwareInterlockAlarm")]
  102. public IoAlarmSignal AlarmSignalBufferMotorHardwareInterlockAlarm { get; set; }
  103. [Tag("AlarmSignalBoatLiftMotorHardwareInterlockAlarm")]
  104. public IoAlarmSignal AlarmSignalBoatLiftMotorHardwareInterlockAlarm { get; set; }
  105. [Tag("AlarmSignalHFReconciliationPressureMinAbnormal")]
  106. public IoAlarmSignal AlarmSignalHFReconciliationPressureMinAbnormal { get; set; }
  107. [Tag("AlarmSignalMagneticFluidLeak")]
  108. public IoAlarmSignal AlarmSignalMagneticFluidLeak { get; set; }
  109. [Tag("AlarmSignalCoolingWaterLeak")]
  110. public IoAlarmSignal AlarmSignalCoolingWaterLeak { get; set; }
  111. [Tag("AlarmSignalMachineEMS1")]
  112. public IoAlarmSignal AlarmSignalMachineEMS1 { get; set; }
  113. [Tag("AlarmSignalMachineEMS2")]
  114. public IoAlarmSignal AlarmSignalMachineEMS2 { get; set; }
  115. [Tag("AlarmSignalFBLightCurtainFault")]
  116. public IoAlarmSignal AlarmSignalFBLightCurtainFault { get; set; }
  117. [Tag("AlarmSignalFBLightCurtainOSSD1")]
  118. public IoAlarmSignal AlarmSignalFBLightCurtainOSSD1 { get; set; }
  119. [Tag("AlarmSignalFBLightCurtainOSSD2")]
  120. public IoAlarmSignal AlarmSignalFBLightCurtainOSSD2 { get; set; }
  121. [Tag("AlarmSignalFBEMO1")]
  122. public IoAlarmSignal AlarmSignalFBEMO1 { get; set; }
  123. [Tag("AlarmSignalFBEMO2")]
  124. public IoAlarmSignal AlarmSignalFBEMO2 { get; set; }
  125. [Tag("AlarmSignalDoorOverride")]
  126. public IoAlarmSignal AlarmSignalDoorOverride { get; set; }
  127. [Tag("AlarmSignalFBFrontDoorSwitch")]
  128. public IoAlarmSignal AlarmSignalFBFrontDoorSwitch { get; set; }
  129. [Tag("AlarmSignalGLBoxPG1CNT1Alarm")]
  130. public IoAlarmSignal AlarmSignalGLBoxPG1CNT1Alarm { get; set; }
  131. [Tag("AlarmSignalGLBoxPG1CNT2Alarm")]
  132. public IoAlarmSignal AlarmSignalGLBoxPG1CNT2Alarm { get; set; }
  133. [Tag("AlarmSignalGLBoxPG2CNT1Alarm")]
  134. public IoAlarmSignal AlarmSignalGLBoxPG2CNT1Alarm { get; set; }
  135. [Tag("AlarmSignalGLBoxPG2CNT2Alarm")]
  136. public IoAlarmSignal AlarmSignalGLBoxPG2CNT2Alarm { get; set; }
  137. [Tag("AlarmSignalGLBoxPG3CNT1Alarm")]
  138. public IoAlarmSignal AlarmSignalGLBoxPG3CNT1Alarm { get; set; }
  139. [Tag("AlarmSignalGLBoxPG3CNT2Alarm")]
  140. public IoAlarmSignal AlarmSignalGLBoxPG3CNT2Alarm { get; set; }
  141. [Tag("AlarmSignalGLBoxPG4CNT1Alarm")]
  142. public IoAlarmSignal AlarmSignalGLBoxPG4CNT1Alarm { get; set; }
  143. [Tag("AlarmSignalGLBoxPG4CNT2Alarm")]
  144. public IoAlarmSignal AlarmSignalGLBoxPG4CNT2Alarm { get; set; }
  145. [Tag("AlarmSignalGLBoxPG5CNT1Alarm")]
  146. public IoAlarmSignal AlarmSignalGLBoxPG5CNT1Alarm { get; set; }
  147. [Tag("AlarmSignalGLBoxPG5CNT2Alarm")]
  148. public IoAlarmSignal AlarmSignalGLBoxPG5CNT2Alarm { get; set; }
  149. [Tag("AlarmSignalGLBoxPG6CNT1Alarm")]
  150. public IoAlarmSignal AlarmSignalGLBoxPG6CNT1Alarm { get; set; }
  151. [Tag("AlarmSignalGLBoxPG6CNT2Alarm")]
  152. public IoAlarmSignal AlarmSignalGLBoxPG6CNT2Alarm { get; set; }
  153. [Tag("AlarmSignalGLBoxVG21Status")]
  154. public IoAlarmSignal AlarmSignalGLBoxVG21Status { get; set; }
  155. [Tag("AlarmSignalGLBoxVG21Output1")]
  156. public IoAlarmSignal AlarmSignalGLBoxVG21Output1 { get; set; }
  157. [Tag("AlarmSignalGLBoxVG21Output2")]
  158. public IoAlarmSignal AlarmSignalGLBoxVG21Output2 { get; set; }
  159. [Tag("AlarmSignalGLBoxVG22Status")]
  160. public IoAlarmSignal AlarmSignalGLBoxVG22Status { get; set; }
  161. [Tag("AlarmSignalGLBoxVG22Output1")]
  162. public IoAlarmSignal AlarmSignalGLBoxVG22Output1 { get; set; }
  163. [Tag("AlarmSignalGLBoxVG22Output2")]
  164. public IoAlarmSignal AlarmSignalGLBoxVG22Output2 { get; set; }
  165. [Tag("AlarmSignalHeatingExhaust1stAlarmMS1")]
  166. public IoAlarmSignal AlarmSignalHeatingExhaust1stAlarmMS1 { get; set; }
  167. [Tag("AlarmSignalHeatingExhaust2ndAlarmMS1")]
  168. public IoAlarmSignal AlarmSignalHeatingExhaust2ndAlarmMS1 { get; set; }
  169. [Tag("AlarmSignalScavengeExhaust1stAlarmMS3")]
  170. public IoAlarmSignal AlarmSignalScavengeExhaust1stAlarmMS3 { get; set; }
  171. [Tag("AlarmSignalScavengeExhaust2ndAlarmMS3")]
  172. public IoAlarmSignal AlarmSignalScavengeExhaust2ndAlarmMS3 { get; set; }
  173. [Tag("AlarmSignalValveBoxExhaust1stAlarmMS4")]
  174. public IoAlarmSignal AlarmSignalValveBoxExhaust1stAlarmMS4 { get; set; }
  175. [Tag("AlarmSignalValveBoxExhaust2ndAlarmMS4")]
  176. public IoAlarmSignal AlarmSignalValveBoxExhaust2ndAlarmMS4 { get; set; }
  177. [Tag("AlarmSignalLoadingAreaExhaust1stAlarmMS5")]
  178. public IoAlarmSignal AlarmSignalLoadingAreaExhaust1stAlarmMS5 { get; set; }
  179. [Tag("AlarmSignalLoadingAreaExhaust2ndAlarmMS5")]
  180. public IoAlarmSignal AlarmSignalLoadingAreaExhaust2ndAlarmMS5 { get; set; }
  181. [Tag("AlarmSignalFrontBodyExhaust1stAlarmMS6")]
  182. public IoAlarmSignal AlarmSignalFrontBodyExhaust1stAlarmMS6 { get; set; }
  183. [Tag("AlarmSignalFrontBodyExhaust2ndAlarmMS6")]
  184. public IoAlarmSignal AlarmSignalFrontBodyExhaust2ndAlarmMS6 { get; set; }
  185. [Tag("AlarmSignalLAExhaust1stAlarmMS7")]
  186. public IoAlarmSignal AlarmSignalLAExhaust1stAlarmMS7 { get; set; }
  187. [Tag("AlarmSignalLAExhaust2ndAlarmMS7")]
  188. public IoAlarmSignal AlarmSignalLAExhaust2ndAlarmMS7 { get; set; }
  189. [Tag("AlarmSignalRHC1stAlarmMS8")]
  190. public IoAlarmSignal AlarmSignalRHC1stAlarmMS8 { get; set; }
  191. [Tag("AlarmSignalRHC2ndAlarmMS8")]
  192. public IoAlarmSignal AlarmSignalRHC2ndAlarmMS8 { get; set; }
  193. [Tag("AlarmSignalREV1stAlarmMS9")]
  194. public IoAlarmSignal AlarmSignalREV1stAlarmMS9 { get; set; }
  195. [Tag("AlarmSignalREV2ndAlarmMS9")]
  196. public IoAlarmSignal AlarmSignalREV2ndAlarmMS9 { get; set; }
  197. [Tag("AlarmSignalREV1stAlarmMS10")]
  198. public IoAlarmSignal AlarmSignalREV1stAlarmMS10 { get; set; }
  199. [Tag("AlarmSignalREV2ndAlarmMS10")]
  200. public IoAlarmSignal AlarmSignalREV2ndAlarmMS10 { get; set; }
  201. [Tag("AlarmSignalOPBoxPS11Out1")]
  202. public IoAlarmSignal AlarmSignalOPBoxPS11Out1 { get; set; }
  203. [Tag("AlarmSignalOPBoxPS11Out2")]
  204. public IoAlarmSignal AlarmSignalOPBoxPS11Out2 { get; set; }
  205. [Tag("AlarmSignalRHCFlowAlarmFL901")]
  206. public IoAlarmSignal AlarmSignalRHCFlowAlarmFL901 { get; set; }
  207. [Tag("AlarmSignalCoolingWaterFlowAlarmOfFurnaceFL902")]
  208. public IoAlarmSignal AlarmSignalCoolingWaterFlowAlarmOfFurnaceFL902 { get; set; }
  209. [Tag("AlarmSignalCoolingWaterFlowAlarmOfShuttleFL903")]
  210. public IoAlarmSignal AlarmSignalCoolingWaterFlowAlarmOfShuttleFL903 { get; set; }
  211. [Tag("AlarmSignalCoolingWaterFlowAlarmOfBoatRotationFL904")]
  212. public IoAlarmSignal AlarmSignalCoolingWaterFlowAlarmOfBoatRotationFL904 { get; set; }
  213. [Tag("AlarmSignalCoolingWaterFlowAlarmOfFlangeFL905")]
  214. public IoAlarmSignal AlarmSignalCoolingWaterFlowAlarmOfFlangeFL905 { get; set; }
  215. [Tag("AlarmSignalCoolingWaterFlowAlarmOfLoadingAreaFL906")]
  216. public IoAlarmSignal AlarmSignalCoolingWaterFlowAlarmOfLoadingAreaFL906 { get; set; }
  217. [Tag("AlarmSignalVG11LowAlarm")]
  218. public IoAlarmSignal AlarmSignalVG11LowAlarm { get; set; }
  219. [Tag("AlarmSignalVG11HighAlarm")]
  220. public IoAlarmSignal AlarmSignalVG11HighAlarm { get; set; }
  221. [Tag("AlarmSignalVG12LowAlarm")]
  222. public IoAlarmSignal AlarmSignalVG12LowAlarm { get; set; }
  223. [Tag("AlarmSignalVG12HighAlarm")]
  224. public IoAlarmSignal AlarmSignalVG12HighAlarm { get; set; }
  225. [Tag("AlarmSignalVG13LowAlarm")]
  226. public IoAlarmSignal AlarmSignalVG13LowAlarm { get; set; }
  227. [Tag("AlarmSignalVG13HighAlarm")]
  228. public IoAlarmSignal AlarmSignalVG13HighAlarm { get; set; }
  229. [Tag("AlarmSignalPG12OUT1")]
  230. public IoAlarmSignal AlarmSignalPG12OUT1 { get; set; }
  231. [Tag("AlarmSignalPG12OUT2")]
  232. public IoAlarmSignal AlarmSignalPG12OUT2 { get; set; }
  233. [Tag("AlarmSignalPG13OUT1")]
  234. public IoAlarmSignal AlarmSignalPG13OUT1 { get; set; }
  235. [Tag("AlarmSignalPG13OUT2")]
  236. public IoAlarmSignal AlarmSignalPG13OUT2 { get; set; }
  237. [Tag("AlarmSignalPS14OUT1")]
  238. public IoAlarmSignal AlarmSignalPS14OUT1 { get; set; }
  239. [Tag("AlarmSignalPS14OUT2")]
  240. public IoAlarmSignal AlarmSignalPS14OUT2 { get; set; }
  241. [Tag("AlarmSignalCoolingWaterPressureOut1")]
  242. public IoAlarmSignal AlarmSignalCoolingWaterPressureOut1 { get; set; }
  243. [Tag("AlarmSignalCoolingWaterPressureOut2")]
  244. public IoAlarmSignal AlarmSignalCoolingWaterPressureOut2 { get; set; }
  245. [Tag("AlarmSignalAirFlowFL70")]
  246. public IoAlarmSignal AlarmSignalAirFlowFL70 { get; set; }
  247. [Tag("AlarmSignalAirFlowFL71")]
  248. public IoAlarmSignal AlarmSignalAirFlowFL71 { get; set; }
  249. [Tag("AlarmSignalAirFlowFL72")]
  250. public IoAlarmSignal AlarmSignalAirFlowFL72 { get; set; }
  251. [Tag("AlarmSignalWaterFlowFL62")]
  252. public IoAlarmSignal AlarmSignalWaterFlowFL62 { get; set; }
  253. [Tag("AlarmSignalUPSFault")]
  254. public IoAlarmSignal AlarmSignalUPSFault { get; set; }
  255. [Tag("AlarmSignalUPSAlarm")]
  256. public IoAlarmSignal AlarmSignalUPSAlarm { get; set; }
  257. [Tag("AlarmSignalN2PurgeBOXPG14CNT1")]
  258. public IoAlarmSignal AlarmSignalN2PurgeBOXPG14CNT1 { get; set; }
  259. [Tag("AlarmSignalN2PurgeBOXPG14CNT2")]
  260. public IoAlarmSignal AlarmSignalN2PurgeBOXPG14CNT2 { get; set; }
  261. [Tag("AlarmSignalN2PurgeBOXPG15CNT1")]
  262. public IoAlarmSignal AlarmSignalN2PurgeBOXPG15CNT1 { get; set; }
  263. [Tag("AlarmSignalN2PurgeBOXPG15CNT2")]
  264. public IoAlarmSignal AlarmSignalN2PurgeBOXPG15CNT2 { get; set; }
  265. [Tag("AlarmSignalN2PurgeBOXPG16CNT1")]
  266. public IoAlarmSignal AlarmSignalN2PurgeBOXPG16CNT1 { get; set; }
  267. [Tag("AlarmSignalN2PurgeBOXPG16CNT2")]
  268. public IoAlarmSignal AlarmSignalN2PurgeBOXPG16CNT2 { get; set; }
  269. [Tag("AlarmSignalN2PurgeBOXPG70CNT1")]
  270. public IoAlarmSignal AlarmSignalN2PurgeBOXPG70CNT1 { get; set; }
  271. [Tag("AlarmSignalN2PurgeBOXPG70CNT2")]
  272. public IoAlarmSignal AlarmSignalN2PurgeBOXPG70CNT2 { get; set; }
  273. [Tag("AlarmSignalPS17ValueLowLimitAlarm")]
  274. public IoAlarmSignal AlarmSignalPS17ValueLowLimitAlarm { get; set; }
  275. [Tag("AlarmSignalVaccumPumpWarning")]
  276. public IoAlarmSignal AlarmSignalVaccumPumpWarning { get; set; }
  277. [Tag("AlarmSignalVaccumPumpAlarm")]
  278. public IoAlarmSignal AlarmSignalVaccumPumpAlarm { get; set; }
  279. [Tag("AlarmSignalFilterBox1Fan1Alarm")]
  280. public IoAlarmSignal AlarmSignalFilterBox1Fan1Alarm { get; set; }
  281. [Tag("AlarmSignalFilterBox1Fan2Alarm")]
  282. public IoAlarmSignal AlarmSignalFilterBox1Fan2Alarm { get; set; }
  283. [Tag("AlarmSignalStepperMotorAlarm")]
  284. public IoAlarmSignal AlarmSignalStepperMotorAlarm { get; set; }
  285. [Tag("AlarmSignalRFAlarm")]
  286. public IoAlarmSignal AlarmSignalRFAlarm { get; set; }
  287. [Tag("AlarmSignalForelineHeaterJacketLightAlarm")]
  288. public IoAlarmSignal AlarmSignalForelineHeaterJacketLightAlarm { get; set; }
  289. [Tag("AlarmSignalForelineHeaterJacketHeavyAlarm")]
  290. public IoAlarmSignal AlarmSignalForelineHeaterJacketHeavyAlarm { get; set; }
  291. [Tag("AlarmSignalScrubberWarning")]
  292. public IoAlarmSignal AlarmSignalScrubberWarning { get; set; }
  293. [Tag("AlarmSignalScrubberAlarm")]
  294. public IoAlarmSignal AlarmSignalScrubberAlarm { get; set; }
  295. [Tag("AlarmSignalNegLmtPosBoatZAxis")]
  296. public IoAlarmSignal AlarmSignalNegLmtPosBoatZAxis { get; set; }
  297. [Tag("AlarmSignalPotLmtPosBoatZAxis")]
  298. public IoAlarmSignal AlarmSignalPotLmtPosBoatZAxis { get; set; }
  299. [Tag("AlarmSignalLAFFUCommAlarm")]
  300. public IoAlarmSignal AlarmSignalLAFFUCommAlarm { get; set; }
  301. [Tag("AlarmSignalMINI8CommAlarm")]
  302. public IoAlarmSignal AlarmSignalMINI8CommAlarm { get; set; }
  303. [Tag("AlarmSignaMainWaterFlowAlarm")]
  304. public IoAlarmSignal AlarmSignaMainWaterFlowAlarm { get; set; }
  305. [Tag("AlarmSignalFurnaceMainCircuitBreakerStatusMonitor")]
  306. public IoAlarmSignal AlarmSignalFurnaceMainCircuitBreakerStatusMonitor { get; set; }
  307. [Tag("AlarmSignalPumpDown")]
  308. public IoAlarmSignal AlarmSignalPumpDown { get; set; }
  309. [Tag("AlarmSignalPS13HStatus")]
  310. public IoAlarmSignal AlarmSignalPS13HStatus { get; set; }
  311. [Tag("AlarmSignalPS13LStatus")]
  312. public IoAlarmSignal AlarmSignalPS13LStatus { get; set; }
  313. [Tag("AlarmSignalFFU1DataWriteError")]
  314. public IoAlarmSignal AlarmSignalFFU1DataWriteError { get; set; }
  315. [Tag("AlarmSignalFFU2DataWriteError")]
  316. public IoAlarmSignal AlarmSignalFFU2DataWriteError { get; set; }
  317. [Tag("AlarmSignalFFU3DataWriteError")]
  318. public IoAlarmSignal AlarmSignalFFU3DataWriteError { get; set; }
  319. [Tag("AlarmSignalFFU4DataWriteError")]
  320. public IoAlarmSignal AlarmSignalFFU4DataWriteError { get; set; }
  321. [Tag("AlarmSignalFFU5DataWriteError")]
  322. public IoAlarmSignal AlarmSignalFFU5DataWriteError { get; set; }
  323. [Tag("AlarmSignalFFU6DataWriteError")]
  324. public IoAlarmSignal AlarmSignalFFU6DataWriteError { get; set; }
  325. [Tag("AlarmSignalFFU7DataWriteError")]
  326. public IoAlarmSignal AlarmSignalFFU7DataWriteError { get; set; }
  327. [Tag("AlarmSignalFFU8DataWriteError")]
  328. public IoAlarmSignal AlarmSignalFFU8DataWriteError { get; set; }
  329. [Tag("AlarmSignalFFU9DataWriteError")]
  330. public IoAlarmSignal AlarmSignalFFU9DataWriteError { get; set; }
  331. [Tag("AlarmSignalDG1Output1")]
  332. public IoAlarmSignal AlarmSignalDG1Output1 { get; set; }
  333. [Tag("AlarmSignalDG1Output2")]
  334. public IoAlarmSignal AlarmSignalDG1Output2 { get; set; }
  335. [Tag("AlarmSignalAV91_1RHCAirInOpened")]
  336. public IoAlarmSignal AlarmSignalAV91_1RHCAirInOpened { get; set; }
  337. [Tag("AlarmSignalAV91_2RHCAirInOpened")]
  338. public IoAlarmSignal AlarmSignalAV91_2RHCAirInOpened { get; set; }
  339. [Tag("AlarmSignalAV91_3RHCAirInOpened")]
  340. public IoAlarmSignal AlarmSignalAV91_3RHCAirInOpened { get; set; }
  341. [Tag("AlarmSignalAV91_4RHCAirInOpened")]
  342. public IoAlarmSignal AlarmSignalAV91_4RHCAirInOpened { get; set; }
  343. [Tag("AlarmSignalBlowerPower")]
  344. public IoAlarmSignal AlarmSignalBlowerPower { get; set; }
  345. [Tag("AlarmSignalRFSetPowerReached")]
  346. public IoAlarmSignal AlarmSignalRFSetPowerReached { get; set; }
  347. [Tag("AlarmSignalN2FlowInFOUPAbnormal")]
  348. public IoAlarmSignal AlarmSignalN2FlowInFOUPAbnormal { get; set; }
  349. [Tag("AlarmSignalCapHeaterAbnormal")]
  350. public IoAlarmSignal AlarmSignalCapHeaterAbnormal { get; set; }
  351. [Tag("AlarmSignalHeaterUOverTemp")]
  352. public IoAlarmSignal AlarmSignalHeaterUOverTemp { get; set; }
  353. [Tag("AlarmSignalHeaterCUOverTemp")]
  354. public IoAlarmSignal AlarmSignalHeaterCUOverTemp { get; set; }
  355. [Tag("AlarmSignalHeaterCOverTemp")]
  356. public IoAlarmSignal AlarmSignalHeaterCOverTemp { get; set; }
  357. [Tag("AlarmSignalHeaterCLOverTemp")]
  358. public IoAlarmSignal AlarmSignalHeaterCLOverTemp { get; set; }
  359. [Tag("AlarmSignalHeaterLOverTemp")]
  360. public IoAlarmSignal AlarmSignalHeaterLOverTemp { get; set; }
  361. [Tag("AlarmSignaBoatRAxisAlarm")]
  362. public IoAlarmSignal AlarmSignaBoatRAxisAlarm { get; set; }
  363. [Tag("AlarmSignaBoatRAxisWarning")]
  364. public IoAlarmSignal AlarmSignaBoatRAxisWarning { get; set; }
  365. [Tag("AlarmSignaBoatZAxisWarning")]
  366. public IoAlarmSignal AlarmSignaBoatZAxisWarning { get; set; }
  367. [Tag("AlarmSignaBoatZAxisAlarm")]
  368. public IoAlarmSignal AlarmSignaBoatZAxisAlarm { get; set; }
  369. [Tag("AlarmSignaGasHeaterSensorBreakOutAlarm")]
  370. public IoAlarmSignal AlarmSignaGasHeaterSensorBreakOutAlarm { get; set; }
  371. [Tag("AlarmSignaTempLimitAlarm")]
  372. public IoAlarmSignal AlarmSignaTempLimitAlarm { get; set; }
  373. [Tag("AlarmSignalLAO2CheckOTWarning")]
  374. public IoAlarmSignal AlarmSignalLAO2CheckOTWarning { get; set; }
  375. [Tag("AlarmSignalFIMS1O2CheckOTWarning")]
  376. public IoAlarmSignal AlarmSignalFIMS1O2CheckOTWarning { get; set; }
  377. [Tag("AlarmSignalFIMS2O2CheckOTWarning")]
  378. public IoAlarmSignal AlarmSignalFIMS2O2CheckOTWarning { get; set; }
  379. [Tag("AlarmSignalHeaterUCascadePVSBrk")]
  380. public IoAlarmSignal AlarmSignalHeaterUCascadePVSBrk { get; set; }
  381. [Tag("AlarmSignalHeaterUHeaterPVSBrk")]
  382. public IoAlarmSignal AlarmSignalHeaterUHeaterPVSBrk { get; set; }
  383. [Tag("AlarmSignalHeaterCUCascadePVSBrk")]
  384. public IoAlarmSignal AlarmSignalHeaterCUCascadePVSBrk { get; set; }
  385. [Tag("AlarmSignalHeaterCUHeaterPVSBrk")]
  386. public IoAlarmSignal AlarmSignalHeaterCUHeaterPVSBrk { get; set; }
  387. [Tag("AlarmSignalHeaterCCascadePVSBrk")]
  388. public IoAlarmSignal AlarmSignalHeaterCCascadePVSBrk { get; set; }
  389. [Tag("AlarmSignalHeaterCHeaterPVSBrk")]
  390. public IoAlarmSignal AlarmSignalHeaterCHeaterPVSBrk { get; set; }
  391. [Tag("AlarmSignalHeaterCLCascadePVSBrk")]
  392. public IoAlarmSignal AlarmSignalHeaterCLCascadePVSBrk { get; set; }
  393. [Tag("AlarmSignalHeaterCLHeaterPVSBrk")]
  394. public IoAlarmSignal AlarmSignalHeaterCLHeaterPVSBrk { get; set; }
  395. [Tag("AlarmSignalHeaterLCascadePVSBrk")]
  396. public IoAlarmSignal AlarmSignalHeaterLCascadePVSBrk { get; set; }
  397. [Tag("AlarmSignalHeaterLHeaterPVSBrk")]
  398. public IoAlarmSignal AlarmSignalHeaterLHeaterPVSBrk { get; set; }
  399. #endregion
  400. public AITSensorData SensorRecipeOK { get; set; }
  401. public AITSensorData SensorPROCManualOK { get; set; }
  402. [Tag("SensorVG11Status")]
  403. public IoSensor SensorVG11Status { get; set; }
  404. [Tag("SensorVG12Status")]
  405. public IoSensor SensorVG12Status { get; set; }
  406. [Tag("SensorVG13Status")]
  407. public IoSensor SensorVG13Status { get; set; }
  408. [Tag("SensorVACDEPOOK")]
  409. public IoSensor SensorVACDEPOOK { get; set; }
  410. [Tag("SensorVACHFOK")]
  411. public IoSensor SensorVACHFOK { get; set; }
  412. [Tag("SensorVACF2OK")]
  413. public IoSensor SensorVACF2OK { get; set; }
  414. //[Tag("SensorNH3PressureOK")]
  415. //public IoAlarmSignal SignalLeak { get; set; }
  416. //[Tag("SignalExhaustAlarm")]
  417. //public IoAlarmSignal SignalExhaustAlarm { get; set; }
  418. //[Tag("SignalLeakBroken")]
  419. //public IoAlarmSignal SignalLeakBroken { get; set; }
  420. //[Tag("EmoAlarm")]
  421. //public IoAlarmSignal EmoAlarm { get; set; }
  422. // -------------------------------------------------------------------------
  423. //[Tag("ChamberLiftPin")]
  424. //public IoLift2 ChamberLiftPin { get; set; }
  425. // -------------------------------------------------------------------------
  426. //[Tag("ChamberDoor")]
  427. //public IoDoor2 ChamberDoor { get; set; }
  428. //[Tag("MFM61")]
  429. //public IoMFM MFM61 { get; set; }
  430. //[Tag("MfmNB")]
  431. //public IoMFM MfmNB { get; set; }
  432. [Tag("ValveAV1")]
  433. public IoValve ValveAV1 { get; set; }
  434. [Tag("ValveAV2")]
  435. public IoValve ValveAV2 { get; set; }
  436. [Tag("ValveAV3")]
  437. public IoValve ValveAV3 { get; set; }
  438. [Tag("ValveAV4")]
  439. public IoValve ValveAV4 { get; set; }
  440. [Tag("ValveAV5")]
  441. public IoValve ValveAV5 { get; set; }
  442. [Tag("ValveAV6")]
  443. public IoValve ValveAV6 { get; set; }
  444. [Tag("ValveAV7")]
  445. public IoValve ValveAV7 { get; set; }
  446. [Tag("ValveAV8")]
  447. public IoValve ValveAV8 { get; set; }
  448. [Tag("ValveAV9")]
  449. public IoValve ValveAV9 { get; set; }
  450. [Tag("ValveAV10")]
  451. public IoValve ValveAV10 { get; set; }
  452. [Tag("ValveAV11")]
  453. public IoValve ValveAV11 { get; set; }
  454. [Tag("ValveAV12")]
  455. public IoValve ValveAV12 { get; set; }
  456. [Tag("ValveAV13")]
  457. public IoValve ValveAV13 { get; set; }
  458. [Tag("ValveAV14")]
  459. public IoValve ValveAV14 { get; set; }
  460. [Tag("ValveAV15")]
  461. public IoValve ValveAV15 { get; set; }
  462. [Tag("ValveAV16")]
  463. public IoValve ValveAV16 { get; set; }
  464. [Tag("ValveAV17")]
  465. public IoValve ValveAV17 { get; set; }
  466. [Tag("ValveAV18")]
  467. public IoValve ValveAV18 { get; set; }
  468. [Tag("ValveAV19")]
  469. public IoValve ValveAV19 { get; set; }
  470. [Tag("ValveAV20")]
  471. public IoValve ValveAV20 { get; set; }
  472. [Tag("ValveAV21")]
  473. public IoValve ValveAV21 { get; set; }
  474. [Tag("ValveAV22")]
  475. public IoValve ValveAV22 { get; set; }
  476. [Tag("ValveAV23")]
  477. public IoValve ValveAV23 { get; set; }
  478. [Tag("ValveAV24")]
  479. public IoValve ValveAV24 { get; set; }
  480. [Tag("ValveAV25")]
  481. public IoValve ValveAV25 { get; set; }
  482. [Tag("ValveAV26")]
  483. public IoValve ValveAV26 { get; set; }
  484. [Tag("ValveAV27")]
  485. public IoValve ValveAV27 { get; set; }
  486. [Tag("ValveAV28")]
  487. public IoValve ValveAV28 { get; set; }
  488. [Tag("ValveAV29")]
  489. public IoValve ValveAV29 { get; set; }
  490. [Tag("ValveAV30")]
  491. public IoValve ValveAV30 { get; set; }
  492. [Tag("ValveAV31")]
  493. public IoValve ValveAV31 { get; set; }
  494. [Tag("ValveAV32")]
  495. public IoValve ValveAV32 { get; set; }
  496. [Tag("ValveAV33")]
  497. public IoValve ValveAV33 { get; set; }
  498. [Tag("ValveAV34")]
  499. public IoValve ValveAV34 { get; set; }
  500. [Tag("ValveAV35")]
  501. public IoValve ValveAV35 { get; set; }
  502. [Tag("ValveAV36")]
  503. public IoValve ValveAV36 { get; set; }
  504. [Tag("ValveAV37")]
  505. public IoValve ValveAV37 { get; set; }
  506. [Tag("ValveAV38")]
  507. public IoValve ValveAV38 { get; set; }
  508. [Tag("ValveAV39")]
  509. public IoValve ValveAV39 { get; set; }
  510. [Tag("ValveAV40")]
  511. public IoValve ValveAV40 { get; set; }
  512. [Tag("ValveAV41")]
  513. public IoValve ValveAV41 { get; set; }
  514. [Tag("ValveAV42")]
  515. public IoValve ValveAV42 { get; set; }
  516. [Tag("ValveAV43")]
  517. public IoValve ValveAV43 { get; set; }
  518. [Tag("ValveAV44")]
  519. public IoValve ValveAV44 { get; set; }
  520. [Tag("ValveAV45")]
  521. public IoValve ValveAV45 { get; set; }
  522. [Tag("ValveAV46")]
  523. public IoValve ValveAV46 { get; set; }
  524. [Tag("ValveAV47")]
  525. public IoValve ValveAV47 { get; set; }
  526. [Tag("ValveAV48")]
  527. public IoValve ValveAV48 { get; set; }
  528. [Tag("ValveAV49")]
  529. public IoValve ValveAV49 { get; set; }
  530. [Tag("ValveAV50")]
  531. public IoValve ValveAV50 { get; set; }
  532. [Tag("ValveAV51")]
  533. public IoValve ValveAV51 { get; set; }
  534. [Tag("ValveAV52")]
  535. public IoValve ValveAV52 { get; set; }
  536. [Tag("ValveAV53")]
  537. public IoValve ValveAV53 { get; set; }
  538. [Tag("ValveAV54")]
  539. public IoValve ValveAV54 { get; set; }
  540. [Tag("ValveAV55")]
  541. public IoValve ValveAV55 { get; set; }
  542. [Tag("ValveAV56")]
  543. public IoValve ValveAV56 { get; set; }
  544. [Tag("ValveAV57")]
  545. public IoValve ValveAV57 { get; set; }
  546. [Tag("ValveAV58")]
  547. public IoValve ValveAV58 { get; set; }
  548. [Tag("ValveAV59")]
  549. public IoValve ValveAV59 { get; set; }
  550. [Tag("ValveAV60")]
  551. public IoValve ValveAV60 { get; set; }
  552. [Tag("ValveAV61")]
  553. public IoValve ValveAV61 { get; set; }
  554. [Tag("ValveAV62")]
  555. public IoValve ValveAV62 { get; set; }
  556. [Tag("ValveAV63")]
  557. public IoValve ValveAV63 { get; set; }
  558. [Tag("ValveAV64")]
  559. public IoValve ValveAV64 { get; set; }
  560. [Tag("ValveAV65")]
  561. public IoValve ValveAV65 { get; set; }
  562. [Tag("ValveAV202LADoor")]
  563. public IoValve ValveAV202LADoor { get; set; }
  564. [Tag("ValveAV66")]
  565. public IoValve ValveAV66 { get; set; }
  566. [Tag("ValveAV67")]
  567. public IoValve ValveAV67 { get; set; }
  568. [Tag("ValveAV68")]
  569. public IoValve ValveAV68 { get; set; }
  570. [Tag("ValveAV69")]
  571. public IoValve ValveAV69 { get; set; }
  572. [Tag("ValveAV70")]
  573. public IoValve ValveAV70 { get; set; }
  574. [Tag("ValveAV71")]
  575. public IoValve ValveAV71 { get; set; }
  576. [Tag("ValveAV72")]
  577. public IoValve ValveAV72 { get; set; }
  578. [Tag("ValveAV73")]
  579. public IoValve ValveAV73 { get; set; }
  580. [Tag("ValveAV74")]
  581. public IoValve ValveAV74 { get; set; }
  582. [Tag("ValveAV75")]
  583. public IoValve ValveAV75 { get; set; }
  584. [Tag("ValveAV76")]
  585. public IoValve ValveAV76 { get; set; }
  586. [Tag("ValveAV77")]
  587. public IoValve ValveAV77 { get; set; }
  588. [Tag("ValveAV78")]
  589. public IoValve ValveAV78 { get; set; }
  590. [Tag("ValveAV79")]
  591. public IoValve ValveAV79 { get; set; }
  592. [Tag("ValveAV80")]
  593. public IoValve ValveAV80 { get; set; }
  594. [Tag("ValveAV81")]
  595. public IoValve ValveAV81 { get; set; }
  596. [Tag("ValveAV82")]
  597. public IoValve ValveAV82 { get; set; }
  598. [Tag("ValveAV83")]
  599. public IoValve ValveAV83 { get; set; }
  600. [Tag("ValveAV84")]
  601. public IoValve ValveAV84 { get; set; }
  602. [Tag("ValveAV85")]
  603. public IoValve ValveAV85 { get; set; }
  604. [Tag("ValveAV86")]
  605. public IoValve ValveAV86 { get; set; }
  606. [Tag("ValveAV87")]
  607. public IoValve ValveAV87 { get; set; }
  608. [Tag("ValveAV88")]
  609. public IoValve ValveAV88 { get; set; }
  610. [Tag("ValveAV89")]
  611. public IoValve ValveAV89 { get; set; }
  612. [Tag("ValveAV90")]
  613. public IoValve ValveAV90 { get; set; }
  614. [Tag("ValveAV91")]
  615. public IoValve ValveAV91 { get; set; }
  616. [Tag("ValveAV92")]
  617. public IoValve ValveAV92 { get; set; }
  618. [Tag("ValveAV93")]
  619. public IoValve ValveAV93 { get; set; }
  620. [Tag("ValveAV94")]
  621. public IoValve ValveAV94 { get; set; }
  622. [Tag("ValveAV95")]
  623. public IoValve ValveAV95 { get; set; }
  624. [Tag("ValveAV96")]
  625. public IoValve ValveAV96 { get; set; }
  626. [Tag("ValveAV97")]
  627. public IoValve ValveAV97 { get; set; }
  628. [Tag("ValveAV98")]
  629. public IoValve ValveAV98 { get; set; }
  630. [Tag("ValveAV99")]
  631. public IoValve ValveAV99 { get; set; }
  632. [Tag("ValveAV100")]
  633. public IoValve ValveAV100 { get; set; }
  634. [Tag("ValveAV101")]
  635. public IoValve ValveAV101 { get; set; }
  636. [Tag("ValveAV102")]
  637. public IoValve ValveAV102 { get; set; }
  638. [Tag("ValveAV103")]
  639. public IoValve ValveAV103 { get; set; }
  640. [Tag("ValveAV104")]
  641. public IoValve ValveAV104 { get; set; }
  642. [Tag("ValveAV105")]
  643. public IoValve ValveAV105 { get; set; }
  644. [Tag("ValveAV106")]
  645. public IoValve ValveAV106 { get; set; }
  646. [Tag("ValveAV107")]
  647. public IoValve ValveAV107 { get; set; }
  648. [Tag("ValveAV108")]
  649. public IoValve ValveAV108 { get; set; }
  650. [Tag("ValveAV109")]
  651. public IoValve ValveAV109 { get; set; }
  652. [Tag("ValveAV110")]
  653. public IoValve ValveAV110 { get; set; }
  654. [Tag("ValveAV111")]
  655. public IoValve ValveAV111 { get; set; }
  656. [Tag("ValveAV112")]
  657. public IoValve ValveAV112 { get; set; }
  658. [Tag("ValveAV113")]
  659. public IoValve ValveAV113 { get; set; }
  660. [Tag("ValveAV114")]
  661. public IoValve ValveAV114 { get; set; }
  662. [Tag("ValveAV115")]
  663. public IoValve ValveAV115 { get; set; }
  664. [Tag("ValveAV116")]
  665. public IoValve ValveAV116 { get; set; }
  666. [Tag("ValveAV117")]
  667. public IoValve ValveAV117 { get; set; }
  668. [Tag("ValveAV118")]
  669. public IoValve ValveAV118 { get; set; }
  670. [Tag("ValveAV119")]
  671. public IoValve ValveAV119 { get; set; }
  672. [Tag("ValveAV120")]
  673. public IoValve ValveAV120 { get; set; }
  674. [Tag("ValveAV121")]
  675. public IoValve ValveAV121 { get; set; }
  676. [Tag("ValveAV122")]
  677. public IoValve ValveAV122 { get; set; }
  678. [Tag("ValveAV123")]
  679. public IoValve ValveAV123 { get; set; }
  680. [Tag("ValveAV124")]
  681. public IoValve ValveAV124 { get; set; }
  682. [Tag("ValveAV125")]
  683. public IoValve ValveAV125 { get; set; }
  684. [Tag("ValveAV126")]
  685. public IoValve ValveAV126 { get; set; }
  686. [Tag("ValveAV127")]
  687. public IoValve ValveAV127 { get; set; }
  688. [Tag("ValveAV128")]
  689. public IoValve ValveAV128 { get; set; }
  690. [Tag("ValveAV129")]
  691. public IoValve ValveAV129 { get; set; }
  692. [Tag("ValveAV130")]
  693. public IoValve ValveAV130 { get; set; }
  694. [Tag("ValveAV131")]
  695. public IoValve ValveAV131 { get; set; }
  696. [Tag("ValveAV132")]
  697. public IoValve ValveAV132 { get; set; }
  698. [Tag("ValveAV133")]
  699. public IoValve ValveAV133 { get; set; }
  700. [Tag("ValveAV134")]
  701. public IoValve ValveAV134 { get; set; }
  702. [Tag("ValveAV135")]
  703. public IoValve ValveAV135 { get; set; }
  704. [Tag("ValveAV136")]
  705. public IoValve ValveAV136 { get; set; }
  706. [Tag("ValveAV230")]
  707. public IoValve ValveAV230 { get; set; }
  708. [Tag("ValveCommonBoxPressureRegulatingCylinder")]
  709. public IoValve ValveCommonBoxPressureRegulatingCylinder { get; set; }
  710. [Tag("ValveLABacksideDoorCylinderControl")]
  711. public IoValve ValveLABacksideDoorCylinderControl { get; set; }
  712. [Tag("ValveLAExhaustDamper")]
  713. public IoValve ValveLAExhaustDamper { get; set; }
  714. [Tag("ValveLADamper")]
  715. public IoValve ValveLADamper { get; set; }
  716. [Tag("ValveFIMS1N2Purge")]
  717. public IoValve ValveFIMS1N2Purge { get; set; }
  718. [Tag("ValveFIMS2N2Purge")]
  719. public IoValve ValveFIMS2N2Purge { get; set; }
  720. [Tag("ValveSV61")]
  721. public IoValve ValveSV61 { get; set; }
  722. [Tag("ValveSV62")]
  723. public IoValve ValveSV62 { get; set; }
  724. [Tag("ValveSV63")]
  725. public IoValve ValveSV63 { get; set; }
  726. [Tag("ValveSV64")]
  727. public IoValve ValveSV64 { get; set; }
  728. [Tag("AGVPump")]
  729. public IoValve AGVPump { get; set; }
  730. [Tag("AGV2Pump")]
  731. public IoValve AGV2Pump { get; set; }
  732. [Tag("BothPump")]
  733. public IoValve BothPump { get; set; }
  734. [Tag("BothPump1")]
  735. public IoValve BothPump1 { get; set; }
  736. [Tag("BothPump2")]
  737. public IoValve BothPump2 { get; set; }
  738. [Tag("ValveBlowerPowerOn")]
  739. public IoValve ValveBlowerPowerOn { get; set; }
  740. [Tag("HMNT")]
  741. public IoValve HMNT { get; set; }
  742. [Tag("CMNT")]
  743. public IoValve CMNT { get; set; }
  744. [Tag("HREF")]
  745. public IoValve HREF { get; set; }
  746. [Tag("CREF")]
  747. public IoValve CREF { get; set; }
  748. [Tag("HZERO")]
  749. public IoValve HZERO { get; set; }
  750. [Tag("CZERO")]
  751. public IoValve CZERO { get; set; }
  752. // -------------------------------------------------------------------------
  753. [Tag("PressureGLBoxPG1")]
  754. public IoPressureMeter PressureGLBoxPG1 { get; set; }
  755. [Tag("PressureGLBoxPG2")]
  756. public IoPressureMeter PressureGLBoxPG2 { get; set; }
  757. [Tag("PressureGLBoxPG3")]
  758. public IoPressureMeter PressureGLBoxPG3 { get; set; }
  759. [Tag("PressureGLBoxPG4")]
  760. public IoPressureMeter PressureGLBoxPG4 { get; set; }
  761. [Tag("PressureGLBoxPG5")]
  762. public IoPressureMeter PressureGLBoxPG5 { get; set; }
  763. [Tag("PressureGLBoxPG6")]
  764. public IoPressureMeter PressureGLBoxPG6 { get; set; }
  765. [Tag("PressureGasBoxUpperVG21")]
  766. public IoPressureMeter PressureGasBoxUpperVG21 { get; set; }
  767. [Tag("PressureGasBoxUpperVG22")]
  768. public IoPressureMeter PressureGasBoxUpperVG22 { get; set; }
  769. [Tag("ConcentrationO2")]
  770. public IoPressureMeter ConcentrationO2 { get; set; }
  771. [Tag("GasBoxExhaustMS2")]
  772. public IoPressureMeter GasBoxExhaustMS2 { get; set; }
  773. [Tag("ScavengerExhaustMS3")]
  774. public IoPressureMeter ScavengerExhaustMS3 { get; set; }
  775. [Tag("ExhaustBoxExhaustMS4")]
  776. public IoPressureMeter ExhaustBoxExhaustMS4 { get; set; }
  777. [Tag("LoadingAreaExhaustMS5")]
  778. public IoPressureMeter LoadingAreaExhaustMS5 { get; set; }
  779. [Tag("FrontBodyExhaustMS6")]
  780. public IoPressureMeter FrontBodyExhaustMS6 { get; set; }
  781. [Tag("LAExhaustMS7")]
  782. public IoPressureMeter LAExhaustMS7 { get; set; }
  783. [Tag("RHCExhaustMS8")]
  784. public IoPressureMeter RHCExhaustMS8 { get; set; }
  785. [Tag("RHCFlowFL901")]
  786. public IoPressureMeter RHCFlowFL901 { get; set; }
  787. [Tag("CoolingWaterFlowOfFurnaceFL902")]
  788. public IoPressureMeter CoolingWaterFlowOfFurnaceFL902 { get; set; }
  789. [Tag("CoolingWateFlowOfShuttleFL903")]
  790. public IoPressureMeter CoolingWateFlowOfShuttleFL903 { get; set; }
  791. [Tag("CoolingWaterFlowOfBoatRotationFL904")]
  792. public IoPressureMeter CoolingWaterFlowOfBoatRotationFL904 { get; set; }
  793. [Tag("CoolingWaterFlowOfFlangeFL905")]
  794. public IoPressureMeter CoolingWaterFlowOfFlangeFL905 { get; set; }
  795. [Tag("CoolingWaterFlowOfLoadingAreaFL906")]
  796. public IoPressureMeter CoolingWaterFlowOfLoadingAreaFL906 { get; set; }
  797. [Tag("VG11")]
  798. public IoPressureMeter VG11 { get; set; }
  799. [Tag("VG12")]
  800. public IoPressureMeter VG12 { get; set; }
  801. [Tag("VG13")]
  802. public IoPressureMeter VG13 { get; set; }
  803. [Tag("VG21")]
  804. public IoPressureMeter VG21 { get; set; }
  805. [Tag("VG22")]
  806. public IoPressureMeter VG22 { get; set; }
  807. [Tag("PG12")]
  808. public IoPressureMeter PG12 { get; set; }
  809. [Tag("PG13")]
  810. public IoPressureMeter PG13 { get; set; }
  811. [Tag("PS13")]
  812. public IoPressureMeter PS13 { get; set; }
  813. [Tag("N24PurgePressure")]
  814. public IoPressureMeter N24PurgePressure { get; set; }
  815. [Tag("N25PurgePressure")]
  816. public IoPressureMeter N25PurgePressure { get; set; }
  817. [Tag("N26PurgePressure")]
  818. public IoPressureMeter N26PurgePressure { get; set; }
  819. [Tag("N27PurgePressure")]
  820. public IoPressureMeter N27PurgePressure { get; set; }
  821. [Tag("PS11")]
  822. public IoPressureMeter PS11 { get; set; }
  823. [Tag("PS17")]
  824. public IoPressureMeter PS17 { get; set; }
  825. // -------------------------------------------------------------------------
  826. [Tag("FIMS1")]
  827. public IoFIMS FIMS1 { get; set; }
  828. [Tag("FIMS2")]
  829. public IoFIMS FIMS2 { get; set; }
  830. //[Tag("ValvePV12")]
  831. //public IoValve ValvePV12 { get; set; }
  832. //[Tag("ValvePV13")]
  833. //public IoValve ValvePV13 { get; set; }
  834. //[Tag("ValvePV14")]
  835. //public IoValve ValvePV14 { get; set; }
  836. //[Tag("ValvePV15")]
  837. //public IoValve ValvePV15 { get; set; }
  838. //[Tag("ValvePV16")]
  839. //public IoValve ValvePV16 { get; set; }
  840. //[Tag("ValvePV17")]
  841. //public IoValve ValvePV17 { get; set; }
  842. [Tag("MFC1")]
  843. public IoMFC MFC1 { get; set; }
  844. [Tag("MFC2")]
  845. public IoMFC MFC2 { get; set; }
  846. [Tag("MFC3")]
  847. public IoMFC MFC3 { get; set; }
  848. [Tag("MFC4")]
  849. public IoMFC MFC4 { get; set; }
  850. [Tag("MFC5")]
  851. public IoMFC MFC5 { get; set; }
  852. [Tag("MFC6")]
  853. public IoMFC MFC6 { get; set; }
  854. [Tag("MFC7")]
  855. public IoMFC MFC7 { get; set; }
  856. [Tag("MFC8")]
  857. public IoMFC MFC8 { get; set; }
  858. [Tag("MFC9")]
  859. public IoMFC MFC9 { get; set; }
  860. [Tag("MFC10")]
  861. public IoMFC MFC10 { get; set; }
  862. [Tag("MFC11")]
  863. public IoMFC MFC11 { get; set; }
  864. [Tag("MFC12")]
  865. public IoMFC MFC12 { get; set; }
  866. [Tag("MFC13")]
  867. public IoMFC MFC13 { get; set; }
  868. [Tag("MFC14")]
  869. public IoMFC MFC14 { get; set; }
  870. [Tag("MFC15")]
  871. public IoMFC MFC15 { get; set; }
  872. [Tag("MFC16")]
  873. public IoMFC MFC16 { get; set; }
  874. [Tag("MFC17")]
  875. public IoMFC MFC17 { get; set; }
  876. [Tag("MFC31")]
  877. public IoMFC MFC31 { get; set; }
  878. [Tag("MFC32")]
  879. public IoMFC MFC32 { get; set; }
  880. [Tag("MFC51")]
  881. public IoMFC MFC51 { get; set; }
  882. [Tag("MFC57")]
  883. public IoMFC MFC57 { get; set; }
  884. //[Tag("GasLineA")]
  885. //public IoGasStick2 GasLineA { get; set; }
  886. //[Tag("GasLineB")]
  887. //public IoGasStick2 GasLineB { get; set; }
  888. //[Tag("GasLineC")]
  889. //public IoGasStick2 GasLineC { get; set; }
  890. //[Tag("GasLineNX")]
  891. //public IoGasStick2 GasLineNX { get; set; }
  892. //[Tag("GasLineNY")]
  893. //public IoGasStick2 GasLineNY { get; set; }
  894. //[Tag("GasLineN1")]
  895. //public IoGasStick2 GasLineN1 { get; set; }
  896. //[Tag("GasLineN2")]
  897. //public IoGasStick2 GasLineN2 { get; set; }
  898. //[Tag("GasLineN3")]
  899. //public IoGasStick2 GasLineN3 { get; set; }
  900. //[Tag("GasLineM1")]
  901. //public IoGasStick2 GasLineM1 { get; set; }
  902. //[Tag("GasLineM2")]
  903. //public IoGasStick2 GasLineM2 { get; set; }
  904. //[Tag("GasLineD1")]
  905. //public IoGasStick2 GasLineD1 { get; set; }
  906. //[Tag("GasLineJ1")]
  907. //public IoGasStick2 GasLineJ1 { get; set; }
  908. // -------------------------------------------------------------------------
  909. [Tag("Shutter")]
  910. public IoShutter Shutter { get; set; }
  911. [Tag("FFU1")] public IoFFU FFU1 { get; set; }
  912. [Tag("FFU2")] public IoFFU FFU2 { get; set; }
  913. [Tag("FFU3")] public IoFFU FFU3 { get; set; }
  914. [Tag("FFU4")] public IoFFU FFU4 { get; set; }
  915. [Tag("FFU5")] public IoFFU FFU5 { get; set; }
  916. [Tag("FFU6")] public IoFFU FFU6 { get; set; }
  917. [Tag("FFU7")] public IoFFU FFU7 { get; set; }
  918. [Tag("FFU8")] public IoFFU FFU8 { get; set; }
  919. [Tag("FFU9")] public IoFFU FFU9 { get; set; }
  920. // -------------------------------------------------------------------------
  921. [Tag("APC")]
  922. public IoAPC APC { get; set; }
  923. // -------------------------------------------------------------------------
  924. //[Tag("MainPump")]
  925. //public IoPump MainPump { get; set; }
  926. //[Tag("IoPump")]
  927. //public IoPump IoPump { get; set; }
  928. // -------------------------------------------------------------------------
  929. //[Tag("VG2Pressure")]
  930. //public IoPressureMeter VG2Pressure { get; set; }
  931. //[Tag("PT52")]
  932. //public IoPressureMeter PT52 { get; set; }
  933. //[Tag("PT53")]
  934. //public IoPressureMeter PT53 { get; set; }
  935. //[Tag("PT10")]
  936. //public IoPressureMeter PT10 { get; set; }
  937. //[Tag("PT20")]
  938. //public IoPressureMeter PT20 { get; set; }
  939. //[Tag("PT30")]
  940. //public IoPressureMeter PT30 { get; set; }
  941. //[Tag("O2Detector1")]
  942. //public IoPressureMeter O2Detector1 { get; set; }
  943. //[Tag("O2Detector2")]
  944. //public IoPressureMeter O2Detector2 { get; set; }
  945. // -------------------------------------------------------------------------
  946. [Tag("TrigFurnaceLZoneHeatingEnable")]
  947. public IoTrigger TrigFurnaceLZoneHeatingEnable { get; set; }
  948. [Tag("TrigFurnaceCLZoneHeatingEnable")]
  949. public IoTrigger TrigFurnaceCLZoneHeatingEnable { get; set; }
  950. [Tag("TrigFurnaceCZoneHeatingEnable")]
  951. public IoTrigger TrigFurnaceCZoneHeatingEnable { get; set; }
  952. [Tag("TrigFurnaceCUZoneHeatingEnable")]
  953. public IoTrigger TrigFurnaceCUZoneHeatingEnable { get; set; }
  954. [Tag("TrigFurnaceUZoneHeatingEnable")]
  955. public IoTrigger TrigFurnaceUZoneHeatingEnable { get; set; }
  956. [Tag("TrigVGUnitConversion")]
  957. public IoTrigger TrigVGUnitConversion { get; set; }
  958. [Tag("TrigForlineHeaterOn")]
  959. public IoTrigger TrigForlineHeaterOn { get; set; }
  960. [Tag("TrigHTR1SWON")]
  961. public IoTrigger TrigHTR1SWON { get; set; }
  962. [Tag("TrigHTR2SWON")]
  963. public IoTrigger TrigHTR2SWON { get; set; }
  964. [Tag("TrigHTR3SWON")]
  965. public IoTrigger TrigHTR3SWON { get; set; }
  966. [Tag("TrigDEPOSW")]
  967. public IoTrigger TrigDEPOSW { get; set; }
  968. [Tag("TrigCREFON")]
  969. public IoTrigger TrigCREFON { get; set; }
  970. [Tag("TrigSIREFON")]
  971. public IoTrigger TrigSIREFON { get; set; }
  972. [Tag("TrigHFCleanSwitchB")]
  973. public IoTrigger TrigHFCleanSwitchB { get; set; }
  974. [Tag("TrigF2CleanSwitchB")]
  975. public IoTrigger TrigF2CleanSwitchB { get; set; }
  976. public IoHeater HeaterU { get; set; }
  977. public IoHeater HeaterCU { get; set; }
  978. public IoHeater HeaterC { get; set; }
  979. public IoHeater HeaterCL { get; set; }
  980. public IoHeater HeaterL { get; set; }
  981. //private Dictionary<string, IoMFC> _gasMFCs;
  982. //public Dictionary<string, IoMFC> GasMFCs => _gasMFCs;
  983. [Tag("TrigAV71ExternalHeater")]
  984. public IoTrigger TrigAV71ExternalHeater { get; set; }
  985. [Tag("TrigAV71RingHeater")]
  986. public IoTrigger TrigAV71RingHeater { get; set; }
  987. [Tag("TrigHeaterAllEnable")]
  988. public IoTrigger TrigHeaterAllEnable { get; set; }
  989. [Tag("TrigGasLineHeaterMemoryChange")]
  990. public IoTrigger TrigGasLineHeaterMemoryChange { get; set; }
  991. #region N2Purge
  992. [Tag("TrigN2PurgeLAO2CheckFirstEnable")]
  993. public IoTrigger TrigN2PurgeLAO2CheckFirstEnable { get; set; }
  994. [Tag("TrigN2PurgeFIMS1O2CheckEnable")]
  995. public IoTrigger TrigN2PurgeFIMS1O2CheckEnable { get; set; }
  996. [Tag("TrigN2PurgeFIMS2O2CheckEnable")]
  997. public IoTrigger TrigN2PurgeFIMS2O2CheckEnable { get; set; }
  998. [Tag("TrigN2PurgeProcess")]
  999. public IoTrigger TrigN2PurgeProcess { get; set; }
  1000. [Tag("TrigN2PurgeLAO2OverTime")]
  1001. public IoTrigger TrigN2PurgeLAO2OverTime { get; set; }
  1002. [Tag("TrigN2PurgeLAO2CheckTime")]
  1003. public IoTrigger TrigN2PurgeLAO2CheckTime { get; set; }
  1004. [Tag("TrigN2PurgeFOUPO2OverTime")]
  1005. public IoTrigger TrigN2PurgeFOUPO2OverTime { get; set; }
  1006. [Tag("TrigN2PurgeFOUPO2CheckTime")]
  1007. public IoTrigger TrigN2PurgeFOUPO2CheckTime { get; set; }
  1008. [Tag("TrigN2PurgeExchangeLATOFOUPWaitTime")]
  1009. public IoTrigger TrigN2PurgeExchangeLATOFOUPWaitTime { get; set; }
  1010. [Tag("TrigN2PurgeExchangeFOUPTOLAWaitTime")]
  1011. public IoTrigger TrigN2PurgeExchangeFOUPTOLAWaitTime { get; set; }
  1012. [Tag("TrigN2PurgeExchangeFOUPTOFOUPWaitTime")]
  1013. public IoTrigger TrigN2PurgeExchangeFOUPTOFOUPWaitTime { get; set; }
  1014. [Tag("TrigN2PurgeLAO2CheckSV")]
  1015. public IoTrigger TrigN2PurgeLAO2CheckSV { get; set; }
  1016. [Tag("TrigN2PurgeFOUPO2CheckSV")]
  1017. public IoTrigger TrigN2PurgeFOUPO2CheckSV { get; set; }
  1018. #endregion
  1019. #region IoHeaterBand
  1020. [Tag("CapHeater")]
  1021. public IoHeaterBand CapHeater { get; set; }
  1022. [Tag("APCExternalHeater")]
  1023. public IoHeaterBand APCExternalHeater { get; set; }
  1024. [Tag("APCRingHeater")]
  1025. public IoHeaterBand APCRingHeater { get; set; }
  1026. #endregion
  1027. // -------------------------------------------------------------------------
  1028. [Tag("BoatElevatorServo")]
  1029. public IoFurnaceMotor ZAxisDevice { get; set; }
  1030. [Tag("BoatRotationServo")]
  1031. public IoFurnaceMotor RAxisDevice { get; set; }
  1032. [Tag("APC")]
  1033. public IoAPC APCDevice { get; set; }
  1034. [Tag("TrigGasLineHeaterUnit1PowerOn")]
  1035. public IoTrigger2 TrigGasLine1PowerOn { get; set; }
  1036. [Tag("TrigGasLineHeaterUnit2PowerOn")]
  1037. public IoTrigger2 TrigGasLine2PowerOn { get; set; }
  1038. [Tag("TrigGasLineHeaterUnit3PowerOn")]
  1039. public IoTrigger2 TrigGasLine3PowerOn { get; set; }
  1040. [Tag("TrigGasLineHeaterUnit4PowerOn")]
  1041. public IoTrigger2 TrigGasLine4PowerOn { get; set; }
  1042. [Tag("TrigGasLineHeaterUnit6PowerOn")]
  1043. public IoTrigger2 TrigGasLine6PowerOn { get; set; }
  1044. [Tag("TrigGasLineHeaterUnit7PowerOn")]
  1045. public IoTrigger2 TrigGasLine7PowerOn { get; set; }
  1046. Func<MemberInfo, bool> _hasTagAttribute;
  1047. Func<object, bool> _isTagAttribute;
  1048. public override double ChamberPressure
  1049. {
  1050. get
  1051. {
  1052. return 0;
  1053. }
  1054. }
  1055. //public IAdsPlc Plc { get; set; }
  1056. private List<IDevice> _allModuleDevice = new List<IDevice>();
  1057. private List<IoMFC> _processMFCs = new List<IoMFC>();
  1058. private List<IoHeater> _heaters = new List<IoHeater>();
  1059. private List<IoValve> _valves = new List<IoValve>();
  1060. private List<IoFFU> _fFUs = new List<IoFFU>();
  1061. private List<IoGasStick2> _gasSticks;
  1062. public List<IoGasStick2> GasSticks => _gasSticks;
  1063. private List<AlarmEventItem> _triggeredAlarmList = new List<AlarmEventItem>();
  1064. private List<IoAlarmSignal> _alarmSignals = new List<IoAlarmSignal>();
  1065. private FurnaceSignalTower _signalTowerDevice;
  1066. private int _alarmNumber;
  1067. private List<IoAlarmSignal> _inCommandLst;
  1068. private Dictionary<string, RD_TRIG> _inCommandTirgs = new Dictionary<string, RD_TRIG>();
  1069. private IoTrigger _trigTHPowerEN;
  1070. private IoTrigger _trigHECPowerONLamp;
  1071. private List<HeaterBase> _HTR1Group = new List<HeaterBase>();
  1072. private List<HeaterBase> _HTR2Group = new List<HeaterBase>();
  1073. private List<HeaterBase> _HTR3Group = new List<HeaterBase>();
  1074. public void InitDevice()
  1075. {
  1076. _isTagAttribute = attribute => attribute is TagAttribute;
  1077. _hasTagAttribute = mi => mi.GetCustomAttributes(false).Any(_isTagAttribute);
  1078. var properties = this.GetType().GetProperties().Where(_hasTagAttribute);
  1079. foreach (var field in properties)
  1080. {
  1081. TagAttribute tag = field.GetCustomAttributes(false).First(_isTagAttribute) as TagAttribute;
  1082. IDevice device = DEVICE.GetDevice<IDevice>($"{Module}.{tag.Tag}");
  1083. if (device == null)
  1084. device = DEVICE.GetDevice<IDevice>($"PM1.{tag.Tag}");
  1085. if (device == null)
  1086. device = DEVICE.GetDevice<IDevice>($"System.{tag.Tag}");
  1087. if (device != null)
  1088. {
  1089. _allModuleDevice.Add(device);
  1090. PropertyInfo pi = (PropertyInfo)field;
  1091. var convertedValue = Convert.ChangeType(device, pi.PropertyType);
  1092. System.Diagnostics.Debug.Assert(convertedValue != null);
  1093. pi.SetValue(this, convertedValue);
  1094. if (device is IoAlarmSignal)
  1095. {
  1096. _alarmSignals.Add(device as IoAlarmSignal);
  1097. }
  1098. device.OnDeviceAlarmStateChanged += OnModuleDeviceAlarmStateChanged;
  1099. if (device is IoMFC && device.Name != "MFC57")
  1100. _processMFCs.Add(device as IoMFC);
  1101. if (device is IoHeater)
  1102. _heaters.Add(device as IoHeater);
  1103. else if (device is IoValve)
  1104. _valves.Add(device as IoValve);
  1105. else if (device is HeaterBase)
  1106. _HTR2Group.Add(device as HeaterBase);
  1107. else if (device is IoFFU)
  1108. _fFUs.Add(device as IoFFU);
  1109. }
  1110. else
  1111. {
  1112. }
  1113. }
  1114. for (int i = 1; i < 10; i++)
  1115. {
  1116. for (int ch = 1; ch < 40; ch++)
  1117. {
  1118. var device = DEVICE.GetDevice<HeaterBase>($"PM1.GaslineHeaterUnit{i}CH{ch}");
  1119. if (device != null)
  1120. {
  1121. if ((i == 4 && ch == 1) || (i == 4 && ch == 2) || (i == 4 && ch == 3) || (i == 4 && ch == 4))
  1122. {
  1123. //这几个从_HTR2Group中删除
  1124. //_HTR2Group.Add(device);
  1125. continue;
  1126. }
  1127. else
  1128. _HTR1Group.Add(device);
  1129. }
  1130. }
  1131. }
  1132. for (int i = 1; i < 20; i++)
  1133. {
  1134. var device = DEVICE.GetDevice<HeaterBase>($"PM1.ForelineHeater{i}");
  1135. if (device != null)
  1136. {
  1137. _HTR2Group.Add(device);
  1138. }
  1139. }
  1140. //Singleton<DeviceController>.Instance.Start(Singleton<DeviceManager>.Instance);
  1141. //FlowmeterLists = DEVICE.GetDevice<IoFlowMeter>().Where(o => o.Module == Module).ToList();
  1142. HeaterU = DEVICE.GetDevice<IoHeater>($"System.HeaterU");
  1143. HeaterCU = DEVICE.GetDevice<IoHeater>($"System.HeaterCU");
  1144. HeaterC = DEVICE.GetDevice<IoHeater>($"System.HeaterC");
  1145. HeaterCL = DEVICE.GetDevice<IoHeater>($"System.HeaterCL");
  1146. HeaterL = DEVICE.GetDevice<IoHeater>($"System.HeaterL");
  1147. _heaters = new List<IoHeater>()
  1148. {
  1149. HeaterU,
  1150. HeaterCU,
  1151. HeaterC,
  1152. HeaterCL,
  1153. HeaterL,
  1154. };
  1155. foreach (var heater in _heaters)
  1156. {
  1157. if (heater != null)
  1158. {
  1159. heater.OnDeviceAlarmStateChanged += OnModuleDeviceAlarmStateChanged;
  1160. }
  1161. }
  1162. Singleton<InterlockManager>.Instance.OnDeviceAlarmStateChanged += OnModuleDeviceAlarmStateChanged;
  1163. this.OnDeviceAlarmStateChanged += OnModuleDeviceAlarmStateChanged;
  1164. foreach (var pv in Singleton<IoProviderManager>.Instance.Providers)
  1165. {
  1166. if ((pv as IoProvider) != null)
  1167. (pv as IoProvider).OnDeviceAlarmStateChanged += OnModuleDeviceAlarmStateChanged;
  1168. }
  1169. _gasSticks = new List<IoGasStick2>()
  1170. {
  1171. //GasLineA,
  1172. //GasLineB,
  1173. //GasLineC,
  1174. //GasLineNX,
  1175. //GasLineNY,
  1176. //GasLineN1,
  1177. //GasLineN2,
  1178. //GasLineN3,
  1179. //GasLineM1,
  1180. //GasLineM2,
  1181. //GasLineD1,
  1182. //GasLineJ1,
  1183. };
  1184. _signalTowerDevice = DEVICE.GetDevice<FurnaceSignalTower>($"{ModuleName.System}.{ModuleName.SignalTower}");
  1185. _trigTHPowerEN = DEVICE.GetDevice<IoTrigger>($"PM1.TrigTHPowerEN");
  1186. _trigHECPowerONLamp = DEVICE.GetDevice<IoTrigger>($"{Module}.TrigHECPowerONLamp");
  1187. _inCommandLst = new List<IoAlarmSignal>()
  1188. {
  1189. //SensorHECPowerONSW,
  1190. // SensorTHBreakOK,
  1191. };
  1192. //SensorLidClosed.OnSignalChanged += SensorLidClosed_OnSignalChanged;
  1193. _n2PurgeSequenceAction = new Dictionary<string, Tuple<R_TRIG, List<Tuple<IoValve, bool>>>>()
  1194. {
  1195. {"N2PurgeAIRTo20PPM",Tuple.Create(new R_TRIG(),
  1196. new List<Tuple<IoValve, bool>>()
  1197. {
  1198. Tuple.Create(ValveAV56,true),
  1199. Tuple.Create(ValveAV57,true),
  1200. Tuple.Create(ValveAV65,false), //AV65
  1201. Tuple.Create(ValveAV66,false),
  1202. Tuple.Create(ValveLADamper,true), //AV227
  1203. Tuple.Create(ValveAV58,false),
  1204. Tuple.Create(ValveAV59,false),
  1205. Tuple.Create(ValveFIMS1N2Purge,false), //AV63
  1206. Tuple.Create(ValveFIMS2N2Purge,false), //AV64
  1207. Tuple.Create(ValveSV61,false),
  1208. Tuple.Create(ValveSV62,false),
  1209. Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,false), //AV201
  1210. })
  1211. },
  1212. {"N2PurgeUnder20PPM",Tuple.Create(new R_TRIG(),
  1213. new List<Tuple<IoValve, bool>>()
  1214. {
  1215. Tuple.Create(ValveAV56,true),
  1216. Tuple.Create(ValveAV57,false),
  1217. Tuple.Create(ValveAV65,false), //AV65
  1218. Tuple.Create(ValveAV66,false),
  1219. Tuple.Create(ValveLADamper,true), //AV227
  1220. Tuple.Create(ValveAV58,false),
  1221. Tuple.Create(ValveAV59,false),
  1222. Tuple.Create(ValveFIMS1N2Purge,false), //AV63
  1223. Tuple.Create(ValveFIMS2N2Purge,false), //AV64
  1224. Tuple.Create(ValveSV61,false),
  1225. Tuple.Create(ValveSV62,false),
  1226. Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,false), //AV201
  1227. })
  1228. },
  1229. {"AIR",Tuple.Create(new R_TRIG(),
  1230. new List<Tuple<IoValve, bool>>()
  1231. {
  1232. Tuple.Create(ValveAV56,false),
  1233. Tuple.Create(ValveAV57,false),
  1234. Tuple.Create(ValveAV65,true), //AV65
  1235. Tuple.Create(ValveAV66,true),
  1236. Tuple.Create(ValveLADamper,true), //AV227
  1237. Tuple.Create(ValveAV58,false),
  1238. Tuple.Create(ValveAV59,false),
  1239. Tuple.Create(ValveFIMS1N2Purge,false), //AV63
  1240. Tuple.Create(ValveFIMS2N2Purge,false), //AV64
  1241. Tuple.Create(ValveSV61,false),
  1242. Tuple.Create(ValveSV62,false),
  1243. Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,true), //AV201
  1244. })
  1245. },
  1246. {"DoorOpen",Tuple.Create(new R_TRIG(),
  1247. new List<Tuple<IoValve, bool>>()
  1248. {
  1249. Tuple.Create(ValveAV56,false),
  1250. Tuple.Create(ValveAV57,false),
  1251. Tuple.Create(ValveAV65,true), //AV65
  1252. Tuple.Create(ValveAV66,true),
  1253. Tuple.Create(ValveLADamper,false), //AV227
  1254. Tuple.Create(ValveAV58,false),
  1255. Tuple.Create(ValveAV59,false),
  1256. Tuple.Create(ValveFIMS1N2Purge,false), //AV63
  1257. Tuple.Create(ValveFIMS2N2Purge,false), //AV64
  1258. Tuple.Create(ValveSV61,false),
  1259. Tuple.Create(ValveSV62,false),
  1260. Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,true), //AV201
  1261. })
  1262. },
  1263. {"Foup1",Tuple.Create(new R_TRIG(),
  1264. new List<Tuple<IoValve, bool>>()
  1265. {
  1266. Tuple.Create(ValveAV56,true),
  1267. Tuple.Create(ValveAV57,false),
  1268. Tuple.Create(ValveAV65,false), //AV65
  1269. Tuple.Create(ValveAV66,false),
  1270. Tuple.Create(ValveLADamper,true), //AV227
  1271. Tuple.Create(ValveAV58,true),
  1272. Tuple.Create(ValveAV59,false),
  1273. Tuple.Create(ValveFIMS1N2Purge,true), //AV63
  1274. Tuple.Create(ValveFIMS2N2Purge,false), //AV64
  1275. Tuple.Create(ValveSV61,true),
  1276. Tuple.Create(ValveSV62,false),
  1277. Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,false), //AV201
  1278. })
  1279. },
  1280. {"Foup2",Tuple.Create(new R_TRIG(),
  1281. new List<Tuple<IoValve, bool>>()
  1282. {
  1283. Tuple.Create(ValveAV56,true),
  1284. Tuple.Create(ValveAV57,false),
  1285. Tuple.Create(ValveAV65,false), //AV65
  1286. Tuple.Create(ValveAV66,false),
  1287. Tuple.Create(ValveLADamper,true), //AV227
  1288. Tuple.Create(ValveAV58,false),
  1289. Tuple.Create(ValveAV59,true),
  1290. Tuple.Create(ValveFIMS1N2Purge,false), //AV63
  1291. Tuple.Create(ValveFIMS2N2Purge,true), //AV64
  1292. Tuple.Create(ValveSV61,true),
  1293. Tuple.Create(ValveSV62,true),
  1294. Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,false), //AV201
  1295. })
  1296. },
  1297. };
  1298. _n2PurgeSequenceStatus = new Dictionary<string, Func<bool>>()
  1299. {
  1300. {"N2PurgeAIRTo20PPM",()=> GetN2PurgeAIRTo20PPMStatus()},
  1301. {"N2PurgeUnder20PPM",()=> GetN2PurgeUnder20PPMStatus()},
  1302. {"AIR",()=> GetN2PurgeAIRStatus()},
  1303. {"DoorOpen",()=> GetN2PurgeDoorOpenStatus()},
  1304. {"Foup1",()=> GetN2PurgeFoup1Status()},
  1305. {"Foup2",()=> GetN2PurgeFoup2Status()},
  1306. };
  1307. TrigFurnaceUZoneHeatingEnable.SetTrigger(true, out _);
  1308. TrigFurnaceCUZoneHeatingEnable.SetTrigger(true, out _);
  1309. TrigFurnaceCZoneHeatingEnable.SetTrigger(true, out _);
  1310. TrigFurnaceCLZoneHeatingEnable.SetTrigger(true, out _);
  1311. TrigFurnaceLZoneHeatingEnable.SetTrigger(true, out _);
  1312. }
  1313. private void SensorLidClosed_OnSignalChanged(IoSensor sender, bool isTriggered)
  1314. {
  1315. if (!isTriggered)
  1316. {
  1317. EV.PostWarningLog(Module, $"Lid Open.");
  1318. }
  1319. }
  1320. private void PlcDisconnected()
  1321. {
  1322. CheckToPostMessage(MSG.Disconnected);
  1323. }
  1324. private void PlcConnected()
  1325. {
  1326. if (IsInit)
  1327. return;
  1328. if (FsmState.Equals((int)STATE.NotConnected))
  1329. CheckToPostMessage(MSG.Connected);
  1330. }
  1331. public void OnModuleDeviceAlarmStateChanged(string deviceId, AlarmEventItem alarmItem)
  1332. {
  1333. if (alarmItem.IsTriggered)
  1334. {
  1335. EventLevel level = alarmItem.Level;
  1336. string description = alarmItem.AdditionalDescription;
  1337. //description += $" {(!string.IsNullOrEmpty(_recipeRunningInfo.RecipeName) ? $"Recipe:{_recipeRunningInfo.RecipeName}," : "")}Step:{(IsProcessing ? _recipeRunningInfo.StepName : "Standby")}";
  1338. //alarmItem.AdditionalDescription += $" {(!string.IsNullOrEmpty(_recipeRunningInfo.RecipeName) ? $"Recipe:{_recipeRunningInfo.RecipeName}," : "")}Step:{(IsProcessing ? _recipeRunningInfo.StepName : "Standby")}";
  1339. alarmItem.AdditionalDescription = description;
  1340. alarmItem.OccuringTime = DateTime.Now;
  1341. _triggeredAlarmList.Add(alarmItem);
  1342. if (IsProcessing)
  1343. {
  1344. if (level == EventLevel.Alarm)
  1345. {
  1346. EV.PostAlarmLog(Module, alarmItem);
  1347. }
  1348. else
  1349. {
  1350. EV.PostWarningLog(Module, alarmItem);
  1351. }
  1352. }
  1353. else
  1354. {
  1355. if (level == EventLevel.Alarm)
  1356. {
  1357. try
  1358. {
  1359. //if (!(bool)Aitex.Core.RT.DataCenter.DATA.Poll($"{alarmItem.EventEnum}.ignoreSaveDB")) {
  1360. // EV.PostAlarmLog(Module, alarmItem);
  1361. //}
  1362. }
  1363. catch (Exception ex)
  1364. {
  1365. EV.WriteEvent(ex.Message.ToString());
  1366. }
  1367. }
  1368. else
  1369. {
  1370. EV.PostWarningLog(Module, alarmItem);
  1371. }
  1372. }
  1373. }
  1374. else
  1375. {
  1376. }
  1377. }
  1378. public override bool CheckAcked(int entityTaskToken)
  1379. {
  1380. return true;
  1381. }
  1382. #region pump device operation
  1383. public override bool TurnOnPump(out string reason)
  1384. {
  1385. reason = string.Empty;
  1386. return true /*MainPump.SetPump(out reason, 0, true)*/;
  1387. }
  1388. public override bool CheckPumpIsOn()
  1389. {
  1390. return true/*MainPump.IsRunning*/;
  1391. }
  1392. #endregion
  1393. public bool CheckIsConnected()
  1394. {
  1395. return true;
  1396. }
  1397. public bool CheckHasAlarm()
  1398. {
  1399. foreach (var device in _allModuleDevice)
  1400. {
  1401. if (device != null && device.HasAlarm)
  1402. return true;
  1403. }
  1404. return false;
  1405. }
  1406. public override bool CheckSlitValveClose()
  1407. {
  1408. return true;
  1409. }
  1410. public override bool CheckLidClosed()
  1411. {
  1412. return true;
  1413. }
  1414. public override bool CheckPrepareProcess()
  1415. {
  1416. return _isPrepareProcess;
  1417. }
  1418. public override bool CheckProcessFinished()
  1419. {
  1420. bool isFinished = true;
  1421. var wafers = WaferManager.Instance.GetWafers(_module);
  1422. if (wafers == null)
  1423. {
  1424. return false;
  1425. }
  1426. foreach (var wafer in wafers)
  1427. {
  1428. if (wafer.IsEmpty)
  1429. continue;
  1430. if (wafer.ProcessState != EnumWaferProcessStatus.Completed && wafer.ProcessState != EnumWaferProcessStatus.Failed)
  1431. isFinished = false;
  1432. }
  1433. return isFinished;
  1434. }
  1435. public override bool CheckStandbyCondition()
  1436. {
  1437. return true;
  1438. return CheckExternalSensorCondition() && CheckTempStabilizeCondition() &&
  1439. CheckReachTempCondition() && CheckPressureStablilizeCondition() &&
  1440. CheckReachPressureCondition() && CheckFinishAutoProfileCondition();
  1441. }
  1442. #region conditionCheck
  1443. private bool SeBypassStandbyFactor(out string reason, int time, object[] param)
  1444. {
  1445. reason = string.Empty;
  1446. if (param != null && param.Length > 0)
  1447. {
  1448. var condition = param[0].ToString();
  1449. if (_conditionCheckDic.ContainsKey(condition))
  1450. {
  1451. _conditionCheckDic[condition] = true;
  1452. }
  1453. }
  1454. return true;
  1455. }
  1456. private bool SetConditionCheck(out string reason, int time, object[] param)
  1457. {
  1458. reason = string.Empty;
  1459. _conditionCheckDic.Clear();
  1460. _conditionCheckItemDic.Clear();
  1461. _isExternalSensorConditionBypass = false;
  1462. _isTempStabilizeConditionBypass = false;
  1463. _isPressureStabilizeConditionBypass = false;
  1464. _isReachTempConditionBypass = false;
  1465. _isReachPressureConditionBypass = false;
  1466. _isFinishAutoProfileConditionBypass = false;
  1467. if (param.Length > 0)
  1468. {
  1469. var conditions = param[0].ToString().Split(';').ToList();
  1470. foreach (var condition in conditions)
  1471. {
  1472. var arry = condition.Split(':');
  1473. if (arry.Length > 1)
  1474. {
  1475. switch (arry[0])
  1476. {
  1477. case "ExternalSensor":
  1478. SetExternalSensorCondition("Wait For External Sensor", arry[1]);
  1479. break;
  1480. case "TempStabilize":
  1481. SetTempStabilizeCondition("Wait For Temperature Stablilize", arry[1]);
  1482. break;
  1483. case "ReachTemp":
  1484. SetReachTempCondition("Wait For Reach Temperature", arry[1]);
  1485. break;
  1486. case "ReachPressure":
  1487. SetReachPressureCondition("Wait For Reach Pressure", arry[1]);
  1488. break;
  1489. case "PressureStabilize":
  1490. SetPressureStabilizeCondition("Wait For Pressure Stablilize", arry[1]);
  1491. break;
  1492. case "FinishAutoProfile":
  1493. SetFinishAutoProfileCondition("Wait For Finish Auto Profile", arry[1]);
  1494. break;
  1495. case "None":
  1496. case "none":
  1497. break;
  1498. }
  1499. }
  1500. }
  1501. }
  1502. return true;
  1503. }
  1504. private void SetExternalSensorCondition(string title, string para)
  1505. {
  1506. var conditions = para.ToLower().Split(',').ToList();
  1507. if (conditions.Any(x => !x.Contains("none")))
  1508. {
  1509. _conditionCheckDic.Add(title, false);
  1510. _conditionCheckItemDic.Add(title, para);
  1511. }
  1512. }
  1513. private void SetTempStabilizeCondition(string title, string para)
  1514. {
  1515. if (para.ToLower() != "none")
  1516. {
  1517. _conditionCheckDic.Add(title, false);
  1518. _conditionCheckItemDic.Add(title, para);
  1519. foreach (var heater in _heaters)
  1520. {
  1521. //heater.SetStableParameters(para);
  1522. }
  1523. }
  1524. }
  1525. private void SetReachTempCondition(string title, string para)
  1526. {
  1527. if (para.ToLower() != "none")
  1528. {
  1529. _conditionCheckDic.Add(title, false);
  1530. _conditionCheckItemDic.Add(title, para);
  1531. }
  1532. }
  1533. private void SetReachPressureCondition(string title, string para)
  1534. {
  1535. if (para.ToLower() != "none")
  1536. {
  1537. _conditionCheckDic.Add(title, false);
  1538. _conditionCheckItemDic.Add(title, para);
  1539. }
  1540. }
  1541. private void SetFinishAutoProfileCondition(string title, string para)
  1542. {
  1543. if (para.ToLower() != "none")
  1544. {
  1545. _conditionCheckDic.Add(title, false);
  1546. _conditionCheckItemDic.Add(title, para);
  1547. }
  1548. }
  1549. private void SetPressureStabilizeCondition(string title, string para)
  1550. {
  1551. if (para.ToLower() != "none")
  1552. {
  1553. _conditionCheckDic.Add(title, false);
  1554. _conditionCheckItemDic.Add(title, para);
  1555. //APC.SetStableParameters(para);
  1556. }
  1557. }
  1558. public bool CheckExternalSensorCondition()
  1559. {
  1560. var key = "Wait For External Sensor";
  1561. if (_conditionCheckDic.ContainsKey(key))
  1562. {
  1563. if (_conditionCheckItemDic.ContainsKey(key))
  1564. {
  1565. var items = _conditionCheckItemDic[key].Split(',').ToList();
  1566. bool isMatch = true;
  1567. foreach (var item in items)
  1568. {
  1569. var sensorAndResult = item.Split('.');
  1570. if (sensorAndResult.Length > 1 && sensorAndResult[1].ToLower() != "none")
  1571. {
  1572. var sensorDevice = DEVICE.GetDevice<IoSensor>($"{Module}.{sensorAndResult[0]}");
  1573. if (sensorDevice == null)
  1574. sensorDevice = DEVICE.GetDevice<IoSensor>($"System.{sensorAndResult[0]}");
  1575. if (sensorDevice != null)
  1576. {
  1577. isMatch = sensorAndResult[1].ToLower() == "on" ? sensorDevice.Value : !sensorDevice.Value;
  1578. }
  1579. if (!isMatch)
  1580. break;
  1581. }
  1582. }
  1583. _conditionCheckDic[key] = isMatch;
  1584. }
  1585. if (_isExternalSensorConditionBypass)
  1586. _conditionCheckDic[key] = true;
  1587. return _conditionCheckDic[key];
  1588. }
  1589. else
  1590. {
  1591. return true;
  1592. }
  1593. }
  1594. public bool CheckTempStabilizeCondition()
  1595. {
  1596. var key = "Wait For Temperature Stablilize";
  1597. return true;
  1598. }
  1599. public bool CheckReachTempCondition()
  1600. {
  1601. var key = "Wait For Reach Temperature";
  1602. return true;
  1603. }
  1604. public bool CheckPressureStablilizeCondition()
  1605. {
  1606. var key = "Wait For Pressure Stablilize";
  1607. if (_conditionCheckDic.ContainsKey(key))
  1608. {
  1609. //_conditionCheckDic[key] = APC.IsStable;
  1610. if (_isPressureStabilizeConditionBypass)
  1611. _conditionCheckDic[key] = true;
  1612. return _conditionCheckDic[key];
  1613. }
  1614. else
  1615. {
  1616. return true;
  1617. }
  1618. }
  1619. public bool CheckReachPressureCondition()
  1620. {
  1621. var key = "Wait For Reach Pressure";
  1622. if (_conditionCheckDic.ContainsKey(key))
  1623. {
  1624. if (_conditionCheckItemDic.ContainsKey(key))
  1625. {
  1626. var itemArry = _conditionCheckItemDic[key].Split(',');
  1627. if (itemArry != null && itemArry.Length > 1)
  1628. {
  1629. float.TryParse(itemArry[1], out float pressure);
  1630. if (itemArry[0] == "WaitMoreThan")
  1631. {
  1632. //_conditionCheckDic[key] = APC.PressureFeedback > pressure;
  1633. }
  1634. else if (itemArry[0] == "WaitLessThan")
  1635. {
  1636. //_conditionCheckDic[key] = APC.PressureFeedback < pressure;
  1637. }
  1638. }
  1639. }
  1640. if (_isReachPressureConditionBypass)
  1641. _conditionCheckDic[key] = true;
  1642. return _conditionCheckDic[key];
  1643. }
  1644. else
  1645. {
  1646. return true;
  1647. }
  1648. }
  1649. public bool CheckFinishAutoProfileCondition()
  1650. {
  1651. var key = "Wait For Finish Auto Profile";
  1652. if (_conditionCheckDic.ContainsKey(key))
  1653. {
  1654. if (_isFinishAutoProfileConditionBypass)
  1655. _conditionCheckDic[key] = true;
  1656. return _conditionCheckDic[key];
  1657. }
  1658. else
  1659. {
  1660. return true;
  1661. }
  1662. }
  1663. #endregion
  1664. private bool SetBoatZAxisMotion(out string reason, int time, object[] param)
  1665. {
  1666. reason = string.Empty;
  1667. //if (AutoDoor.UpDownStatus != ASUpDownStatus.Down || AutoDoor.OpenCloseStatus != ASOpenCloseStatus.Open)
  1668. //{
  1669. // (Singleton<EquipmentManager>.Instance.Modules[ModuleName.Boat] as BoatModule).BoatZAxisMoveFailedForInterlock.Set();
  1670. // return false;
  1671. //}
  1672. return true;
  1673. //return BoatDevice.ZAxisMoveTo(param[0].ToString(), out reason);
  1674. }
  1675. private bool SetBoatRAxisMotion(out string reason, int time, object[] param)
  1676. {
  1677. reason = string.Empty;
  1678. return true;
  1679. }
  1680. private bool SetAutoShutterUp(out string reason, int time, object[] param)
  1681. {
  1682. reason = string.Empty;
  1683. bool.TryParse(param[0].ToString(), out bool isUp);
  1684. //if (BoatDevice.BoatCurrentPosition != BoatPosition.HomePosition && BoatDevice.BoatCurrentPosition != BoatPosition.ProcessPosition)
  1685. //{
  1686. // AutoShutter.AutoShutterMoveFailedForInterlock.Set();
  1687. // return false;
  1688. //}
  1689. //return AutoDoor.SetUp(isUp, out reason);
  1690. return true;
  1691. }
  1692. private bool SetAutoShutterOpen(out string reason, int time, object[] param)
  1693. {
  1694. reason = string.Empty;
  1695. bool.TryParse(param[0].ToString(), out bool isOpen);
  1696. var ZAxisDevice = DEVICE.GetDevice<IoFurnaceMotor>($"PM1.BoatElevatorServo");
  1697. if (!ZAxisDevice.CheckServoAtPosition(BoatPosition.HomePosition.ToString()))
  1698. {
  1699. ShutterMoveFailedForInterlock.Set();
  1700. return true;
  1701. }
  1702. return Shutter.SetOpen(isOpen, out reason);
  1703. }
  1704. private bool SetAutoShutterRotateOpen(out string reason, int time, object[] param)
  1705. {
  1706. reason = string.Empty;
  1707. bool.TryParse(param[0].ToString(), out bool isOpen);
  1708. //if (BoatDevice.BoatCurrentPosition != BoatPosition.HomePosition && BoatDevice.BoatCurrentPosition != BoatPosition.ProcessPosition)
  1709. //{
  1710. // AutoShutter.AutoShutterMoveFailedForInterlock.Set();
  1711. // return false;
  1712. //}
  1713. //return AutoDoor.SetShutterRotateOpen(isOpen, out reason);
  1714. return true;
  1715. }
  1716. private bool SetCommand(out string reason, int time, object[] param)
  1717. {
  1718. reason = string.Empty;
  1719. var command = param[0].ToString();
  1720. switch (command)
  1721. {
  1722. case "Hold":
  1723. _processRoutine.PauseRecipe();
  1724. break;
  1725. case "Hold + Buzzer":
  1726. _processRoutine.PauseRecipe();
  1727. BuzzerOn();
  1728. break;
  1729. case "Buzzer":
  1730. BuzzerOn();
  1731. break;
  1732. case "Leak Check1":
  1733. case "Leak Check2":
  1734. case "Leak Check3":
  1735. int.TryParse(command.Replace("Leak Check", ""), out int index);
  1736. SetLeakCheckTableIndex(index);
  1737. break;
  1738. }
  1739. return true;
  1740. }
  1741. public bool SetSensorRecipeOK(out string reason, int time, object[] param)
  1742. {
  1743. reason = string.Empty;
  1744. SensorRecipeOK.Value = true;
  1745. //SensorPROCManualOK.Value = false;
  1746. return true;
  1747. }
  1748. public bool SetSensorPROCManualOK(out string reason, int time, object[] param)
  1749. {
  1750. reason = string.Empty;
  1751. SensorRecipeOK.Value = false;
  1752. //SensorPROCManualOK.Value = true;
  1753. return true;
  1754. }
  1755. public bool SetEditRecipeName(out string reason, int time, object[] param)
  1756. {
  1757. reason = string.Empty;
  1758. EditRecipeName = param[0].ToString();
  1759. return true;
  1760. }
  1761. public bool SetEditRecipeStepName(out string reason, int time, object[] param)
  1762. {
  1763. reason = string.Empty;
  1764. EditRecipeStepName = param[0].ToString();
  1765. return true;
  1766. }
  1767. private void BuzzerOn()
  1768. {
  1769. _signalTowerDevice.IsAutoSetLight = false;
  1770. _signalTowerDevice.SetLight(LightType.Buzzer1, TowerLightStatus.On);
  1771. }
  1772. public bool CheckBoatState()
  1773. {
  1774. return (Singleton<EquipmentManager>.Instance.Modules[ModuleName.Boat] as BoatModule).IsReady;
  1775. }
  1776. //#region Temperature/Pressure Tolerance
  1777. //#region Heater Tolerance Alarm
  1778. //public bool CheckHeaterBottomToleranceAlaram()
  1779. //{
  1780. // return Heater2.DeviceData.IsLspModeFeedBack ? Heater2.CheckToleranceAlarm() : Heater1.CheckToleranceAlarm();
  1781. //}
  1782. //public bool CheckHeaterCenterBottomToleranceAlaram()
  1783. //{
  1784. // return Heater4.DeviceData.IsLspModeFeedBack ? Heater4.CheckToleranceAlarm() : Heater3.CheckToleranceAlarm();
  1785. //}
  1786. //public bool CheckHeaterCenterToleranceAlaram()
  1787. //{
  1788. // return Heater6.DeviceData.IsLspModeFeedBack ? Heater6.CheckToleranceAlarm() : Heater5.CheckToleranceAlarm();
  1789. //}
  1790. //public bool CheckHeaterCenterTopToleranceAlaram()
  1791. //{
  1792. // return Heater8.DeviceData.IsLspModeFeedBack ? Heater8.CheckToleranceAlarm() : Heater7.CheckToleranceAlarm();
  1793. //}
  1794. //public bool CheckHeaterTopToleranceAlaram()
  1795. //{
  1796. // return Heater10.DeviceData.IsLspModeFeedBack ? Heater10.CheckToleranceAlarm() : Heater9.CheckToleranceAlarm();
  1797. //}
  1798. //public void SetHeaterBottomToleranceAlaram()
  1799. //{
  1800. // if (Heater2.DeviceData.IsLspModeFeedBack)
  1801. // Heater2.SetToleranceAlarm();
  1802. // else
  1803. // Heater1.SetToleranceAlarm();
  1804. //}
  1805. //public void SetHeaterCenterBottomToleranceAlaram()
  1806. //{
  1807. // if (Heater4.DeviceData.IsLspModeFeedBack)
  1808. // Heater4.SetToleranceAlarm();
  1809. // else
  1810. // Heater3.SetToleranceAlarm();
  1811. //}
  1812. //public void SetHeaterCenterToleranceAlaram()
  1813. //{
  1814. // if (Heater6.DeviceData.IsLspModeFeedBack)
  1815. // Heater6.SetToleranceAlarm();
  1816. // else
  1817. // Heater5.SetToleranceAlarm();
  1818. //}
  1819. //public void SetHeaterCenterTopToleranceAlaram()
  1820. //{
  1821. // if (Heater8.DeviceData.IsLspModeFeedBack)
  1822. // Heater8.SetToleranceAlarm();
  1823. // else
  1824. // Heater7.SetToleranceAlarm();
  1825. //}
  1826. //public void SetHeaterTopToleranceAlaram()
  1827. //{
  1828. // if (Heater10.DeviceData.IsLspModeFeedBack)
  1829. // Heater10.SetToleranceAlarm();
  1830. // else
  1831. // Heater9.SetToleranceAlarm();
  1832. //}
  1833. //#endregion
  1834. //#region Heater Tolerance Warning
  1835. //public bool CheckHeaterBottomToleranceWarning()
  1836. //{
  1837. // return Heater2.DeviceData.IsLspModeFeedBack ? Heater2.CheckToleranceWarning() : Heater1.CheckToleranceWarning();
  1838. //}
  1839. //public bool CheckHeaterCenterBottomToleranceWarning()
  1840. //{
  1841. // return Heater4.DeviceData.IsLspModeFeedBack ? Heater4.CheckToleranceWarning() : Heater3.CheckToleranceWarning();
  1842. //}
  1843. //public bool CheckHeaterCenterToleranceWarning()
  1844. //{
  1845. // return Heater6.DeviceData.IsLspModeFeedBack ? Heater6.CheckToleranceWarning() : Heater5.CheckToleranceWarning();
  1846. //}
  1847. //public bool CheckHeaterCenterTopToleranceWarning()
  1848. //{
  1849. // return Heater8.DeviceData.IsLspModeFeedBack ? Heater8.CheckToleranceWarning() : Heater7.CheckToleranceWarning();
  1850. //}
  1851. //public bool CheckHeaterTopToleranceWarning()
  1852. //{
  1853. // return Heater10.DeviceData.IsLspModeFeedBack ? Heater10.CheckToleranceWarning() : Heater9.CheckToleranceWarning();
  1854. //}
  1855. //public void SetHeaterBottomToleranceWarning()
  1856. //{
  1857. // if (Heater2.DeviceData.IsLspModeFeedBack)
  1858. // Heater2.SetToleranceWarning();
  1859. // else
  1860. // Heater1.SetToleranceWarning();
  1861. //}
  1862. //public void SetHeaterCenterBottomToleranceWarning()
  1863. //{
  1864. // if (Heater4.DeviceData.IsLspModeFeedBack)
  1865. // Heater4.SetToleranceWarning();
  1866. // else
  1867. // Heater3.SetToleranceWarning();
  1868. //}
  1869. //public void SetHeaterCenterToleranceWarning()
  1870. //{
  1871. // if (Heater6.DeviceData.IsLspModeFeedBack)
  1872. // Heater6.SetToleranceWarning();
  1873. // else
  1874. // Heater5.SetToleranceWarning();
  1875. //}
  1876. //public void SetHeaterCenterTopToleranceWarning()
  1877. //{
  1878. // if (Heater8.DeviceData.IsLspModeFeedBack)
  1879. // Heater8.SetToleranceWarning();
  1880. // else
  1881. // Heater7.SetToleranceWarning();
  1882. //}
  1883. //public void SetHeaterTopToleranceWarning()
  1884. //{
  1885. // if (Heater10.DeviceData.IsLspModeFeedBack)
  1886. // Heater10.SetToleranceWarning();
  1887. // else
  1888. // Heater9.SetToleranceWarning();
  1889. //}
  1890. //#endregion
  1891. //#region Pressure Tolerance Alarm
  1892. ////public bool CheckPressureToleranceAlaram()
  1893. ////{
  1894. //// return APC.CheckToleranceAlarm();
  1895. ////}
  1896. ////public void SetPressureToleranceAlaram()
  1897. ////{
  1898. //// APC.SetToleranceAlarm();
  1899. ////}
  1900. //#endregion
  1901. //#region Pressure Tolerance Warning
  1902. ////public bool CheckPressureToleranceWarning()
  1903. ////{
  1904. //// return APC.CheckToleranceWarning();
  1905. ////}
  1906. ////public void SetPressureToleranceWarning()
  1907. ////{
  1908. //// APC.SetToleranceWarning();
  1909. ////}
  1910. //#endregion
  1911. //#region Reset Tolerance
  1912. //public void ResetToleranceAlarm()
  1913. //{
  1914. // foreach (var heater in _heaters)
  1915. // {
  1916. // heater.Reset();
  1917. // }
  1918. // foreach (var key in _gasMFCs.Keys)
  1919. // {
  1920. // _gasMFCs[key].Reset();
  1921. // }
  1922. // //APC.Reset();
  1923. //}
  1924. //public void ResetToleranceAlarmChecker()
  1925. //{
  1926. // foreach (var heater in _heaters)
  1927. // {
  1928. // heater.ResetAlarmChecker();
  1929. // heater.ResetWarningChecker();
  1930. // }
  1931. // foreach (var key in _gasMFCs.Keys)
  1932. // {
  1933. // _gasMFCs[key].ResetAlarmChecker();
  1934. // _gasMFCs[key].ResetWarningChecker();
  1935. // }
  1936. // //APC.ResetAlarmChecker();
  1937. // //APC.ResetWarningChecker();
  1938. //}
  1939. //#endregion
  1940. //#endregion
  1941. private bool SetN2PurgeMode(out string reason, int time, object[] param)
  1942. {
  1943. reason = string.Empty;
  1944. var mode = param[0].ToString();
  1945. switch (mode)
  1946. {
  1947. case "Auto":
  1948. {
  1949. _N2PurgeMode = N2PurgeMode.Auto;
  1950. break;
  1951. }
  1952. case "Manual_N2Purge":
  1953. {
  1954. _N2PurgeMode = N2PurgeMode.Manual_N2Purge;
  1955. break;
  1956. }
  1957. case "Manual_ATM":
  1958. {
  1959. _N2PurgeMode = N2PurgeMode.Manual_ATM;
  1960. break;
  1961. }
  1962. case "Manual_Maintenance":
  1963. {
  1964. _N2PurgeMode = N2PurgeMode.Manual_Maintenance;
  1965. break;
  1966. }
  1967. case "Auto_Check":
  1968. {
  1969. _N2PurgeMode = N2PurgeMode.Auto_Check;
  1970. break;
  1971. }
  1972. }
  1973. return true;
  1974. }
  1975. private void SetHeaterControlParameters(object[] param)
  1976. {
  1977. //Mode参数;Correct Table;PID Table
  1978. //"Heater;Parameter\\TempCorrection\\tempCorrect,2,Name2;Parameter\\TempPID\\tempPID,3,Name3"
  1979. if (param == null || param.Length == 0)
  1980. {
  1981. EV.PostWarningLog(Module, $"Invalid heater parameter");
  1982. return;
  1983. }
  1984. var paras = param[0].ToString().Split(';');
  1985. if (paras == null || paras.Length < 3)
  1986. {
  1987. EV.PostWarningLog(Module, $"Invalid heater parameter");
  1988. return;
  1989. }
  1990. var controlMode = paras[0];
  1991. var correct = paras[1];
  1992. var pid = paras[2];
  1993. HeaterU.SetControlMode(controlMode);
  1994. HeaterCU.SetControlMode(controlMode);
  1995. HeaterC.SetControlMode(controlMode);
  1996. HeaterCL.SetControlMode(controlMode);
  1997. HeaterL.SetControlMode(controlMode);
  1998. SetHeaterCorrectParameters(correct);
  1999. SetHeaterPIDParameters(pid);
  2000. }
  2001. private void SetHeaterCorrectParameters(string correct)
  2002. {
  2003. HeaterU.SetCorrectParameters(correct);
  2004. HeaterCU.SetCorrectParameters(correct);
  2005. HeaterC.SetCorrectParameters(correct);
  2006. HeaterCL.SetCorrectParameters(correct);
  2007. HeaterL.SetCorrectParameters(correct);
  2008. }
  2009. private void SetHeaterPIDParameters(string pid)
  2010. {
  2011. HeaterU.SetPIDParameters(pid);
  2012. HeaterCU.SetPIDParameters(pid);
  2013. HeaterC.SetPIDParameters(pid);
  2014. HeaterCL.SetPIDParameters(pid);
  2015. HeaterL.SetPIDParameters(pid);
  2016. }
  2017. private bool SetCEXHEnable(object[] param)
  2018. {
  2019. if (param != null && param.Length > 0)
  2020. {
  2021. bool.TryParse(param[0].ToString(), out bool isEnable);
  2022. _fFUs.ForEach(a => a.SetSwitch(isEnable));
  2023. }
  2024. return true;
  2025. }
  2026. private bool SetHTR1Enable(object[] param)
  2027. {
  2028. if (param != null && param.Length > 0)
  2029. {
  2030. bool.TryParse(param[0].ToString(), out bool isEnable);
  2031. SC.SetItemValue($"PM1.IsHTR1Enable", isEnable);
  2032. if (SC.GetStringValue("System.SetUp.ToolType") == "ELK")
  2033. {
  2034. TrigGasLine1PowerOn?.SetTrigger(isEnable, out _);
  2035. TrigGasLine2PowerOn?.SetTrigger(isEnable, out _);
  2036. TrigGasLine3PowerOn?.SetTrigger(isEnable, out _);
  2037. }
  2038. TrigHeaterAllEnable?.SetTrigger(isEnable, out _);
  2039. }
  2040. return true;
  2041. }
  2042. private bool SetHTR2Enable(object[] param)
  2043. {
  2044. if (param != null && param.Length > 0)
  2045. {
  2046. bool.TryParse(param[0].ToString(), out bool isEnable);
  2047. if (SC.GetStringValue("System.SetUp.ToolType") == "ELK")
  2048. {
  2049. TrigGasLine4PowerOn?.SetTrigger(isEnable, out _);
  2050. TrigGasLine6PowerOn?.SetTrigger(isEnable, out _);
  2051. TrigGasLine7PowerOn?.SetTrigger(isEnable, out _);
  2052. }
  2053. SC.SetItemValue($"PM1.IsHTR2Enable", isEnable);
  2054. }
  2055. return true;
  2056. }
  2057. private bool SetHTR3Enable(object[] param)
  2058. {
  2059. if (param != null && param.Length > 0)
  2060. {
  2061. bool.TryParse(param[0].ToString(), out bool isEnable);
  2062. SC.SetItemValue($"PM1.IsHTR3Enable", isEnable);
  2063. }
  2064. return true;
  2065. }
  2066. }
  2067. }