IO_EXCHANGE.TcPOU 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
  3. <POU Name="IO_EXCHANGE" Id="{f197fe3c-f147-431b-8c60-d0dc828e5b5f}" SpecialFunc="None">
  4. <Declaration><![CDATA[PROGRAM IO_EXCHANGE
  5. VAR
  6. WRITE_SINT : FB_EcCoESdoWrite ;
  7. sNetId : T_AmsNetId := '10.4.6.84.7.1'; (* NetId of EtherCAT Master *)
  8. nSlaveAddr_1 : UINT := 1003; (* Port Number of EtherCAT Slave *)
  9. SDO_WRITE : STR_SDO ;
  10. WRITE_DATA_SINT : USINT;
  11. WRITE_EN_SINT : BOOL;
  12. END_VAR
  13. ]]></Declaration>
  14. <Implementation>
  15. <ST><![CDATA[PLC_TO_UI();
  16. UI_TO_PLC();
  17. //************************HW-IO******************************************
  18. //C02
  19. GV.NDI. AV101_OPEN := ECC. CHAMBER_IN. C02 [ 1 ]; // AV101OPEN
  20. GV.NDI. AV101_CLOSE := ECC. CHAMBER_IN. C02 [ 2 ]; // AV101CLOSE
  21. GV.NDI. AV102_OPEN := ECC. CHAMBER_IN. C02 [ 3 ]; // AV102OPEN
  22. // GV.NDI. AV102_CLOSE := ECC. CHAMBER_IN. C02 [ 4 ]; // AV102CLOSE
  23. // GV.NDI. AV103_OPEN :=
  24. // GV.NDI. AV103_CLOSE :=
  25. GV.NDI. AV104_OPEN := ECC. CHAMBER_IN. C02 [ 5 ]; // AV104OPEN
  26. // GV.NDI. AV104_CLOSE := ECC. CHAMBER_IN. C02 [ 6 ]; // AV104CLOSE
  27. GV.NDI. AV105_OPEN := ECC. CHAMBER_IN. C02 [ 7 ]; // AV105OPEN
  28. // GV.NDI. AV105_CLOSE := ECC. CHAMBER_IN. C02 [ 8 ]; // AV105CLOSE
  29. GV.NDI. AV106_OPEN := ECC. CHAMBER_IN. C02 [ 9 ]; // AV106OPEN
  30. GV.NDI. AV106_CLOSE := ECC. CHAMBER_IN. C02 [ 10 ]; // AV106CLOSE
  31. GV.NDI. CY1_OPEN := ECC. CHAMBER_IN. C02 [ 11 ]; // CY1 UP
  32. GV.NDI. CY1_CLOSE := ECC. CHAMBER_IN. C02 [ 12 ]; // CY1 DOWN
  33. GV.NDI. Lift_Pin_Middle1 := ECC. CHAMBER_IN. C02 [ 13 ]; // CY1 Middle
  34. GV.NDI. CY2_OPEN := ECC. CHAMBER_IN. C02 [ 14 ]; // CY2 UP
  35. GV.NDI. CY2_CLOSE := ECC. CHAMBER_IN. C02 [ 15 ]; // CY2 DOWN
  36. GV.NDI. Lift_Pin_Middle2 := ECC. CHAMBER_IN. C02 [ 16 ]; // CY2 Middle
  37. //C03
  38. GV.NDI. GV1_OPEN := ECC. CHAMBER_IN. C03 [ 1 ]; //Slit Door Opened
  39. GV.NDI. GV1_CLOSE := ECC. CHAMBER_IN. C03 [ 2 ]; //Slit Door Closed
  40. GV.NDI.FL02B2 := ECC. CHAMBER_IN. C03 [ 3 ];
  41. // := ECC. CHAMBER_IN. C03 [ 4 ];
  42. GV.NDI.FL03B2 := ECC. CHAMBER_IN. C03 [ 5 ];
  43. // := ECC. CHAMBER_IN. C03 [ 6 ];
  44. GV.NDI.FL04B2 := ECC. CHAMBER_IN. C03 [ 7 ];
  45. GV.NDI.Robot_Extend_TO_PM := ECC. CHAMBER_IN. C03 [ 8 ]; //Robot Extend To PM
  46. // := ECC. CHAMBER_IN. C03 [ 9 ];
  47. GV.NDI.CDA_OK := ECC. CHAMBER_IN. C03 [ 10 ];
  48. GV.NDI.SYS_CDA_OK := ECC. CHAMBER_IN. C03 [ 11 ]; //SYS CDA OK
  49. GV.NDI.SYS_N2_OK := ECC. CHAMBER_IN. C03 [ 12 ]; //SYS N2 OK
  50. GV.NDI.TM_Lid_Closed := ECC. CHAMBER_IN. C03 [ 13 ]; //TM Lid Closed
  51. // := ECC. CHAMBER_IN. C03 [ 14 ];
  52. // := ECC. CHAMBER_IN. C03 [ 15 ]; //
  53. // := ECC. CHAMBER_IN. C03 [ 16 ]; //
  54. //C04
  55. GV.AI. APC_Temp := INT_TO_REAL( ECC. CHAMBER_IN. C04 [ 1 ])/10; // SSR1 钟摆阀(E01) TC01
  56. GV.AI. Lid_Temp := INT_TO_REAL( ECC. CHAMBER_IN. C04 [ 2 ])/10; // SSR2 LID HEATER控温TC (E02-E05) TC02
  57. GV.AI. Lid_Temp_Monitor1 := INT_TO_REAL( ECC. CHAMBER_IN. C04 [ 3 ])/10; // LID HEATER TC monitor TC03
  58. GV.AI. Lid_Temp_Monitor2 := INT_TO_REAL( ECC. CHAMBER_IN. C04 [ 4 ])/10; // LID HEATER TC monitor TC04
  59. GV.AI. Chamber_Temp1 := INT_TO_REAL( ECC. CHAMBER_IN. C04 [ 5 ])/10; // SSR3 CHAMBER HEATER 控温TC (E06,E07) TC05
  60. GV.AI. Chamber_Temp2 := INT_TO_REAL( ECC. CHAMBER_IN. C04 [ 6 ])/10; // SSR4 CHAMBER HEATER 控温TC (E08,E09,E12,E13) TC06
  61. GV.AI. Chamber_Temp3 := INT_TO_REAL( ECC. CHAMBER_IN. C04 [ 7 ])/10; // SSR5 CHAMBER HEATER 控温TC (E10,E11) TC07
  62. GV.AI. Stage_Temp1 := INT_TO_REAL( ECC. CHAMBER_IN. C04 [ 8 ])/10; // CHILLER控温用(左侧内) TC08
  63. //C05
  64. GV.AI. Stage_Temp2 := INT_TO_REAL( ECC. CHAMBER_IN. C05 [ 1 ])/10; // CHILLER控温用(左侧外) TC09
  65. GV.AI. Stage_Temp3 := INT_TO_REAL( ECC. CHAMBER_IN. C05 [ 2 ])/10; // CHILLER控温用(右侧内) TC10
  66. GV.AI. Stage_Temp4 := INT_TO_REAL( ECC. CHAMBER_IN. C05 [ 3 ])/10; // CHILLER控温用(右侧外) TC11
  67. GV.AI. Chamber_Temp_Monitor := INT_TO_REAL( ECC. CHAMBER_IN. C05 [ 4 ])/10; // 腔体底部监控用 TC12
  68. GV.AI. Gate_Valve_Temp := INT_TO_REAL( ECC. CHAMBER_IN. C05 [ 5 ])/10; // SSR18 GATE VALVE控温用 E18 TC13
  69. GV.AI. Gate_Valve_Temp_Monitor := INT_TO_REAL( ECC. CHAMBER_IN. C05 [ 6 ])/10; // GATE VALVE监控 TC14
  70. // INT_TO_REAL( ECC. CHAMBER_IN. C05 [ 7 ])/10; //
  71. // INT_TO_REAL( ECC. CHAMBER_IN. C05 [ 8 ])/10; //
  72. //C06
  73. // ECC. CHAMBER_IN. C06 [ 1 ]);
  74. // ECC. CHAMBER_IN. C06 [ 2 ]);
  75. // ECC. CHAMBER_IN. C06 [ 3 ]);
  76. // ECC. CHAMBER_IN. C06 [ 4 ]);
  77. //C07
  78. ECC. CHAMBER_OUT. C07 [ 1 ] := TRUE;//GV_IL.TMP_PW_EN;//GV.TURBO_PUMP_POWER_ON ;
  79. ECC. CHAMBER_OUT. C07 [ 2 ] := GV_IL.HTR_APC_EN;//GV.PENDULUM_VALVE_HEATER_POWER_ON ;
  80. ECC. CHAMBER_OUT. C07 [ 3 ] := GV_IL.HTR_LID_EN;//GV.LID_HEATER_POWER_ON ;
  81. ECC. CHAMBER_OUT. C07 [ 4 ] := GV_IL.HTR_CHAMBER_EN;//GV.CHAMBER_HEATER_POWER_ON ;
  82. ECC. CHAMBER_OUT. C07 [ 5 ] := GV_IL.HTR_GAS_BOX_EN;//GV.IGS_HEATER_POWER_ON ;
  83. ECC. CHAMBER_OUT. C07 [ 6 ] := GV_IL.HTR_GAS_BOX_EN;//GV.TAPE_HEATER_POWER_ON ;
  84. ECC. CHAMBER_OUT. C07 [ 7 ] := GV_IL.HTR_FORLINE_EN;//GV.FORELINE_HEATER_POWER_ON ;
  85. ECC. CHAMBER_OUT. C07 [ 8 ] := GV_IL.HTR_GATE_VALVE_EN;//GV.GATE_VALVE_HEATER_POWER_ON ;
  86. // ECC. CHAMBER_OUT. C07 [ 9 ] := ;
  87. // ECC. CHAMBER_OUT. C07 [ 10 ] := ;
  88. // ECC. CHAMBER_OUT. C07 [ 11 ] := ;
  89. // ECC. CHAMBER_OUT. C07 [ 12 ] := ;
  90. ECC. CHAMBER_OUT. C07 [ 13 ] := GV.NDO.GV_Open_Enable ; //Slit Door Open Enable
  91. ECC. CHAMBER_OUT. C07 [ 14 ] := GV.NDO.GV_Close_Enable ; //Slit Door Close Enable
  92. ECC. CHAMBER_OUT. C07 [ 15 ] := GV.NDO.TM_Robot_Extend_Enable AND GV.NDI.CY1_OPEN AND GV.NDI.CY2_OPEN ; //Robot Extend Enable
  93. ECC. CHAMBER_OUT. C07 [ 16 ] ;//:= ;
  94. //C08
  95. ECC. CHAMBER_OUT. C08 [ 1 ] := GV.LID_HEATER_SSR_ON[1] ; //SSR02
  96. // ECC. CHAMBER_OUT. C08 [ 2 ] := GV.LID_HEATER_SSR_ON[2] ; //SSR02
  97. // ECC. CHAMBER_OUT. C08 [ 3 ] := GV.LID_HEATER_SSR_ON[3] ; //SSR02
  98. // ECC. CHAMBER_OUT. C08 [ 4 ] := GV.LID_HEATER_SSR_ON[4] ; //SSR02
  99. // ECC. CHAMBER_OUT. C08 [ 5 ] := ;
  100. // ECC. CHAMBER_OUT. C08 [ 6 ] := ;
  101. ECC. CHAMBER_OUT. C08 [ 7 ] := GV.CHAMBER_HEATER_SSR_ON[1] ; //SSR03
  102. ECC. CHAMBER_OUT. C08 [ 8 ] := GV.CHAMBER_HEATER_SSR_ON[2] ; //SSR03
  103. ECC. CHAMBER_OUT. C08 [ 9 ] := GV.CHAMBER_HEATER_SSR_ON[3] ; //SSR04
  104. // ECC. CHAMBER_OUT. C08 [ 10 ] :=
  105. ECC. CHAMBER_OUT. C08 [ 11 ] := GV.CHAMBER_HEATER_SSR_ON[4]; //SSR05
  106. // ECC. CHAMBER_OUT. C08 [ 12 ] :=
  107. ECC. CHAMBER_OUT. C08 [ 13 ] :=
  108. // ECC. CHAMBER_OUT. C08 [ 14 ] :=
  109. // ECC. CHAMBER_OUT. C08 [ 15 ] := ;
  110. // ECC. CHAMBER_OUT. C08 [ 16 ] := ;
  111. //C09
  112. ECC. CHAMBER_OUT. C09 [ 1 ] := GV.FORELINE_HEATER_SSR_ON[1]; //SSR6 AV102 E33
  113. ECC. CHAMBER_OUT. C09 [ 2 ] := GV.FORELINE_HEATER_SSR_ON[2]; //SSR7 AV101 E36
  114. ECC. CHAMBER_OUT. C09 [ 3 ] := GV.FORELINE_HEATER_SSR_ON[3]; //SSR8 AV106 E38
  115. ECC. CHAMBER_OUT. C09 [ 4 ] := GV.FORELINE_HEATER_SSR_ON[4]; //SSR9 BA01
  116. // ECC. CHAMBER_OUT. C09 [ 5 ] := ;
  117. // ECC. CHAMBER_OUT. C09 [ 6 ] := ;
  118. ECC. CHAMBER_OUT. C09 [ 7 ] := GV.GATE_VALVE_SSR_ON ; //SSR18
  119. // ECC. CHAMBER_OUT. C09 [ 8 ] := ;
  120. ECC. CHAMBER_OUT. C09 [ 9 ] := GV.PEN_VALVE_HEATER_SSR_ON ; //SSR01
  121. // ECC. CHAMBER_OUT. C09 [ 10 ] := ;
  122. ECC. CHAMBER_OUT. C09 [ 11 ] := GV.FORELINE_HEATER_SSR_ON[5]; //SSR10 VG103
  123. ECC. CHAMBER_OUT. C09 [ 12 ] := GV.FORELINE_HEATER_SSR_ON[6]; //SSR11 EXHAUST1-6
  124. ECC. CHAMBER_OUT. C09 [ 13 ] := GV.FORELINE_HEATER_SSR_ON[7]; //SSR12 EXHAUST7-8
  125. ECC. CHAMBER_OUT. C09 [ 14 ] := GV.FORELINE_HEATER_SSR_ON[8]; //SSR13
  126. // ECC. CHAMBER_OUT. C09 [ 15 ] := ;
  127. // ECC. CHAMBER_OUT. C09 [ 16 ] := ;
  128. //C15
  129. GV.AI.VG103_Pipe_Temp := INT_TO_REAL( ECC. CHAMBER_IN. C15 [ 1 ])/10; // TC-03-A SSR10 AV104+VG103_PIPE_1+VG103_PIPE_2
  130. GV.AI.BA01_Temp := INT_TO_REAL( ECC. CHAMBER_IN. C15 [ 2 ])/10; // TC-06-A SSR09 BA101腔体侧+BA101
  131. GV.AI.VG101_Pipe_Temp := INT_TO_REAL( ECC. CHAMBER_IN. C15 [ 3 ])/10; // TC-07-A SSR13 PS10+PS11
  132. GV.AI.Exhaust1_6_Temp := INT_TO_REAL( ECC. CHAMBER_IN. C15 [ 4 ])/10; // TC-29-A SSR11 EXHAUST OUT1-6 E29-E32 E34-E35
  133. GV.AI.AV102_Temp := INT_TO_REAL( ECC. CHAMBER_IN. C15 [ 5 ])/10; // TC-33-A SSR06 AV102
  134. GV.AI.AV101_Temp := INT_TO_REAL( ECC. CHAMBER_IN. C15 [ 6 ])/10; // TC-36-A SSR07 AV101
  135. GV.AI.Exhaust7_8_Temp := INT_TO_REAL( ECC. CHAMBER_IN. C15 [ 7 ])/10; // TC-37-A SSR12 EXHAUST7+8 E37+E39
  136. GV.AI.AV106_Temp := INT_TO_REAL( ECC. CHAMBER_IN. C15 [ 8 ])/10; // TC-38-A SSR08 AV106
  137. //C32
  138. GV.AI.PG_PS1_VALUE := (ECC. IGS_IN. C32 [ 1 ]*115/32767-15)*6.895;
  139. GV.AI.PG_PS2_VALUE := (ECC. IGS_IN. C32 [ 2 ]*115/32767-15)*6.895;
  140. GV.AI.PG_PS3_VALUE := (ECC. IGS_IN. C32 [ 3 ]*115/32767-15)*6.895;
  141. GV.AI.PG_PS4_VALUE := (ECC. IGS_IN. C32 [ 4 ]*115/32767-15)*6.895;
  142. //C33
  143. GV.AI.PG_PS5_VALUE := (ECC. IGS_IN. C33 [ 1 ]*75/32767-15)*6.895;
  144. GV.AI.PG_PS6_VALUE := (ECC. IGS_IN. C33 [ 2 ]*115/32767-15)*6.895;
  145. // GV.AI.PG_PS7_VALUE := (ECC. IGS_IN. C33 [ 3 ]*1015/32767-15)*6.895;
  146. // GV.AI.PG_PS8_VALUE := (ECC. IGS_IN. C33 [ 4 ]*1015/32767-15)*6.895;
  147. //C34
  148. // GV.AI.PG_PS9_VALUE := (ECC. IGS_IN. C34 [ 1 ]*1015/32767-15)*6.895;
  149. GV.AI.PS1_VALUE := (ECC. IGS_IN. C34 [ 2 ]*1015/32767-15)*6.895;
  150. GV.AI.PS2_VALUE := (ECC. IGS_IN. C34 [ 3 ]*1015/32767-15)*6.895;
  151. GV.AI.MS1_VALUE := (ECC. IGS_IN. C34 [ 4 ]*1015/32767-15)*6.895;
  152. //C35
  153. GV.AI.GD01_VALUE := ECC. IGS_IN. C35 [ 1 ];
  154. GV.AI.GD02_VALUE := ECC. IGS_IN. C35 [ 2 ];
  155. // := ECC. IGS_IN. C35 [ 3 ];
  156. // := ECC. IGS_IN. C35 [ 4 ];
  157. //C36
  158. GV.NDI. PG_PS1_Pressure_Switch_Up_Limit := ECC. IGS_IN. C36 [ 1 ];
  159. GV.NDI. PG_PS1_Pressure_Switch_Down_Limit := ECC. IGS_IN. C36 [ 2 ];
  160. GV.NDI. PG_PS2_Pressure_Switch_Up_Limit := ECC. IGS_IN. C36 [ 3 ];
  161. GV.NDI. PG_PS2_Pressure_Switch_Down_Limit := ECC. IGS_IN. C36 [ 4 ];
  162. GV.NDI. PG_PS3_Pressure_Switch_Up_Limit := ECC. IGS_IN. C36 [ 5 ];
  163. GV.NDI. PG_PS3_Pressure_Switch_Down_Limit := ECC. IGS_IN. C36 [ 6 ];
  164. GV.NDI. PG_PS4_Pressure_Switch_Up_Limit := ECC. IGS_IN. C36 [ 7 ];
  165. GV.NDI. PG_PS4_Pressure_Switch_Down_Limit := ECC. IGS_IN. C36 [ 8 ];
  166. GV.NDI. PG_PS5_Pressure_Switch_Up_Limit := ECC. IGS_IN. C36 [ 9 ];
  167. GV.NDI. PG_PS5_Pressure_Switch_Down_Limit := ECC. IGS_IN. C36 [ 10 ];
  168. GV.NDI. PG_PS6_Pressure_Switch_Up_Limit := ECC. IGS_IN. C36 [ 11 ];
  169. GV.NDI. PG_PS6_Pressure_Switch_Down_Limit := ECC. IGS_IN. C36 [ 12 ];
  170. // GV.NDI. PG_PS7_Pressure_Switch_Up_Limit := ECC. IGS_IN. C36 [ 13 ];
  171. // GV.NDI. PG_PS7_Pressure_Switch_Down_Limit := ECC. IGS_IN. C36 [ 14 ];
  172. // GV.NDI. PG_PS8_Pressure_Switch_Up_Limit := ECC. IGS_IN. C36 [ 15 ];
  173. // GV.NDI. PG_PS8_Pressure_Switch_Down_Limit := ECC. IGS_IN. C36 [ 16 ];
  174. //C37
  175. // GV.NDI. PG_PS9_Pressure_Switch_Up_Limit := ECC. IGS_IN. C37 [ 1 ];
  176. // GV.NDI. PG_PS9_Pressure_Switch_Down_Limit := ECC. IGS_IN. C37 [ 2 ];
  177. //GV.NDI. MS1_Pressure_Switch_Up_Limit := ECC. IGS_IN. C37 [ 3 ];
  178. GV.NDI. MS1_ALM := ECC. IGS_IN. C37 [ 4 ];//QDP33P
  179. GV.NDI. PS1_Pressure_Switch := ECC. IGS_IN. C37 [ 5 ];
  180. GV.NDI. PS2_Pressure_Switch := ECC. IGS_IN. C37 [ 6 ];
  181. // := ECC. IGS_IN. C37 [ 7 ];
  182. // := ECC. IGS_IN. C37 [ 8 ];
  183. // := ECC. IGS_IN. C37 [ 9 ];
  184. // := ECC. IGS_IN. C37 [ 10 ];
  185. // := ECC. IGS_IN. C37 [ 11 ];
  186. // := ECC. IGS_IN. C37 [ 12 ];
  187. // := ECC. IGS_IN. C37 [ 13 ];
  188. // := ECC. IGS_IN. C37 [ 14 ];
  189. // := ECC. IGS_IN. C37 [ 15 ];
  190. // := ECC. IGS_IN. C37 [ 16 ];
  191. (*
  192. //C38
  193. GV.NDI. GD001_ALM1 := ECC. IGS_IN. C38 [ 1 ];
  194. GV.NDI. GD001_ALM2 := ECC. IGS_IN. C38 [ 2 ];
  195. GV.NDI. GD002_ALM1 := ECC. IGS_IN. C38 [ 3 ];
  196. GV.NDI. GD002_ALM2 := ECC. IGS_IN. C38 [ 4 ];
  197. //C39
  198. GV.NDI. GD_FAULT := ECC. IGS_IN. C39 [ 1 ];
  199. GV.NDI. MS1_Pressure_Switch_Up_Limit := ECC. IGS_IN. C39 [ 2 ];
  200. GV.NDI. MS1_Pressure_Switch_Down_Limit := ECC. IGS_IN. C39 [ 3 ];
  201. // := ECC. IGS_IN. C39 [ 4 ];
  202. *)
  203. //C40
  204. GV.AI.Tape_Temp1 := INT_TO_REAL( ECC. IGS_IN. C40 [ 1 ])/10; // IGS 加热带 TC31 E31
  205. GV.AI.Tape_Temp2 := INT_TO_REAL( ECC. IGS_IN. C40 [ 2 ])/10; // IGS 加热带 TC32 E32
  206. GV.AI.IGS_Temp1 := INT_TO_REAL( ECC. IGS_IN. C40 [ 3 ])/10; // IGS BLOCK HEATER TC33 E33 绿+ 红-
  207. GV.AI.IGS_Temp2 := INT_TO_REAL( ECC. IGS_IN. C40 [ 4 ])/10; // IGS BLOCK HEATER TC34 E34 绿+ 红-
  208. GV.AI.Tape_Temp3 := INT_TO_REAL( ECC. IGS_IN. C40 [ 5 ])/10; // IGS 加热带 TC35 E35
  209. // := INT_TO_REAL( ECC. IGS_IN. C40 [ 6 ])/10; // IGS BLOCK HEATER TC36 E36
  210. // := INT_TO_REAL( ECC. IGS_IN. C40 [ 7 ])/10;
  211. // := INT_TO_REAL( ECC. IGS_IN. C40 [ 8 ])/10;
  212. //C42
  213. ECC. IGS_OUT. C42 [ 1 ] := GV.TAPE_HEATER_SSR_ON[1] ; //SSR31 GAS BOX内+外延1
  214. ECC. IGS_OUT. C42 [ 2 ] := GV.TAPE_HEATER_SSR_ON[2] ; //SSR32 外延2+外延3
  215. ECC. IGS_OUT. C42 [ 3 ] := GV.TAPE_HEATER_SSR_ON[3] ; //SSR33 阀体
  216. // ECC. IGS_OUT. C42 [ 4 ] := ;
  217. // ECC. IGS_OUT. C42 [ 5 ] := ;
  218. // ECC. IGS_OUT. C42 [ 6 ] := ;
  219. ECC. IGS_OUT. C42 [ 7 ] := GV.IGS_HEATER_SSR_ON[1] ; //SSR35
  220. ECC. IGS_OUT. C42 [ 8 ] := GV.IGS_HEATER_SSR_ON[2] ; //SSR36
  221. // ECC. IGS_OUT. C42 [ 9 ] := ;
  222. // ECC. IGS_OUT. C42 [ 10 ] := ;
  223. // ECC. IGS_OUT. C42 [ 11 ] := ;
  224. // ECC. IGS_OUT. C42 [ 12 ] := ;
  225. // ECC. IGS_OUT. C42 [ 13 ] := ;
  226. // ECC. IGS_OUT. C42 [ 14 ] := ;
  227. // ECC. IGS_OUT. C42 [ 15 ] := ;
  228. // ECC. IGS_OUT. C42 [ 16 ] := ;
  229. (*
  230. //C43
  231. ECC. IGS_OUT. C43 [ 1 ] := TRUE;//GV.VT03_POWER_ON ;
  232. // ECC. IGS_OUT. C43 [ 2 ] := ;
  233. // ECC. IGS_OUT. C43 [ 3 ] := ;
  234. // ECC. IGS_OUT. C43 [ 4 ] := ;
  235. *)
  236. //MFC
  237. GV.AI. MFC1_Flow := ECC. MFC_PV [ 1 ].Flow_Reading ;
  238. ECC. MFC_SV [ 1 ].Flow_SP := GV.AO. MFC1_Flow_Setpoint ;
  239. ECC. MFC_SV [ 1 ].Ramp_Time := REAL_TO_UDINT(GV.AO. MFC1_Rate_Setpoint) ;
  240. GV.AI. MFC2_Flow := ECC. MFC_PV [ 2 ].Flow_Reading ;
  241. ECC. MFC_SV [ 2 ].Flow_SP := GV.AO. MFC2_Flow_Setpoint ;
  242. ECC. MFC_SV [ 2 ].Ramp_Time := REAL_TO_UDINT(GV.AO. MFC2_Rate_Setpoint) ;
  243. GV.AI. MFC3_Flow := ECC. MFC_PV [ 3 ].Flow_Reading ;
  244. ECC. MFC_SV [ 3 ].Flow_SP := GV.AO. MFC3_Flow_Setpoint ;
  245. ECC. MFC_SV [ 3 ].Ramp_Time := REAL_TO_UDINT(GV.AO. MFC3_Rate_Setpoint) ;
  246. (* GV.AI. MFC4_Flow := ECC. MFC_PV [ 4 ].Flow_Reading ;
  247. ECC. MFC_SV [ 4 ].Flow_SP := GV.AO. MFC4_Flow_Setpoint ;
  248. ECC. MFC_SV [ 4 ].Ramp_Time := REAL_TO_UDINT(GV.AO. MFC4_Rate_Setpoint) ;
  249. *) GV.AI. MFC5_Flow := ECC. MFC_PV [ 5 ].Flow_Reading ;
  250. ECC. MFC_SV [ 5 ].Flow_SP := GV.AO. MFC5_Flow_Setpoint ;
  251. ECC. MFC_SV [ 5 ].Ramp_Time := REAL_TO_UDINT(GV.AO. MFC5_Rate_Setpoint) ;
  252. GV.AI. MFC6_Flow := ECC. MFC_PV [ 6 ].Flow_Reading ;
  253. ECC. MFC_SV [ 6 ].Flow_SP := GV.AO. MFC6_Flow_Setpoint ;
  254. ECC. MFC_SV [ 6 ].Ramp_Time := REAL_TO_UDINT(GV.AO. MFC6_Rate_Setpoint) ;
  255. GV.AI. MFC7_Flow := ECC. MFC_PV [ 7 ].Flow_Reading ;
  256. ECC. MFC_SV [ 7 ].Flow_SP := GV.AO. MFC7_Flow_Setpoint ;
  257. ECC. MFC_SV [ 7 ].Ramp_Time := REAL_TO_UDINT(GV.AO. MFC7_Rate_Setpoint) ;
  258. // GV.AI. MFC8_PV := ECC. MFC_PV [ 8 ].Flow_Reading ;
  259. // ECC. MFC_SV [ 1 ].Flow_SP := GV.AO. MFC8_Flow_Setpoint ;
  260. // ECC. MFC_SV [ 1 ].Ramp_Time := REAL_TO_UDINT(GV.AO. MFC8_Rate_Setpoint) ;
  261. // GV.AI. MFC9_PV := ECC. MFC_PV [ 9 ].Flow_Reading ;
  262. // ECC. MFC_SV [ 1 ].Flow_SP := GV.AO. MFC9_Flow_Setpoint ;
  263. // ECC. MFC_SV [ 1 ].Ramp_Time := REAL_TO_UDINT(GV.AO. MFC9_Rate_Setpoint) ;
  264. //EV
  265. ECC. EV1. A. 0 := GV. NDO. GV101C; //GATE VALVE CLOSE
  266. ECC. EV1. A. 1 := GV. NDO. GV101O; //GATE VALVE OPEN
  267. // ECC. EV1. A. 2 := GV. NDO.
  268. // ECC. EV1. A. 3 := GV. NDO.
  269. ECC. EV1. A. 4 := GV. NDO. AV110; //PIN UP
  270. ECC. EV1. A. 5 := GV. NDO. AV109; //PIN MIDDLE
  271. ECC. EV1. A. 6 := GV. NDO. AV103 AND GV_IL.AV103_EN;
  272. ECC. EV1. A. 7 := GV. NDO. AV104 AND GV_IL.AV104_EN; //VG103关断阀
  273. ECC. EV1. B. 0 := GV. NDO. AV101 AND GV_IL.AV101_EN; //预抽阀
  274. ECC. EV1. B. 1 := GV. NDO. AV102 AND GV_IL.AV102_EN; //分子泵前级阀
  275. // ECC. EV1. B. 2 := GV. NDO. ;
  276. // ECC. EV1. B. 3 := GV. NDO. ;
  277. // ECC. EV1. B. 4 := GV. NDO. ;
  278. // ECC. EV1. B. 5 := GV. NDO. ;
  279. // ECC. EV1. B. 6 := GV. NDO. ;
  280. // ECC. EV1. B. 7 := GV. NDO. ;
  281. // ECC. EV2. A. 0 := GV. NDO. AV201 ;
  282. // ECC. EV2. A. 1 := GV. NDO. AC101 ;
  283. // ECC. EV2. A. 2 := GV. NDO. AC102 ;
  284. // ECC. EV2. A. 3 := GV. NDO. AC103 ;
  285. ECC. EV2. A. 4 := GV. NDO. AV201 ; //进水管关断阀
  286. // ECC. EV2. A. 5 := GV. NDO. AV202 ; //
  287. ECC. EV2. A. 6 := GV. NDO. AV107 ; //钟摆阀动作使能保持阀
  288. ECC. EV2. A. 7 := GV. NDO. AV108 ; //分子泵purge
  289. ECC. EV2. B. 0 := GV. NDO. AV105 AND GV_IL.AV105_EN; //BA101关断阀
  290. ECC. EV2. B. 1 := GV. NDO. AV106 AND GV_IL.AV106_EN; //酸排关断阀
  291. // ECC. EV2. B. 2 := GV. NDO. ;
  292. // ECC. EV2. B. 3 := GV. NDO. ;
  293. // ECC. EV2. B. 4 := GV. NDO. ;
  294. // ECC. EV2. B. 5 := GV. NDO. ;
  295. // ECC. EV2. B. 6 := GV. NDO. ;
  296. // ECC. EV2. B. 7 := GV. NDO. ;
  297. //gas box内
  298. ECC. EV3. A. 0 := GV. NDO. AV1 ; //
  299. ECC. EV3. A. 1 := GV. NDO. AV2 ;
  300. ECC. EV3. A. 2 := GV. NDO. AV3 ;
  301. ECC. EV3. A. 3 := GV. NDO. AV4 ;
  302. ECC. EV3. A. 4 := GV. NDO. AV6 ;
  303. ECC. EV3. A. 5 := GV. NDO. AV7 ;
  304. ECC. EV3. A. 6 := GV. NDO. AV9 ;
  305. ECC. EV3. A. 7 := GV. NDO. AV10;
  306. ECC. EV3. B. 0 := GV. NDO. AV11;
  307. ECC. EV3. B. 1 := GV. NDO. AV12;
  308. ECC. EV3. B. 2 := GV. NDO. AV13;
  309. ECC. EV3. B. 3 := GV. NDO. AV14;
  310. ECC. EV3. B. 4 := GV. NDO. AV16;
  311. ECC. EV3. B. 5 := GV. NDO. AV17;
  312. ECC. EV3. B. 6 := GV. NDO. AV19;
  313. ECC. EV3. B. 7 := GV. NDO. AV20;
  314. ECC. EV3. C. 0 := GV. NDO. AV22;
  315. ECC. EV3. C. 1 := GV. NDO. AV23;
  316. ECC. EV3. C. 2 := GV. NDO. AV25;
  317. ECC. EV3. C. 3 := GV. NDO. AV26;
  318. ECC. EV3. C. 4 := GV. NDO. AV27;
  319. // ECC. EV3. C. 5 := GV. NDO. ;
  320. // ECC. EV3. C. 6 := GV. NDO. ;
  321. // ECC. EV3. C. 7 := GV. NDO. ;
  322. // ECC. EV3. D. 0 := GV. NDO. ;
  323. // ECC. EV3. D. 1 := GV. NDO. ;
  324. // ECC. EV3. D. 2 := GV. NDO. ;
  325. // ECC. EV3. D. 3 := GV. NDO. ;
  326. // ECC. EV3. D. 4 := GV. NDO. ;
  327. // ECC. EV3. D. 5 := GV. NDO. ;
  328. // ECC. EV3. D. 6 := GV. NDO. ;
  329. // ECC. EV3. D. 7 := GV. NDO. ;
  330. //gas box内
  331. // ECC. EV4. A. 0 := GV. NDO. AV5 ;
  332. ECC. EV4. A. 1 := GV. NDO. AV5 ;
  333. // ECC. EV4. A. 2 := GV. NDO. AV8 ;
  334. ECC. EV4. A. 3 := GV. NDO. AV8 ;
  335. // ECC. EV4. A. 4 := GV. NDO. AV15 ;
  336. ECC. EV4. A. 5 := GV. NDO. AV15 ;
  337. // ECC. EV4. A. 6 := GV. NDO. AV18 ;
  338. ECC. EV4. A. 7 := GV. NDO. AV18 ;
  339. // ECC. EV4. B. 0 := GV. NDO. AV21 ;
  340. ECC. EV4. B. 1 := GV. NDO. AV21 ;
  341. // ECC. EV4. B. 2 := GV. NDO. AV24 ;
  342. ECC. EV4. B. 3 := GV. NDO. AV24 ;
  343. // ECC. EV4. B. 4 := GV. NDO. ;
  344. // ECC. EV4. B. 5 := GV. NDO. ;
  345. // ECC. EV4. B. 6 := GV. NDO. ;
  346. // ECC. EV4. B. 7 := GV. NDO. ;
  347. //APC
  348. GV. AI. APC. ACTUAL_PRESSURE := ECC. APC_PV.Actual_Pressure *100/133.3*1000;
  349. GV. AI. APC. Pressure_Sensor_1 := ECC. APC_PV.Pressure_Sensor_1 *100/133.3*1000;
  350. GV. AI. APC. Pressure_Sensor_2 := ECC. APC_PV.Pressure_Sensor_2 *100/133.3*1000;
  351. GV. AI. APC. ACTUAL_POSITION := ECC. APC_PV.Actual_Position ;
  352. GV. AI. APC. CONTROL_MODE := ECC. APC_PV.Control_Mode ;
  353. GV. AI. APC. ERROR_NUMBER := ECC. APC_PV.ERROR_NUMBER ;
  354. GV. AI. APC. General_Status := ECC. APC_PV.General_Status ;
  355. GV. AI. APC. GENERAL_WARNINGS := ECC. APC_PV.General_Warnings ;
  356. GV. AI. APC. Extended_Warnings := ECC. APC_PV.Extended_Warnings ;
  357. ECC. APC_SV.Target_Pressure := GV. AO. APC. TARGET_PRESSURE*0.1333/100 ;
  358. ECC. APC_SV.Target_Position := GV. AO. APC. TARGET_POSITION ;
  359. ECC. APC_SV.Pressure_Input_Digital_Sensor_1 := GV. AO. APC. Pressure_Input_Digital_Sensor_1 ; //E-therCAT通讯传送过来的sensor值1
  360. ECC. APC_SV.Pressure_Input_Digital_Sensor_2 := GV. AO. APC. Pressure_Input_Digital_Sensor_2 ; //E-therCAT通讯传送过来的sensor值2
  361. ECC. APC_SV.Control_Mode := GV. AO. APC. CONTROL_MODE ;
  362. ECC. APC_SV.General_Control_Setpoint := GV. AO. APC. General_Control_Setpoint ; (*Bit 0: Zero
  363. BIT 1: NOT used
  364. Bit 2: Ping Pong TX Bit
  365. Bit 3: Not Used
  366. Bit 4: Access Mode Locked (VAT使用手册P72)
  367. Bit 5-15: Not Used
  368. *)
  369. ECC. APC_SV.Pressure_Ramp_Time := GV. AO. APC. PRESSURE_RAMP_TIME ;
  370. IF GV. AO. APC. TARGET_PRESSURE>=1000
  371. THEN
  372. ECC.APC_SV.Bank_Sel:=1;
  373. ELSIF
  374. GV. AO. APC. TARGET_PRESSURE<1000 AND GV. AO. APC. TARGET_PRESSURE>=100
  375. THEN
  376. ECC.APC_SV.Bank_Sel:=2;
  377. ELSIF
  378. GV. AO. APC. TARGET_PRESSURE<100
  379. THEN
  380. ECC.APC_SV.Bank_Sel:=3;
  381. END_IF
  382. IF ECC. APC_SV.Control_Mode=7 AND ECC.APC_PV.Control_Mode<>7 THEN
  383. WRITE_EN_SINT:=TRUE;
  384. ELSE
  385. WRITE_EN_SINT:=FALSE;
  386. END_IF
  387. WRITE_DATA_SINT:=ECC.APC_SV.Bank_Sel;
  388. SDO_WRITE.Index:=UINT#16#2350;
  389. SDO_WRITE.Subindex:=USINT#16#03;
  390. WRITE_SINT(
  391. sNetId:= sNetId, //主站IP地址,
  392. nSlaveAddr:= nSlaveAddr_1, //从站端口
  393. nSubIndex:= USINT_TO_BYTE(SDO_WRITE.Subindex), //SubIndex
  394. nIndex:= UINT_TO_WORD(SDO_WRITE.Index), //Index
  395. pSrcBuf:= ADR(WRITE_DATA_SINT),
  396. cbBufLen:= SIZEOF(WRITE_DATA_SINT),
  397. bExecute:= WRITE_EN_SINT,
  398. //tTimeout:= T#200MS,
  399. bBusy=> ,
  400. bError=> ,
  401. nErrId=> );
  402. //TMP
  403. GV. AI. TMP. ROTATION := ECC. TURBO_PV.Rotation ; //1:ROTATING,0:NOT ROTATING
  404. GV. AI. TMP. NORMAL := ECC. TURBO_PV.Normal ; //1:NORMAL,0:UNNORMAL
  405. GV. AI. TMP. ACCELERATION := ECC. TURBO_PV.Acceleration ;
  406. GV. AI. TMP. Deceleration_Includes_Braking := ECC. TURBO_PV.Deceleration_Includes_Braking ;
  407. GV. AI. TMP. REMOTE_LOCAL := ECC. TURBO_PV.Remote_Local ; //1:LOCAL.E-CAT CONTROL DISABLED,0:REMOTE.E-CAT CONTROL ENABLED
  408. GV. AI. TMP. Turbo_Low_Speed := ECC. TURBO_PV.Turbo_Low_Speed ;
  409. GV. AI. TMP. ALARM := ECC. TURBO_PV.Alarm ;
  410. GV. AI. TMP. WARNING := ECC. TURBO_PV.Warning ;
  411. GV. AI. TMP. Turbo_Speed := REAL_TO_INT(ECC.TURBO_PV.Turbo_Speed*32.5 ); //0.1[%],1000(100.0%):RATED SPEED,0(0.0%):NO RATATION
  412. GV. AI. TMP. Turbo_Current := ECC. TURBO_PV.Turbo_Current ; //0.1A
  413. GV. AI. TMP. Turbo_pump_temperature := ECC. TURBO_PV.Turbo_pump_temperature ; //1[℃]
  414. //GV. AI. TMP. VibrationH := ECC. TURBO_PV.VibrationH ;
  415. //GV. AI. TMP. VibrationB := ECC. TURBO_PV.VibrationB ;
  416. //GV. AI. TMP. VibrationZ := ECC. TURBO_PV.VibrationZ ;
  417. ECC. TURBO_SV.Turbo_Start_Stop := GV. AO. TMP. Turbo_Start_Stop ; //1:START,0:STOP
  418. ECC. TURBO_SV.Turbo_Reset_Alarm := GV. AO. TMP. Turbo_Reset_Alarm ; //1:RESET ALARM,0:NO ACTION
  419. ECC. TURBO_SV.Turbo_Low_Speed := GV. AO. TMP. Turbo_Low_Speed ; //1:LOW SPEED MODE ON,0:OFF
  420. //PG PS
  421. GV.AI.VG103_Pressure := ECC. VG103_PV.Sensor_Value1 /133.3 *1000 ;
  422. GV.AI.VG101_Pressure := ECC. VG101_PV.Sensor_Value1 /133.3 *1000 ;
  423. GV.AI.VG102_Pressure := ECC. VG102_PV.Sensor_Value1 /133.3 *1000 ;
  424. GV.AI.BA1_Pressure := ECC. BA1_PV.Combination_Gauge_Active_Value_Module_1 /133.3 ;
  425. GV.AI.VG104_Pressure := ECC. VG104_PV.Sensor_Value1 /133.3 *1000 ;
  426. //CHILLER
  427. GV. AI.CHILLER1_TEMP_PV := UINT_TO_REAL( ECC. CHILLER1_PV.Module2_Word[1] )/10 ; //有符号整数,-50.0 to 150.0℃ = FE0Ch to 05DCh ,0.1℃/dig
  428. GV. AI.CHILLER1_DI_PV := UINT_TO_REAL( ECC. CHILLER1_PV.Module2_Word[2] ) ; // 0.0 to 20.0M-ohm = 0000h to 00C8h ,0.1M-ohm/dig
  429. GV. AI.CHILLER1_FLOW_PV := UINT_TO_REAL( ECC. CHILLER1_PV.Module2_Word[3] ) ; // 0.0 to 150.0LPM = 0000h to 05DCh 0.1LPM/dig
  430. GV. AI.CHILLER1_PRESS_PV := UINT_TO_REAL( ECC. CHILLER1_PV.Module2_Word[4] ) ; // 0.00 to 2.00MPa = 0h to C8h 0.01MP/dig
  431. ECC.CHILLER1_SV.Module2_Word[1] := REAL_TO_UINT( GV. AO.Chiller1_On ) ; //CHILLER1 ON
  432. ECC.CHILLER1_SV.Module2_Word[2] := REAL_TO_UINT( GV. AO.Chiller_Temp1_SV *10 ) ; // -20.0 to 90.0℃= FF38h to 384h 0.1℃/dig
  433. ECC.CHILLER1_SV.Module2_Word[3] := INT_TO_UINT( ECC. CHAMBER_IN. C04 [ 8 ] ) ; // Stage温度反馈给chiller
  434. GV. AI.CHILLER2_TEMP_PV := UINT_TO_REAL( ECC. CHILLER2_PV.Module2_Word[1] )/10 ; //有符号整数,-50.0 to 150.0℃ = FE0Ch to 05DCh ,0.1℃/dig
  435. GV. AI.CHILLER2_DI_PV := UINT_TO_REAL( ECC. CHILLER2_PV.Module2_Word[2] ) ; // 0.0 to 20.0M-ohm = 0000h to 00C8h ,0.1M-ohm/dig
  436. GV. AI.CHILLER2_FLOW_PV := UINT_TO_REAL( ECC. CHILLER2_PV.Module2_Word[3] ) ; // 0.0 to 150.0LPM = 0000h to 05DCh 0.1LPM/dig
  437. GV. AI.CHILLER2_PRESS_PV := UINT_TO_REAL( ECC. CHILLER2_PV.Module2_Word[4] ) ; // 0.00 to 2.00MPa = 0h to C8h 0.01MP/dig
  438. ECC.CHILLER2_SV.Module2_Word[1] := REAL_TO_UINT( GV. AO.Chiller2_On ) ; //CHILLER1 ON
  439. ECC.CHILLER2_SV.Module2_Word[2] := REAL_TO_UINT( GV. AO.Chiller_Temp2_SV *10 ) ; // -20.0 to 90.0℃= FF38h to 384h 0.1℃/dig
  440. ECC.CHILLER2_SV.Module2_Word[3] := INT_TO_UINT( ECC. CHAMBER_IN. C05 [ 2 ] ) ; // Stage温度反馈给chiller
  441. ]]></ST>
  442. </Implementation>
  443. <Action Name="PLC_TO_UI" Id="{fcef9783-1463-4fcd-8ba4-63d45cb7cb94}">
  444. <Implementation>
  445. <ST><![CDATA[PM.HeartBeat:=UI.HeartBeat;
  446. PM.NDI:=GV.NDI;
  447. PM.AI:=GV.AI;
  448. GV.NDI. AV1 :=GV.NDO. AV1 ;
  449. GV.NDI. AV2 :=GV.NDO. AV2 ;
  450. GV.NDI. AV3 :=GV.NDO. AV3 ;
  451. GV.NDI. AV4 :=GV.NDO. AV4 ;
  452. GV.NDI. AV5 :=GV.NDO. AV5 ;
  453. GV.NDI. AV6 :=GV.NDO. AV6 ;
  454. GV.NDI. AV7 :=GV.NDO. AV7 ;
  455. GV.NDI. AV8 :=GV.NDO. AV8 ;
  456. GV.NDI. AV9 :=GV.NDO. AV9 ;
  457. GV.NDI. AV10 :=GV.NDO. AV10 ;
  458. GV.NDI. AV11 :=GV.NDO. AV11 ;
  459. GV.NDI. AV12 :=GV.NDO. AV12 ;
  460. GV.NDI. AV13 :=GV.NDO. AV13 ;
  461. GV.NDI. AV14 :=GV.NDO. AV14 ;
  462. GV.NDI. AV15 :=GV.NDO. AV15 ;
  463. GV.NDI. AV16 :=GV.NDO. AV16 ;
  464. GV.NDI. AV17 :=GV.NDO. AV17 ;
  465. GV.NDI. AV18 :=GV.NDO. AV18 ;
  466. GV.NDI. AV19 :=GV.NDO. AV19 ;
  467. GV.NDI. AV20 :=GV.NDO. AV20 ;
  468. GV.NDI. AV21 :=GV.NDO. AV21 ;
  469. GV.NDI. AV22 :=GV.NDO. AV22 ;
  470. GV.NDI. AV23 :=GV.NDO. AV23 ;
  471. GV.NDI. AV24 :=GV.NDO. AV24 ;
  472. GV.NDI. AV25 :=GV.NDO. AV25 ;
  473. GV.NDI. AV26 :=GV.NDO. AV26 ;
  474. GV.NDI. AV27 :=GV.NDO. AV27 ;
  475. ]]></ST>
  476. </Implementation>
  477. </Action>
  478. <Action Name="UI_TO_PLC" Id="{82d78811-3f27-47e1-a7a5-eefa03f615c8}">
  479. <Implementation>
  480. <ST><![CDATA[
  481. //CONFIG
  482. GV.PMConfig:=UI.PMConfig;
  483. GV.Chiller:=UI.Chiller;
  484. GV.InnerChiller:=UI.InnerChiller;
  485. GV.OuterChiller:=UI.OuterChiller;
  486. GV.TopChiller:=UI.TopChiller;
  487. GV.DryPump:=UI.DryPump;
  488. GV.Mfcgas1:=UI.Mfcgas1;
  489. GV.Mfcgas2:=UI.Mfcgas2;
  490. GV.Mfcgas3:=UI.Mfcgas3;
  491. GV.Mfcgas4:=UI.Mfcgas4;
  492. GV.Mfcgas5:=UI.Mfcgas5;
  493. GV.Mfcgas6:=UI.Mfcgas6;
  494. GV.Mfcgas7:=UI.Mfcgas7;
  495. GV.Mfcgas8:=UI.Mfcgas8;
  496. GV.Mfcgas9:=UI.Mfcgas9;
  497. GV.Mfcgas10:=UI.Mfcgas10;
  498. GV.Mfcgas11:=UI.Mfcgas11;
  499. GV.Mfcgas12:=UI.Mfcgas12;
  500. GV.MfcN2:=UI.MfcN2;
  501. GV.MfcHe:=UI.MfcHe;
  502. GV.Pump:=UI.Pump;
  503. GV.Purge:=UI.Purge;
  504. GV.PendulumHeater:=UI.PendulumHeater;
  505. GV.LidHeater:=UI.LidHeater;
  506. GV.ChamberHeater:=UI.ChamberHeater;
  507. GV.IGSHeater:=UI.IGSHeater;
  508. GV.TapeHeater:=UI.TapeHeater;
  509. GV.ForelineHeater:=UI.ForelineHeater;
  510. GV.PendulumValve:=UI.PendulumValve;
  511. GV.ChamberHeater:=UI.ChamberHeater;
  512. GV.ChamberHeater:=UI.ChamberHeater;
  513. //Status
  514. GV.AO. AV102_Temp_SV := UI.AO. AV102_Temp_SV ;
  515. GV.AO. AV101_Temp_SV := UI.AO. AV101_Temp_SV ;
  516. GV.AO. AV106_Temp_SV := UI.AO. AV106_Temp_SV ;
  517. GV.AO. BA01_Temp_SV := UI.AO. BA01_Temp_SV ;
  518. GV.AO. VG103_Pipe_Temp_SV := UI.AO. VG103_Pipe_Temp_SV ;
  519. GV.AO. Exhaust1_6_Temp_SV := UI.AO. Exhaust1_6_Temp_SV ;
  520. GV.AO. Exhaust7_8_Temp_SV := UI.AO. Exhaust7_8_Temp_SV ;
  521. GV.AO. VG101_Pipe_Temp_SV := UI.AO. VG101_Pipe_Temp_SV ;
  522. GV.AO. Gate_Valve_Temp_SV := UI.AO. Gate_Valve_Temp_SV ;
  523. GV.AO. APC_Temp_SV := UI.AO. APC_Temp_SV ;
  524. // GV.AO. TMP_Temp_SV := UI.AO. TMP_Temp_SV ;
  525. GV.AO. Tape_Temp1_SV := UI.AO. Tape_Temp1_SV ;
  526. GV.AO. Tape_Temp2_SV := UI.AO. Tape_Temp2_SV ;
  527. GV.AO. Tape_Temp3_SV := UI.AO. Tape_Temp3_SV ;
  528. GV.AO. IGS_Temp1_SV := UI.AO. IGS_Temp1_SV ;
  529. GV.AO. IGS_Temp2_SV := UI.AO. IGS_Temp2_SV ;
  530. GV.AO. Chiller_Temp1_SV := UI.AO. Chiller_Temp1_SV ;
  531. GV.AO. Chiller_Temp2_SV := UI.AO. Chiller_Temp2_SV ;
  532. GV.AO. Chiller1_On := UI.AO. Chiller1_On ;
  533. GV.AO. Chiller2_On := UI.AO. Chiller2_On ;
  534. GV.AO. TMP. Turbo_Start_Stop := UI.AO. TMP. Turbo_Start_Stop ;
  535. GV.AO. TMP. Turbo_Reset_Alarm := UI.AO. TMP. Turbo_Reset_Alarm ;
  536. GV.AO. TMP. Turbo_Low_Speed := UI.AO. TMP. Turbo_Low_Speed ;
  537. GV.NDO.AV104:=UI.NDO.AV104;
  538. GV.NDO.AV105:=UI.NDO.AV105;
  539. IF NOT MAIN.Process_EN THEN
  540. GV.NDO . AV101 := UI.NDO . AV101 AND GV_IL. AV101_EN;
  541. GV.NDO . AV102 := UI.NDO . AV102 AND GV_IL. AV102_EN;
  542. GV.NDO . AV103 := UI.NDO . AV103 AND GV_IL. AV103_EN;
  543. GV.NDO . AV104 := UI.NDO . AV104 AND GV_IL. AV104_EN;
  544. GV.NDO . AV105 := UI.NDO . AV105 AND GV_IL. AV105_EN;
  545. GV.NDO . AV106 := UI.NDO . AV106 AND GV_IL. AV106_EN;
  546. GV.NDO . AV107 := UI.NDO . AV107 ;
  547. GV.NDO . AV108 := UI.NDO . AV108 ;
  548. GV.NDO . AV109 := UI.NDO . AV109 ;
  549. GV.NDO . AV110 := UI.NDO . AV110 ;
  550. GV.NDO . GV101C := UI.NDO . GV101C ;
  551. GV.NDO . GV101O := UI.NDO . GV101O ;
  552. GV.NDO . AV201 := UI.NDO . AV201 ;
  553. GV.NDO . AV202 := UI.NDO . AV202 ;
  554. GV.NDO . AC101 := UI.NDO . AC101 ;
  555. GV.NDO . AC102 := UI.NDO . AC102 ;
  556. GV.NDO . AC103 := UI.NDO . AC103 ;
  557. GV.NDO . AC104 := UI.NDO . AC104 ;
  558. GV.NDO . AC105 := UI.NDO . AC105 ;
  559. GV.NDO . AC106 := UI.NDO . AC106 ;
  560. GV.NDO . AV1 := UI.NDO . AV1 AND GV_IL. AV1_EN ;
  561. GV.NDO . AV2 := UI.NDO . AV2 AND GV_IL. AV2_EN ;
  562. GV.NDO . AV3 := UI.NDO . AV3 AND GV_IL. AV3_EN ;
  563. GV.NDO . AV4 := UI.NDO . AV4 AND GV_IL. AV4_EN ;
  564. GV.NDO . AV6 := UI.NDO . AV6 AND GV_IL. AV6_EN ;
  565. GV.NDO . AV7 := UI.NDO . AV7 AND GV_IL. AV7_EN ;
  566. GV.NDO . AV9 := UI.NDO . AV9 AND GV_IL. AV9_EN ;
  567. GV.NDO . AV10 := UI.NDO . AV10 AND GV_IL. AV10_EN ;
  568. GV.NDO . AV11 := UI.NDO . AV11 AND GV_IL. AV11_EN ;
  569. GV.NDO . AV12 := UI.NDO . AV12 AND GV_IL. AV12_EN ;
  570. GV.NDO . AV13 := UI.NDO . AV13 AND GV_IL. AV13_EN ;
  571. GV.NDO . AV14 := UI.NDO . AV14 AND GV_IL. AV14_EN ;
  572. GV.NDO . AV16 := UI.NDO . AV16 AND GV_IL. AV16_EN ;
  573. GV.NDO . AV17 := UI.NDO . AV17 AND GV_IL. AV17_EN ;
  574. GV.NDO . AV19 := UI.NDO . AV19 AND GV_IL. AV19_EN ;
  575. GV.NDO . AV20 := UI.NDO . AV20 AND GV_IL. AV20_EN ;
  576. GV.NDO . AV22 := UI.NDO . AV22 AND GV_IL. AV22_EN ;
  577. GV.NDO . AV23 := UI.NDO . AV23 AND GV_IL. AV23_EN ;
  578. GV.NDO . AV25 := UI.NDO . AV25 AND GV_IL. AV25_EN ;
  579. GV.NDO . AV26 := UI.NDO . AV26 AND GV_IL. AV26_EN ;
  580. GV.NDO . AV27 := UI.NDO . AV27 AND GV_IL. AV27_EN ;
  581. GV.NDO . AV5 := UI.NDO . AV5 AND GV_IL. AV5_EN ;
  582. GV.NDO . AV8 := UI.NDO . AV8 AND GV_IL. AV8_EN ;
  583. GV.NDO . AV15 := UI.NDO . AV15 AND GV_IL. AV15_EN ;
  584. GV.NDO . AV18 := UI.NDO . AV18 AND GV_IL. AV18_EN ;
  585. GV.NDO . AV21 := UI.NDO . AV21 AND GV_IL. AV21_EN ;
  586. GV.NDO . AV24 := UI.NDO . AV24 AND GV_IL. AV24_EN ;
  587. GV.NDO . MaualEndStep := UI.NDO . MaualEndStep ;
  588. GV.AO. LID_Temp_SV := UI.AO. LID_Temp_SV ;
  589. GV.AO. Chamber_Temp1_SV := UI.AO. Chamber_Temp1_SV ;
  590. GV.AO. Chamber_Temp2_SV := UI.AO. Chamber_Temp2_SV ;
  591. GV.AO. Chamber_Temp3_SV := UI.AO. Chamber_Temp3_SV ;
  592. GV.AO. MFC1_Flow_Setpoint := UI.AO. MFC1_Flow_Setpoint ;
  593. GV.AO. MFC1_Rate_Setpoint := UI.AO. MFC1_Rate_Setpoint ;
  594. GV.AO. MFC2_Flow_Setpoint := UI.AO. MFC2_Flow_Setpoint ;
  595. GV.AO. MFC2_Rate_Setpoint := UI.AO. MFC2_Rate_Setpoint ;
  596. GV.AO. MFC3_Flow_Setpoint := UI.AO. MFC3_Flow_Setpoint ;
  597. GV.AO. MFC3_Rate_Setpoint := UI.AO. MFC3_Rate_Setpoint ;
  598. // GV.AO. MFC4_Flow_Setpoint := UI.AO. MFC4_Flow_Setpoint ;
  599. // GV.AO. MFC4_Rate_Setpoint := UI.AO. MFC4_Rate_Setpoint ;
  600. GV.AO. MFC5_Flow_Setpoint := UI.AO. MFC5_Flow_Setpoint ;
  601. GV.AO. MFC5_Rate_Setpoint := UI.AO. MFC5_Rate_Setpoint ;
  602. GV.AO. MFC6_Flow_Setpoint := UI.AO. MFC6_Flow_Setpoint ;
  603. GV.AO. MFC6_Rate_Setpoint := UI.AO. MFC6_Rate_Setpoint ;
  604. GV.AO. MFC7_Flow_Setpoint := UI.AO. MFC7_Flow_Setpoint ;
  605. GV.AO. MFC7_Rate_Setpoint := UI.AO. MFC7_Rate_Setpoint ;
  606. GV.AO. Stage_Temp1_SV := UI.AO. Stage_Temp1_SV ;
  607. GV.AO. Stage_Temp2_SV := UI.AO. Stage_Temp2_SV ;
  608. GV.AO. APC. Target_Pressure := UI.AO. APC. Target_Pressure ;
  609. GV.AO. APC. Target_Position := UI.AO. APC. Target_Position ;
  610. //GV.AO. APC. Pressure_Input_Digital_Sensor_1 := UI.AO. APC. Pressure_Input_Digital_Sensor_1 ;
  611. //GV.AO. APC. Pressure_Input_Digital_Sensor_2 := UI.AO. APC. Pressure_Input_Digital_Sensor_2 ;
  612. IF GV_IL.APC_EN THEN
  613. GV.AO. APC. Control_Mode := UI.AO. APC. Control_Mode ;
  614. ELSE
  615. GV.AO. APC. Control_Mode := 3 ;
  616. END_IF
  617. GV.AO. APC. General_Control_Setpoint := UI.AO. APC. General_Control_Setpoint ;
  618. GV.AO. APC. Pressure_Ramp_Time := UI.AO. APC. Pressure_Ramp_Time ;
  619. GV.NDO.GV_Open_Enable:=NOT MAIN.Process_EN;
  620. GV.NDO.GV_Close_Enable:=NOT MAIN.Process_EN;
  621. GV.NDO.TM_Robot_Extend_Enable:=UI.NDO.TM_Robot_Extend_Enable;
  622. END_IF
  623. //RECIPE
  624. GV.Step_Num:=UI.Step_Num;
  625. GV.SetpArray:=UI.SetpArray;
  626. GV.Process_Start:=UI.Process_Start;
  627. GV.Process_Stop:=UI.Process_Stop;]]></ST>
  628. </Implementation>
  629. </Action>
  630. <LineIds Name="IO_EXCHANGE">
  631. <LineId Id="1993" Count="0" />
  632. <LineId Id="1995" Count="0" />
  633. <LineId Id="1994" Count="0" />
  634. <LineId Id="1449" Count="0" />
  635. <LineId Id="1980" Count="0" />
  636. <LineId Id="1450" Count="13" />
  637. <LineId Id="1951" Count="0" />
  638. <LineId Id="1464" Count="1" />
  639. <LineId Id="1952" Count="0" />
  640. <LineId Id="1981" Count="0" />
  641. <LineId Id="1470" Count="14" />
  642. <LineId Id="1953" Count="0" />
  643. <LineId Id="1486" Count="0" />
  644. <LineId Id="1982" Count="0" />
  645. <LineId Id="1487" Count="8" />
  646. <LineId Id="1983" Count="0" />
  647. <LineId Id="1496" Count="0" />
  648. <LineId Id="1498" Count="7" />
  649. <LineId Id="1984" Count="0" />
  650. <LineId Id="1506" Count="52" />
  651. <LineId Id="1999" Count="0" />
  652. <LineId Id="1560" Count="6" />
  653. <LineId Id="2003" Count="8" />
  654. <LineId Id="1985" Count="0" />
  655. <LineId Id="2002" Count="0" />
  656. <LineId Id="1595" Count="65" />
  657. <LineId Id="1986" Count="0" />
  658. <LineId Id="1661" Count="0" />
  659. <LineId Id="1663" Count="3" />
  660. <LineId Id="1987" Count="0" />
  661. <LineId Id="1668" Count="0" />
  662. <LineId Id="1670" Count="7" />
  663. <LineId Id="1988" Count="0" />
  664. <LineId Id="1678" Count="16" />
  665. <LineId Id="1989" Count="0" />
  666. <LineId Id="1695" Count="0" />
  667. <LineId Id="1697" Count="53" />
  668. <LineId Id="1766" Count="18" />
  669. <LineId Id="1800" Count="53" />
  670. <LineId Id="1869" Count="19" />
  671. <LineId Id="1957" Count="0" />
  672. <LineId Id="1967" Count="1" />
  673. <LineId Id="1971" Count="0" />
  674. <LineId Id="1973" Count="0" />
  675. <LineId Id="1975" Count="1" />
  676. <LineId Id="1890" Count="0" />
  677. <LineId Id="2041" Count="0" />
  678. <LineId Id="2030" Count="10" />
  679. <LineId Id="2029" Count="0" />
  680. <LineId Id="2071" Count="2" />
  681. <LineId Id="2075" Count="0" />
  682. <LineId Id="2077" Count="0" />
  683. <LineId Id="2074" Count="0" />
  684. <LineId Id="2046" Count="0" />
  685. <LineId Id="2066" Count="0" />
  686. <LineId Id="2068" Count="0" />
  687. <LineId Id="2070" Count="0" />
  688. <LineId Id="2069" Count="0" />
  689. <LineId Id="2067" Count="0" />
  690. <LineId Id="2048" Count="8" />
  691. <LineId Id="2058" Count="1" />
  692. <LineId Id="2047" Count="0" />
  693. <LineId Id="1891" Count="18" />
  694. <LineId Id="1911" Count="17" />
  695. <LineId Id="2024" Count="0" />
  696. <LineId Id="1929" Count="0" />
  697. <LineId Id="2015" Count="0" />
  698. <LineId Id="1931" Count="4" />
  699. <LineId Id="2025" Count="0" />
  700. <LineId Id="1947" Count="0" />
  701. <LineId Id="2016" Count="1" />
  702. <LineId Id="2022" Count="0" />
  703. </LineIds>
  704. <LineIds Name="IO_EXCHANGE.PLC_TO_UI">
  705. <LineId Id="1" Count="0" />
  706. <LineId Id="3" Count="0" />
  707. <LineId Id="2" Count="0" />
  708. <LineId Id="5" Count="26" />
  709. <LineId Id="4" Count="0" />
  710. </LineIds>
  711. <LineIds Name="IO_EXCHANGE.UI_TO_PLC">
  712. <LineId Id="58" Count="0" />
  713. <LineId Id="60" Count="0" />
  714. <LineId Id="2" Count="1" />
  715. <LineId Id="5" Count="33" />
  716. <LineId Id="40" Count="0" />
  717. <LineId Id="42" Count="2" />
  718. <LineId Id="47" Count="0" />
  719. <LineId Id="50" Count="0" />
  720. <LineId Id="61" Count="0" />
  721. <LineId Id="51" Count="0" />
  722. <LineId Id="68" Count="0" />
  723. <LineId Id="66" Count="0" />
  724. <LineId Id="195" Count="3" />
  725. <LineId Id="237" Count="2" />
  726. <LineId Id="233" Count="0" />
  727. <LineId Id="199" Count="5" />
  728. <LineId Id="206" Count="0" />
  729. <LineId Id="181" Count="0" />
  730. <LineId Id="208" Count="1" />
  731. <LineId Id="241" Count="1" />
  732. <LineId Id="212" Count="1" />
  733. <LineId Id="211" Count="0" />
  734. <LineId Id="214" Count="0" />
  735. <LineId Id="243" Count="0" />
  736. <LineId Id="245" Count="0" />
  737. <LineId Id="244" Count="0" />
  738. <LineId Id="179" Count="0" />
  739. <LineId Id="294" Count="47" />
  740. <LineId Id="293" Count="0" />
  741. <LineId Id="240" Count="0" />
  742. <LineId Id="222" Count="0" />
  743. <LineId Id="225" Count="3" />
  744. <LineId Id="221" Count="0" />
  745. <LineId Id="124" Count="13" />
  746. <LineId Id="167" Count="5" />
  747. <LineId Id="342" Count="0" />
  748. <LineId Id="173" Count="0" />
  749. <LineId Id="343" Count="2" />
  750. <LineId Id="174" Count="1" />
  751. <LineId Id="346" Count="1" />
  752. <LineId Id="349" Count="0" />
  753. <LineId Id="62" Count="0" />
  754. <LineId Id="55" Count="1" />
  755. <LineId Id="63" Count="2" />
  756. <LineId Id="1" Count="0" />
  757. <LineId Id="180" Count="0" />
  758. </LineIds>
  759. </POU>
  760. </TcPlcObject>