PMModuleDevice.cs 88 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139
  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. #endregion
  380. public AITSensorData SensorRecipeOK { get; set; }
  381. public AITSensorData SensorPROCManualOK { get; set; }
  382. [Tag("SensorVG11Status")]
  383. public IoSensor SensorVG11Status { get; set; }
  384. [Tag("SensorVG12Status")]
  385. public IoSensor SensorVG12Status { get; set; }
  386. [Tag("SensorVG13Status")]
  387. public IoSensor SensorVG13Status { get; set; }
  388. [Tag("SensorVACDEPOOK")]
  389. public IoSensor SensorVACDEPOOK { get; set; }
  390. [Tag("SensorVACHFOK")]
  391. public IoSensor SensorVACHFOK { get; set; }
  392. [Tag("SensorVACF2OK")]
  393. public IoSensor SensorVACF2OK { get; set; }
  394. //[Tag("SensorNH3PressureOK")]
  395. //public IoAlarmSignal SignalLeak { get; set; }
  396. //[Tag("SignalExhaustAlarm")]
  397. //public IoAlarmSignal SignalExhaustAlarm { get; set; }
  398. //[Tag("SignalLeakBroken")]
  399. //public IoAlarmSignal SignalLeakBroken { get; set; }
  400. //[Tag("EmoAlarm")]
  401. //public IoAlarmSignal EmoAlarm { get; set; }
  402. // -------------------------------------------------------------------------
  403. //[Tag("ChamberLiftPin")]
  404. //public IoLift2 ChamberLiftPin { get; set; }
  405. // -------------------------------------------------------------------------
  406. //[Tag("ChamberDoor")]
  407. //public IoDoor2 ChamberDoor { get; set; }
  408. //[Tag("MFM61")]
  409. //public IoMFM MFM61 { get; set; }
  410. //[Tag("MfmNB")]
  411. //public IoMFM MfmNB { get; set; }
  412. [Tag("ValveAV1")]
  413. public IoValve ValveAV1 { get; set; }
  414. [Tag("ValveAV2")]
  415. public IoValve ValveAV2 { get; set; }
  416. [Tag("ValveAV3")]
  417. public IoValve ValveAV3 { get; set; }
  418. [Tag("ValveAV4")]
  419. public IoValve ValveAV4 { get; set; }
  420. [Tag("ValveAV5")]
  421. public IoValve ValveAV5 { get; set; }
  422. [Tag("ValveAV6")]
  423. public IoValve ValveAV6 { get; set; }
  424. [Tag("ValveAV7")]
  425. public IoValve ValveAV7 { get; set; }
  426. [Tag("ValveAV8")]
  427. public IoValve ValveAV8 { get; set; }
  428. [Tag("ValveAV9")]
  429. public IoValve ValveAV9 { get; set; }
  430. [Tag("ValveAV10")]
  431. public IoValve ValveAV10 { get; set; }
  432. [Tag("ValveAV11")]
  433. public IoValve ValveAV11 { get; set; }
  434. [Tag("ValveAV12")]
  435. public IoValve ValveAV12 { get; set; }
  436. [Tag("ValveAV13")]
  437. public IoValve ValveAV13 { get; set; }
  438. [Tag("ValveAV14")]
  439. public IoValve ValveAV14 { get; set; }
  440. [Tag("ValveAV15")]
  441. public IoValve ValveAV15 { get; set; }
  442. [Tag("ValveAV16")]
  443. public IoValve ValveAV16 { get; set; }
  444. [Tag("ValveAV17")]
  445. public IoValve ValveAV17 { get; set; }
  446. [Tag("ValveAV18")]
  447. public IoValve ValveAV18 { get; set; }
  448. [Tag("ValveAV19")]
  449. public IoValve ValveAV19 { get; set; }
  450. [Tag("ValveAV20")]
  451. public IoValve ValveAV20 { get; set; }
  452. [Tag("ValveAV21")]
  453. public IoValve ValveAV21 { get; set; }
  454. [Tag("ValveAV22")]
  455. public IoValve ValveAV22 { get; set; }
  456. [Tag("ValveAV23")]
  457. public IoValve ValveAV23 { get; set; }
  458. [Tag("ValveAV24")]
  459. public IoValve ValveAV24 { get; set; }
  460. [Tag("ValveAV25")]
  461. public IoValve ValveAV25 { get; set; }
  462. [Tag("ValveAV26")]
  463. public IoValve ValveAV26 { get; set; }
  464. [Tag("ValveAV27")]
  465. public IoValve ValveAV27 { get; set; }
  466. [Tag("ValveAV28")]
  467. public IoValve ValveAV28 { get; set; }
  468. [Tag("ValveAV29")]
  469. public IoValve ValveAV29 { get; set; }
  470. [Tag("ValveAV30")]
  471. public IoValve ValveAV30 { get; set; }
  472. [Tag("ValveAV31")]
  473. public IoValve ValveAV31 { get; set; }
  474. [Tag("ValveAV32")]
  475. public IoValve ValveAV32 { get; set; }
  476. [Tag("ValveAV33")]
  477. public IoValve ValveAV33 { get; set; }
  478. [Tag("ValveAV34")]
  479. public IoValve ValveAV34 { get; set; }
  480. [Tag("ValveAV35")]
  481. public IoValve ValveAV35 { get; set; }
  482. [Tag("ValveAV36")]
  483. public IoValve ValveAV36 { get; set; }
  484. [Tag("ValveAV37")]
  485. public IoValve ValveAV37 { get; set; }
  486. [Tag("ValveAV38")]
  487. public IoValve ValveAV38 { get; set; }
  488. [Tag("ValveAV39")]
  489. public IoValve ValveAV39 { get; set; }
  490. [Tag("ValveAV40")]
  491. public IoValve ValveAV40 { get; set; }
  492. [Tag("ValveAV41")]
  493. public IoValve ValveAV41 { get; set; }
  494. [Tag("ValveAV42")]
  495. public IoValve ValveAV42 { get; set; }
  496. [Tag("ValveAV43")]
  497. public IoValve ValveAV43 { get; set; }
  498. [Tag("ValveAV44")]
  499. public IoValve ValveAV44 { get; set; }
  500. [Tag("ValveAV45")]
  501. public IoValve ValveAV45 { get; set; }
  502. [Tag("ValveAV46")]
  503. public IoValve ValveAV46 { get; set; }
  504. [Tag("ValveAV47")]
  505. public IoValve ValveAV47 { get; set; }
  506. [Tag("ValveAV48")]
  507. public IoValve ValveAV48 { get; set; }
  508. [Tag("ValveAV49")]
  509. public IoValve ValveAV49 { get; set; }
  510. [Tag("ValveAV50")]
  511. public IoValve ValveAV50 { get; set; }
  512. [Tag("ValveAV51")]
  513. public IoValve ValveAV51 { get; set; }
  514. [Tag("ValveAV52")]
  515. public IoValve ValveAV52 { get; set; }
  516. [Tag("ValveAV53")]
  517. public IoValve ValveAV53 { get; set; }
  518. [Tag("ValveAV54")]
  519. public IoValve ValveAV54 { get; set; }
  520. [Tag("ValveAV55")]
  521. public IoValve ValveAV55 { get; set; }
  522. [Tag("ValveAV56")]
  523. public IoValve ValveAV56 { get; set; }
  524. [Tag("ValveAV57")]
  525. public IoValve ValveAV57 { get; set; }
  526. [Tag("ValveAV58")]
  527. public IoValve ValveAV58 { get; set; }
  528. [Tag("ValveAV59")]
  529. public IoValve ValveAV59 { get; set; }
  530. [Tag("ValveAV60")]
  531. public IoValve ValveAV60 { get; set; }
  532. [Tag("ValveAV61")]
  533. public IoValve ValveAV61 { get; set; }
  534. [Tag("ValveAV62")]
  535. public IoValve ValveAV62 { get; set; }
  536. [Tag("ValveAV63")]
  537. public IoValve ValveAV63 { get; set; }
  538. [Tag("ValveAV64")]
  539. public IoValve ValveAV64 { get; set; }
  540. [Tag("ValveAV65")]
  541. public IoValve ValveAV65 { get; set; }
  542. [Tag("ValveAV202LADoor")]
  543. public IoValve ValveAV202LADoor { get; set; }
  544. [Tag("ValveAV66")]
  545. public IoValve ValveAV66 { get; set; }
  546. [Tag("ValveAV67")]
  547. public IoValve ValveAV67 { get; set; }
  548. [Tag("ValveAV68")]
  549. public IoValve ValveAV68 { get; set; }
  550. [Tag("ValveAV69")]
  551. public IoValve ValveAV69 { get; set; }
  552. [Tag("ValveAV70")]
  553. public IoValve ValveAV70 { get; set; }
  554. [Tag("ValveAV71")]
  555. public IoValve ValveAV71 { get; set; }
  556. [Tag("ValveAV72")]
  557. public IoValve ValveAV72 { get; set; }
  558. [Tag("ValveAV73")]
  559. public IoValve ValveAV73 { get; set; }
  560. [Tag("ValveAV74")]
  561. public IoValve ValveAV74 { get; set; }
  562. [Tag("ValveAV75")]
  563. public IoValve ValveAV75 { get; set; }
  564. [Tag("ValveAV76")]
  565. public IoValve ValveAV76 { get; set; }
  566. [Tag("ValveAV77")]
  567. public IoValve ValveAV77 { get; set; }
  568. [Tag("ValveAV78")]
  569. public IoValve ValveAV78 { get; set; }
  570. [Tag("ValveAV79")]
  571. public IoValve ValveAV79 { get; set; }
  572. [Tag("ValveAV80")]
  573. public IoValve ValveAV80 { get; set; }
  574. [Tag("ValveAV81")]
  575. public IoValve ValveAV81 { get; set; }
  576. [Tag("ValveAV82")]
  577. public IoValve ValveAV82 { get; set; }
  578. [Tag("ValveAV83")]
  579. public IoValve ValveAV83 { get; set; }
  580. [Tag("ValveAV84")]
  581. public IoValve ValveAV84 { get; set; }
  582. [Tag("ValveAV85")]
  583. public IoValve ValveAV85 { get; set; }
  584. [Tag("ValveAV86")]
  585. public IoValve ValveAV86 { get; set; }
  586. [Tag("ValveAV87")]
  587. public IoValve ValveAV87 { get; set; }
  588. [Tag("ValveAV88")]
  589. public IoValve ValveAV88 { get; set; }
  590. [Tag("ValveAV89")]
  591. public IoValve ValveAV89 { get; set; }
  592. [Tag("ValveAV90")]
  593. public IoValve ValveAV90 { get; set; }
  594. [Tag("ValveAV91")]
  595. public IoValve ValveAV91 { get; set; }
  596. [Tag("ValveAV92")]
  597. public IoValve ValveAV92 { get; set; }
  598. [Tag("ValveAV93")]
  599. public IoValve ValveAV93 { get; set; }
  600. [Tag("ValveAV94")]
  601. public IoValve ValveAV94 { get; set; }
  602. [Tag("ValveAV95")]
  603. public IoValve ValveAV95 { get; set; }
  604. [Tag("ValveAV96")]
  605. public IoValve ValveAV96 { get; set; }
  606. [Tag("ValveAV97")]
  607. public IoValve ValveAV97 { get; set; }
  608. [Tag("ValveAV98")]
  609. public IoValve ValveAV98 { get; set; }
  610. [Tag("ValveAV99")]
  611. public IoValve ValveAV99 { get; set; }
  612. [Tag("ValveAV100")]
  613. public IoValve ValveAV100 { get; set; }
  614. [Tag("ValveAV101")]
  615. public IoValve ValveAV101 { get; set; }
  616. [Tag("ValveAV102")]
  617. public IoValve ValveAV102 { get; set; }
  618. [Tag("ValveAV103")]
  619. public IoValve ValveAV103 { get; set; }
  620. [Tag("ValveAV104")]
  621. public IoValve ValveAV104 { get; set; }
  622. [Tag("ValveAV105")]
  623. public IoValve ValveAV105 { get; set; }
  624. [Tag("ValveAV106")]
  625. public IoValve ValveAV106 { get; set; }
  626. [Tag("ValveAV107")]
  627. public IoValve ValveAV107 { get; set; }
  628. [Tag("ValveAV108")]
  629. public IoValve ValveAV108 { get; set; }
  630. [Tag("ValveAV109")]
  631. public IoValve ValveAV109 { get; set; }
  632. [Tag("ValveAV110")]
  633. public IoValve ValveAV110 { get; set; }
  634. [Tag("ValveAV111")]
  635. public IoValve ValveAV111 { get; set; }
  636. [Tag("ValveAV112")]
  637. public IoValve ValveAV112 { get; set; }
  638. [Tag("ValveAV113")]
  639. public IoValve ValveAV113 { get; set; }
  640. [Tag("ValveAV114")]
  641. public IoValve ValveAV114 { get; set; }
  642. [Tag("ValveAV115")]
  643. public IoValve ValveAV115 { get; set; }
  644. [Tag("ValveAV116")]
  645. public IoValve ValveAV116 { get; set; }
  646. [Tag("ValveAV117")]
  647. public IoValve ValveAV117 { get; set; }
  648. [Tag("ValveAV118")]
  649. public IoValve ValveAV118 { get; set; }
  650. [Tag("ValveAV119")]
  651. public IoValve ValveAV119 { get; set; }
  652. [Tag("ValveAV120")]
  653. public IoValve ValveAV120 { get; set; }
  654. [Tag("ValveAV121")]
  655. public IoValve ValveAV121 { get; set; }
  656. [Tag("ValveAV122")]
  657. public IoValve ValveAV122 { get; set; }
  658. [Tag("ValveAV123")]
  659. public IoValve ValveAV123 { get; set; }
  660. [Tag("ValveAV124")]
  661. public IoValve ValveAV124 { get; set; }
  662. [Tag("ValveAV125")]
  663. public IoValve ValveAV125 { get; set; }
  664. [Tag("ValveAV126")]
  665. public IoValve ValveAV126 { get; set; }
  666. [Tag("ValveAV127")]
  667. public IoValve ValveAV127 { get; set; }
  668. [Tag("ValveAV128")]
  669. public IoValve ValveAV128 { get; set; }
  670. [Tag("ValveAV129")]
  671. public IoValve ValveAV129 { get; set; }
  672. [Tag("ValveAV130")]
  673. public IoValve ValveAV130 { get; set; }
  674. [Tag("ValveAV131")]
  675. public IoValve ValveAV131 { get; set; }
  676. [Tag("ValveAV132")]
  677. public IoValve ValveAV132 { get; set; }
  678. [Tag("ValveAV133")]
  679. public IoValve ValveAV133 { get; set; }
  680. [Tag("ValveAV134")]
  681. public IoValve ValveAV134 { get; set; }
  682. [Tag("ValveAV135")]
  683. public IoValve ValveAV135 { get; set; }
  684. [Tag("ValveAV136")]
  685. public IoValve ValveAV136 { get; set; }
  686. [Tag("ValveAV230")]
  687. public IoValve ValveAV230 { get; set; }
  688. [Tag("ValveCommonBoxPressureRegulatingCylinder")]
  689. public IoValve ValveCommonBoxPressureRegulatingCylinder { get; set; }
  690. [Tag("ValveLABacksideDoorCylinderControl")]
  691. public IoValve ValveLABacksideDoorCylinderControl { get; set; }
  692. [Tag("ValveLAExhaustDamper")]
  693. public IoValve ValveLAExhaustDamper { get; set; }
  694. [Tag("ValveLADamper")]
  695. public IoValve ValveLADamper { get; set; }
  696. [Tag("ValveFIMS1N2Purge")]
  697. public IoValve ValveFIMS1N2Purge { get; set; }
  698. [Tag("ValveFIMS2N2Purge")]
  699. public IoValve ValveFIMS2N2Purge { get; set; }
  700. [Tag("ValveSV61")]
  701. public IoValve ValveSV61 { get; set; }
  702. [Tag("ValveSV62")]
  703. public IoValve ValveSV62 { get; set; }
  704. [Tag("ValveSV63")]
  705. public IoValve ValveSV63 { get; set; }
  706. [Tag("ValveSV64")]
  707. public IoValve ValveSV64 { get; set; }
  708. [Tag("AGVPump")]
  709. public IoValve AGVPump { get; set; }
  710. [Tag("BothPump")]
  711. public IoValve BothPump { get; set; }
  712. [Tag("ValveBlowerPowerOn")]
  713. public IoValve ValveBlowerPowerOn { get; set; }
  714. // -------------------------------------------------------------------------
  715. [Tag("PressureGLBoxPG1")]
  716. public IoPressureMeter PressureGLBoxPG1 { get; set; }
  717. [Tag("PressureGLBoxPG2")]
  718. public IoPressureMeter PressureGLBoxPG2 { get; set; }
  719. [Tag("PressureGLBoxPG3")]
  720. public IoPressureMeter PressureGLBoxPG3 { get; set; }
  721. [Tag("PressureGLBoxPG4")]
  722. public IoPressureMeter PressureGLBoxPG4 { get; set; }
  723. [Tag("PressureGLBoxPG5")]
  724. public IoPressureMeter PressureGLBoxPG5 { get; set; }
  725. [Tag("PressureGLBoxPG6")]
  726. public IoPressureMeter PressureGLBoxPG6 { get; set; }
  727. [Tag("PressureGasBoxUpperVG21")]
  728. public IoPressureMeter PressureGasBoxUpperVG21 { get; set; }
  729. [Tag("PressureGasBoxUpperVG22")]
  730. public IoPressureMeter PressureGasBoxUpperVG22 { get; set; }
  731. [Tag("ConcentrationO2")]
  732. public IoPressureMeter ConcentrationO2 { get; set; }
  733. [Tag("GasBoxExhaustMS2")]
  734. public IoPressureMeter GasBoxExhaustMS2 { get; set; }
  735. [Tag("ScavengerExhaustMS3")]
  736. public IoPressureMeter ScavengerExhaustMS3 { get; set; }
  737. [Tag("ExhaustBoxExhaustMS4")]
  738. public IoPressureMeter ExhaustBoxExhaustMS4 { get; set; }
  739. [Tag("LoadingAreaExhaustMS5")]
  740. public IoPressureMeter LoadingAreaExhaustMS5 { get; set; }
  741. [Tag("FrontBodyExhaustMS6")]
  742. public IoPressureMeter FrontBodyExhaustMS6 { get; set; }
  743. [Tag("LAExhaustMS7")]
  744. public IoPressureMeter LAExhaustMS7 { get; set; }
  745. [Tag("RHCExhaustMS8")]
  746. public IoPressureMeter RHCExhaustMS8 { get; set; }
  747. [Tag("RHCFlowFL901")]
  748. public IoPressureMeter RHCFlowFL901 { get; set; }
  749. [Tag("CoolingWaterFlowOfFurnaceFL902")]
  750. public IoPressureMeter CoolingWaterFlowOfFurnaceFL902 { get; set; }
  751. [Tag("CoolingWateFlowOfShuttleFL903")]
  752. public IoPressureMeter CoolingWateFlowOfShuttleFL903 { get; set; }
  753. [Tag("CoolingWaterFlowOfBoatRotationFL904")]
  754. public IoPressureMeter CoolingWaterFlowOfBoatRotationFL904 { get; set; }
  755. [Tag("CoolingWaterFlowOfFlangeFL905")]
  756. public IoPressureMeter CoolingWaterFlowOfFlangeFL905 { get; set; }
  757. [Tag("CoolingWaterFlowOfLoadingAreaFL906")]
  758. public IoPressureMeter CoolingWaterFlowOfLoadingAreaFL906 { get; set; }
  759. [Tag("VG11")]
  760. public IoPressureMeter VG11 { get; set; }
  761. [Tag("VG12")]
  762. public IoPressureMeter VG12 { get; set; }
  763. [Tag("VG13")]
  764. public IoPressureMeter VG13 { get; set; }
  765. [Tag("VG21")]
  766. public IoPressureMeter VG21 { get; set; }
  767. [Tag("VG22")]
  768. public IoPressureMeter VG22 { get; set; }
  769. [Tag("PG12")]
  770. public IoPressureMeter PG12 { get; set; }
  771. [Tag("PG13")]
  772. public IoPressureMeter PG13 { get; set; }
  773. [Tag("PS13")]
  774. public IoPressureMeter PS13 { get; set; }
  775. [Tag("N24PurgePressure")]
  776. public IoPressureMeter N24PurgePressure { get; set; }
  777. [Tag("N25PurgePressure")]
  778. public IoPressureMeter N25PurgePressure { get; set; }
  779. [Tag("N26PurgePressure")]
  780. public IoPressureMeter N26PurgePressure { get; set; }
  781. [Tag("N27PurgePressure")]
  782. public IoPressureMeter N27PurgePressure { get; set; }
  783. [Tag("PS11")]
  784. public IoPressureMeter PS11 { get; set; }
  785. [Tag("PS17")]
  786. public IoPressureMeter PS17 { get; set; }
  787. // -------------------------------------------------------------------------
  788. [Tag("FIMS1")]
  789. public IoFIMS FIMS1 { get; set; }
  790. [Tag("FIMS2")]
  791. public IoFIMS FIMS2 { get; set; }
  792. //[Tag("ValvePV12")]
  793. //public IoValve ValvePV12 { get; set; }
  794. //[Tag("ValvePV13")]
  795. //public IoValve ValvePV13 { get; set; }
  796. //[Tag("ValvePV14")]
  797. //public IoValve ValvePV14 { get; set; }
  798. //[Tag("ValvePV15")]
  799. //public IoValve ValvePV15 { get; set; }
  800. //[Tag("ValvePV16")]
  801. //public IoValve ValvePV16 { get; set; }
  802. //[Tag("ValvePV17")]
  803. //public IoValve ValvePV17 { get; set; }
  804. [Tag("MFC1")]
  805. public IoMFC MFC1 { get; set; }
  806. [Tag("MFC2")]
  807. public IoMFC MFC2 { get; set; }
  808. [Tag("MFC3")]
  809. public IoMFC MFC3 { get; set; }
  810. [Tag("MFC4")]
  811. public IoMFC MFC4 { get; set; }
  812. [Tag("MFC5")]
  813. public IoMFC MFC5 { get; set; }
  814. [Tag("MFC6")]
  815. public IoMFC MFC6 { get; set; }
  816. [Tag("MFC7")]
  817. public IoMFC MFC7 { get; set; }
  818. [Tag("MFC8")]
  819. public IoMFC MFC8 { get; set; }
  820. [Tag("MFC9")]
  821. public IoMFC MFC9 { get; set; }
  822. [Tag("MFC10")]
  823. public IoMFC MFC10 { get; set; }
  824. [Tag("MFC11")]
  825. public IoMFC MFC11 { get; set; }
  826. [Tag("MFC12")]
  827. public IoMFC MFC12 { get; set; }
  828. [Tag("MFC13")]
  829. public IoMFC MFC13 { get; set; }
  830. [Tag("MFC14")]
  831. public IoMFC MFC14 { get; set; }
  832. [Tag("MFC15")]
  833. public IoMFC MFC15 { get; set; }
  834. [Tag("MFC16")]
  835. public IoMFC MFC16 { get; set; }
  836. [Tag("MFC17")]
  837. public IoMFC MFC17 { get; set; }
  838. [Tag("MFC31")]
  839. public IoMFC MFC31{ get; set; }
  840. [Tag("MFC32")]
  841. public IoMFC MFC32 { get; set; }
  842. [Tag("MFC51")]
  843. public IoMFC MFC51 { get; set; }
  844. [Tag("MFC57")]
  845. public IoMFC MFC57 { get; set; }
  846. //[Tag("GasLineA")]
  847. //public IoGasStick2 GasLineA { get; set; }
  848. //[Tag("GasLineB")]
  849. //public IoGasStick2 GasLineB { get; set; }
  850. //[Tag("GasLineC")]
  851. //public IoGasStick2 GasLineC { get; set; }
  852. //[Tag("GasLineNX")]
  853. //public IoGasStick2 GasLineNX { get; set; }
  854. //[Tag("GasLineNY")]
  855. //public IoGasStick2 GasLineNY { get; set; }
  856. //[Tag("GasLineN1")]
  857. //public IoGasStick2 GasLineN1 { get; set; }
  858. //[Tag("GasLineN2")]
  859. //public IoGasStick2 GasLineN2 { get; set; }
  860. //[Tag("GasLineN3")]
  861. //public IoGasStick2 GasLineN3 { get; set; }
  862. //[Tag("GasLineM1")]
  863. //public IoGasStick2 GasLineM1 { get; set; }
  864. //[Tag("GasLineM2")]
  865. //public IoGasStick2 GasLineM2 { get; set; }
  866. //[Tag("GasLineD1")]
  867. //public IoGasStick2 GasLineD1 { get; set; }
  868. //[Tag("GasLineJ1")]
  869. //public IoGasStick2 GasLineJ1 { get; set; }
  870. // -------------------------------------------------------------------------
  871. [Tag("Shutter")]
  872. public IoShutter Shutter { get; set; }
  873. [Tag("FFU1")] public IoFFU FFU1 { get; set; }
  874. [Tag("FFU2")] public IoFFU FFU2 { get; set; }
  875. [Tag("FFU3")] public IoFFU FFU3 { get; set; }
  876. [Tag("FFU4")] public IoFFU FFU4 { get; set; }
  877. [Tag("FFU5")] public IoFFU FFU5 { get; set; }
  878. [Tag("FFU6")] public IoFFU FFU6 { get; set; }
  879. [Tag("FFU7")] public IoFFU FFU7 { get; set; }
  880. [Tag("FFU8")] public IoFFU FFU8 { get; set; }
  881. [Tag("FFU9")] public IoFFU FFU9 { get; set; }
  882. // -------------------------------------------------------------------------
  883. [Tag("APC")]
  884. public IoAPC APC { get; set; }
  885. // -------------------------------------------------------------------------
  886. //[Tag("MainPump")]
  887. //public IoPump MainPump { get; set; }
  888. //[Tag("IoPump")]
  889. //public IoPump IoPump { get; set; }
  890. // -------------------------------------------------------------------------
  891. //[Tag("VG2Pressure")]
  892. //public IoPressureMeter VG2Pressure { get; set; }
  893. //[Tag("PT52")]
  894. //public IoPressureMeter PT52 { get; set; }
  895. //[Tag("PT53")]
  896. //public IoPressureMeter PT53 { get; set; }
  897. //[Tag("PT10")]
  898. //public IoPressureMeter PT10 { get; set; }
  899. //[Tag("PT20")]
  900. //public IoPressureMeter PT20 { get; set; }
  901. //[Tag("PT30")]
  902. //public IoPressureMeter PT30 { get; set; }
  903. //[Tag("O2Detector1")]
  904. //public IoPressureMeter O2Detector1 { get; set; }
  905. //[Tag("O2Detector2")]
  906. //public IoPressureMeter O2Detector2 { get; set; }
  907. // -------------------------------------------------------------------------
  908. [Tag("TrigFurnaceLZoneHeatingEnable")]
  909. public IoTrigger TrigFurnaceLZoneHeatingEnable { get; set; }
  910. [Tag("TrigFurnaceCLZoneHeatingEnable")]
  911. public IoTrigger TrigFurnaceCLZoneHeatingEnable { get; set; }
  912. [Tag("TrigFurnaceCZoneHeatingEnable")]
  913. public IoTrigger TrigFurnaceCZoneHeatingEnable { get; set; }
  914. [Tag("TrigFurnaceCUZoneHeatingEnable")]
  915. public IoTrigger TrigFurnaceCUZoneHeatingEnable { get; set; }
  916. [Tag("TrigFurnaceUZoneHeatingEnable")]
  917. public IoTrigger TrigFurnaceUZoneHeatingEnable { get; set; }
  918. [Tag("TrigVGUnitConversion")]
  919. public IoTrigger TrigVGUnitConversion { get; set; }
  920. [Tag("TrigForlineHeaterOn")]
  921. public IoTrigger TrigForlineHeaterOn { get; set; }
  922. [Tag("TrigHTR1SWON")]
  923. public IoTrigger TrigHTR1SWON { get; set; }
  924. [Tag("TrigHTR2SWON")]
  925. public IoTrigger TrigHTR2SWON { get; set; }
  926. [Tag("TrigHTR3SWON")]
  927. public IoTrigger TrigHTR3SWON { get; set; }
  928. [Tag("TrigDEPOSW")]
  929. public IoTrigger TrigDEPOSW { get; set; }
  930. [Tag("TrigCREFON")]
  931. public IoTrigger TrigCREFON { get; set; }
  932. [Tag("TrigSIREFON")]
  933. public IoTrigger TrigSIREFON { get; set; }
  934. [Tag("TrigHFCleanSwitchB")]
  935. public IoTrigger TrigHFCleanSwitchB { get; set; }
  936. [Tag("TrigF2CleanSwitchB")]
  937. public IoTrigger TrigF2CleanSwitchB { get; set; }
  938. public IoHeater HeaterU { get; set; }
  939. public IoHeater HeaterCU { get; set; }
  940. public IoHeater HeaterC { get; set; }
  941. public IoHeater HeaterCL { get; set; }
  942. public IoHeater HeaterL { get; set; }
  943. //private Dictionary<string, IoMFC> _gasMFCs;
  944. //public Dictionary<string, IoMFC> GasMFCs => _gasMFCs;
  945. [Tag("TrigAV71ExternalHeater")]
  946. public IoTrigger TrigAV71ExternalHeater { get; set; }
  947. [Tag("TrigAV71RingHeater")]
  948. public IoTrigger TrigAV71RingHeater { get; set; }
  949. [Tag("TrigHeaterAllEnable")]
  950. public IoTrigger TrigHeaterAllEnable { get; set; }
  951. [Tag("TrigGasLineHeaterMemoryChange")]
  952. public IoTrigger TrigGasLineHeaterMemoryChange { get; set; }
  953. #region IoHeaterBand
  954. [Tag("CapHeater")]
  955. public IoHeaterBand CapHeater { get; set; }
  956. [Tag("APCExternalHeater")]
  957. public IoHeaterBand APCExternalHeater { get; set; }
  958. [Tag("APCRingHeater")]
  959. public IoHeaterBand APCRingHeater { get; set; }
  960. #endregion
  961. // -------------------------------------------------------------------------
  962. [Tag("BoatElevatorServo")]
  963. public IoFurnaceMotor ZAxisDevice { get; set; }
  964. [Tag("BoatRotationServo")]
  965. public IoFurnaceMotor RAxisDevice { get; set; }
  966. [Tag("APC")]
  967. public IoAPC APCDevice { get; set; }
  968. Func<MemberInfo, bool> _hasTagAttribute;
  969. Func<object, bool> _isTagAttribute;
  970. public override double ChamberPressure
  971. {
  972. get
  973. {
  974. return 0;
  975. }
  976. }
  977. //public IAdsPlc Plc { get; set; }
  978. private List<IDevice> _allModuleDevice = new List<IDevice>();
  979. private List<IoMFC> _processMFCs = new List<IoMFC>();
  980. private List<IoHeater> _heaters = new List<IoHeater>();
  981. private List<IoValve> _valves = new List<IoValve>();
  982. private List<IoFFU> _fFUs = new List<IoFFU>();
  983. private List<IoGasStick2> _gasSticks;
  984. public List<IoGasStick2> GasSticks => _gasSticks;
  985. private List<AlarmEventItem> _triggeredAlarmList = new List<AlarmEventItem>();
  986. private List<IoAlarmSignal> _alarmSignals = new List<IoAlarmSignal>();
  987. private FurnaceSignalTower _signalTowerDevice;
  988. private int _alarmNumber;
  989. private List<IoAlarmSignal> _inCommandLst;
  990. private Dictionary<string, RD_TRIG> _inCommandTirgs = new Dictionary<string, RD_TRIG>();
  991. private IoTrigger _trigTHPowerEN;
  992. private IoTrigger _trigHECPowerONLamp;
  993. private List<HeaterBase> _HTR1Group = new List<HeaterBase>();
  994. private List<HeaterBase> _HTR2Group = new List<HeaterBase>();
  995. private List<HeaterBase> _HTR3Group = new List<HeaterBase>();
  996. public void InitDevice()
  997. {
  998. _isTagAttribute = attribute => attribute is TagAttribute;
  999. _hasTagAttribute = mi => mi.GetCustomAttributes(false).Any(_isTagAttribute);
  1000. var properties = this.GetType().GetProperties().Where(_hasTagAttribute);
  1001. foreach (var field in properties)
  1002. {
  1003. TagAttribute tag = field.GetCustomAttributes(false).First(_isTagAttribute) as TagAttribute;
  1004. IDevice device = DEVICE.GetDevice<IDevice>($"{Module}.{tag.Tag}");
  1005. if (device == null)
  1006. device = DEVICE.GetDevice<IDevice>($"PM1.{tag.Tag}");
  1007. if (device == null)
  1008. device = DEVICE.GetDevice<IDevice>($"System.{tag.Tag}");
  1009. if (device != null)
  1010. {
  1011. _allModuleDevice.Add(device);
  1012. PropertyInfo pi = (PropertyInfo)field;
  1013. var convertedValue = Convert.ChangeType(device, pi.PropertyType);
  1014. System.Diagnostics.Debug.Assert(convertedValue != null);
  1015. pi.SetValue(this, convertedValue);
  1016. if (device is IoAlarmSignal)
  1017. {
  1018. _alarmSignals.Add(device as IoAlarmSignal);
  1019. }
  1020. device.OnDeviceAlarmStateChanged += OnModuleDeviceAlarmStateChanged;
  1021. if (device is IoMFC && device.Name != "MFC57")
  1022. _processMFCs.Add(device as IoMFC);
  1023. if (device is IoHeater)
  1024. _heaters.Add(device as IoHeater);
  1025. else if (device is IoValve)
  1026. _valves.Add(device as IoValve);
  1027. else if (device is HeaterBase)
  1028. _HTR2Group.Add(device as HeaterBase);
  1029. else if (device is IoFFU)
  1030. _fFUs.Add(device as IoFFU);
  1031. }
  1032. else
  1033. {
  1034. }
  1035. }
  1036. for (int i = 1; i < 10; i++)
  1037. {
  1038. for(int ch=1;ch<40;ch++)
  1039. {
  1040. var device = DEVICE.GetDevice<HeaterBase>($"PM1.GaslineHeaterUnit{i}CH{ch}");
  1041. if (device != null)
  1042. {
  1043. if ((i == 4 && ch == 1) || (i == 4 && ch == 2) || (i == 4 && ch == 3) || (i == 4 && ch == 4))
  1044. {
  1045. //这几个从_HTR2Group中删除
  1046. //_HTR2Group.Add(device);
  1047. continue;
  1048. }
  1049. else
  1050. _HTR1Group.Add(device);
  1051. }
  1052. }
  1053. }
  1054. for (int i = 1; i < 20; i++)
  1055. {
  1056. var device = DEVICE.GetDevice<HeaterBase>($"PM1.ForelineHeater{i}");
  1057. if (device != null)
  1058. {
  1059. _HTR2Group.Add(device);
  1060. }
  1061. }
  1062. //Singleton<DeviceController>.Instance.Start(Singleton<DeviceManager>.Instance);
  1063. //FlowmeterLists = DEVICE.GetDevice<IoFlowMeter>().Where(o => o.Module == Module).ToList();
  1064. HeaterU = DEVICE.GetDevice<IoHeater>($"System.HeaterU");
  1065. HeaterCU = DEVICE.GetDevice<IoHeater>($"System.HeaterCU");
  1066. HeaterC = DEVICE.GetDevice<IoHeater>($"System.HeaterC");
  1067. HeaterCL = DEVICE.GetDevice<IoHeater>($"System.HeaterCL");
  1068. HeaterL = DEVICE.GetDevice<IoHeater>($"System.HeaterL");
  1069. _heaters = new List<IoHeater>()
  1070. {
  1071. HeaterU,
  1072. HeaterCU,
  1073. HeaterC,
  1074. HeaterCL,
  1075. HeaterL,
  1076. };
  1077. foreach (var heater in _heaters)
  1078. {
  1079. if (heater != null)
  1080. {
  1081. heater.OnDeviceAlarmStateChanged += OnModuleDeviceAlarmStateChanged;
  1082. }
  1083. }
  1084. Singleton<InterlockManager>.Instance.OnDeviceAlarmStateChanged += OnModuleDeviceAlarmStateChanged;
  1085. this.OnDeviceAlarmStateChanged += OnModuleDeviceAlarmStateChanged;
  1086. foreach (var pv in Singleton<IoProviderManager>.Instance.Providers)
  1087. {
  1088. if ((pv as IoProvider) != null)
  1089. (pv as IoProvider).OnDeviceAlarmStateChanged += OnModuleDeviceAlarmStateChanged;
  1090. }
  1091. _gasSticks = new List<IoGasStick2>()
  1092. {
  1093. //GasLineA,
  1094. //GasLineB,
  1095. //GasLineC,
  1096. //GasLineNX,
  1097. //GasLineNY,
  1098. //GasLineN1,
  1099. //GasLineN2,
  1100. //GasLineN3,
  1101. //GasLineM1,
  1102. //GasLineM2,
  1103. //GasLineD1,
  1104. //GasLineJ1,
  1105. };
  1106. _signalTowerDevice = DEVICE.GetDevice<FurnaceSignalTower>($"{ModuleName.System}.{ModuleName.SignalTower}");
  1107. _trigTHPowerEN = DEVICE.GetDevice<IoTrigger>($"PM1.TrigTHPowerEN");
  1108. _trigHECPowerONLamp = DEVICE.GetDevice<IoTrigger>($"{Module}.TrigHECPowerONLamp");
  1109. _inCommandLst = new List<IoAlarmSignal>()
  1110. {
  1111. //SensorHECPowerONSW,
  1112. // SensorTHBreakOK,
  1113. };
  1114. //SensorLidClosed.OnSignalChanged += SensorLidClosed_OnSignalChanged;
  1115. _n2PurgeSequenceAction = new Dictionary<string, Tuple<R_TRIG, List<Tuple<IoValve, bool>>>>()
  1116. {
  1117. {"N2PurgeAIRTo20PPM",Tuple.Create(new R_TRIG(),
  1118. new List<Tuple<IoValve, bool>>()
  1119. {
  1120. Tuple.Create(ValveAV56,true),
  1121. Tuple.Create(ValveAV57,true),
  1122. Tuple.Create(ValveAV65,false), //AV65
  1123. Tuple.Create(ValveAV66,false),
  1124. Tuple.Create(ValveLADamper,true), //AV227
  1125. Tuple.Create(ValveAV58,false),
  1126. Tuple.Create(ValveAV59,false),
  1127. Tuple.Create(ValveFIMS1N2Purge,false), //AV63
  1128. Tuple.Create(ValveFIMS2N2Purge,false), //AV64
  1129. Tuple.Create(ValveSV61,false),
  1130. Tuple.Create(ValveSV62,false),
  1131. Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,false), //AV201
  1132. })
  1133. },
  1134. {"N2PurgeUnder20PPM",Tuple.Create(new R_TRIG(),
  1135. new List<Tuple<IoValve, bool>>()
  1136. {
  1137. Tuple.Create(ValveAV56,true),
  1138. Tuple.Create(ValveAV57,false),
  1139. Tuple.Create(ValveAV65,false), //AV65
  1140. Tuple.Create(ValveAV66,false),
  1141. Tuple.Create(ValveLADamper,true), //AV227
  1142. Tuple.Create(ValveAV58,false),
  1143. Tuple.Create(ValveAV59,false),
  1144. Tuple.Create(ValveFIMS1N2Purge,false), //AV63
  1145. Tuple.Create(ValveFIMS2N2Purge,false), //AV64
  1146. Tuple.Create(ValveSV61,false),
  1147. Tuple.Create(ValveSV62,false),
  1148. Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,false), //AV201
  1149. })
  1150. },
  1151. {"AIR",Tuple.Create(new R_TRIG(),
  1152. new List<Tuple<IoValve, bool>>()
  1153. {
  1154. Tuple.Create(ValveAV56,false),
  1155. Tuple.Create(ValveAV57,false),
  1156. Tuple.Create(ValveAV65,true), //AV65
  1157. Tuple.Create(ValveAV66,true),
  1158. Tuple.Create(ValveLADamper,true), //AV227
  1159. Tuple.Create(ValveAV58,false),
  1160. Tuple.Create(ValveAV59,false),
  1161. Tuple.Create(ValveFIMS1N2Purge,false), //AV63
  1162. Tuple.Create(ValveFIMS2N2Purge,false), //AV64
  1163. Tuple.Create(ValveSV61,false),
  1164. Tuple.Create(ValveSV62,false),
  1165. Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,true), //AV201
  1166. })
  1167. },
  1168. {"DoorOpen",Tuple.Create(new R_TRIG(),
  1169. new List<Tuple<IoValve, bool>>()
  1170. {
  1171. Tuple.Create(ValveAV56,false),
  1172. Tuple.Create(ValveAV57,false),
  1173. Tuple.Create(ValveAV65,true), //AV65
  1174. Tuple.Create(ValveAV66,true),
  1175. Tuple.Create(ValveLADamper,false), //AV227
  1176. Tuple.Create(ValveAV58,false),
  1177. Tuple.Create(ValveAV59,false),
  1178. Tuple.Create(ValveFIMS1N2Purge,false), //AV63
  1179. Tuple.Create(ValveFIMS2N2Purge,false), //AV64
  1180. Tuple.Create(ValveSV61,false),
  1181. Tuple.Create(ValveSV62,false),
  1182. Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,true), //AV201
  1183. })
  1184. },
  1185. {"Foup1",Tuple.Create(new R_TRIG(),
  1186. new List<Tuple<IoValve, bool>>()
  1187. {
  1188. Tuple.Create(ValveAV56,true),
  1189. Tuple.Create(ValveAV57,false),
  1190. Tuple.Create(ValveAV65,false), //AV65
  1191. Tuple.Create(ValveAV66,false),
  1192. Tuple.Create(ValveLADamper,true), //AV227
  1193. Tuple.Create(ValveAV58,true),
  1194. Tuple.Create(ValveAV59,false),
  1195. Tuple.Create(ValveFIMS1N2Purge,true), //AV63
  1196. Tuple.Create(ValveFIMS2N2Purge,false), //AV64
  1197. Tuple.Create(ValveSV61,true),
  1198. Tuple.Create(ValveSV62,false),
  1199. Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,false), //AV201
  1200. })
  1201. },
  1202. {"Foup2",Tuple.Create(new R_TRIG(),
  1203. new List<Tuple<IoValve, bool>>()
  1204. {
  1205. Tuple.Create(ValveAV56,true),
  1206. Tuple.Create(ValveAV57,false),
  1207. Tuple.Create(ValveAV65,false), //AV65
  1208. Tuple.Create(ValveAV66,false),
  1209. Tuple.Create(ValveLADamper,true), //AV227
  1210. Tuple.Create(ValveAV58,false),
  1211. Tuple.Create(ValveAV59,true),
  1212. Tuple.Create(ValveFIMS1N2Purge,false), //AV63
  1213. Tuple.Create(ValveFIMS2N2Purge,true), //AV64
  1214. Tuple.Create(ValveSV61,true),
  1215. Tuple.Create(ValveSV62,true),
  1216. Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,false), //AV201
  1217. })
  1218. },
  1219. };
  1220. _n2PurgeSequenceStatus = new Dictionary<string, Func<bool>>()
  1221. {
  1222. {"N2PurgeAIRTo20PPM",()=> GetN2PurgeAIRTo20PPMStatus()},
  1223. {"N2PurgeUnder20PPM",()=> GetN2PurgeUnder20PPMStatus()},
  1224. {"AIR",()=> GetN2PurgeAIRStatus()},
  1225. {"DoorOpen",()=> GetN2PurgeDoorOpenStatus()},
  1226. {"Foup1",()=> GetN2PurgeFoup1Status()},
  1227. {"Foup2",()=> GetN2PurgeFoup2Status()},
  1228. };
  1229. TrigFurnaceUZoneHeatingEnable.SetTrigger(true, out _);
  1230. TrigFurnaceCUZoneHeatingEnable.SetTrigger(true, out _);
  1231. TrigFurnaceCZoneHeatingEnable.SetTrigger(true, out _);
  1232. TrigFurnaceCLZoneHeatingEnable.SetTrigger(true, out _);
  1233. TrigFurnaceLZoneHeatingEnable.SetTrigger(true, out _);
  1234. }
  1235. private void SensorLidClosed_OnSignalChanged(IoSensor sender, bool isTriggered)
  1236. {
  1237. if (!isTriggered)
  1238. {
  1239. EV.PostWarningLog(Module, $"Lid Open.");
  1240. }
  1241. }
  1242. private void PlcDisconnected()
  1243. {
  1244. CheckToPostMessage(MSG.Disconnected);
  1245. }
  1246. private void PlcConnected()
  1247. {
  1248. if (IsInit)
  1249. return;
  1250. if (FsmState.Equals((int)STATE.NotConnected))
  1251. CheckToPostMessage(MSG.Connected);
  1252. }
  1253. public void OnModuleDeviceAlarmStateChanged(string deviceId, AlarmEventItem alarmItem)
  1254. {
  1255. if (alarmItem.IsTriggered)
  1256. {
  1257. EventLevel level = alarmItem.Level;
  1258. string description = alarmItem.AdditionalDescription;
  1259. //description += $" {(!string.IsNullOrEmpty(_recipeRunningInfo.RecipeName) ? $"Recipe:{_recipeRunningInfo.RecipeName}," : "")}Step:{(IsProcessing ? _recipeRunningInfo.StepName : "Standby")}";
  1260. //alarmItem.AdditionalDescription += $" {(!string.IsNullOrEmpty(_recipeRunningInfo.RecipeName) ? $"Recipe:{_recipeRunningInfo.RecipeName}," : "")}Step:{(IsProcessing ? _recipeRunningInfo.StepName : "Standby")}";
  1261. alarmItem.AdditionalDescription = description;
  1262. alarmItem.OccuringTime = DateTime.Now;
  1263. _triggeredAlarmList.Add(alarmItem);
  1264. if (IsProcessing)
  1265. {
  1266. if (level == EventLevel.Alarm)
  1267. {
  1268. EV.PostAlarmLog(Module, alarmItem);
  1269. }
  1270. else
  1271. {
  1272. EV.PostWarningLog(Module, alarmItem);
  1273. }
  1274. }
  1275. else
  1276. {
  1277. if (level == EventLevel.Alarm)
  1278. {
  1279. try
  1280. {
  1281. EV.PostAlarmLog(Module, alarmItem);
  1282. }
  1283. catch (Exception ex)
  1284. {
  1285. EV.WriteEvent(ex.Message.ToString());
  1286. }
  1287. }
  1288. else
  1289. {
  1290. EV.PostWarningLog(Module, alarmItem);
  1291. }
  1292. }
  1293. }
  1294. else
  1295. {
  1296. }
  1297. }
  1298. public override bool CheckAcked(int entityTaskToken)
  1299. {
  1300. return true;
  1301. }
  1302. #region pump device operation
  1303. public override bool TurnOnPump(out string reason)
  1304. {
  1305. reason = string.Empty;
  1306. return true /*MainPump.SetPump(out reason, 0, true)*/;
  1307. }
  1308. public override bool CheckPumpIsOn()
  1309. {
  1310. return true/*MainPump.IsRunning*/;
  1311. }
  1312. #endregion
  1313. public bool CheckIsConnected()
  1314. {
  1315. return true;
  1316. }
  1317. public bool CheckHasAlarm()
  1318. {
  1319. foreach (var device in _allModuleDevice)
  1320. {
  1321. if (device != null && device.HasAlarm)
  1322. return true;
  1323. }
  1324. return false;
  1325. }
  1326. public override bool CheckSlitValveClose()
  1327. {
  1328. return true;
  1329. }
  1330. public override bool CheckLidClosed()
  1331. {
  1332. return true;
  1333. }
  1334. public override bool CheckPrepareProcess()
  1335. {
  1336. return _isPrepareProcess;
  1337. }
  1338. public override bool CheckProcessFinished()
  1339. {
  1340. bool isFinished = true;
  1341. var wafers = WaferManager.Instance.GetWafers(_module);
  1342. if (wafers == null)
  1343. {
  1344. return false;
  1345. }
  1346. foreach (var wafer in wafers)
  1347. {
  1348. if (wafer.IsEmpty)
  1349. continue;
  1350. if (wafer.ProcessState != EnumWaferProcessStatus.Completed && wafer.ProcessState != EnumWaferProcessStatus.Failed)
  1351. isFinished = false;
  1352. }
  1353. return isFinished;
  1354. }
  1355. public override bool CheckStandbyCondition()
  1356. {
  1357. return true;
  1358. return CheckExternalSensorCondition() && CheckTempStabilizeCondition() &&
  1359. CheckReachTempCondition() && CheckPressureStablilizeCondition() &&
  1360. CheckReachPressureCondition() && CheckFinishAutoProfileCondition();
  1361. }
  1362. #region conditionCheck
  1363. private bool SeBypassStandbyFactor(out string reason, int time, object[] param)
  1364. {
  1365. reason = string.Empty;
  1366. if (param != null && param.Length > 0)
  1367. {
  1368. var condition = param[0].ToString();
  1369. if (_conditionCheckDic.ContainsKey(condition))
  1370. {
  1371. _conditionCheckDic[condition] = true;
  1372. }
  1373. }
  1374. return true;
  1375. }
  1376. private bool SetConditionCheck(out string reason, int time, object[] param)
  1377. {
  1378. reason = string.Empty;
  1379. _conditionCheckDic.Clear();
  1380. _conditionCheckItemDic.Clear();
  1381. _isExternalSensorConditionBypass = false;
  1382. _isTempStabilizeConditionBypass = false;
  1383. _isPressureStabilizeConditionBypass = false;
  1384. _isReachTempConditionBypass = false;
  1385. _isReachPressureConditionBypass = false;
  1386. _isFinishAutoProfileConditionBypass = false;
  1387. if (param.Length > 0)
  1388. {
  1389. var conditions = param[0].ToString().Split(';').ToList();
  1390. foreach (var condition in conditions)
  1391. {
  1392. var arry = condition.Split(':');
  1393. if (arry.Length > 1)
  1394. {
  1395. switch (arry[0])
  1396. {
  1397. case "ExternalSensor":
  1398. SetExternalSensorCondition("Wait For External Sensor", arry[1]);
  1399. break;
  1400. case "TempStabilize":
  1401. SetTempStabilizeCondition("Wait For Temperature Stablilize", arry[1]);
  1402. break;
  1403. case "ReachTemp":
  1404. SetReachTempCondition("Wait For Reach Temperature", arry[1]);
  1405. break;
  1406. case "ReachPressure":
  1407. SetReachPressureCondition("Wait For Reach Pressure", arry[1]);
  1408. break;
  1409. case "PressureStabilize":
  1410. SetPressureStabilizeCondition("Wait For Pressure Stablilize", arry[1]);
  1411. break;
  1412. case "FinishAutoProfile":
  1413. SetFinishAutoProfileCondition("Wait For Finish Auto Profile", arry[1]);
  1414. break;
  1415. case "None":
  1416. case "none":
  1417. break;
  1418. }
  1419. }
  1420. }
  1421. }
  1422. return true;
  1423. }
  1424. private void SetExternalSensorCondition(string title, string para)
  1425. {
  1426. var conditions = para.ToLower().Split(',').ToList();
  1427. if (conditions.Any(x => !x.Contains("none")))
  1428. {
  1429. _conditionCheckDic.Add(title, false);
  1430. _conditionCheckItemDic.Add(title, para);
  1431. }
  1432. }
  1433. private void SetTempStabilizeCondition(string title, string para)
  1434. {
  1435. if (para.ToLower() != "none")
  1436. {
  1437. _conditionCheckDic.Add(title, false);
  1438. _conditionCheckItemDic.Add(title, para);
  1439. foreach (var heater in _heaters)
  1440. {
  1441. //heater.SetStableParameters(para);
  1442. }
  1443. }
  1444. }
  1445. private void SetReachTempCondition(string title, string para)
  1446. {
  1447. if (para.ToLower() != "none")
  1448. {
  1449. _conditionCheckDic.Add(title, false);
  1450. _conditionCheckItemDic.Add(title, para);
  1451. }
  1452. }
  1453. private void SetReachPressureCondition(string title, string para)
  1454. {
  1455. if (para.ToLower() != "none")
  1456. {
  1457. _conditionCheckDic.Add(title, false);
  1458. _conditionCheckItemDic.Add(title, para);
  1459. }
  1460. }
  1461. private void SetFinishAutoProfileCondition(string title, string para)
  1462. {
  1463. if (para.ToLower() != "none")
  1464. {
  1465. _conditionCheckDic.Add(title, false);
  1466. _conditionCheckItemDic.Add(title, para);
  1467. }
  1468. }
  1469. private void SetPressureStabilizeCondition(string title, string para)
  1470. {
  1471. if (para.ToLower() != "none")
  1472. {
  1473. _conditionCheckDic.Add(title, false);
  1474. _conditionCheckItemDic.Add(title, para);
  1475. //APC.SetStableParameters(para);
  1476. }
  1477. }
  1478. public bool CheckExternalSensorCondition()
  1479. {
  1480. var key = "Wait For External Sensor";
  1481. if (_conditionCheckDic.ContainsKey(key))
  1482. {
  1483. if (_conditionCheckItemDic.ContainsKey(key))
  1484. {
  1485. var items = _conditionCheckItemDic[key].Split(',').ToList();
  1486. bool isMatch = true;
  1487. foreach (var item in items)
  1488. {
  1489. var sensorAndResult = item.Split('.');
  1490. if (sensorAndResult.Length > 1 && sensorAndResult[1].ToLower() != "none")
  1491. {
  1492. var sensorDevice = DEVICE.GetDevice<IoSensor>($"{Module}.{sensorAndResult[0]}");
  1493. if (sensorDevice == null)
  1494. sensorDevice = DEVICE.GetDevice<IoSensor>($"System.{sensorAndResult[0]}");
  1495. if (sensorDevice != null)
  1496. {
  1497. isMatch = sensorAndResult[1].ToLower() == "on" ? sensorDevice.Value : !sensorDevice.Value;
  1498. }
  1499. if (!isMatch)
  1500. break;
  1501. }
  1502. }
  1503. _conditionCheckDic[key] = isMatch;
  1504. }
  1505. if (_isExternalSensorConditionBypass)
  1506. _conditionCheckDic[key] = true;
  1507. return _conditionCheckDic[key];
  1508. }
  1509. else
  1510. {
  1511. return true;
  1512. }
  1513. }
  1514. public bool CheckTempStabilizeCondition()
  1515. {
  1516. var key = "Wait For Temperature Stablilize";
  1517. return true;
  1518. }
  1519. public bool CheckReachTempCondition()
  1520. {
  1521. var key = "Wait For Reach Temperature";
  1522. return true;
  1523. }
  1524. public bool CheckPressureStablilizeCondition()
  1525. {
  1526. var key = "Wait For Pressure Stablilize";
  1527. if (_conditionCheckDic.ContainsKey(key))
  1528. {
  1529. //_conditionCheckDic[key] = APC.IsStable;
  1530. if (_isPressureStabilizeConditionBypass)
  1531. _conditionCheckDic[key] = true;
  1532. return _conditionCheckDic[key];
  1533. }
  1534. else
  1535. {
  1536. return true;
  1537. }
  1538. }
  1539. public bool CheckReachPressureCondition()
  1540. {
  1541. var key = "Wait For Reach Pressure";
  1542. if (_conditionCheckDic.ContainsKey(key))
  1543. {
  1544. if (_conditionCheckItemDic.ContainsKey(key))
  1545. {
  1546. var itemArry = _conditionCheckItemDic[key].Split(',');
  1547. if (itemArry != null && itemArry.Length > 1)
  1548. {
  1549. float.TryParse(itemArry[1], out float pressure);
  1550. if (itemArry[0] == "WaitMoreThan")
  1551. {
  1552. //_conditionCheckDic[key] = APC.PressureFeedback > pressure;
  1553. }
  1554. else if (itemArry[0] == "WaitLessThan")
  1555. {
  1556. //_conditionCheckDic[key] = APC.PressureFeedback < pressure;
  1557. }
  1558. }
  1559. }
  1560. if (_isReachPressureConditionBypass)
  1561. _conditionCheckDic[key] = true;
  1562. return _conditionCheckDic[key];
  1563. }
  1564. else
  1565. {
  1566. return true;
  1567. }
  1568. }
  1569. public bool CheckFinishAutoProfileCondition()
  1570. {
  1571. var key = "Wait For Finish Auto Profile";
  1572. if (_conditionCheckDic.ContainsKey(key))
  1573. {
  1574. if (_isFinishAutoProfileConditionBypass)
  1575. _conditionCheckDic[key] = true;
  1576. return _conditionCheckDic[key];
  1577. }
  1578. else
  1579. {
  1580. return true;
  1581. }
  1582. }
  1583. #endregion
  1584. private bool SetBoatZAxisMotion(out string reason, int time, object[] param)
  1585. {
  1586. reason = string.Empty;
  1587. //if (AutoDoor.UpDownStatus != ASUpDownStatus.Down || AutoDoor.OpenCloseStatus != ASOpenCloseStatus.Open)
  1588. //{
  1589. // (Singleton<EquipmentManager>.Instance.Modules[ModuleName.Boat] as BoatModule).BoatZAxisMoveFailedForInterlock.Set();
  1590. // return false;
  1591. //}
  1592. return true;
  1593. //return BoatDevice.ZAxisMoveTo(param[0].ToString(), out reason);
  1594. }
  1595. private bool SetBoatRAxisMotion(out string reason, int time, object[] param)
  1596. {
  1597. reason = string.Empty;
  1598. return true;
  1599. }
  1600. private bool SetAutoShutterUp(out string reason, int time, object[] param)
  1601. {
  1602. reason = string.Empty;
  1603. bool.TryParse(param[0].ToString(), out bool isUp);
  1604. //if (BoatDevice.BoatCurrentPosition != BoatPosition.HomePosition && BoatDevice.BoatCurrentPosition != BoatPosition.ProcessPosition)
  1605. //{
  1606. // AutoShutter.AutoShutterMoveFailedForInterlock.Set();
  1607. // return false;
  1608. //}
  1609. //return AutoDoor.SetUp(isUp, out reason);
  1610. return true;
  1611. }
  1612. private bool SetAutoShutterOpen(out string reason, int time, object[] param)
  1613. {
  1614. reason = string.Empty;
  1615. bool.TryParse(param[0].ToString(), out bool isOpen);
  1616. var ZAxisDevice = DEVICE.GetDevice<IoFurnaceMotor>($"PM1.BoatElevatorServo");
  1617. if (!ZAxisDevice.CheckServoAtPosition(BoatPosition.HomePosition.ToString()))
  1618. {
  1619. ShutterMoveFailedForInterlock.Set();
  1620. return true;
  1621. }
  1622. return Shutter.SetOpen(isOpen, out reason);
  1623. }
  1624. private bool SetAutoShutterRotateOpen(out string reason, int time, object[] param)
  1625. {
  1626. reason = string.Empty;
  1627. bool.TryParse(param[0].ToString(), out bool isOpen);
  1628. //if (BoatDevice.BoatCurrentPosition != BoatPosition.HomePosition && BoatDevice.BoatCurrentPosition != BoatPosition.ProcessPosition)
  1629. //{
  1630. // AutoShutter.AutoShutterMoveFailedForInterlock.Set();
  1631. // return false;
  1632. //}
  1633. //return AutoDoor.SetShutterRotateOpen(isOpen, out reason);
  1634. return true;
  1635. }
  1636. private bool SetCommand(out string reason, int time, object[] param)
  1637. {
  1638. reason = string.Empty;
  1639. var command = param[0].ToString();
  1640. switch (command)
  1641. {
  1642. case "Hold":
  1643. _processRoutine.PauseRecipe();
  1644. break;
  1645. case "Hold + Buzzer":
  1646. _processRoutine.PauseRecipe();
  1647. BuzzerOn();
  1648. break;
  1649. case "Buzzer":
  1650. BuzzerOn();
  1651. break;
  1652. case "Leak Check1":
  1653. case "Leak Check2":
  1654. case "Leak Check3":
  1655. int.TryParse(command.Replace("Leak Check", ""), out int index);
  1656. SetLeakCheckTableIndex(index);
  1657. break;
  1658. }
  1659. return true;
  1660. }
  1661. public bool SetSensorRecipeOK(out string reason, int time, object[] param)
  1662. {
  1663. reason = string.Empty;
  1664. SensorRecipeOK.Value = true;
  1665. //SensorPROCManualOK.Value = false;
  1666. return true;
  1667. }
  1668. public bool SetSensorPROCManualOK(out string reason, int time, object[] param)
  1669. {
  1670. reason = string.Empty;
  1671. SensorRecipeOK.Value = false;
  1672. //SensorPROCManualOK.Value = true;
  1673. return true;
  1674. }
  1675. public bool SetEditRecipeName(out string reason, int time, object[] param)
  1676. {
  1677. reason = string.Empty;
  1678. EditRecipeName = param[0].ToString();
  1679. return true;
  1680. }
  1681. public bool SetEditRecipeStepName(out string reason, int time, object[] param)
  1682. {
  1683. reason = string.Empty;
  1684. EditRecipeStepName = param[0].ToString();
  1685. return true;
  1686. }
  1687. private void BuzzerOn()
  1688. {
  1689. _signalTowerDevice.IsAutoSetLight = false;
  1690. _signalTowerDevice.SetLight(LightType.Buzzer1, TowerLightStatus.On);
  1691. }
  1692. public bool CheckBoatState()
  1693. {
  1694. return (Singleton<EquipmentManager>.Instance.Modules[ModuleName.Boat] as BoatModule).IsReady;
  1695. }
  1696. //#region Temperature/Pressure Tolerance
  1697. //#region Heater Tolerance Alarm
  1698. //public bool CheckHeaterBottomToleranceAlaram()
  1699. //{
  1700. // return Heater2.DeviceData.IsLspModeFeedBack ? Heater2.CheckToleranceAlarm() : Heater1.CheckToleranceAlarm();
  1701. //}
  1702. //public bool CheckHeaterCenterBottomToleranceAlaram()
  1703. //{
  1704. // return Heater4.DeviceData.IsLspModeFeedBack ? Heater4.CheckToleranceAlarm() : Heater3.CheckToleranceAlarm();
  1705. //}
  1706. //public bool CheckHeaterCenterToleranceAlaram()
  1707. //{
  1708. // return Heater6.DeviceData.IsLspModeFeedBack ? Heater6.CheckToleranceAlarm() : Heater5.CheckToleranceAlarm();
  1709. //}
  1710. //public bool CheckHeaterCenterTopToleranceAlaram()
  1711. //{
  1712. // return Heater8.DeviceData.IsLspModeFeedBack ? Heater8.CheckToleranceAlarm() : Heater7.CheckToleranceAlarm();
  1713. //}
  1714. //public bool CheckHeaterTopToleranceAlaram()
  1715. //{
  1716. // return Heater10.DeviceData.IsLspModeFeedBack ? Heater10.CheckToleranceAlarm() : Heater9.CheckToleranceAlarm();
  1717. //}
  1718. //public void SetHeaterBottomToleranceAlaram()
  1719. //{
  1720. // if (Heater2.DeviceData.IsLspModeFeedBack)
  1721. // Heater2.SetToleranceAlarm();
  1722. // else
  1723. // Heater1.SetToleranceAlarm();
  1724. //}
  1725. //public void SetHeaterCenterBottomToleranceAlaram()
  1726. //{
  1727. // if (Heater4.DeviceData.IsLspModeFeedBack)
  1728. // Heater4.SetToleranceAlarm();
  1729. // else
  1730. // Heater3.SetToleranceAlarm();
  1731. //}
  1732. //public void SetHeaterCenterToleranceAlaram()
  1733. //{
  1734. // if (Heater6.DeviceData.IsLspModeFeedBack)
  1735. // Heater6.SetToleranceAlarm();
  1736. // else
  1737. // Heater5.SetToleranceAlarm();
  1738. //}
  1739. //public void SetHeaterCenterTopToleranceAlaram()
  1740. //{
  1741. // if (Heater8.DeviceData.IsLspModeFeedBack)
  1742. // Heater8.SetToleranceAlarm();
  1743. // else
  1744. // Heater7.SetToleranceAlarm();
  1745. //}
  1746. //public void SetHeaterTopToleranceAlaram()
  1747. //{
  1748. // if (Heater10.DeviceData.IsLspModeFeedBack)
  1749. // Heater10.SetToleranceAlarm();
  1750. // else
  1751. // Heater9.SetToleranceAlarm();
  1752. //}
  1753. //#endregion
  1754. //#region Heater Tolerance Warning
  1755. //public bool CheckHeaterBottomToleranceWarning()
  1756. //{
  1757. // return Heater2.DeviceData.IsLspModeFeedBack ? Heater2.CheckToleranceWarning() : Heater1.CheckToleranceWarning();
  1758. //}
  1759. //public bool CheckHeaterCenterBottomToleranceWarning()
  1760. //{
  1761. // return Heater4.DeviceData.IsLspModeFeedBack ? Heater4.CheckToleranceWarning() : Heater3.CheckToleranceWarning();
  1762. //}
  1763. //public bool CheckHeaterCenterToleranceWarning()
  1764. //{
  1765. // return Heater6.DeviceData.IsLspModeFeedBack ? Heater6.CheckToleranceWarning() : Heater5.CheckToleranceWarning();
  1766. //}
  1767. //public bool CheckHeaterCenterTopToleranceWarning()
  1768. //{
  1769. // return Heater8.DeviceData.IsLspModeFeedBack ? Heater8.CheckToleranceWarning() : Heater7.CheckToleranceWarning();
  1770. //}
  1771. //public bool CheckHeaterTopToleranceWarning()
  1772. //{
  1773. // return Heater10.DeviceData.IsLspModeFeedBack ? Heater10.CheckToleranceWarning() : Heater9.CheckToleranceWarning();
  1774. //}
  1775. //public void SetHeaterBottomToleranceWarning()
  1776. //{
  1777. // if (Heater2.DeviceData.IsLspModeFeedBack)
  1778. // Heater2.SetToleranceWarning();
  1779. // else
  1780. // Heater1.SetToleranceWarning();
  1781. //}
  1782. //public void SetHeaterCenterBottomToleranceWarning()
  1783. //{
  1784. // if (Heater4.DeviceData.IsLspModeFeedBack)
  1785. // Heater4.SetToleranceWarning();
  1786. // else
  1787. // Heater3.SetToleranceWarning();
  1788. //}
  1789. //public void SetHeaterCenterToleranceWarning()
  1790. //{
  1791. // if (Heater6.DeviceData.IsLspModeFeedBack)
  1792. // Heater6.SetToleranceWarning();
  1793. // else
  1794. // Heater5.SetToleranceWarning();
  1795. //}
  1796. //public void SetHeaterCenterTopToleranceWarning()
  1797. //{
  1798. // if (Heater8.DeviceData.IsLspModeFeedBack)
  1799. // Heater8.SetToleranceWarning();
  1800. // else
  1801. // Heater7.SetToleranceWarning();
  1802. //}
  1803. //public void SetHeaterTopToleranceWarning()
  1804. //{
  1805. // if (Heater10.DeviceData.IsLspModeFeedBack)
  1806. // Heater10.SetToleranceWarning();
  1807. // else
  1808. // Heater9.SetToleranceWarning();
  1809. //}
  1810. //#endregion
  1811. //#region Pressure Tolerance Alarm
  1812. ////public bool CheckPressureToleranceAlaram()
  1813. ////{
  1814. //// return APC.CheckToleranceAlarm();
  1815. ////}
  1816. ////public void SetPressureToleranceAlaram()
  1817. ////{
  1818. //// APC.SetToleranceAlarm();
  1819. ////}
  1820. //#endregion
  1821. //#region Pressure Tolerance Warning
  1822. ////public bool CheckPressureToleranceWarning()
  1823. ////{
  1824. //// return APC.CheckToleranceWarning();
  1825. ////}
  1826. ////public void SetPressureToleranceWarning()
  1827. ////{
  1828. //// APC.SetToleranceWarning();
  1829. ////}
  1830. //#endregion
  1831. //#region Reset Tolerance
  1832. //public void ResetToleranceAlarm()
  1833. //{
  1834. // foreach (var heater in _heaters)
  1835. // {
  1836. // heater.Reset();
  1837. // }
  1838. // foreach (var key in _gasMFCs.Keys)
  1839. // {
  1840. // _gasMFCs[key].Reset();
  1841. // }
  1842. // //APC.Reset();
  1843. //}
  1844. //public void ResetToleranceAlarmChecker()
  1845. //{
  1846. // foreach (var heater in _heaters)
  1847. // {
  1848. // heater.ResetAlarmChecker();
  1849. // heater.ResetWarningChecker();
  1850. // }
  1851. // foreach (var key in _gasMFCs.Keys)
  1852. // {
  1853. // _gasMFCs[key].ResetAlarmChecker();
  1854. // _gasMFCs[key].ResetWarningChecker();
  1855. // }
  1856. // //APC.ResetAlarmChecker();
  1857. // //APC.ResetWarningChecker();
  1858. //}
  1859. //#endregion
  1860. //#endregion
  1861. private bool SetN2PurgeMode(out string reason, int time, object[] param)
  1862. {
  1863. reason = string.Empty;
  1864. var mode = param[0].ToString();
  1865. switch (mode)
  1866. {
  1867. case "Auto":
  1868. {
  1869. _N2PurgeMode = N2PurgeMode.Auto;
  1870. break;
  1871. }
  1872. case "Manual_N2Purge":
  1873. {
  1874. _N2PurgeMode = N2PurgeMode.Manual_N2Purge;
  1875. break;
  1876. }
  1877. case "Manual_ATM":
  1878. {
  1879. _N2PurgeMode = N2PurgeMode.Manual_ATM;
  1880. break;
  1881. }
  1882. case "Manual_Maintenance":
  1883. {
  1884. _N2PurgeMode = N2PurgeMode.Manual_Maintenance;
  1885. break;
  1886. }
  1887. case "Auto_Check":
  1888. {
  1889. _N2PurgeMode = N2PurgeMode.Auto_Check;
  1890. break;
  1891. }
  1892. }
  1893. return true;
  1894. }
  1895. private void SetHeaterControlParameters(object[] param)
  1896. {
  1897. //Mode参数;Correct Table;PID Table
  1898. //"Heater;Parameter\\TempCorrection\\tempCorrect,2,Name2;Parameter\\TempPID\\tempPID,3,Name3"
  1899. if (param == null || param.Length == 0)
  1900. {
  1901. EV.PostWarningLog(Module, $"Invalid heater parameter");
  1902. return;
  1903. }
  1904. var paras = param[0].ToString().Split(';');
  1905. if (paras == null || paras.Length < 3)
  1906. {
  1907. EV.PostWarningLog(Module, $"Invalid heater parameter");
  1908. return;
  1909. }
  1910. var controlMode = paras[0];
  1911. var correct = paras[1];
  1912. var pid = paras[2];
  1913. HeaterU.SetControlMode(controlMode);
  1914. HeaterCU.SetControlMode(controlMode);
  1915. HeaterC.SetControlMode(controlMode);
  1916. HeaterCL.SetControlMode(controlMode);
  1917. HeaterL.SetControlMode(controlMode);
  1918. SetHeaterCorrectParameters(correct);
  1919. SetHeaterPIDParameters(pid);
  1920. }
  1921. private void SetHeaterCorrectParameters(string correct)
  1922. {
  1923. HeaterU.SetCorrectParameters(correct);
  1924. HeaterCU.SetCorrectParameters(correct);
  1925. HeaterC.SetCorrectParameters(correct);
  1926. HeaterCL.SetCorrectParameters(correct);
  1927. HeaterL.SetCorrectParameters(correct);
  1928. }
  1929. private void SetHeaterPIDParameters(string pid)
  1930. {
  1931. HeaterU.SetPIDParameters(pid);
  1932. HeaterCU.SetPIDParameters(pid);
  1933. HeaterC.SetPIDParameters(pid);
  1934. HeaterCL.SetPIDParameters(pid);
  1935. HeaterL.SetPIDParameters(pid);
  1936. }
  1937. private bool SetCEXHEnable(object[] param)
  1938. {
  1939. if (param != null && param.Length > 0)
  1940. {
  1941. bool.TryParse(param[0].ToString(), out bool isEnable);
  1942. _fFUs.ForEach(a =>a.SetSwitch(isEnable));
  1943. }
  1944. return true;
  1945. }
  1946. private bool SetHTR1Enable(object[] param)
  1947. {
  1948. if (param != null && param.Length > 0)
  1949. {
  1950. bool.TryParse(param[0].ToString(), out bool isEnable);
  1951. SC.SetItemValue($"PM1.IsHTR1Enable", isEnable);
  1952. TrigHeaterAllEnable?.SetTrigger(isEnable, out _);
  1953. }
  1954. return true;
  1955. }
  1956. private bool SetHTR2Enable(object[] param)
  1957. {
  1958. if (param != null && param.Length > 0)
  1959. {
  1960. bool.TryParse(param[0].ToString(), out bool isEnable);
  1961. SC.SetItemValue($"PM1.IsHTR2Enable", isEnable);
  1962. }
  1963. return true;
  1964. }
  1965. private bool SetHTR3Enable(object[] param)
  1966. {
  1967. if (param != null && param.Length > 0)
  1968. {
  1969. bool.TryParse(param[0].ToString(), out bool isEnable);
  1970. SC.SetItemValue($"PM1.IsHTR3Enable", isEnable);
  1971. }
  1972. return true;
  1973. }
  1974. }
  1975. }