Main.st 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364
  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 gTaster_Tisch_6_aus = TRUE THEN
  44. gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
  45. gTisch_6.Cmd.Vorstopper := KMD_EINFAHREN;
  46. gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
  47. gMerker_RFID_Tisch_6_gelesen := TRUE;
  48. Tisch_6_Automatik := 0;
  49. Tisch_6 := 0;
  50. Tisch_6_Manuell := 0;
  51. END_IF
  52. IF gDI_Laser_Automatik = TRUE AND gDI_Laser_Manuell = FALSE THEN
  53. gMerker_Laser_Automatik := TRUE;
  54. gMerker_Laser_Halbautomatik := FALSE;
  55. gMerker_Laser_Manuell := FALSE;
  56. END_IF
  57. IF gDI_Laser_Manuell = TRUE AND gDI_Laser_Automatik = FALSE THEN
  58. gMerker_Laser_Automatik := FALSE;
  59. gMerker_Laser_Halbautomatik := FALSE;
  60. gMerker_Laser_Manuell := TRUE;
  61. END_IF
  62. IF gDI_Laser_Manuell = FALSE AND gDI_Laser_Automatik = FALSE THEN
  63. gMerker_Laser_Automatik := FALSE;
  64. gMerker_Laser_Halbautomatik := TRUE;
  65. gMerker_Laser_Manuell := FALSE;
  66. END_IF
  67. CASE Tisch_6_Manuell OF
  68. 0:
  69. 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
  70. gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
  71. gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
  72. gDO_Laser_Absaugung := TRUE;
  73. Tisch_6_Manuell := 10;
  74. 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
  75. gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
  76. gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
  77. gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
  78. gDO_Laser_Absaugung := TRUE;
  79. Tisch_6_Manuell := 20;
  80. END_IF
  81. 10:
  82. IF gTisch_6.Inputs.Nach_Stopper = TRUE THEN
  83. gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
  84. gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
  85. gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
  86. Tisch_6_Manuell := 20;
  87. END_IF
  88. 20:
  89. IF gMerker_Laser_Manuell = FALSE THEN
  90. gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
  91. gDO_Laser_Absaugung := FALSE;
  92. Tisch_6_Manuell := 30;
  93. END_IF
  94. 30: lWarten_Aushebeeinheit_Tisch_6 := lWarten_Aushebeeinheit_Tisch_6 + (RTInfo_0.cycle_time/1000);
  95. IF gTisch_6.Inputs.Vor_Stopper = TRUE AND lWarten_Aushebeeinheit_Tisch_6 >= 500 THEN
  96. gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
  97. lWarten_Aushebeeinheit_Tisch_6 := 0;
  98. Tisch_6_Manuell := 40;
  99. ELSIF gTisch_6.Inputs.Vor_Stopper = FALSE AND lWarten_Aushebeeinheit_Tisch_6 >= 500 THEN
  100. lWarten_Aushebeeinheit_Tisch_6 := 0;
  101. Tisch_6_Manuell := 0;
  102. END_IF
  103. 40:
  104. IF gTisch_6.Inputs.Nach_Stopper = TRUE THEN
  105. gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
  106. Tisch_6_Manuell := 0;
  107. END_IF
  108. END_CASE
  109. CASE Tisch_6 OF
  110. 0:
  111. 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
  112. gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
  113. gMerker_RFID_Tisch_6_gelesen := FALSE;
  114. Tisch_6 := 10;
  115. 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
  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 = TRUE AND gTisch_6.Inputs.Vor_Stopper = FALSE AND gTaster_Tisch_6_aus = FALSE THEN
  120. gDO_Laser_Seitentuer_oeffnen := TRUE;
  121. gTisch_6.Cmd.Vorstopper := KMD_EINFAHREN;
  122. Tisch_6 := 200; /// war 110
  123. 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
  124. gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
  125. gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
  126. Tisch_6 := 0;
  127. END_IF
  128. //
  129. 10:
  130. IF (*gTisch_6.Status.Aushebeeinheit = STATUS_AUSGEFAHREN*) gTisch_6.Outputs.Aushebeeinheit_ausfahren = TRUE AND gTisch_6.Outputs.Aushebeeinheit_einfahren = FALSE THEN
  131. gDO_Start_Laser := TRUE;
  132. gDO_Laser_Absaugung := TRUE;
  133. gDO_Laser_Seitentuer_oeffnen := TRUE;
  134. Tisch_6 := 20;
  135. END_IF
  136. 20:
  137. IF gTisch_6.Inputs.Start = TRUE THEN
  138. gDO_Start_Laser := FALSE;
  139. gDO_Laser_Absaugung := FALSE;
  140. gDO_Laser_Seitentuer_oeffnen := FALSE;
  141. gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
  142. Tisch_6 := 30;
  143. END_IF
  144. 30:
  145. IF (*gTisch_6.Status.Aushebeeinheit = STATUS_EINGEFAHREN*) gTisch_6.Outputs.Aushebeeinheit_einfahren = TRUE AND gTisch_6.Outputs.Aushebeeinheit_ausfahren = FALSE THEN
  146. gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
  147. Tisch_6 := 40;
  148. END_IF
  149. 40:
  150. IF gTisch_6.Inputs.Nach_Stopper = TRUE THEN
  151. Tisch_6 := 45;
  152. END_IF
  153. 45:
  154. IF gTisch_6.Inputs.Nach_Stopper = FALSE THEN
  155. gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
  156. Tisch_6 := 50;
  157. END_IF
  158. 50:
  159. IF gTisch_6.Inputs.Stausensor = TRUE THEN
  160. Tisch_6 := 60;
  161. END_IF
  162. 60:
  163. IF gTisch_6.Inputs.Stausensor = FALSE THEN
  164. Tisch_6 := 0;
  165. END_IF
  166. //
  167. 110:
  168. IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN
  169. Tisch_6 := 120;
  170. END_IF
  171. 120:
  172. IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN
  173. gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
  174. Tisch_6 := 130;
  175. END_IF
  176. 130:
  177. IF (*gTisch_6.Inputs.Vor_Stopper = TRUE AND*) gTisch_6.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
  178. (*gDO_Laser_Seitentuer_oeffnen := FALSE;*)
  179. Tisch_6 := 0;
  180. END_IF
  181. 200:
  182. IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN
  183. Tisch_6 := 210;
  184. END_IF
  185. 210:
  186. IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN
  187. gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
  188. Tisch_6 := 220;
  189. END_IF
  190. 220:
  191. IF (*gTisch_6.Inputs.Vor_Stopper = TRUE AND*) gTisch_6.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
  192. Tisch_6 := 230;
  193. END_IF
  194. 230: IF gTisch_6.Inputs.Vor_Stopper = TRUE THEN
  195. Tisch_6 := 0;
  196. END_IF
  197. END_CASE
  198. CASE Tisch_6_Automatik OF
  199. 0:
  200. 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
  201. gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
  202. gMerker_RFID_Tisch_6_gelesen := FALSE;
  203. Tisch_6_Automatik := 10;
  204. 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
  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 = TRUE AND gTisch_6.Inputs.Vor_Stopper = FALSE AND gTaster_Tisch_6_aus = FALSE THEN
  209. gDO_Laser_Seitentuer_oeffnen := TRUE;
  210. gTisch_6.Cmd.Vorstopper := KMD_EINFAHREN;
  211. Tisch_6_Automatik := 200; // war 110
  212. 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
  213. gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
  214. gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
  215. Tisch_6_Automatik := 0;
  216. END_IF
  217. //
  218. 10:
  219. IF (*gTisch_6.Status.Aushebeeinheit = STATUS_AUSGEFAHREN*) gTisch_6.Outputs.Aushebeeinheit_ausfahren = TRUE AND gTisch_6.Outputs.Aushebeeinheit_einfahren = FALSE THEN
  220. gDO_Start_Laser := TRUE;
  221. Tisch_6_Automatik := 15;
  222. END_IF
  223. 15: lWarten_Laser_Startsignal := lWarten_Laser_Startsignal + (RTInfo_0.cycle_time/1000);
  224. IF lWarten_Laser_Startsignal >= 500 THEN
  225. gDO_Start_Laser := FALSE;
  226. Tisch_6_Automatik := 20;
  227. END_IF
  228. 20:
  229. IF gDI_Laser_fertig = TRUE THEN
  230. gDO_Start_Laser := FALSE;
  231. gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
  232. gMerker_RFID_Value_Tisch_6 := 0;
  233. gMerker_block_RFID_read_Tisch_6 := TRUE;
  234. Tisch_6_Automatik := 30;
  235. END_IF
  236. 30:
  237. IF (*gTisch_6.Status.Aushebeeinheit = STATUS_EINGEFAHREN*) gTisch_6.Outputs.Aushebeeinheit_einfahren = TRUE AND gTisch_6.Outputs.Aushebeeinheit_ausfahren = FALSE THEN
  238. gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
  239. Tisch_6_Automatik := 40;
  240. END_IF
  241. 40:
  242. IF gTisch_6.Inputs.Nach_Stopper = TRUE THEN
  243. Tisch_6_Automatik := 45;
  244. END_IF
  245. 45:
  246. IF gTisch_6.Inputs.Nach_Stopper = FALSE THEN
  247. gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
  248. gMerker_block_RFID_read_Tisch_6 := FALSE;
  249. Tisch_6_Automatik := 50;
  250. END_IF
  251. 50:
  252. IF gTisch_6.Inputs.Stausensor = TRUE THEN
  253. Tisch_6_Automatik := 60;
  254. END_IF
  255. 60:
  256. IF gTisch_6.Inputs.Stausensor = FALSE THEN
  257. Tisch_6_Automatik := 0;
  258. END_IF
  259. //
  260. 110:
  261. IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN
  262. Tisch_6_Automatik := 120;
  263. END_IF
  264. 120:
  265. IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN
  266. gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
  267. Tisch_6_Automatik := 130;
  268. END_IF
  269. 130:
  270. IF (*gTisch_6.Inputs.Vor_Stopper = TRUE AND*) gTisch_6.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
  271. Tisch_6_Automatik := 0;
  272. END_IF
  273. 200:
  274. IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN
  275. Tisch_6_Automatik := 210;
  276. END_IF
  277. 210:
  278. IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN
  279. gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
  280. Tisch_6_Automatik := 220;
  281. END_IF
  282. 220:
  283. IF (*gTisch_6.Inputs.Vor_Stopper = TRUE AND*) gTisch_6.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
  284. Tisch_6_Automatik := 230;
  285. END_IF
  286. 230: IF gTisch_6.Inputs.Vor_Stopper = TRUE THEN
  287. Tisch_6_Automatik := 0;
  288. END_IF
  289. END_CASE
  290. END_PROGRAM
  291. PROGRAM _EXIT
  292. (* Insert code here *)
  293. END_PROGRAM