Main.st 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. PROGRAM _INIT
  2. Tisch_6 := 0;
  3. Tisch_6_Manuell := 0;
  4. gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
  5. gTisch_6.Cmd.Vorstopper := KMD_EINFAHREN;
  6. gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
  7. RTInfo_0(enable:=1);
  8. END_PROGRAM
  9. PROGRAM _CYCLIC
  10. gTisch_6;
  11. IF gMerker_Laser_Manuell = TRUE THEN
  12. gDO_Start_Laser := FALSE;
  13. gDO_Laser_Seitentuer_oeffnen := FALSE;
  14. END_IF
  15. IF gMerker_Laser_Automatik = TRUE THEN
  16. gDO_Laser_Seitentuer_oeffnen := FALSE;
  17. END_IF
  18. IF gVK_Freigabe_manuell = TRUE AND gVK_Stopper_Tisch_6 = TRUE THEN
  19. gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
  20. ELSIF gVK_Freigabe_manuell = TRUE AND gVK_Stopper_Tisch_6 = FALSE THEN
  21. gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
  22. END_IF
  23. IF gVK_Freigabe_manuell = TRUE AND gVK_Vorstopper_Tisch_6 = TRUE THEN
  24. gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
  25. ELSIF gVK_Freigabe_manuell = TRUE AND gVK_Vorstopper_Tisch_6 = FALSE THEN
  26. gTisch_6.Cmd.Vorstopper := KMD_EINFAHREN;
  27. END_IF
  28. IF gVK_Freigabe_manuell = TRUE AND gVK_Aushebeeinheit_Tisch_6 = TRUE THEN
  29. gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
  30. ELSIF gVK_Freigabe_manuell = TRUE AND gVK_Aushebeeinheit_Tisch_6 = FALSE THEN
  31. gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
  32. END_IF
  33. IF gVK_Freigabe_manuell = TRUE AND gVK_doppelt_Lasern = TRUE THEN
  34. gDO_doppelt_lasern := TRUE;
  35. ELSIF gVK_Freigabe_manuell = TRUE AND gVK_doppelt_Lasern = FALSE THEN
  36. gDO_doppelt_lasern := FALSE;
  37. END_IF
  38. IF gVK_Freigabe_manuell = TRUE AND gVK_Start_Laser = TRUE THEN
  39. gDO_Start_Laser := TRUE;
  40. ELSIF gVK_Freigabe_manuell = TRUE AND gVK_Start_Laser = FALSE THEN
  41. gDO_Start_Laser := FALSE;
  42. END_IF
  43. IF gVK_Absaugung = FALSE THEN //Cech-Implement zum Aktivieren und deaktivieren der LAserabsaugung über einen Button am Control-Panel-PC
  44. gDO_Laser_Absaugung := FALSE; //Cech-Implement zum Aktivieren und deaktivieren der LAserabsaugung über einen Button am Control-Panel-PC
  45. END_IF //Cech-Implement zum Aktivieren und deaktivieren der LAserabsaugung über einen Button am Control-Panel-PC
  46. IF gVK_Absaugung = TRUE AND (gDO_Start_Laser = TRUE OR gMerker_Laser_Manuell = TRUE) THEN //Cech-Implement zum Aktivieren und deaktivieren der LAserabsaugung über einen Button am Control-Panel-PC
  47. gDO_Laser_Absaugung := TRUE; //Cech-Implement zum Aktivieren und deaktivieren der LAserabsaugung über einen Button am Control-Panel-PC
  48. END_IF //Cech-Implement zum Aktivieren und deaktivieren der LAserabsaugung über einen Button am Control-Panel-PC
  49. IF gTaster_Tisch_6_aus = TRUE THEN
  50. gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
  51. gTisch_6.Cmd.Vorstopper := KMD_EINFAHREN;
  52. gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
  53. gMerker_RFID_Tisch_6_gelesen := TRUE;
  54. Tisch_6_Automatik := 0;
  55. Tisch_6 := 0;
  56. Tisch_6_Manuell := 0;
  57. END_IF
  58. IF gDI_Laser_Automatik = TRUE AND gDI_Laser_Manuell = FALSE THEN
  59. gMerker_Laser_Automatik := TRUE;
  60. gMerker_Laser_Halbautomatik := FALSE;
  61. gMerker_Laser_Manuell := FALSE;
  62. END_IF
  63. IF gDI_Laser_Manuell = TRUE AND gDI_Laser_Automatik = FALSE THEN
  64. gMerker_Laser_Automatik := FALSE;
  65. gMerker_Laser_Halbautomatik := FALSE;
  66. gMerker_Laser_Manuell := TRUE;
  67. END_IF
  68. IF gDI_Laser_Manuell = FALSE AND gDI_Laser_Automatik = FALSE THEN
  69. gMerker_Laser_Automatik := FALSE;
  70. gMerker_Laser_Halbautomatik := TRUE;
  71. gMerker_Laser_Manuell := FALSE;
  72. END_IF
  73. CASE Tisch_6_Manuell OF
  74. 0:
  75. IF gMerker_Laser_Manuell = TRUE AND gMerker_Laser_Halbautomatik = FALSE AND gMerker_Laser_Automatik = FALSE AND gTisch_6.Inputs.Vor_Stopper = TRUE AND Tisch_6 = 0 THEN
  76. gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
  77. gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
  78. Tisch_6_Manuell := 10;
  79. ELSIF gMerker_Laser_Manuell = TRUE AND gMerker_Laser_Halbautomatik = FALSE AND gMerker_Laser_Automatik = FALSE AND gTisch_6.Inputs.Vor_Stopper = FALSE AND Tisch_6 = 0 THEN
  80. gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
  81. gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
  82. gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
  83. Tisch_6_Manuell := 20;
  84. END_IF
  85. 10:
  86. IF gTisch_6.Inputs.Nach_Stopper = TRUE THEN
  87. gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
  88. gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
  89. gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
  90. Tisch_6_Manuell := 20;
  91. END_IF
  92. 20:
  93. IF gMerker_Laser_Manuell = FALSE THEN
  94. gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
  95. gDO_Laser_Absaugung := FALSE;
  96. Tisch_6_Manuell := 30;
  97. END_IF
  98. 30: lWarten_Aushebeeinheit_Tisch_6 := lWarten_Aushebeeinheit_Tisch_6 + (RTInfo_0.cycle_time/1000);
  99. IF gTisch_6.Inputs.Vor_Stopper = TRUE AND lWarten_Aushebeeinheit_Tisch_6 >= 500 THEN
  100. gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
  101. lWarten_Aushebeeinheit_Tisch_6 := 0;
  102. Tisch_6_Manuell := 40;
  103. ELSIF gTisch_6.Inputs.Vor_Stopper = FALSE AND lWarten_Aushebeeinheit_Tisch_6 >= 500 THEN
  104. lWarten_Aushebeeinheit_Tisch_6 := 0;
  105. Tisch_6_Manuell := 0;
  106. END_IF
  107. 40:
  108. IF gTisch_6.Inputs.Nach_Stopper = TRUE THEN
  109. gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
  110. Tisch_6_Manuell := 0;
  111. END_IF
  112. END_CASE
  113. CASE Tisch_6 OF
  114. 0:
  115. IF gMerker_Laser_Manuell = FALSE AND gMerker_Laser_Halbautomatik = TRUE AND gMerker_Laser_Automatik = FALSE AND Tisch_6_Manuell = 0 AND gTisch_6.Inputs.Vor_VorStopper = TRUE AND gTisch_6.Inputs.Vor_Stopper = TRUE AND gTisch_6.Inputs.Stausensor = FALSE AND gTaster_Tisch_6_aus = FALSE AND gMerker_RFID_Tisch_6_gelesen = TRUE THEN
  116. gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
  117. gMerker_RFID_Tisch_6_gelesen := FALSE;
  118. Tisch_6 := 10;
  119. ELSIF gMerker_Laser_Manuell = FALSE AND gMerker_Laser_Halbautomatik = TRUE AND gMerker_Laser_Automatik = FALSE AND Tisch_6_Manuell = 0 AND gTisch_6.Inputs.Vor_VorStopper = FALSE AND gTisch_6.Inputs.Vor_Stopper = TRUE AND gTisch_6.Inputs.Stausensor = FALSE AND gTaster_Tisch_6_aus = FALSE AND gMerker_RFID_Tisch_6_gelesen = TRUE THEN
  120. gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
  121. gMerker_RFID_Tisch_6_gelesen := FALSE;
  122. Tisch_6 := 10;
  123. ELSIF gMerker_Laser_Manuell = FALSE AND gMerker_Laser_Halbautomatik = TRUE AND gMerker_Laser_Automatik = FALSE AND Tisch_6_Manuell = 0 AND gTisch_6.Inputs.Vor_VorStopper = TRUE AND gTisch_6.Inputs.Vor_Stopper = FALSE AND gTaster_Tisch_6_aus = FALSE THEN
  124. gDO_Laser_Seitentuer_oeffnen := TRUE;
  125. gTisch_6.Cmd.Vorstopper := KMD_EINFAHREN;
  126. Tisch_6 := 200; /// war 110
  127. ELSIF gMerker_Laser_Manuell = FALSE AND gMerker_Laser_Halbautomatik = TRUE AND gMerker_Laser_Automatik = FALSE AND Tisch_6_Manuell = 0 AND gTaster_Tisch_6_aus = FALSE AND (gTisch_6.Inputs.Stopper_eingefahren = TRUE OR gTisch_6.Inputs.Vorstopper_eingefahren = TRUE) THEN
  128. gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
  129. gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
  130. Tisch_6 := 0;
  131. END_IF
  132. //
  133. 10:
  134. IF (*gTisch_6.Status.Aushebeeinheit = STATUS_AUSGEFAHREN*) gTisch_6.Outputs.Aushebeeinheit_ausfahren = TRUE AND gTisch_6.Outputs.Aushebeeinheit_einfahren = FALSE THEN
  135. gDO_Start_Laser := TRUE;
  136. gMerker_Cech_Test_Counter := 10;
  137. gDO_Laser_Seitentuer_oeffnen := TRUE; //!!!!!!!!!!!!!!!!!!!!!!Cech-Comment: Könnte mir vorstellen, dass hier ein FALSE hergehört und unter 20: dann gDO_Laser_Seitentuer_oeffnen := TRUE; das müsste ich ausprobieren
  138. Tisch_6 := 20;
  139. END_IF
  140. 20:
  141. IF gTisch_6.Inputs.Start = TRUE THEN
  142. gDO_Start_Laser := FALSE;
  143. gDO_Laser_Absaugung := FALSE;
  144. gDO_Laser_Seitentuer_oeffnen := FALSE; //!!!!!!!!!!!!!!!!!!!!!!Cech-Comment: Könnte mir vorstellen, dass hier ein TRUE hergehört und unter 10: dann gDO_Laser_Seitentuer_oeffnen := FALSE; das müsste ich ausprobieren
  145. gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
  146. Tisch_6 := 30;
  147. END_IF
  148. 30:
  149. IF (*gTisch_6.Status.Aushebeeinheit = STATUS_EINGEFAHREN*) gTisch_6.Outputs.Aushebeeinheit_einfahren = TRUE AND gTisch_6.Outputs.Aushebeeinheit_ausfahren = FALSE THEN
  150. gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
  151. Tisch_6 := 40;
  152. END_IF
  153. 40:
  154. IF gTisch_6.Inputs.Nach_Stopper = TRUE THEN
  155. Tisch_6 := 45;
  156. END_IF
  157. 45:
  158. IF gTisch_6.Inputs.Nach_Stopper = FALSE THEN
  159. gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
  160. Tisch_6 := 50;
  161. END_IF
  162. 50:
  163. IF gTisch_6.Inputs.Stausensor = TRUE THEN
  164. Tisch_6 := 60;
  165. END_IF
  166. 60:
  167. IF gTisch_6.Inputs.Stausensor = FALSE THEN
  168. Tisch_6 := 0;
  169. END_IF
  170. //
  171. 110:
  172. IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN
  173. Tisch_6 := 120;
  174. END_IF
  175. 120:
  176. IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN
  177. gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
  178. Tisch_6 := 130;
  179. END_IF
  180. 130:
  181. IF (*gTisch_6.Inputs.Vor_Stopper = TRUE AND*) gTisch_6.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
  182. (*gDO_Laser_Seitentuer_oeffnen := FALSE;*)
  183. Tisch_6 := 0;
  184. END_IF
  185. 200:
  186. IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN
  187. Tisch_6 := 210;
  188. END_IF
  189. 210:
  190. IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN
  191. gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
  192. Tisch_6 := 220;
  193. END_IF
  194. 220:
  195. IF (*gTisch_6.Inputs.Vor_Stopper = TRUE AND*) gTisch_6.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
  196. Tisch_6 := 230;
  197. END_IF
  198. 230: IF gTisch_6.Inputs.Vor_Stopper = TRUE THEN
  199. Tisch_6 := 0;
  200. END_IF
  201. END_CASE
  202. CASE Tisch_6_Automatik OF
  203. 0:
  204. IF gMerker_Laser_Manuell = FALSE AND gMerker_Laser_Halbautomatik = FALSE AND gMerker_Laser_Automatik = TRUE AND gTisch_6.Inputs.Vor_VorStopper = TRUE AND gTisch_6.Inputs.Vor_Stopper = TRUE AND gTisch_6.Inputs.Stausensor = FALSE AND gTaster_Tisch_6_aus = FALSE AND gMerker_RFID_Tisch_6_gelesen = TRUE THEN
  205. gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
  206. gMerker_RFID_Tisch_6_gelesen := FALSE;
  207. Tisch_6_Automatik := 10;
  208. ELSIF gMerker_Laser_Manuell = FALSE AND gMerker_Laser_Halbautomatik = FALSE AND gMerker_Laser_Automatik = TRUE AND gTisch_6.Inputs.Vor_VorStopper = FALSE AND gTisch_6.Inputs.Vor_Stopper = TRUE AND gTisch_6.Inputs.Stausensor = FALSE AND gTaster_Tisch_6_aus = FALSE AND gMerker_RFID_Tisch_6_gelesen = TRUE THEN
  209. gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
  210. gMerker_RFID_Tisch_6_gelesen := FALSE;
  211. Tisch_6_Automatik := 10;
  212. ELSIF gMerker_Laser_Manuell = FALSE AND gMerker_Laser_Halbautomatik = FALSE AND gMerker_Laser_Automatik = TRUE AND gTisch_6.Inputs.Vor_VorStopper = TRUE AND gTisch_6.Inputs.Vor_Stopper = FALSE AND gTaster_Tisch_6_aus = FALSE THEN
  213. gDO_Laser_Seitentuer_oeffnen := TRUE;
  214. gTisch_6.Cmd.Vorstopper := KMD_EINFAHREN;
  215. Tisch_6_Automatik := 200; // war 110
  216. ELSIF gMerker_Laser_Manuell = FALSE AND gMerker_Laser_Halbautomatik = FALSE AND gMerker_Laser_Automatik = TRUE AND gTaster_Tisch_6_aus = FALSE AND (gTisch_6.Inputs.Stopper_eingefahren = TRUE OR gTisch_6.Inputs.Vorstopper_eingefahren = TRUE) THEN
  217. gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
  218. gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
  219. Tisch_6_Automatik := 0;
  220. END_IF
  221. //
  222. 10:
  223. IF (*gTisch_6.Status.Aushebeeinheit = STATUS_AUSGEFAHREN*) gTisch_6.Outputs.Aushebeeinheit_ausfahren = TRUE AND gTisch_6.Outputs.Aushebeeinheit_einfahren = FALSE THEN
  224. gDO_Start_Laser := TRUE;
  225. Tisch_6_Automatik := 15;
  226. END_IF
  227. 15: lWarten_Laser_Startsignal := lWarten_Laser_Startsignal + (RTInfo_0.cycle_time/1000);
  228. IF lWarten_Laser_Startsignal >= 500 THEN
  229. gDO_Start_Laser := FALSE;
  230. Tisch_6_Automatik := 20;
  231. END_IF
  232. 20:
  233. IF gDI_Laser_fertig = TRUE THEN
  234. gDO_Start_Laser := FALSE;
  235. gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
  236. gMerker_RFID_Value_Tisch_6 := 0;
  237. gMerker_block_RFID_read_Tisch_6 := TRUE;
  238. Tisch_6_Automatik := 30;
  239. END_IF
  240. 30:
  241. IF (*gTisch_6.Status.Aushebeeinheit = STATUS_EINGEFAHREN*) gTisch_6.Outputs.Aushebeeinheit_einfahren = TRUE AND gTisch_6.Outputs.Aushebeeinheit_ausfahren = FALSE THEN
  242. gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
  243. Tisch_6_Automatik := 40;
  244. END_IF
  245. 40:
  246. IF gTisch_6.Inputs.Nach_Stopper = TRUE THEN
  247. Tisch_6_Automatik := 45;
  248. END_IF
  249. 45:
  250. IF gTisch_6.Inputs.Nach_Stopper = FALSE THEN
  251. gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
  252. gMerker_block_RFID_read_Tisch_6 := FALSE;
  253. Tisch_6_Automatik := 50;
  254. END_IF
  255. 50:
  256. IF gTisch_6.Inputs.Stausensor = TRUE THEN
  257. Tisch_6_Automatik := 60;
  258. END_IF
  259. 60:
  260. IF gTisch_6.Inputs.Stausensor = FALSE THEN
  261. Tisch_6_Automatik := 0;
  262. END_IF
  263. //
  264. 110:
  265. IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN
  266. Tisch_6_Automatik := 120;
  267. END_IF
  268. 120:
  269. IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN
  270. gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
  271. Tisch_6_Automatik := 130;
  272. END_IF
  273. 130:
  274. IF (*gTisch_6.Inputs.Vor_Stopper = TRUE AND*) gTisch_6.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
  275. Tisch_6_Automatik := 0;
  276. END_IF
  277. 200:
  278. IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN
  279. Tisch_6_Automatik := 210;
  280. END_IF
  281. 210:
  282. IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN
  283. gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
  284. Tisch_6_Automatik := 220;
  285. END_IF
  286. 220:
  287. IF (*gTisch_6.Inputs.Vor_Stopper = TRUE AND*) gTisch_6.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
  288. Tisch_6_Automatik := 230;
  289. END_IF
  290. 230: IF gTisch_6.Inputs.Vor_Stopper = TRUE THEN
  291. Tisch_6_Automatik := 0;
  292. END_IF
  293. END_CASE
  294. END_PROGRAM
  295. PROGRAM _EXIT
  296. (* Insert code here *)
  297. END_PROGRAM