MAIN.TcPOU 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
  3. <POU Name="MAIN" Id="{f3b23004-2d2c-4ebb-9aed-d7be3f27e3a6}" SpecialFunc="None">
  4. <Declaration><![CDATA[PROGRAM MAIN
  5. VAR
  6. //TwincatState
  7. EtherCAT_State AT%I* :UINT:=8;
  8. //VpwHotConnectState
  9. EtherCat_State_HotConnect_VPW AT%I* :UINT:=8;
  10. //Res12HotConnectState
  11. EtherCat_State_HotConnect_RES1_2 AT%I* :UINT:=8;
  12. //Res34HotConnectState
  13. EtherCat_State_HotConnect_RES3_4 AT%I* :UINT:=8;
  14. //FacilityHotConnectState
  15. EtherCat_State_HotConnect_Facility AT%I* :UINT:=8;
  16. //Plating12HotConnectState
  17. EtherCat_State_HotConnect_PlatingCell1_2 AT%I* :UINT:=8;
  18. //Plating34HotConnectState
  19. EtherCat_State_HotConnect_PlatingCell3_4 AT%I* :UINT:=8;
  20. //SrdHotConnectState
  21. EtherCat_State_HotConnect_SRD AT%I* :UINT:=8;
  22. //MainCommErr
  23. Safety_ComErr AT%I* :BOOL;
  24. //MainFbErr
  25. Safety_FbErr AT%I* :BOOL;
  26. //VpwCommErr
  27. Safety_ComErr_VPW AT%I* :BOOL;
  28. //VpwFbErr
  29. Safety_FbErr_VPW AT%I* :BOOL;
  30. //Res12CommErr
  31. Safety_ComErr_RES1_2 AT%I* :BOOL;
  32. //Res12FbErr
  33. Safety_FbErr_RES1_2 AT%I* :BOOL;
  34. //Res34CommErr
  35. Safety_ComErr_RES3_4 AT%I* :BOOL;
  36. //Res34FbErr
  37. Safety_FbErr_RES3_4 AT%I* :BOOL;
  38. //FacilityCommErr
  39. Safety_ComErr_Facility AT%I* :BOOL;
  40. //FacilityFbErr
  41. Safety_FbErr_Facility AT%I* :BOOL;
  42. //Plating12CommErr
  43. Safety_ComErr_PlatingCell1_2 AT%I* :BOOL;
  44. //Plating12FbErr
  45. Safety_FbErr_PlatingCell1_2 AT%I* :BOOL;
  46. //Plating34CommErr
  47. Safety_ComErr_PlatingCell3_4 AT%I* :BOOL;
  48. //Plating34FbErr
  49. Safety_FbErr_PlatingCell3_4 AT%I* :BOOL;
  50. //SrdCommErr
  51. Safety_ComErr_SRD AT%I* :BOOL;
  52. //SrdFbErr
  53. Safety_FbErr_SRD AT%I* :BOOL;
  54. //Cell12DoorsLeftLocked
  55. Safety_SDI_CHANNEL_EL1904_NS100_1 AT%I* :BOOL;
  56. //Cell12DoorsRightLocked
  57. Safety_SDI_CHANNEL_EL1904_NS100_2 AT%I* :BOOL;
  58. //Cell34DoorsLeftLocked
  59. Safety_SDI_CHANNEL_EL1904_NS100_3 AT%I* :BOOL;
  60. //Cell34DoorsRightLocked
  61. Safety_SDI_CHANNEL_EL1904_NS100_4 AT%I* :BOOL;
  62. //AlignerDoorClosed
  63. Safety_SDI_CHANNEL_EL1904_NS101_1 AT%I* :BOOL;
  64. //CassetteDoorsLeftLocked
  65. Safety_SDI_CHANNEL_EL1904_NS101_2 AT%I* :BOOL;
  66. //CassetteDoorsRightLocked
  67. Safety_SDI_CHANNEL_EL1904_NS101_3 AT%I* :BOOL;
  68. //Res12DoorClosed
  69. Safety_SDI_CHANNEL_EL1904_NS101_4 AT%I* :BOOL;
  70. //Res34DoorClosed
  71. Safety_SDI_CHANNEL_EL1904_NS102_1 AT%I* :BOOL;
  72. //VpwDoorClosed
  73. Safety_SDI_CHANNEL_EL1904_NS102_2 AT%I* :BOOL;
  74. //PlumblingDoorClosed
  75. Safety_SDI_CHANNEL_EL1904_NS102_3 AT%I* :BOOL;
  76. //SrdPanelClosed
  77. Safety_SDI_CHANNEL_EL1904_NS102_4 AT%I* :BOOL;
  78. //HaltButtonLeft
  79. Safety_SDI_CHANNEL_EL1904_NS103_1 AT%I* :BOOL;
  80. //HaltButtonRight
  81. Safety_SDI_CHANNEL_EL1904_NS103_2 AT%I* :BOOL;
  82. //RunStop
  83. Safety_RunStop AT%Q* :BOOL;
  84. //ErrAck
  85. Safety_ErrAck AT%Q* :BOOL;
  86. //VpwStoEstopRestart
  87. Safety_VPW_STO_EStop_Restart AT%Q* :BOOL;
  88. //Res12StoEstopRestart
  89. Safety_RES1_2_STO_EStop_Restart AT%Q* :BOOL;
  90. //Res34StoEstopRestart
  91. Safety_RES3_4_STO_EStop_Restart AT%Q* :BOOL;
  92. //PlatingCell12Sto1EstopRestart
  93. Safety_PlatingCell1_2_STO_1_EStop_Restart AT%Q* :BOOL;
  94. //PlatingCell12Sto2EstopRestart
  95. Safety_PlatingCell1_2_STO_2_EStop_Restart AT%Q* :BOOL;
  96. //PlatingCell34Sto1EstopRestart
  97. Safety_PlatingCell3_4_STO_1_EStop_Restart AT%Q* :BOOL;
  98. //PlatingCell34Sto2EstopRestart
  99. Safety_PlatingCell3_4_STO_2_EStop_Restart AT%Q* :BOOL;
  100. //FacilityStoEstopRestart
  101. Safety_Facility_STO_EStop_Restart AT%Q* :BOOL;
  102. //SrdStoEstopRestart
  103. Safety_SRD_STO_EStop_Restart AT%Q* :BOOL;
  104. //ReqAlignerDoorLock
  105. Safety_ReqAlignerDoorsLock AT%Q* :BOOL;
  106. //ReqCassetteDoorsLock
  107. Safety_ReqCassetteDoorsLock AT%Q* :BOOL;
  108. //ReqCell12DoorsLock
  109. Safety_ReqCell1_2DoorsLock AT%Q* :BOOL;
  110. //ReqCell34DoorsLock
  111. Safety_ReqCell3_4DoorsLock AT%Q* :BOOL;
  112. //Reservoir12CAPumpEdm
  113. RES1_2_SDI_4CHANNEL_EL1904_NS401_1 AT%I* :BOOL;
  114. //Reservoir34CAPumpEdm
  115. RES3_4_SDI_4CHANNEL_EL1904_NS431_1 AT%I* :BOOL;
  116. //ResDegas1PumpEdm
  117. RES1_2_SDI_4CHANNEL_EL1904_NS400_1 AT%I* :BOOL;
  118. //ResDegas2PumpEdm
  119. RES3_4_SDI_4CHANNEL_EL1904_NS430_1 AT%I* :BOOL;
  120. //VpwVacuumPumpEdm and VpwBoosterPumpEdm
  121. VPW_SDI_4CHANNEL_EL1904_NS300_2 AT%I* :BOOL;
  122. //ExtFluidEnableEdm
  123. Facility_SDI_4CHANNEL_EL1904_NS200_1 AT%I* :BOOL;
  124. //Reservoir1CALevelHigh
  125. RES1_2_SDI_4CHANNEL_EL1904_NS400_2 AT%I* :BOOL;
  126. //Reservoir2CALevelHigh
  127. RES1_2_SDI_4CHANNEL_EL1904_NS400_3 AT%I* :BOOL;
  128. //Reservoir3CALevelHigh
  129. RES3_4_SDI_4CHANNEL_EL1904_NS430_2 AT%I* :BOOL;
  130. //Reservoir4CALevelHigh
  131. RES3_4_SDI_4CHANNEL_EL1904_NS430_3 AT%I* :BOOL;
  132. //VpwCell1RotationStoEdm
  133. VPW_SDI_4CHANNEL_EL1904_NS300_1 AT%I* :BOOL;
  134. //VpwCell2RotationStoEdm
  135. VPW_SDI_4CHANNEL_EL1904_NS300_4 AT%I* :BOOL;
  136. //PlatingCell1RotationStoEdm
  137. RES1_2_SDI_4CHANNEL_EL1904_NS500_2 AT%I* :BOOL;
  138. //PlatingCell2RotationStoEdm
  139. RES1_2_SDI_4CHANNEL_EL1904_NS500_3 AT%I* :BOOL;
  140. //PlatingCell3RotationStoEdm
  141. RES1_2_SDI_4CHANNEL_EL1904_NS531_2 AT%I* :BOOL;
  142. //PlatingCell4RotationStoEdm
  143. RES3_4_SDI_4CHANNEL_EL1904_NS531_1 AT%I* :BOOL;
  144. //PlatingCell12VerticalStoEdm
  145. RES1_2_SDI_4CHANNEL_EL1904_NS500_1 AT%I* :BOOL;
  146. //PlatingCell34VerticalStoEdm
  147. RES1_2_SDI_4CHANNEL_EL1904_NS531_1 AT%I* :BOOL;
  148. //Srd1RotationStoEdm
  149. SRD1_SDI_4CHANNEL_EL1904_NS300_1 AT%I* :BOOL;
  150. //Srd2RotationStoEdm
  151. SRD2_SDI_4CHANNEL_EL1904_NS300_4 AT%I* :BOOL;
  152. //Sample1FluidDetect
  153. Facility_DI_16CHANNEL_EL1819_N000_1 AT%I* :BOOL;
  154. //Sample2FluidDetect
  155. Facility_DI_16CHANNEL_EL1819_N000_2 AT%I* :BOOL;
  156. //FrameContainmentLeakDetected
  157. Facility_DI_16CHANNEL_EL1819_N000_10 AT%I* :BOOL;
  158. //VacuumPrewetLeakDetected
  159. VPW_DI_16CHANNEL_EL1819_N100_3 AT%I* :BOOL;
  160. //PlatingCell12LeakDetected
  161. RES1_2_DI_16CHANNEL_4_20MA_EL1819_N200_7 AT%I* :BOOL;
  162. //PlatingCell34LeakDetected
  163. RES3_4_DI_8CHANNEL_4_20MA_EL1008_N230_7 AT%I* :BOOL;
  164. //CassetteAPlaced
  165. Facility_DI_16CHANNEL_EL1819_N000_11 AT%I* :BOOL;
  166. //CassetteA100M
  167. Facility_DI_16CHANNEL_EL1819_N000_12 AT%I* :BOOL;
  168. //CassetteA200M
  169. Facility_DI_16CHANNEL_EL1819_N000_13 AT%I* :BOOL;
  170. //CassetteBPlaced
  171. Facility_DI_16CHANNEL_EL1819_N000_14 AT%I* :BOOL;
  172. //CassetteB100M
  173. Facility_DI_16CHANNEL_EL1819_N000_15 AT%I* :BOOL;
  174. //CassetteB200M
  175. Facility_DI_16CHANNEL_EL1819_N000_16 AT%I* :BOOL;
  176. //PH3
  177. Facility_AI_8CHANNEL_4_20mA_EL3058_N005_1 AT%I* :INT;
  178. //HouseChilledWaterFlow
  179. Facility_AI_8CHANNEL_4_20mA_EL3058_N005_5 AT%I* :INT:=10000;
  180. //SystemExhaust1
  181. Facility_AI_8CHANNEL_4_20mA_EL3058_N006_1 AT%I* :INT:=12000;
  182. //SystemExhaust2
  183. Facility_AI_8CHANNEL_4_20mA_EL3058_N006_2 AT%I* :INT:=12000;
  184. //DiWaterPressure
  185. Facility_AI_8CHANNEL_4_20mA_EL3058_N006_5 AT%I* :INT:=25000;
  186. //Nitrogen1BPressure
  187. Facility_AI_8CHANNEL_0_10V_EL3068_N007_1 AT%I* :INT:=5700;
  188. //Nitrogen1APressure
  189. Facility_AI_8CHANNEL_0_10V_EL3068_N007_2 AT%I* :INT:=8000;
  190. //Nitrogen2BPressure
  191. Facility_AI_8CHANNEL_0_10V_EL3068_N007_3 AT%I* :INT:=5700;
  192. //Nitrogen2APressure
  193. Facility_AI_8CHANNEL_0_10V_EL3068_N007_4 AT%I* :INT:=8000;
  194. //CDA2Pressure
  195. Facility_AI_8CHANNEL_0_10V_EL3068_N007_5 AT%I* :INT:=10000;
  196. //CDA1Pressure
  197. Facility_AI_8CHANNEL_0_10V_EL3068_N007_6 AT%I* :INT:=10000;
  198. //ExternalCDAPressure
  199. Facility_AI_8CHANNEL_0_10V_EL3068_N007_7 AT%I* :INT:=10000;
  200. //VacuumPressure
  201. Facility_AI_8CHANNEL_0_10V_EL3068_N007_8 AT%I* :INT:=4000;
  202. //N2BlanketPressure
  203. Facility_AI_8CHANNEL_0_10V_EL3068_N008_1 AT%I* :INT;
  204. //N2OverFlowPressure
  205. Facility_AI_8CHANNEL_0_10V_EL3068_N008_2 AT%I* :INT;
  206. //DIReplenFlow
  207. Facility_COUNTER_2CHANNEL_EL1512_N009_1_Counter_value AT%I* :UDINT;
  208. //ClamshellCylinderPressure
  209. PlatingCell1_2_AI_8CHANNEL_0_10V_EL3086_N402_3 AT%I* :UDINT;
  210. //TiltCylinderPressure
  211. PlatingCell1_2_AI_8CHANNEL_0_10V_EL3086_N402_4 AT%I* :UDINT;
  212. //DiwReturnFlow
  213. Facility_AI_8CHANNEL_4_20mA_EL3058_N006_106 AT%I* :INT:=10000;
  214. //N2Enable
  215. Facility_DO_16CHANNEL_EL2809_N002_1 AT%Q* :BOOL;
  216. //CDAEnable
  217. Facility_DO_16CHANNEL_EL2809_N002_2 AT%Q* :BOOL;
  218. //ExternalCDAEnable
  219. Facility_DO_16CHANNEL_EL2809_N002_3 AT%Q* :BOOL;
  220. //ExternalCDAEnable
  221. Facility_DO_16CHANNEL_EL2809_N002_4 AT%Q* :BOOL;
  222. //ExternalCDAEnable
  223. Facility_DO_16CHANNEL_EL2809_N002_5 AT%Q* :BOOL;
  224. //DiReplenEnable
  225. Facility_DO_16CHANNEL_EL2809_N002_6 AT%Q* :BOOL;
  226. //DiFillEnable
  227. Facility_DO_16CHANNEL_EL2809_N002_7 AT%Q* :BOOL;
  228. //VPW1 Rotation Status word
  229. VPW1RotationStatusWord AT%I* :UINT;
  230. //VPW1 Rotation digital inputs
  231. VPW1RotationDigitalInputs AT%I* :UDINT;
  232. //VPW1 Rotation position error
  233. VPW1RotationPositionError AT%I* :UDINT;
  234. //VPW1 Rotation actual velocity
  235. VPW1RotationActualVelocity AT%I* :UDINT;
  236. //VPW1 Rotation actual torque
  237. VPW1RotationActualTorque AT%I* :DINT;
  238. //VPW1 Rotation motor position
  239. VPW1RotationMotorPosition AT%I* :DINT;
  240. //VPW1 Rotation control word
  241. VPW1RotationControlWord AT%Q* :UINT;
  242. //VPW1 Rotation mode of operation
  243. VPW1RotationModeOfOperation AT%Q* :SINT;
  244. //VPW1 Rotation target position
  245. VPW1RotationTargetPosition AT%Q* :DINT;
  246. //VPW1 Rotation profile volecity
  247. VPW1RotationProfileVelocity AT%Q* :DINT;
  248. //VPW1 Rotation profile acceleration
  249. VPW1RotationProfileAccel AT%Q* :UDINT;
  250. //VPW1 Rotation profile deceleration
  251. VPW1RotationProfileDecel AT%Q* :UDINT;
  252. //VPW1 Rotation motor step
  253. VPW1RotationMotorStep :DINT;
  254. //VPW2 Rotation Status word
  255. VPW2RotationStatusWord AT%I* :UINT;
  256. //VPW2 Rotation digital inputs
  257. VPW2RotationDigitalInputs AT%I* :UDINT;
  258. //VPW2 Rotation position error
  259. VPW2RotationPositionError AT%I* :UDINT;
  260. //VPW2 Rotation actual velocity
  261. VPW2RotationActualVelocity AT%I* :UDINT;
  262. //VPW2 Rotation actual torque
  263. VPW2RotationActualTorque AT%I* :DINT;
  264. //VPW2 Rotation motor position
  265. VPW2RotationMotorPosition AT%I* :DINT;
  266. //VPW2 Rotation control word
  267. VPW2RotationControlWord AT%Q* :UINT;
  268. //VPW2 Rotation mode of operation
  269. VPW2RotationModeOfOperation AT%Q* :SINT;
  270. //VPW2 Rotation target position
  271. VPW2RotationTargetPosition AT%Q* :DINT;
  272. //VPW2 Rotation profile volecity
  273. VPW2RotationProfileVelocity AT%Q* :DINT;
  274. //VPW2 Rotation profile acceleration
  275. VPW2RotationProfileAccel AT%Q* :UDINT;
  276. //VPW2 Rotation profile deceleration
  277. VPW2RotationProfileDecel AT%Q* :UDINT;
  278. //VPW2 Rotation motor step
  279. VPW2RotationMotorStep :DINT;
  280. //r_VPW_CHAMBER_CLOSED
  281. VPW_DI_16CHANNEL_EL1819_N100_1 AT%I* :BOOL;
  282. //r_VPW_CHAMBER_OPENED
  283. VPW_DI_16CHANNEL_EL1819_N100_2 AT%I* :BOOL;
  284. //r_VPW_VAC_PUMP_PRESSURE
  285. VPW_AI_8CHANNEL_4_20mA_EL3058_N102_6 AT%I* :DINT;
  286. //r_VPW_BOOSTER_PUMP_STATUS
  287. VPW_DI_16CHANNEL_EL1819_N100_9 AT%I* :BOOL;
  288. //r_VPW_DIW_TOTAL_FLOW
  289. VPW_AI_8CHANNEL_4_20mA_EL3058_N102_1 AT%I* :DINT;
  290. //r_VPW_DIW_PRESSURE
  291. VPW_AI_8CHANNEL_4_20mA_EL3058_N102_4 AT%I* :DINT :=10000;
  292. //r_VPW_DEGAS_PUMP_PRESSURE
  293. VPW_AI_8CHANNEL_4_20mA_EL3058_N102_5 AT%I* :DINT;
  294. //c_VPW_CHAMBER_CLOSE
  295. MOTION_DO_16CHANNEL_EL2809_N401_15 AT%Q* :BOOL;
  296. //c_VPW_VACUUM_PUMP_POWER
  297. VPW_DO_16CHANNEL_EL2809_101_5 AT%Q* :BOOL;
  298. //c_VPW_DEGAS_PUMP_ENABLE
  299. VPW_DO_16CHANNEL_EL2809_101_6 AT%Q* :BOOL;
  300. //c_VPW_BOOSTER_PUMP_ENABLE
  301. VPW_DO_16CHANNEL_EL2809_101_7 AT%Q* :BOOL;
  302. //c_VPW_VACUUM_PUMP_ENABLE
  303. MAIN_IO_RELAY_4CHANNEL_EL2624_N106_1 AT%Q* :BOOL;
  304. //c_VPW_VACUUM_PUMP_SPEED_ENABLE
  305. MAIN_IO_RELAY_4CHANNEL_EL2624_N106_2 AT%Q* :BOOL;
  306. //c_VPW_VACUUM_PUMP_SPEED
  307. VPW_AO_8CHANNEL_0_10V_EL4008_N104_1 AT%Q* :DINT;
  308. //c_VPW_BOOSTER_PUMP_SPPED
  309. VPW_AO_8CHANNEL_0_10V_EL4008_N104_5 AT%Q* :DINT;
  310. //c_VPW_DIW_EABLE c_VPW_DIW_PROCESS c_VPW_1_FLOW_DRIP c_VPW_1_FLOW_SMALL c_VPW_1_FLOW_LARGE c_VPW_2_FLOW_DRIP c_VPW_2_FLOW_SMALL c_VPW_2_FLOW_LARGE
  311. VPW_PNEU_SMC_EX260_BYTE0 AT%Q* :BYTE;
  312. //c_VPW_DIW_DEGAS c_VPW_DEGAS_ADJUST c_VPW_DEGAS_PURGE c_VPW_1_VACUUM_VALVE c_VPW_1_VENT_VALVE c_VPW_2_VACUUM_VALVE c_VPW_2_VENT_VALVE
  313. VPW_PNEU_SMC_EX260_BYTE1 AT%Q* :BYTE;
  314. //c_VPW_1_DIW_DRAIN c_VPW_2_DIW_DRAIN
  315. VPW_PNEU_SMC_EX260_BYTE2 AT%Q* :BYTE;
  316. //r_VPW_DIW_CELL_1_FLOW
  317. VPW_AI_8CHANNEL_4_20mA_EL3058_N102_2 AT%I* :DINT;
  318. //r_VPW_CELL_1_VAC_PRESSURE
  319. VPW_AI_8CHANNEL_0_10V_EL3068_N105_1 AT%I* :DINT;
  320. //r_VPW_DIW_CELL_2_FLOW
  321. VPW_AI_8CHANNEL_4_20mA_EL3058_N102_3 AT%I* :DINT;
  322. //r_VPW_CELL_2_VAC_PRESSURE
  323. VPW_AI_8CHANNEL_0_10V_EL3068_N105_2 AT%I* :DINT;
  324. //c_System_Alarm
  325. Facility_DO_16CHANNEL_EL2809_N003_1 AT%I* :BOOL;
  326. //c_Pole_Red
  327. Facility_DO_16CHANNEL_EL2809_N003_2 AT%I* :BOOL;
  328. //c_Pole_Amber
  329. Facility_DO_16CHANNEL_EL2809_N003_3 AT%I* :BOOL;
  330. //c_Pole_Green
  331. Facility_DO_16CHANNEL_EL2809_N003_4 AT%I* :BOOL;
  332. //c_Pole_Blue
  333. Facility_DO_16CHANNEL_EL2809_N003_5 AT%I* :BOOL;
  334. //c_System_Alarm2
  335. Facility_DO_16CHANNEL_EL2809_N003_6 AT%I* :BOOL;
  336. //Reservoir1 CaPumpRunning
  337. RES1_2_DI_8CHANNEL_EL1008_N200_1 AT%I* :BOOL;
  338. //Reservoir1 AnTowerHigh
  339. RES1_2_DI_8CHANNEL_EL1008_N200_3 AT%I* :BOOL;
  340. //Reservoir1 AnTowerLow
  341. RES1_2_DI_8CHANNEL_EL1008_N200_4 AT%I* :BOOL;
  342. //Reservoir1 AnFlow
  343. RES1_2_AI_8CHANNEL_4_20MA_EL3058_N202_1 AT%I* :DINT:=10000;
  344. //Reservoir1 CaFlow
  345. RES1_2_AI_8CHANNEL_4_20MA_EL3058_N202_3 AT%I* :DINT:=10000;
  346. //Reservoir1 CaWaterLevel
  347. RES1_2_AI_8CHANNEL_4_20MA_EL3058_N202_5 AT%I* :DINT:=10000;
  348. //Reservoir1 AnPumpEnable
  349. RES1_2_DO_16CHANNEL_EL2809_N201_1 AT%Q* :BOOL;
  350. //Reservoir1 CaPumpEnable
  351. RES1_2_DO_16CHANNEL_EL2809_N201_3 AT%Q* :BOOL;
  352. //Reservoir1 ReturnValveEnable
  353. RES1_2_DO_16CHANNEL_EL2809_N201_5 AT%Q* :BOOL;
  354. //Reservoir1 AnPumpSpeed
  355. RES1_2_AO_8CHANNEL_0_10V_EL4008_N204_1 AT%Q* :DINT;
  356. //Reservoir1 CaPumpSpeed
  357. RES1_2_AO_4CHANNEL_4_20mA_EL4024_N205_1 AT%Q* :DINT;
  358. //Reservoir1 ReturnValveOpening
  359. RES1_2_AO_4CHANNEL_4_20mA_EL4024_N205_3 AT%Q* :DINT;
  360. //Reservoir1 CaDiReplen SampleOut...
  361. RES1_2_PNEU_SMC_EX260_V01_V04 AT%Q* :BYTE;
  362. END_VAR
  363. ]]></Declaration>
  364. <Implementation>
  365. <ST><![CDATA[IF VPW1RotationControlWord =7 THEN
  366. VPW1RotationStatusWord := 563;
  367. ELSE IF VPW1RotationControlWord =6 THEN
  368. VPW1RotationStatusWord :=33;
  369. ELSE IF VPW1RotationControlWord=15 THEN
  370. VPW1RotationStatusWord :=567;
  371. VPW1RotationDigitalInputs.22:=FALSE;
  372. ELSE IF VPW1RotationControlWord=31 THEN
  373. VPW1RotationDigitalInputs.22:=TRUE;
  374. VPW1RotationStatusWord :=5687;
  375. VPW1RotationMotorPosition:=0;
  376. END_IF
  377. END_IF
  378. END_IF
  379. END_IF
  380. IF VPW1RotationModeOfOperation=1 THEN
  381. IF VPW1RotationControlWord=63 THEN
  382. IF VPW1RotationMotorPosition<VPW1RotationTargetPosition THEN
  383. VPW1RotationMotorStep :=(VPW1RotationTargetPosition-VPW1RotationMotorPosition)/20;
  384. IF VPW1RotationMotorStep >1 THEN
  385. VPW1RotationMotorPosition :=VPW1RotationMotorPosition+VPW1RotationMotorStep;
  386. ELSE
  387. VPW1RotationMotorPosition :=VPW1RotationMotorPosition+1;
  388. END_IF
  389. ELSE IF VPW1RotationMotorPosition>VPW1RotationTargetPosition THEN
  390. VPW1RotationMotorStep :=(VPW1RotationMotorPosition-VPW1RotationTargetPosition)/20;
  391. IF VPW1RotationMotorStep >1 THEN
  392. VPW1RotationMotorPosition :=VPW1RotationMotorPosition-VPW1RotationMotorStep;
  393. ELSE
  394. VPW1RotationMotorPosition :=VPW1RotationMotorPosition-1;
  395. END_IF
  396. ELSE
  397. VPW1RotationStatusWord :=1591;
  398. END_IF
  399. END_IF
  400. ELSE IF VPW1RotationControlWord=319 THEN
  401. VPW1RotationStatusWord :=1591;
  402. END_IF
  403. END_IF
  404. END_IF
  405. IF VPW2RotationControlWord =7 THEN
  406. VPW2RotationStatusWord := 563;
  407. ELSE IF VPW2RotationControlWord =6 THEN
  408. VPW2RotationStatusWord :=33;
  409. ELSE IF VPW2RotationControlWord=15 THEN
  410. VPW2RotationStatusWord :=567;
  411. VPW2RotationDigitalInputs.22:=FALSE;
  412. ELSE IF VPW2RotationControlWord=31 THEN
  413. VPW2RotationDigitalInputs.22:=TRUE;
  414. VPW2RotationStatusWord :=5687;
  415. VPW2RotationMotorPosition:=0;
  416. END_IF
  417. END_IF
  418. END_IF
  419. END_IF
  420. IF VPW2RotationModeOfOperation=1 THEN
  421. IF VPW2RotationControlWord=63 THEN
  422. IF VPW2RotationMotorPosition<VPW2RotationTargetPosition THEN
  423. VPW2RotationMotorStep :=(VPW2RotationTargetPosition-VPW2RotationMotorPosition)/20;
  424. IF VPW2RotationMotorStep >1 THEN
  425. VPW2RotationMotorPosition :=VPW2RotationMotorPosition+VPW2RotationMotorStep;
  426. ELSE
  427. VPW2RotationMotorPosition :=VPW2RotationMotorPosition+1;
  428. END_IF
  429. ELSE IF VPW2RotationMotorPosition>VPW2RotationTargetPosition THEN
  430. VPW2RotationMotorStep :=(VPW2RotationMotorPosition-VPW2RotationTargetPosition)/20;
  431. IF VPW2RotationMotorStep >1 THEN
  432. VPW2RotationMotorPosition :=VPW2RotationMotorPosition-VPW2RotationMotorStep;
  433. ELSE
  434. VPW2RotationMotorPosition :=VPW2RotationMotorPosition-1;
  435. END_IF
  436. ELSE
  437. VPW2RotationStatusWord :=1591;
  438. END_IF
  439. END_IF
  440. ELSE IF VPW2RotationControlWord=319 THEN
  441. VPW2RotationStatusWord :=1591;
  442. END_IF
  443. END_IF
  444. END_IF
  445. IF VPW_DO_16CHANNEL_EL2809_101_7=TRUE THEN
  446. VPW_DI_16CHANNEL_EL1819_N100_9:=FALSE;
  447. VPW_AI_8CHANNEL_4_20mA_EL3058_N102_1:=10000;
  448. ELSE IF VPW_DO_16CHANNEL_EL2809_101_7=FALSE THEN
  449. VPW_DI_16CHANNEL_EL1819_N100_9:=TRUE;
  450. VPW_AI_8CHANNEL_4_20mA_EL3058_N102_1:=0;
  451. END_IF
  452. END_IF
  453. IF MOTION_DO_16CHANNEL_EL2809_N401_15=TRUE THEN
  454. VPW_DI_16CHANNEL_EL1819_N100_1:=TRUE;
  455. VPW_DI_16CHANNEL_EL1819_N100_2:=FALSE;
  456. ELSE
  457. VPW_DI_16CHANNEL_EL1819_N100_1:=FALSE;
  458. VPW_DI_16CHANNEL_EL1819_N100_2:=TRUE;
  459. END_IF
  460. IF VPW_PNEU_SMC_EX260_BYTE0.2=TRUE THEN
  461. VPW_AI_8CHANNEL_4_20mA_EL3058_N102_2:=6000;
  462. END_IF
  463. IF VPW_PNEU_SMC_EX260_BYTE0.3=TRUE THEN
  464. VPW_AI_8CHANNEL_4_20mA_EL3058_N102_2:=16000;
  465. END_IF
  466. IF VPW_PNEU_SMC_EX260_BYTE0.4=TRUE THEN
  467. VPW_AI_8CHANNEL_4_20mA_EL3058_N102_2:=22000;
  468. END_IF
  469. IF VPW_PNEU_SMC_EX260_BYTE0.4=FALSE AND VPW_PNEU_SMC_EX260_BYTE0.3=FALSE AND VPW_PNEU_SMC_EX260_BYTE0.2=FALSE THEN
  470. VPW_AI_8CHANNEL_4_20mA_EL3058_N102_2:=0;
  471. END_IF
  472. IF VPW_PNEU_SMC_EX260_BYTE0.5=TRUE THEN
  473. VPW_AI_8CHANNEL_4_20mA_EL3058_N102_3:=6000;
  474. END_IF
  475. IF VPW_PNEU_SMC_EX260_BYTE0.6=TRUE THEN
  476. VPW_AI_8CHANNEL_4_20mA_EL3058_N102_3:=16000;
  477. END_IF
  478. IF VPW_PNEU_SMC_EX260_BYTE0.7=TRUE THEN
  479. VPW_AI_8CHANNEL_4_20mA_EL3058_N102_3:=22000;
  480. END_IF
  481. IF VPW_PNEU_SMC_EX260_BYTE0.5=FALSE AND VPW_PNEU_SMC_EX260_BYTE0.6=FALSE AND VPW_PNEU_SMC_EX260_BYTE0.7=FALSE THEN
  482. VPW_AI_8CHANNEL_4_20mA_EL3058_N102_3:=0;
  483. END_IF
  484. //safety lock
  485. IF Safety_ReqAlignerDoorsLock=TRUE THEN
  486. Safety_SDI_CHANNEL_EL1904_NS101_1:=TRUE;
  487. ELSE
  488. Safety_SDI_CHANNEL_EL1904_NS101_1:=FALSE;
  489. END_IF
  490. IF Safety_ReqCassetteDoorsLock=TRUE THEN
  491. Safety_SDI_CHANNEL_EL1904_NS101_2:=TRUE;
  492. Safety_SDI_CHANNEL_EL1904_NS101_3:=TRUE;
  493. ELSE
  494. Safety_SDI_CHANNEL_EL1904_NS101_2:=FALSE;
  495. Safety_SDI_CHANNEL_EL1904_NS101_3:=FALSE;
  496. END_IF
  497. IF Safety_ReqCell1_2DoorsLock=TRUE THEN
  498. Safety_SDI_CHANNEL_EL1904_NS100_1:=TRUE;
  499. Safety_SDI_CHANNEL_EL1904_NS100_2:=TRUE;
  500. ELSE
  501. Safety_SDI_CHANNEL_EL1904_NS100_1:=FALSE;
  502. Safety_SDI_CHANNEL_EL1904_NS100_2:=FALSE;
  503. END_IF
  504. IF Safety_ReqCell3_4DoorsLock=TRUE THEN
  505. Safety_SDI_CHANNEL_EL1904_NS100_3:=TRUE;
  506. Safety_SDI_CHANNEL_EL1904_NS100_4:=TRUE;
  507. ELSE
  508. Safety_SDI_CHANNEL_EL1904_NS100_3:=FALSE;
  509. Safety_SDI_CHANNEL_EL1904_NS100_4:=FALSE;
  510. END_IF
  511. IF MAIN_IO_RELAY_4CHANNEL_EL2624_N106_1=TRUE AND VPW_PNEU_SMC_EX260_BYTE1.3=TRUE AND VPW_PNEU_SMC_EX260_BYTE1.5=FALSE THEN
  512. VPW_AI_8CHANNEL_0_10V_EL3068_N105_1:=25000;
  513. ELSE
  514. VPW_AI_8CHANNEL_0_10V_EL3068_N105_1:=29500;
  515. END_IF
  516. IF MAIN_IO_RELAY_4CHANNEL_EL2624_N106_1=TRUE AND VPW_PNEU_SMC_EX260_BYTE1.4=TRUE AND VPW_PNEU_SMC_EX260_BYTE1.4=FALSE THEN
  517. VPW_AI_8CHANNEL_0_10V_EL3068_N105_2:=25000;
  518. ELSE
  519. VPW_AI_8CHANNEL_0_10V_EL3068_N105_2:=29500;
  520. END_IF
  521. //reservoir
  522. //reservoir 1 ca pump
  523. IF RES1_2_DO_16CHANNEL_EL2809_N201_3=TRUE THEN
  524. RES1_2_DI_8CHANNEL_EL1008_N200_1:=TRUE;
  525. ELSE
  526. RES1_2_DI_8CHANNEL_EL1008_N200_1:=FALSE;
  527. END_IF
  528. //reservoir 1 ca DIreplen
  529. IF RES1_2_PNEU_SMC_EX260_V01_V04.0=TRUE AND RES1_2_AI_8CHANNEL_4_20MA_EL3058_N202_5 <= 32760 THEN
  530. RES1_2_AI_8CHANNEL_4_20MA_EL3058_N202_5:= RES1_2_AI_8CHANNEL_4_20MA_EL3058_N202_5 + 10;
  531. END_IF]]></ST>
  532. </Implementation>
  533. <LineIds Name="MAIN">
  534. <LineId Id="52" Count="5" />
  535. <LineId Id="104" Count="0" />
  536. <LineId Id="59" Count="0" />
  537. <LineId Id="105" Count="0" />
  538. <LineId Id="61" Count="0" />
  539. <LineId Id="106" Count="0" />
  540. <LineId Id="62" Count="29" />
  541. <LineId Id="18" Count="0" />
  542. <LineId Id="135" Count="42" />
  543. <LineId Id="134" Count="0" />
  544. <LineId Id="287" Count="2" />
  545. <LineId Id="412" Count="0" />
  546. <LineId Id="290" Count="1" />
  547. <LineId Id="413" Count="0" />
  548. <LineId Id="292" Count="11" />
  549. <LineId Id="415" Count="0" />
  550. <LineId Id="414" Count="0" />
  551. <LineId Id="416" Count="0" />
  552. <LineId Id="425" Count="0" />
  553. <LineId Id="427" Count="2" />
  554. <LineId Id="286" Count="0" />
  555. <LineId Id="433" Count="2" />
  556. <LineId Id="432" Count="0" />
  557. <LineId Id="439" Count="2" />
  558. <LineId Id="438" Count="0" />
  559. <LineId Id="443" Count="14" />
  560. <LineId Id="442" Count="0" />
  561. <LineId Id="689" Count="0" />
  562. <LineId Id="688" Count="0" />
  563. <LineId Id="693" Count="1" />
  564. <LineId Id="696" Count="1" />
  565. <LineId Id="691" Count="0" />
  566. <LineId Id="701" Count="2" />
  567. <LineId Id="718" Count="0" />
  568. <LineId Id="704" Count="1" />
  569. <LineId Id="719" Count="0" />
  570. <LineId Id="700" Count="0" />
  571. <LineId Id="707" Count="2" />
  572. <LineId Id="720" Count="0" />
  573. <LineId Id="710" Count="1" />
  574. <LineId Id="721" Count="0" />
  575. <LineId Id="706" Count="0" />
  576. <LineId Id="713" Count="2" />
  577. <LineId Id="722" Count="0" />
  578. <LineId Id="716" Count="1" />
  579. <LineId Id="723" Count="0" />
  580. <LineId Id="712" Count="0" />
  581. <LineId Id="941" Count="0" />
  582. <LineId Id="690" Count="0" />
  583. <LineId Id="942" Count="0" />
  584. <LineId Id="944" Count="1" />
  585. <LineId Id="943" Count="0" />
  586. <LineId Id="947" Count="4" />
  587. <LineId Id="946" Count="0" />
  588. <LineId Id="1340" Count="2" />
  589. <LineId Id="1345" Count="0" />
  590. <LineId Id="1344" Count="0" />
  591. <LineId Id="1346" Count="0" />
  592. <LineId Id="1343" Count="0" />
  593. <LineId Id="1347" Count="2" />
  594. <LineId Id="1737" Count="1" />
  595. <LineId Id="1339" Count="0" />
  596. <LineId Id="1740" Count="1" />
  597. <LineId Id="1739" Count="0" />
  598. </LineIds>
  599. </POU>
  600. </TcPlcObject>