PMModuleDevice.cs 88 KB

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