Main.st 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951
  1. PROGRAM _INIT
  2. RTInfo_0(enable:=1);
  3. Wartezeit_OPCUA := 1100;
  4. END_PROGRAM
  5. PROGRAM _CYCLIC
  6. //********************************** Tisch 1 ***********************************************
  7. (* Lesen *)
  8. gMerker_Tisch_1_RFID_Vorhanden := gTisch_1_RFID_Read[0].0; (* Auslesen ob Chip vor Lesekopf *)
  9. IF gMerker_Tisch_1_Auftrag_Lesen = TRUE THEN
  10. // gMerker_Lesen_Fertig := FALSE;
  11. gTisch_1_RFID_Write[1] := 1;(* Befehl Datenträger lesen *)
  12. gTisch_1_RFID_Write[2] := 0;
  13. gTisch_1_RFID_Write[3] := 0;
  14. gTisch_1_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
  15. gTisch_1_RFID_Write[5] := 0;
  16. gTisch_1_RFID_Write[6] := 0;
  17. gTisch_1_RFID_Write[7] := 0;
  18. gTisch_1_RFID_Write[8] := 0;
  19. gTisch_1_RFID_Write[9] := 1;
  20. gTisch_1_RFID_Write[0].0 := TRUE;
  21. END_IF
  22. (* Schreiben *)
  23. (* Befehlsdaten *)
  24. IF gMerker_neuen_Befehl_schreiben = TRUE THEN
  25. gTisch_1_RFID_Write[1] := 2; (* Datenträger beschreiben *)
  26. gTisch_1_RFID_Write[2] := 0; (* Daten *)
  27. gTisch_1_RFID_Write[3] := 0; (* Daten *)
  28. gTisch_1_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
  29. gTisch_1_RFID_Write[5] := 0; (* Daten *)
  30. gTisch_1_RFID_Write[6] := 0; (* Daten *)
  31. gTisch_1_RFID_Write[7] := 0; (* Daten *)
  32. gTisch_1_RFID_Write[8] := 0; (* Daten *)
  33. gTisch_1_RFID_Write[0].0 := TRUE; (* neuer Auftrag steht an *)
  34. END_IF
  35. (* Write Variable nullen *)
  36. IF gMerker_Tisch_1_alles_nullen = TRUE THEN
  37. gTisch_1_RFID_Write[1] := 0;
  38. gTisch_1_RFID_Write[2] := 0;
  39. gTisch_1_RFID_Write[3] := 0;
  40. gTisch_1_RFID_Write[4] := 0;
  41. gTisch_1_RFID_Write[5] := 0;
  42. gTisch_1_RFID_Write[6] := 0;
  43. gTisch_1_RFID_Write[7] := 0;
  44. gTisch_1_RFID_Write[8] := 0;
  45. gTisch_1_RFID_Write[0] := 0;
  46. END_IF
  47. gTisch_1_RFID_Write[9] := gTisch_1_RFID_Write[0];
  48. CASE Tisch_1_RFID OF
  49. 0:
  50. IF gMerker_Tisch_1_RFID_Vorhanden = TRUE AND gTisch_1.Inputs.Vor_Stopper = TRUE AND gMerker_Tisch_1_RFID_Reset = FALSE (*AND gMerker_Tisch_1_lesen_fertig = FALSE*) THEN
  51. gMerker_Tisch_1_Auftrag_Lesen := TRUE;
  52. Tisch_1_RFID := 10;
  53. END_IF
  54. 10: lWarten_RFID_Fehler_Tisch_1 := lWarten_RFID_Fehler_Tisch_1 + (RTInfo_0.cycle_time/1000);
  55. IF gTisch_1_RFID_Read[0] = 135 THEN
  56. gMerker_RFID_Value_Tisch_1 := gTisch_1_RFID_Read[1];
  57. // gMerker_RFID_Tisch_1_gelesen := TRUE;
  58. // gMerker_Tisch_1_lesen_fertig := TRUE;
  59. lWarten_RFID_Fehler_Tisch_1 := 0;
  60. Tisch_1_RFID := 15;
  61. ELSIF lWarten_RFID_Fehler_Tisch_1 >= 5000 AND gTisch_1_RFID_Read[0] <> 135 THEN
  62. gMerker_Tisch_1_Auftrag_Lesen := FALSE;
  63. gMerker_Tisch_1_RFID_Reset := TRUE;
  64. lWarten_RFID_Fehler_Tisch_1 := 0;
  65. Tisch_1_RFID := 100;
  66. END_IF
  67. 15:
  68. IF gMerker_RFID_Value_Tisch_1 <> 0 THEN
  69. gMerker_RFID_Tisch_1_gelesen := TRUE;
  70. gMerker_Tisch_1_lesen_fertig := TRUE;
  71. Tisch_1_RFID := 20;
  72. ELSIF gMerker_RFID_Value_Tisch_1 = 0 THEN
  73. gMerker_RFID_Tisch_1_gelesen := FALSE;
  74. gMerker_Tisch_1_lesen_fertig := FALSE;
  75. Tisch_1_RFID := 100;
  76. END_IF
  77. 20: lWarten_fuer_OPCUA_Tisch_1 := lWarten_fuer_OPCUA_Tisch_1 + (RTInfo_0.cycle_time/1000);
  78. IF gMerker_Tisch_1_RFID_Vorhanden = FALSE AND gTisch_1.Inputs.Vor_Stopper = FALSE AND lWarten_fuer_OPCUA_Tisch_1 >= Wartezeit_OPCUA THEN
  79. gMerker_Tisch_1_Auftrag_Lesen := FALSE;
  80. gMerker_RFID_Value_Tisch_1 := 0;
  81. gTisch_1_RFID_Write[0] := 4;
  82. Tisch_1_RFID := 30;
  83. END_IF
  84. 30:
  85. IF gTisch_1_RFID_Read[0] = 0 THEN
  86. gTisch_1_RFID_Write[0] := 0;
  87. Tisch_1_RFID := 0;
  88. END_IF
  89. 100:
  90. IF gMerker_Tisch_1_Auftrag_Lesen = FALSE AND gMerker_Tisch_1_RFID_Reset = TRUE THEN
  91. gTisch_1_RFID_Write[0] := 4;
  92. gMerker_RFID_Value_Tisch_1 := 0;
  93. Tisch_1_RFID := 110;
  94. END_IF
  95. 110:
  96. IF gTisch_1_RFID_Read[0] = 0 THEN
  97. gMerker_Tisch_1_alles_nullen := TRUE;
  98. Tisch_1_RFID := 120;
  99. END_IF
  100. 120:
  101. IF gTisch_1_RFID_Write[0] = 0 AND gTisch_1_RFID_Write[1] = 0 AND gTisch_1_RFID_Write[2] = 0 AND gTisch_1_RFID_Write[3] = 0 AND gTisch_1_RFID_Write[4] = 0 AND gTisch_1_RFID_Write[5] = 0 AND gTisch_1_RFID_Write[6] = 0 AND gTisch_1_RFID_Write[7] = 0 AND gTisch_1_RFID_Write[8] = 0 AND gTisch_1_RFID_Write[9] = 0 THEN
  102. gMerker_Tisch_1_alles_nullen := FALSE;
  103. gMerker_Tisch_1_RFID_Reset := FALSE;
  104. Tisch_1_RFID := 0;
  105. END_IF
  106. END_CASE
  107. // SCHREIBEN AUF ALLE GLEICH
  108. CASE RFID_Schreiben OF
  109. 0:
  110. IF gMerker_Tisch_1_RFID_Vorhanden = TRUE AND gMerker_OPCUA_Schreibauftrag = TRUE AND gMerker_Tisch_1_lesen_fertig = TRUE THEN
  111. gTisch_1_RFID_Write[0] := 4;
  112. RFID_Schreiben := 10;
  113. END_IF
  114. 10:
  115. IF gTisch_1_RFID_Read[0] = 0 THEN
  116. gMerker_Tisch_1_alles_nullen := TRUE;
  117. RFID_Schreiben := 20;
  118. END_IF
  119. 20:
  120. IF gTisch_1_RFID_Write[0] = 0 AND gTisch_1_RFID_Write[1] = 0 AND gTisch_1_RFID_Write[2] = 0 AND gTisch_1_RFID_Write[3] = 0 AND gTisch_1_RFID_Write[4] = 0 AND gTisch_1_RFID_Write[5] = 0 AND gTisch_1_RFID_Write[6] = 0 AND gTisch_1_RFID_Write[7] = 0 AND gTisch_1_RFID_Write[8] = 0 AND gTisch_1_RFID_Write[9] = 0 THEN
  121. gMerker_Tisch_1_alles_nullen := FALSE;
  122. gMerker_neuen_Befehl_schreiben := TRUE;
  123. RFID_Schreiben := 30;
  124. END_IF
  125. 30:
  126. IF gTisch_1_RFID_Read[0] = 163 THEN
  127. gMerker_neuen_Befehl_schreiben := FALSE;
  128. gMerker_Tisch_1_alles_nullen := TRUE;
  129. RFID_Schreiben := 40;
  130. END_IF
  131. 40:
  132. IF gTisch_1_RFID_Write[0] = 0 AND gTisch_1_RFID_Write[1] = 0 AND gTisch_1_RFID_Write[2] = 0 AND gTisch_1_RFID_Write[3] = 0 AND gTisch_1_RFID_Write[4] = 0 AND gTisch_1_RFID_Write[5] = 0 AND gTisch_1_RFID_Write[6] = 0 AND gTisch_1_RFID_Write[7] = 0 AND gTisch_1_RFID_Write[8] = 0 AND gTisch_1_RFID_Write[9] = 0 THEN
  133. gMerker_Tisch_1_alles_nullen := FALSE;
  134. gTisch_1_RFID_Write[1] := gMerker_OPCUA_Seriennummer_Test;
  135. gTisch_1_RFID_Write[2] := 0;
  136. gTisch_1_RFID_Write[3] := 0;
  137. gTisch_1_RFID_Write[4] := 0;
  138. gTisch_1_RFID_Write[5] := 0;
  139. gTisch_1_RFID_Write[6] := 0;
  140. gTisch_1_RFID_Write[7] := 0;
  141. gTisch_1_RFID_Write[8] := 0;
  142. gTisch_1_RFID_Write[0] := 65;
  143. RFID_Schreiben := 50;
  144. END_IF
  145. 50:
  146. IF gTisch_1_RFID_Read[0] = 167 THEN
  147. gMerker_Tisch_1_alles_nullen := TRUE;
  148. RFID_Schreiben := 60;
  149. END_IF
  150. 60:
  151. IF gTisch_1_RFID_Write[0] = 0 AND gTisch_1_RFID_Write[1] = 0 AND gTisch_1_RFID_Write[2] = 0 AND gTisch_1_RFID_Write[3] = 0 AND gTisch_1_RFID_Write[4] = 0 AND gTisch_1_RFID_Write[5] = 0 AND gTisch_1_RFID_Write[6] = 0 AND gTisch_1_RFID_Write[7] = 0 AND gTisch_1_RFID_Write[8] = 0 AND gTisch_1_RFID_Write[9] = 0 THEN
  152. gMerker_Tisch_1_alles_nullen := FALSE;
  153. gMerker_OPCUA_Schreibauftrag := FALSE;
  154. gMerker_Tisch_1_lesen_fertig := FALSE;
  155. // gMerker_Tisch_1_Auftrag_Lesen := TRUE;
  156. RFID_Schreiben := 0; // war 70
  157. END_IF
  158. // 70:
  159. // IF gMerker_Tisch_1_RFID_Vorhanden = FALSE THEN
  160. // // gMerker_Tisch_1_Auftrag_Lesen := FALSE;
  161. // RFID_Schreiben := 0;
  162. // END_IF
  163. END_CASE
  164. //********************************** Tisch 2 ***********************************************
  165. (* Lesen *)
  166. gMerker_Tisch_2_RFID_Vorhanden := gTisch_2_RFID_Read[0].0; (* Auslesen ob Chip vor Lesekopf *)
  167. IF gMerker_Tisch_2_Auftrag_Lesen = TRUE THEN
  168. // gMerker_Lesen_Fertig := FALSE;
  169. gTisch_2_RFID_Write[1] := 1;(* Befehl Datenträger lesen *)
  170. gTisch_2_RFID_Write[2] := 0;
  171. gTisch_2_RFID_Write[3] := 0;
  172. gTisch_2_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
  173. gTisch_2_RFID_Write[5] := 0;
  174. gTisch_2_RFID_Write[6] := 0;
  175. gTisch_2_RFID_Write[7] := 0;
  176. gTisch_2_RFID_Write[8] := 0;
  177. gTisch_2_RFID_Write[9] := 1;
  178. gTisch_2_RFID_Write[0].0 := TRUE;
  179. END_IF
  180. (* Write Variable nullen *)
  181. IF gMerker_Tisch_2_alles_nullen = TRUE THEN
  182. gTisch_2_RFID_Write[1] := 0;
  183. gTisch_2_RFID_Write[2] := 0;
  184. gTisch_2_RFID_Write[3] := 0;
  185. gTisch_2_RFID_Write[4] := 0;
  186. gTisch_2_RFID_Write[5] := 0;
  187. gTisch_2_RFID_Write[6] := 0;
  188. gTisch_2_RFID_Write[7] := 0;
  189. gTisch_2_RFID_Write[8] := 0;
  190. gTisch_2_RFID_Write[0] := 0;
  191. END_IF
  192. gTisch_2_RFID_Write[9] := gTisch_2_RFID_Write[0];
  193. CASE Tisch_2_RFID OF
  194. 0:
  195. IF gMerker_Tisch_2_RFID_Vorhanden = TRUE AND gTisch_2.Inputs.Vor_Stopper = TRUE AND gMerker_Tisch_2_RFID_Reset = FALSE (*AND gMerker_Tisch_2_lesen_fertig = FALSE*) THEN
  196. gMerker_Tisch_2_Auftrag_Lesen := TRUE;
  197. Tisch_2_RFID := 10;
  198. END_IF
  199. 10: lWarten_RFID_Fehler_Tisch_2 := lWarten_RFID_Fehler_Tisch_2 + (RTInfo_0.cycle_time/1000);
  200. IF gTisch_2_RFID_Read[0] = 135 THEN
  201. gMerker_RFID_Value_Tisch_2 := gTisch_2_RFID_Read[1];
  202. // gMerker_RFID_Tisch_2_gelesen := TRUE;
  203. // gMerker_Tisch_2_lesen_fertig := TRUE;
  204. lWarten_RFID_Fehler_Tisch_2 := 0;
  205. Tisch_2_RFID := 15;
  206. ELSIF lWarten_RFID_Fehler_Tisch_2 >= 5000 AND gTisch_2_RFID_Read[0] <> 135 THEN
  207. gMerker_Tisch_2_Auftrag_Lesen := FALSE;
  208. gMerker_Tisch_2_RFID_Reset := TRUE;
  209. lWarten_RFID_Fehler_Tisch_2 := 0;
  210. Tisch_2_RFID := 100;
  211. END_IF
  212. 15:
  213. IF gMerker_RFID_Value_Tisch_2 <> 0 THEN
  214. gMerker_RFID_Tisch_2_gelesen := TRUE;
  215. gMerker_Tisch_2_lesen_fertig := TRUE;
  216. Tisch_2_RFID := 20;
  217. ELSIF gMerker_RFID_Value_Tisch_2 = 0 THEN
  218. gMerker_RFID_Tisch_2_gelesen := FALSE;
  219. gMerker_Tisch_2_lesen_fertig := FALSE;
  220. Tisch_2_RFID := 100;
  221. END_IF
  222. 20: lWarten_fuer_OPCUA_Tisch_2 := lWarten_fuer_OPCUA_Tisch_2 + (RTInfo_0.cycle_time/1000);
  223. IF gMerker_Tisch_2_RFID_Vorhanden = FALSE AND gTisch_2.Inputs.Vor_Stopper = FALSE AND lWarten_fuer_OPCUA_Tisch_2 >= Wartezeit_OPCUA THEN
  224. gMerker_Tisch_2_Auftrag_Lesen := FALSE;
  225. gMerker_RFID_Value_Tisch_2 := 0;
  226. gTisch_2_RFID_Write[0] := 4;
  227. Tisch_2_RFID := 30;
  228. END_IF
  229. 30:
  230. IF gTisch_2_RFID_Read[0] = 0 THEN
  231. gTisch_2_RFID_Write[0] := 0;
  232. Tisch_2_RFID := 0;
  233. END_IF
  234. 100:
  235. IF gMerker_Tisch_2_Auftrag_Lesen = FALSE AND gMerker_Tisch_2_RFID_Reset = TRUE THEN
  236. gTisch_2_RFID_Write[0] := 4;
  237. gMerker_RFID_Value_Tisch_2 := 0;
  238. Tisch_2_RFID := 110;
  239. END_IF
  240. 110:
  241. IF gTisch_2_RFID_Read[0] = 0 THEN
  242. gMerker_Tisch_2_alles_nullen := TRUE;
  243. Tisch_2_RFID := 120;
  244. END_IF
  245. 120:
  246. IF gTisch_2_RFID_Write[0] = 0 AND gTisch_2_RFID_Write[1] = 0 AND gTisch_2_RFID_Write[2] = 0 AND gTisch_2_RFID_Write[3] = 0 AND gTisch_2_RFID_Write[4] = 0 AND gTisch_2_RFID_Write[5] = 0 AND gTisch_2_RFID_Write[6] = 0 AND gTisch_2_RFID_Write[7] = 0 AND gTisch_2_RFID_Write[8] = 0 AND gTisch_2_RFID_Write[9] = 0 THEN
  247. gMerker_Tisch_2_alles_nullen := FALSE;
  248. gMerker_Tisch_2_RFID_Reset := FALSE;
  249. Tisch_2_RFID := 0;
  250. END_IF
  251. END_CASE
  252. //********************************** Tisch 3 ***********************************************
  253. (* Lesen *)
  254. gMerker_Tisch_3_RFID_Vorhanden := gTisch_3_RFID_Read[0].0; (* Auslesen ob Chip vor Lesekopf *)
  255. IF gMerker_Tisch_3_Auftrag_Lesen = TRUE THEN
  256. // gMerker_Lesen_Fertig := FALSE;
  257. gTisch_3_RFID_Write[1] := 1;(* Befehl Datenträger lesen *)
  258. gTisch_3_RFID_Write[2] := 0;
  259. gTisch_3_RFID_Write[3] := 0;
  260. gTisch_3_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
  261. gTisch_3_RFID_Write[5] := 0;
  262. gTisch_3_RFID_Write[6] := 0;
  263. gTisch_3_RFID_Write[7] := 0;
  264. gTisch_3_RFID_Write[8] := 0;
  265. gTisch_3_RFID_Write[9] := 1;
  266. gTisch_3_RFID_Write[0].0 := TRUE;
  267. END_IF
  268. (* Write Variable nullen *)
  269. IF gMerker_Tisch_3_alles_nullen = TRUE THEN
  270. gTisch_3_RFID_Write[1] := 0;
  271. gTisch_3_RFID_Write[2] := 0;
  272. gTisch_3_RFID_Write[3] := 0;
  273. gTisch_3_RFID_Write[4] := 0;
  274. gTisch_3_RFID_Write[5] := 0;
  275. gTisch_3_RFID_Write[6] := 0;
  276. gTisch_3_RFID_Write[7] := 0;
  277. gTisch_3_RFID_Write[8] := 0;
  278. gTisch_3_RFID_Write[0] := 0;
  279. END_IF
  280. gTisch_3_RFID_Write[9] := gTisch_3_RFID_Write[0];
  281. CASE Tisch_3_RFID OF
  282. 0:
  283. IF gMerker_Tisch_3_RFID_Vorhanden = TRUE AND gTisch_3.Inputs.Vor_Stopper = TRUE AND gMerker_Tisch_3_RFID_Reset = FALSE (*AND gMerker_Tisch_3_lesen_fertig = FALSE*) THEN
  284. gMerker_Tisch_3_Auftrag_Lesen := TRUE;
  285. Tisch_3_RFID := 10;
  286. END_IF
  287. 10: lWarten_RFID_Fehler_Tisch_3 := lWarten_RFID_Fehler_Tisch_3 + (RTInfo_0.cycle_time/1000);
  288. IF gTisch_3_RFID_Read[0] = 135 THEN
  289. gMerker_RFID_Value_Tisch_3 := gTisch_3_RFID_Read[1];
  290. // gMerker_RFID_Tisch_3_gelesen := TRUE;
  291. // gMerker_Tisch_3_lesen_fertig := TRUE;
  292. lWarten_RFID_Fehler_Tisch_3 := 0;
  293. Tisch_3_RFID := 15;
  294. ELSIF lWarten_RFID_Fehler_Tisch_3 >= 5000 AND gTisch_3_RFID_Read[0] <> 135 THEN
  295. gMerker_Tisch_3_Auftrag_Lesen := FALSE;
  296. gMerker_Tisch_3_RFID_Reset := TRUE;
  297. lWarten_RFID_Fehler_Tisch_3 := 0;
  298. Tisch_3_RFID := 100;
  299. END_IF
  300. 15:
  301. IF gMerker_RFID_Value_Tisch_3 <> 0 THEN
  302. gMerker_RFID_Tisch_3_gelesen := TRUE;
  303. gMerker_Tisch_3_lesen_fertig := TRUE;
  304. Tisch_3_RFID := 20;
  305. ELSIF gMerker_RFID_Value_Tisch_3 = 0 THEN
  306. gMerker_RFID_Tisch_3_gelesen := FALSE;
  307. gMerker_Tisch_3_lesen_fertig := FALSE;
  308. Tisch_3_RFID := 100;
  309. END_IF
  310. 20: lWarten_fuer_OPCUA_Tisch_3 := lWarten_fuer_OPCUA_Tisch_3 + (RTInfo_0.cycle_time/1000);
  311. IF gMerker_Tisch_3_RFID_Vorhanden = FALSE AND gTisch_3.Inputs.Vor_Stopper = FALSE AND lWarten_fuer_OPCUA_Tisch_3 >= Wartezeit_OPCUA THEN
  312. gMerker_Tisch_3_Auftrag_Lesen := FALSE;
  313. gMerker_RFID_Value_Tisch_3 := 0;
  314. gTisch_3_RFID_Write[0] := 4;
  315. Tisch_3_RFID := 30;
  316. END_IF
  317. 30:
  318. IF gTisch_3_RFID_Read[0] = 0 THEN
  319. gTisch_3_RFID_Write[0] := 0;
  320. Tisch_3_RFID := 0;
  321. END_IF
  322. 100:
  323. IF gMerker_Tisch_3_Auftrag_Lesen = FALSE AND gMerker_Tisch_3_RFID_Reset = TRUE THEN
  324. gTisch_3_RFID_Write[0] := 4;
  325. gMerker_RFID_Value_Tisch_3 := 0;
  326. Tisch_3_RFID := 110;
  327. END_IF
  328. 110:
  329. IF gTisch_3_RFID_Read[0] = 0 THEN
  330. gMerker_Tisch_3_alles_nullen := TRUE;
  331. Tisch_3_RFID := 120;
  332. END_IF
  333. 120:
  334. IF gTisch_3_RFID_Write[0] = 0 AND gTisch_3_RFID_Write[1] = 0 AND gTisch_3_RFID_Write[2] = 0 AND gTisch_3_RFID_Write[3] = 0 AND gTisch_3_RFID_Write[4] = 0 AND gTisch_3_RFID_Write[5] = 0 AND gTisch_3_RFID_Write[6] = 0 AND gTisch_3_RFID_Write[7] = 0 AND gTisch_3_RFID_Write[8] = 0 AND gTisch_3_RFID_Write[9] = 0 THEN
  335. gMerker_Tisch_3_alles_nullen := FALSE;
  336. gMerker_Tisch_3_RFID_Reset := FALSE;
  337. Tisch_3_RFID := 0;
  338. END_IF
  339. END_CASE
  340. //********************************** Tisch 4 ***********************************************
  341. (* Lesen *)
  342. gMerker_Tisch_4_RFID_Vorhanden := gTisch_4_RFID_Read[0].0; (* Auslesen ob Chip vor Lesekopf *)
  343. IF gMerker_Tisch_4_Auftrag_Lesen = TRUE THEN
  344. // gMerker_Lesen_Fertig := FALSE;
  345. gTisch_4_RFID_Write[1] := 1;(* Befehl Datenträger lesen *)
  346. gTisch_4_RFID_Write[2] := 0;
  347. gTisch_4_RFID_Write[3] := 0;
  348. gTisch_4_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
  349. gTisch_4_RFID_Write[5] := 0;
  350. gTisch_4_RFID_Write[6] := 0;
  351. gTisch_4_RFID_Write[7] := 0;
  352. gTisch_4_RFID_Write[8] := 0;
  353. gTisch_4_RFID_Write[9] := 1;
  354. gTisch_4_RFID_Write[0].0 := TRUE;
  355. END_IF
  356. (* Write Variable nullen *)
  357. IF gMerker_Tisch_4_alles_nullen = TRUE THEN
  358. gTisch_4_RFID_Write[1] := 0;
  359. gTisch_4_RFID_Write[2] := 0;
  360. gTisch_4_RFID_Write[3] := 0;
  361. gTisch_4_RFID_Write[4] := 0;
  362. gTisch_4_RFID_Write[5] := 0;
  363. gTisch_4_RFID_Write[6] := 0;
  364. gTisch_4_RFID_Write[7] := 0;
  365. gTisch_4_RFID_Write[8] := 0;
  366. gTisch_4_RFID_Write[0] := 0;
  367. END_IF
  368. gTisch_4_RFID_Write[9] := gTisch_4_RFID_Write[0];
  369. CASE Tisch_4_RFID OF
  370. 0:
  371. IF gMerker_Tisch_4_RFID_Vorhanden = TRUE AND gTisch_4.Inputs.Vor_Stopper = TRUE AND gMerker_Tisch_4_RFID_Reset = FALSE (*AND gMerker_Tisch_4_lesen_fertig = FALSE*) THEN
  372. gMerker_Tisch_4_Auftrag_Lesen := TRUE;
  373. Tisch_4_RFID := 10;
  374. END_IF
  375. 10: lWarten_RFID_Fehler_Tisch_4 := lWarten_RFID_Fehler_Tisch_4 + (RTInfo_0.cycle_time/1000);
  376. IF gTisch_4_RFID_Read[0] = 135 THEN
  377. gMerker_RFID_Value_Tisch_4 := gTisch_4_RFID_Read[1];
  378. // gMerker_RFID_Tisch_4_gelesen := TRUE;
  379. // gMerker_Tisch_4_lesen_fertig := TRUE;
  380. lWarten_RFID_Fehler_Tisch_4 := 0;
  381. Tisch_4_RFID := 15;
  382. ELSIF lWarten_RFID_Fehler_Tisch_4 >= 5000 AND gTisch_4_RFID_Read[0] <> 135 THEN
  383. gMerker_Tisch_4_Auftrag_Lesen := FALSE;
  384. gMerker_Tisch_4_RFID_Reset := TRUE;
  385. lWarten_RFID_Fehler_Tisch_4 := 0;
  386. Tisch_4_RFID := 100;
  387. END_IF
  388. 15:
  389. IF gMerker_RFID_Value_Tisch_4 <> 0 THEN
  390. gMerker_RFID_Tisch_4_gelesen := TRUE;
  391. gMerker_Tisch_4_lesen_fertig := TRUE;
  392. Tisch_4_RFID := 20;
  393. ELSIF gMerker_RFID_Value_Tisch_4 = 0 THEN
  394. gMerker_RFID_Tisch_4_gelesen := FALSE;
  395. gMerker_Tisch_4_lesen_fertig := FALSE;
  396. Tisch_4_RFID := 100;
  397. END_IF
  398. 20: lWarten_fuer_OPCUA_Tisch_4 := lWarten_fuer_OPCUA_Tisch_4 + (RTInfo_0.cycle_time/1000);
  399. IF gMerker_Tisch_4_RFID_Vorhanden = FALSE AND gTisch_4.Inputs.Vor_Stopper = FALSE AND lWarten_fuer_OPCUA_Tisch_4 >= Wartezeit_OPCUA THEN
  400. gMerker_Tisch_4_Auftrag_Lesen := FALSE;
  401. gMerker_RFID_Value_Tisch_4 := 0;
  402. gTisch_4_RFID_Write[0] := 4;
  403. Tisch_4_RFID := 30;
  404. END_IF
  405. 30:
  406. IF gTisch_4_RFID_Read[0] = 0 THEN
  407. gTisch_4_RFID_Write[0] := 0;
  408. Tisch_4_RFID := 0;
  409. END_IF
  410. 100:
  411. IF gMerker_Tisch_4_Auftrag_Lesen = FALSE AND gMerker_Tisch_4_RFID_Reset = TRUE THEN
  412. gTisch_4_RFID_Write[0] := 4;
  413. gMerker_RFID_Value_Tisch_4 := 0;
  414. Tisch_4_RFID := 110;
  415. END_IF
  416. 110:
  417. IF gTisch_4_RFID_Read[0] = 0 THEN
  418. gMerker_Tisch_4_alles_nullen := TRUE;
  419. Tisch_4_RFID := 120;
  420. END_IF
  421. 120:
  422. IF gTisch_4_RFID_Write[0] = 0 AND gTisch_4_RFID_Write[1] = 0 AND gTisch_4_RFID_Write[2] = 0 AND gTisch_4_RFID_Write[3] = 0 AND gTisch_4_RFID_Write[4] = 0 AND gTisch_4_RFID_Write[5] = 0 AND gTisch_4_RFID_Write[6] = 0 AND gTisch_4_RFID_Write[7] = 0 AND gTisch_4_RFID_Write[8] = 0 AND gTisch_4_RFID_Write[9] = 0 THEN
  423. gMerker_Tisch_4_alles_nullen := FALSE;
  424. gMerker_Tisch_4_RFID_Reset := FALSE;
  425. Tisch_4_RFID := 0;
  426. END_IF
  427. END_CASE
  428. //********************************** Tisch 5 ***********************************************
  429. (* Lesen *)
  430. gMerker_Tisch_5_RFID_Vorhanden := gTisch_5_RFID_Read[0].0; (* Auslesen ob Chip vor Lesekopf *)
  431. IF gMerker_Tisch_5_Auftrag_Lesen = TRUE THEN
  432. // gMerker_Lesen_Fertig := FALSE;
  433. gTisch_5_RFID_Write[1] := 1;(* Befehl Datenträger lesen *)
  434. gTisch_5_RFID_Write[2] := 0;
  435. gTisch_5_RFID_Write[3] := 0;
  436. gTisch_5_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
  437. gTisch_5_RFID_Write[5] := 0;
  438. gTisch_5_RFID_Write[6] := 0;
  439. gTisch_5_RFID_Write[7] := 0;
  440. gTisch_5_RFID_Write[8] := 0;
  441. gTisch_5_RFID_Write[9] := 1;
  442. gTisch_5_RFID_Write[0].0 := TRUE;
  443. END_IF
  444. (* Write Variable nullen *)
  445. IF gMerker_Tisch_5_alles_nullen = TRUE THEN
  446. gTisch_5_RFID_Write[1] := 0;
  447. gTisch_5_RFID_Write[2] := 0;
  448. gTisch_5_RFID_Write[3] := 0;
  449. gTisch_5_RFID_Write[4] := 0;
  450. gTisch_5_RFID_Write[5] := 0;
  451. gTisch_5_RFID_Write[6] := 0;
  452. gTisch_5_RFID_Write[7] := 0;
  453. gTisch_5_RFID_Write[8] := 0;
  454. gTisch_5_RFID_Write[0] := 0;
  455. END_IF
  456. gTisch_5_RFID_Write[9] := gTisch_5_RFID_Write[0];
  457. CASE Tisch_5_RFID OF
  458. 0:
  459. IF gMerker_Tisch_5_RFID_Vorhanden = TRUE AND gTisch_5.Inputs.Vor_Stopper = TRUE AND gMerker_Tisch_5_RFID_Reset = FALSE (*AND gMerker_Tisch_5_lesen_fertig = FALSE*) THEN
  460. gMerker_Tisch_5_Auftrag_Lesen := TRUE;
  461. Tisch_5_RFID := 10;
  462. END_IF
  463. 10: lWarten_RFID_Fehler_Tisch_5 := lWarten_RFID_Fehler_Tisch_5 + (RTInfo_0.cycle_time/1000);
  464. IF gTisch_5_RFID_Read[0] = 135 THEN
  465. gMerker_RFID_Value_Tisch_5 := gTisch_5_RFID_Read[1];
  466. // gMerker_RFID_Tisch_5_gelesen := TRUE;
  467. // gMerker_Tisch_5_lesen_fertig := TRUE;
  468. lWarten_RFID_Fehler_Tisch_5 := 0;
  469. Tisch_5_RFID := 15;
  470. ELSIF lWarten_RFID_Fehler_Tisch_5 >= 5000 AND gTisch_5_RFID_Read[0] <> 135 THEN
  471. gMerker_Tisch_5_Auftrag_Lesen := FALSE;
  472. gMerker_Tisch_5_RFID_Reset := TRUE;
  473. lWarten_RFID_Fehler_Tisch_5 := 0;
  474. Tisch_5_RFID := 100;
  475. END_IF
  476. 15:
  477. IF gMerker_RFID_Value_Tisch_5 <> 0 THEN
  478. gMerker_RFID_Tisch_5_gelesen := TRUE;
  479. gMerker_Tisch_5_lesen_fertig := TRUE;
  480. Tisch_5_RFID := 20;
  481. ELSIF gMerker_RFID_Value_Tisch_5 = 0 THEN
  482. gMerker_RFID_Tisch_5_gelesen := FALSE;
  483. gMerker_Tisch_5_lesen_fertig := FALSE;
  484. Tisch_5_RFID := 100;
  485. END_IF
  486. 20: lWarten_fuer_OPCUA_Tisch_5 := lWarten_fuer_OPCUA_Tisch_5 + (RTInfo_0.cycle_time/1000);
  487. IF gMerker_Tisch_5_RFID_Vorhanden = FALSE AND gTisch_5.Inputs.Vor_Stopper = FALSE AND lWarten_fuer_OPCUA_Tisch_5 >= Wartezeit_OPCUA THEN
  488. gMerker_Tisch_5_Auftrag_Lesen := FALSE;
  489. gMerker_RFID_Value_Tisch_5 := 0;
  490. gTisch_5_RFID_Write[0] := 4;
  491. Tisch_5_RFID := 30;
  492. END_IF
  493. 30:
  494. IF gTisch_5_RFID_Read[0] = 0 THEN
  495. gTisch_5_RFID_Write[0] := 0;
  496. Tisch_5_RFID := 0;
  497. END_IF
  498. 100:
  499. IF gMerker_Tisch_5_Auftrag_Lesen = FALSE AND gMerker_Tisch_5_RFID_Reset = TRUE THEN
  500. gTisch_5_RFID_Write[0] := 4;
  501. gMerker_RFID_Value_Tisch_5 := 0;
  502. Tisch_5_RFID := 110;
  503. END_IF
  504. 110:
  505. IF gTisch_5_RFID_Read[0] = 0 THEN
  506. gMerker_Tisch_5_alles_nullen := TRUE;
  507. Tisch_5_RFID := 120;
  508. END_IF
  509. 120:
  510. IF gTisch_5_RFID_Write[0] = 0 AND gTisch_5_RFID_Write[1] = 0 AND gTisch_5_RFID_Write[2] = 0 AND gTisch_5_RFID_Write[3] = 0 AND gTisch_5_RFID_Write[4] = 0 AND gTisch_5_RFID_Write[5] = 0 AND gTisch_5_RFID_Write[6] = 0 AND gTisch_5_RFID_Write[7] = 0 AND gTisch_5_RFID_Write[8] = 0 AND gTisch_5_RFID_Write[9] = 0 THEN
  511. gMerker_Tisch_5_alles_nullen := FALSE;
  512. gMerker_Tisch_5_RFID_Reset := FALSE;
  513. Tisch_5_RFID := 0;
  514. END_IF
  515. END_CASE
  516. //********************************** Tisch 6 ***********************************************
  517. (* Lesen *)
  518. gMerker_Tisch_6_RFID_Vorhanden := gTisch_6_RFID_Read[0].0; (* Auslesen ob Chip vor Lesekopf *)
  519. IF gMerker_Tisch_6_Auftrag_Lesen = TRUE THEN
  520. // gMerker_Lesen_Fertig := FALSE;
  521. gTisch_6_RFID_Write[1] := 1;(* Befehl Datenträger lesen *)
  522. gTisch_6_RFID_Write[2] := 0;
  523. gTisch_6_RFID_Write[3] := 0;
  524. gTisch_6_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
  525. gTisch_6_RFID_Write[5] := 0;
  526. gTisch_6_RFID_Write[6] := 0;
  527. gTisch_6_RFID_Write[7] := 0;
  528. gTisch_6_RFID_Write[8] := 0;
  529. gTisch_6_RFID_Write[9] := 1;
  530. gTisch_6_RFID_Write[0].0 := TRUE;
  531. END_IF
  532. (* Write Variable nullen *)
  533. IF gMerker_Tisch_6_alles_nullen = TRUE THEN
  534. gTisch_6_RFID_Write[1] := 0;
  535. gTisch_6_RFID_Write[2] := 0;
  536. gTisch_6_RFID_Write[3] := 0;
  537. gTisch_6_RFID_Write[4] := 0;
  538. gTisch_6_RFID_Write[5] := 0;
  539. gTisch_6_RFID_Write[6] := 0;
  540. gTisch_6_RFID_Write[7] := 0;
  541. gTisch_6_RFID_Write[8] := 0;
  542. gTisch_6_RFID_Write[0] := 0;
  543. END_IF
  544. gTisch_6_RFID_Write[9] := gTisch_6_RFID_Write[0];
  545. CASE Tisch_6_RFID OF
  546. 0:
  547. IF gMerker_Tisch_6_RFID_Vorhanden = TRUE AND gTisch_6.Inputs.Vor_Stopper = TRUE AND gMerker_Tisch_6_RFID_Reset = FALSE AND gMerker_block_RFID_read_Tisch_6 = FALSE (*AND gMerker_Tisch_6_lesen_fertig = FALSE*) THEN
  548. gMerker_Tisch_6_Auftrag_Lesen := TRUE;
  549. Tisch_6_RFID := 10;
  550. END_IF
  551. 10: lWarten_RFID_Fehler_Tisch_6 := lWarten_RFID_Fehler_Tisch_6 + (RTInfo_0.cycle_time/1000);
  552. IF gTisch_6_RFID_Read[0] = 135 THEN
  553. gMerker_RFID_Value_Tisch_6 := gTisch_6_RFID_Read[1];
  554. // gMerker_RFID_Tisch_6_gelesen := TRUE;
  555. // gMerker_Tisch_6_lesen_fertig := TRUE;
  556. lWarten_RFID_Fehler_Tisch_6 := 0;
  557. Tisch_6_RFID := 15;
  558. ELSIF lWarten_RFID_Fehler_Tisch_6 >= 5000 AND gTisch_6_RFID_Read[0] <> 135 THEN
  559. gMerker_Tisch_6_Auftrag_Lesen := FALSE;
  560. gMerker_Tisch_6_RFID_Reset := TRUE;
  561. lWarten_RFID_Fehler_Tisch_6 := 0;
  562. Tisch_6_RFID := 100;
  563. END_IF
  564. 15:
  565. IF gMerker_RFID_Value_Tisch_6 <> 0 THEN
  566. gMerker_RFID_Tisch_6_gelesen := TRUE;
  567. gMerker_Tisch_6_lesen_fertig := TRUE;
  568. Tisch_6_RFID := 20;
  569. ELSIF gMerker_RFID_Value_Tisch_6 = 0 THEN
  570. gMerker_RFID_Tisch_6_gelesen := FALSE;
  571. gMerker_Tisch_6_lesen_fertig := FALSE;
  572. Tisch_6_RFID := 100;
  573. END_IF
  574. 20: lWarten_fuer_OPCUA_Tisch_6 := lWarten_fuer_OPCUA_Tisch_6 + (RTInfo_0.cycle_time/1000);
  575. IF gMerker_Tisch_6_RFID_Vorhanden = FALSE AND gTisch_6.Inputs.Vor_Stopper = FALSE AND lWarten_fuer_OPCUA_Tisch_6 >= Wartezeit_OPCUA THEN
  576. gMerker_Tisch_6_Auftrag_Lesen := FALSE;
  577. // gMerker_RFID_Value_Tisch_6 := 0;
  578. gTisch_6_RFID_Write[0] := 4;
  579. Tisch_6_RFID := 30;
  580. END_IF
  581. 30:
  582. IF gTisch_6_RFID_Read[0] = 0 THEN
  583. gTisch_6_RFID_Write[0] := 0;
  584. Tisch_6_RFID := 0;
  585. END_IF
  586. 100:
  587. IF gMerker_Tisch_6_Auftrag_Lesen = FALSE AND gMerker_Tisch_6_RFID_Reset = TRUE THEN
  588. gTisch_6_RFID_Write[0] := 4;
  589. // gMerker_RFID_Value_Tisch_6 := 0;
  590. Tisch_6_RFID := 110;
  591. END_IF
  592. 110:
  593. IF gTisch_6_RFID_Read[0] = 0 THEN
  594. gMerker_Tisch_6_alles_nullen := TRUE;
  595. Tisch_6_RFID := 120;
  596. END_IF
  597. 120:
  598. IF gTisch_6_RFID_Write[0] = 0 AND gTisch_6_RFID_Write[1] = 0 AND gTisch_6_RFID_Write[2] = 0 AND gTisch_6_RFID_Write[3] = 0 AND gTisch_6_RFID_Write[4] = 0 AND gTisch_6_RFID_Write[5] = 0 AND gTisch_6_RFID_Write[6] = 0 AND gTisch_6_RFID_Write[7] = 0 AND gTisch_6_RFID_Write[8] = 0 AND gTisch_6_RFID_Write[9] = 0 THEN
  599. gMerker_Tisch_6_alles_nullen := FALSE;
  600. gMerker_Tisch_6_RFID_Reset := FALSE;
  601. Tisch_6_RFID := 0;
  602. END_IF
  603. END_CASE
  604. //********************************** Tisch 7 ***********************************************
  605. (* Lesen *)
  606. gMerker_Tisch_7_RFID_Vorhanden := gTisch_7_RFID_Read[0].0; (* Auslesen ob Chip vor Lesekopf *)
  607. IF gMerker_Tisch_7_Auftrag_Lesen = TRUE THEN
  608. // gMerker_Lesen_Fertig := FALSE;
  609. gTisch_7_RFID_Write[1] := 1;(* Befehl Datenträger lesen *)
  610. gTisch_7_RFID_Write[2] := 0;
  611. gTisch_7_RFID_Write[3] := 0;
  612. gTisch_7_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
  613. gTisch_7_RFID_Write[5] := 0;
  614. gTisch_7_RFID_Write[6] := 0;
  615. gTisch_7_RFID_Write[7] := 0;
  616. gTisch_7_RFID_Write[8] := 0;
  617. gTisch_7_RFID_Write[9] := 1;
  618. gTisch_7_RFID_Write[0].0 := TRUE;
  619. END_IF
  620. (* Write Variable nullen *)
  621. IF gMerker_Tisch_7_alles_nullen = TRUE THEN
  622. gTisch_7_RFID_Write[1] := 0;
  623. gTisch_7_RFID_Write[2] := 0;
  624. gTisch_7_RFID_Write[3] := 0;
  625. gTisch_7_RFID_Write[4] := 0;
  626. gTisch_7_RFID_Write[5] := 0;
  627. gTisch_7_RFID_Write[6] := 0;
  628. gTisch_7_RFID_Write[7] := 0;
  629. gTisch_7_RFID_Write[8] := 0;
  630. gTisch_7_RFID_Write[0] := 0;
  631. END_IF
  632. gTisch_7_RFID_Write[9] := gTisch_7_RFID_Write[0];
  633. CASE Tisch_7_RFID OF
  634. 0:
  635. IF gMerker_Tisch_7_RFID_Vorhanden = TRUE AND gTisch_7.Inputs.Vor_Stopper = TRUE AND gMerker_Tisch_7_RFID_Reset = FALSE (*AND gMerker_Tisch_7_lesen_fertig = FALSE*) THEN
  636. gMerker_Tisch_7_Auftrag_Lesen := TRUE;
  637. Tisch_7_RFID := 10;
  638. END_IF
  639. 10: lWarten_RFID_Fehler_Tisch_7 := lWarten_RFID_Fehler_Tisch_7 + (RTInfo_0.cycle_time/1000);
  640. IF gTisch_7_RFID_Read[0] = 135 THEN
  641. gMerker_RFID_Value_Tisch_7 := gTisch_7_RFID_Read[1];
  642. // gMerker_RFID_Tisch_7_gelesen := TRUE;
  643. // gMerker_Tisch_7_lesen_fertig := TRUE;
  644. lWarten_RFID_Fehler_Tisch_7 := 0;
  645. Tisch_7_RFID := 15;
  646. ELSIF lWarten_RFID_Fehler_Tisch_7 >= 5000 AND gTisch_7_RFID_Read[0] <> 135 THEN
  647. gMerker_Tisch_7_Auftrag_Lesen := FALSE;
  648. gMerker_Tisch_7_RFID_Reset := TRUE;
  649. lWarten_RFID_Fehler_Tisch_7 := 0;
  650. Tisch_7_RFID := 100;
  651. END_IF
  652. 15:
  653. IF gMerker_RFID_Value_Tisch_7 <> 0 THEN
  654. gMerker_RFID_Tisch_7_gelesen := TRUE;
  655. gMerker_Tisch_7_lesen_fertig := TRUE;
  656. Tisch_7_RFID := 20;
  657. ELSIF gMerker_RFID_Value_Tisch_7 = 0 THEN
  658. gMerker_RFID_Tisch_7_gelesen := FALSE;
  659. gMerker_Tisch_7_lesen_fertig := FALSE;
  660. Tisch_7_RFID := 100;
  661. END_IF
  662. 20: lWarten_fuer_OPCUA_Tisch_7 := lWarten_fuer_OPCUA_Tisch_7 + (RTInfo_0.cycle_time/1000);
  663. IF gMerker_Tisch_7_RFID_Vorhanden = FALSE AND gTisch_7.Inputs.Vor_Stopper = FALSE AND lWarten_fuer_OPCUA_Tisch_7 >= Wartezeit_OPCUA THEN
  664. gMerker_Tisch_7_Auftrag_Lesen := FALSE;
  665. gMerker_RFID_Value_Tisch_7 := 0;
  666. gTisch_7_RFID_Write[0] := 4;
  667. Tisch_7_RFID := 30;
  668. END_IF
  669. 30:
  670. IF gTisch_7_RFID_Read[0] = 0 THEN
  671. gTisch_7_RFID_Write[0] := 0;
  672. Tisch_7_RFID := 0;
  673. END_IF
  674. 100:
  675. IF gMerker_Tisch_7_Auftrag_Lesen = FALSE AND gMerker_Tisch_7_RFID_Reset = TRUE THEN
  676. gTisch_7_RFID_Write[0] := 4;
  677. gMerker_RFID_Value_Tisch_7 := 0;
  678. Tisch_7_RFID := 110;
  679. END_IF
  680. 110:
  681. IF gTisch_7_RFID_Read[0] = 0 THEN
  682. gMerker_Tisch_7_alles_nullen := TRUE;
  683. Tisch_7_RFID := 120;
  684. END_IF
  685. 120:
  686. IF gTisch_7_RFID_Write[0] = 0 AND gTisch_7_RFID_Write[1] = 0 AND gTisch_7_RFID_Write[2] = 0 AND gTisch_7_RFID_Write[3] = 0 AND gTisch_7_RFID_Write[4] = 0 AND gTisch_7_RFID_Write[5] = 0 AND gTisch_7_RFID_Write[6] = 0 AND gTisch_7_RFID_Write[7] = 0 AND gTisch_7_RFID_Write[8] = 0 AND gTisch_7_RFID_Write[9] = 0 THEN
  687. gMerker_Tisch_7_alles_nullen := FALSE;
  688. gMerker_Tisch_7_RFID_Reset := FALSE;
  689. Tisch_7_RFID := 0;
  690. END_IF
  691. END_CASE
  692. //********************************** Tisch 8 ***********************************************
  693. (* Lesen *)
  694. gMerker_Tisch_8_RFID_Vorhanden := gTisch_8_RFID_Read[0].0; (* Auslesen ob Chip vor Lesekopf *)
  695. IF gMerker_Tisch_8_Auftrag_Lesen = TRUE THEN
  696. // gMerker_Lesen_Fertig := FALSE;
  697. gTisch_8_RFID_Write[1] := 1;(* Befehl Datenträger lesen *)
  698. gTisch_8_RFID_Write[2] := 0;
  699. gTisch_8_RFID_Write[3] := 0;
  700. gTisch_8_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
  701. gTisch_8_RFID_Write[5] := 0;
  702. gTisch_8_RFID_Write[6] := 0;
  703. gTisch_8_RFID_Write[7] := 0;
  704. gTisch_8_RFID_Write[8] := 0;
  705. gTisch_8_RFID_Write[9] := 1;
  706. gTisch_8_RFID_Write[0].0 := TRUE;
  707. END_IF
  708. (* Write Variable nullen *)
  709. IF gMerker_Tisch_8_alles_nullen = TRUE THEN
  710. gTisch_8_RFID_Write[1] := 0;
  711. gTisch_8_RFID_Write[2] := 0;
  712. gTisch_8_RFID_Write[3] := 0;
  713. gTisch_8_RFID_Write[4] := 0;
  714. gTisch_8_RFID_Write[5] := 0;
  715. gTisch_8_RFID_Write[6] := 0;
  716. gTisch_8_RFID_Write[7] := 0;
  717. gTisch_8_RFID_Write[8] := 0;
  718. gTisch_8_RFID_Write[0] := 0;
  719. END_IF
  720. gTisch_8_RFID_Write[9] := gTisch_8_RFID_Write[0];
  721. CASE Tisch_8_RFID OF
  722. 0:
  723. IF gMerker_Tisch_8_RFID_Vorhanden = TRUE AND gTisch_8.Inputs.Vor_Stopper = TRUE AND gMerker_Tisch_8_RFID_Reset = FALSE (*AND gMerker_Tisch_8_lesen_fertig = FALSE*) THEN
  724. gMerker_Tisch_8_Auftrag_Lesen := TRUE;
  725. Tisch_8_RFID := 10;
  726. END_IF
  727. 10: lWarten_RFID_Fehler_Tisch_8 := lWarten_RFID_Fehler_Tisch_8 + (RTInfo_0.cycle_time/1000);
  728. IF gTisch_8_RFID_Read[0] = 135 THEN
  729. gMerker_RFID_Value_Tisch_8 := gTisch_8_RFID_Read[1];
  730. // gMerker_RFID_Tisch_8_gelesen := TRUE;
  731. // gMerker_Tisch_8_lesen_fertig := TRUE;
  732. lWarten_RFID_Fehler_Tisch_8 := 0;
  733. Tisch_8_RFID := 15;
  734. ELSIF lWarten_RFID_Fehler_Tisch_8 >= 5000 AND gTisch_8_RFID_Read[0] <> 135 THEN
  735. gMerker_Tisch_8_Auftrag_Lesen := FALSE;
  736. gMerker_Tisch_8_RFID_Reset := TRUE;
  737. lWarten_RFID_Fehler_Tisch_8 := 0;
  738. Tisch_8_RFID := 100;
  739. END_IF
  740. 15:
  741. IF gMerker_RFID_Value_Tisch_8 <> 0 THEN
  742. gMerker_RFID_Tisch_8_gelesen := TRUE;
  743. gMerker_Tisch_8_lesen_fertig := TRUE;
  744. Tisch_8_RFID := 20;
  745. ELSIF gMerker_RFID_Value_Tisch_8 = 0 THEN
  746. gMerker_RFID_Tisch_8_gelesen := FALSE;
  747. gMerker_Tisch_8_lesen_fertig := FALSE;
  748. Tisch_8_RFID := 100;
  749. END_IF
  750. 20: lWarten_fuer_OPCUA_Tisch_8 := lWarten_fuer_OPCUA_Tisch_8 + (RTInfo_0.cycle_time/1000);
  751. IF gMerker_Tisch_8_RFID_Vorhanden = FALSE AND gTisch_8.Inputs.Vor_Stopper = FALSE AND lWarten_fuer_OPCUA_Tisch_8 >= Wartezeit_OPCUA THEN
  752. gMerker_Tisch_8_Auftrag_Lesen := FALSE;
  753. gMerker_RFID_Value_Tisch_8 := 0;
  754. gTisch_8_RFID_Write[0] := 4;
  755. Tisch_8_RFID := 30;
  756. END_IF
  757. 30:
  758. IF gTisch_8_RFID_Read[0] = 0 THEN
  759. gTisch_8_RFID_Write[0] := 0;
  760. Tisch_8_RFID := 0;
  761. END_IF
  762. 100:
  763. IF gMerker_Tisch_8_Auftrag_Lesen = FALSE AND gMerker_Tisch_8_RFID_Reset = TRUE THEN
  764. gTisch_8_RFID_Write[0] := 4;
  765. gMerker_RFID_Value_Tisch_8 := 0;
  766. Tisch_8_RFID := 110;
  767. END_IF
  768. 110:
  769. IF gTisch_8_RFID_Read[0] = 0 THEN
  770. gMerker_Tisch_8_alles_nullen := TRUE;
  771. Tisch_8_RFID := 120;
  772. END_IF
  773. 120:
  774. IF gTisch_8_RFID_Write[0] = 0 AND gTisch_8_RFID_Write[1] = 0 AND gTisch_8_RFID_Write[2] = 0 AND gTisch_8_RFID_Write[3] = 0 AND gTisch_8_RFID_Write[4] = 0 AND gTisch_8_RFID_Write[5] = 0 AND gTisch_8_RFID_Write[6] = 0 AND gTisch_8_RFID_Write[7] = 0 AND gTisch_8_RFID_Write[8] = 0 AND gTisch_8_RFID_Write[9] = 0 THEN
  775. gMerker_Tisch_8_alles_nullen := FALSE;
  776. gMerker_Tisch_8_RFID_Reset := FALSE;
  777. Tisch_8_RFID := 0;
  778. END_IF
  779. END_CASE
  780. OPCUA_TEST_1;
  781. OPCUATEST2;
  782. OPCUATEST3;
  783. END_PROGRAM
  784. PROGRAM _EXIT
  785. (* Insert code here *)
  786. END_PROGRAM