12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118 |
- PROGRAM _INIT
-
- RTInfo_0(enable:=1);
- Wartezeit_OPCUA := 1100;
-
- END_PROGRAM
- PROGRAM _CYCLIC
- //********************************** Tisch 1 ***********************************************
-
- (* Lesen *)
- gMerker_Tisch_1_RFID_Vorhanden := gTisch_1_RFID_Read[0].0; (* Auslesen ob Chip vor Lesekopf *) //Cech-Comment: Wenn dieses Bit gesetzt ist, dann ist ein Datenträger im LEsebereich
-
-
- //Cech-Comment: Diese zehn Integer-Werte sind im Balluff-Manual MAN_BIS_M_4XX_045_... Kap.9.2 S48 beschrieben
- // Die TAG-UID wird automatisch nach einem TAG-PResent vom Lesekopf ausgelesen und in das LEseregister geschrieben; da braucht kein LEsebefehl ausgegeben werden
- IF gMerker_Tisch_1_Auftrag_Lesen = TRUE THEN
- // gMerker_Lesen_Fertig := FALSE;
- gTisch_1_RFID_Write[1] := 1;(* Befehl Datenträger lesen *)
- gTisch_1_RFID_Write[2] := 0;
- gTisch_1_RFID_Write[3] := 0;
- gTisch_1_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
- gTisch_1_RFID_Write[5] := 0;
- gTisch_1_RFID_Write[6] := 0;
- gTisch_1_RFID_Write[7] := 0;
- gTisch_1_RFID_Write[8] := 0;
- gTisch_1_RFID_Write[9] := 1;
- gTisch_1_RFID_Write[0].0 := TRUE; (*Cech: Bit0: nuer Auftrag an Reader, Bit2:Reset, Bit5:Kopfabschaltung, Bit6: Toggeln für längere Abfragen/Aufträge, wenn SPS bereit ist, weitere Daten zu übernehmen*)
- END_IF
-
- (* Schreiben *)
-
- (* Befehlsdaten *)
- IF gMerker_neuen_Befehl_schreiben = TRUE THEN
- gTisch_1_RFID_Write[1] := 2; (* Datenträger beschreiben *)
- gTisch_1_RFID_Write[2] := 0; (* Daten *)
- gTisch_1_RFID_Write[3] := 0; (* Daten *)
- gTisch_1_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
- gTisch_1_RFID_Write[5] := 0; (* Daten *)
- gTisch_1_RFID_Write[6] := 0; (* Daten *)
- gTisch_1_RFID_Write[7] := 0; (* Daten *)
- gTisch_1_RFID_Write[8] := 0; (* Daten *)
- gTisch_1_RFID_Write[0].0 := TRUE; (* neuer Auftrag steht an *)
- END_IF
-
- (* Write Variable nullen *)
-
- IF gMerker_Tisch_1_alles_nullen = TRUE THEN
- gTisch_1_RFID_Write[1] := 0;
- gTisch_1_RFID_Write[2] := 0;
- gTisch_1_RFID_Write[3] := 0;
- gTisch_1_RFID_Write[4] := 0;
- gTisch_1_RFID_Write[5] := 0;
- gTisch_1_RFID_Write[6] := 0;
- gTisch_1_RFID_Write[7] := 0;
- gTisch_1_RFID_Write[8] := 0;
- gTisch_1_RFID_Write[0] := 0;
- END_IF
-
- gTisch_1_RFID_Write[9] := gTisch_1_RFID_Write[0];
-
- CASE Tisch_1_RFID OF
- //Cech-Implement-Beginn: Hier soll die UID aus dem TAg nach Tag-Present rausgeholt und auf 8Byte-Array gMerker_Tisch_1_RFID_UID übergeben werden, damit die UID für Centurio über Opc-Ua übergeben werden kannn
- 0: IF gTisch_1_RFID_Read[0] = 129 AND gTisch_1_RFID_Write[0].0 = FALSE THEN //Cech-Comment: Wenn der TAG im Lesebereich ist und der Lesekopf betriebsbereit ist ( Read[0] = 1000 0001 ), aber noch kein Lesebefehl ausgegeben wurde, dann liefert der TAG automatisch die UID zurück
- gMerker_Debug_Test_Counter_RFID := 00; //Cech-Comment: eingefügt für TEstzwecke
- // gMerker_Tisch_1_RFID_UID[0] := gTisch_1_RFID_Read[1];
- // gMerker_Tisch_1_RFID_UID[1] := gTisch_1_RFID_Read[2];
- // gMerker_Tisch_1_RFID_UID[2] := gTisch_1_RFID_Read[3];
- // gMerker_Tisch_1_RFID_UID[3] := gTisch_1_RFID_Read[4];
- // gMerker_Tisch_1_RFID_UID[4] := gTisch_1_RFID_Read[5];
- // gMerker_Tisch_1_RFID_UID[5] := gTisch_1_RFID_Read[6];
- // gMerker_Tisch_1_RFID_UID[6] := gTisch_1_RFID_Read[7];
- // gMerker_Tisch_1_RFID_UID[7] := gTisch_1_RFID_Read[8];
- // gMerker_Tisch_1_RFID_UID_STRARR[0] := USINT_TO_STRING (gTisch_1_RFID_Read[1]);
- // gMerker_Tisch_1_RFID_UID_STRARR[1] := USINT_TO_STRING (gTisch_1_RFID_Read[2]);
- // gMerker_Tisch_1_RFID_UID_STRARR[2] := USINT_TO_STRING (gTisch_1_RFID_Read[3]);
- // gMerker_Tisch_1_RFID_UID_STRARR[3] := USINT_TO_STRING (gTisch_1_RFID_Read[4]);
- // gMerker_Tisch_1_RFID_UID_STRARR[4] := USINT_TO_STRING (gTisch_1_RFID_Read[5]);
- // gMerker_Tisch_1_RFID_UID_STRARR[5] := USINT_TO_STRING (gTisch_1_RFID_Read[6]);
- // gMerker_Tisch_1_RFID_UID_STRARR[6] := USINT_TO_STRING (gTisch_1_RFID_Read[7]);
- // gMerker_Tisch_1_RFID_UID_STRARR[7] := USINT_TO_STRING (gTisch_1_RFID_Read[8]);
- gMerker_Tisch_1_STRING_HELPER := '';
- gMerker_Tisch_1_RFID_UID_STR := '0';
- FOR i := 1 TO 8 DO
- gMerker_Tisch_1_STRING_HELPER := USINT_TO_STRING (gTisch_1_RFID_Read[i]);
- IF LEN(gMerker_Tisch_1_STRING_HELPER) = 1 THEN //Cech-Comment: Wenn der String nur 1 ZEichen ist, muss mit 2 Nullen links verlängert werden, sonst wird ID verstümmelt und ist dadurch nicht mehr eindeutig über alle 8 Bytes der UID
- gMerker_Tisch_1_STRING_HELPER := CONCAT('00', gMerker_Tisch_1_STRING_HELPER);
- ELSIF LEN(gMerker_Tisch_1_STRING_HELPER) = 2 THEN //Cech-Comment: Wenn der String nur 2 Zeichen ist, muss mit 1 Null links verlängert werden, sonst wird ID verstümmelt und ist dadurch nicht mehr eindeutig über alle 8 Bytes der UID
- gMerker_Tisch_1_STRING_HELPER := CONCAT('0', gMerker_Tisch_1_STRING_HELPER);
- END_IF;
- gMerker_Tisch_1_RFID_UID_STR := CONCAT( gMerker_Tisch_1_RFID_UID_STR, gMerker_Tisch_1_STRING_HELPER );
- END_FOR
- Tisch_1_RFID := 5;
- END_IF
- //Cech-Implement-Ende
-
- 5: IF gMerker_Tisch_1_RFID_Vorhanden = TRUE AND gMerker_Tisch_1_RFID_Reset = FALSE (*AND gMerker_Tisch_1_lesen_fertig = FALSE*) THEN
- gMerker_Debug_Test_Counter_RFID := 05; //Cech-Comment: eingefügt für TEstzwecke
- gMerker_Tisch_1_Auftrag_Lesen := TRUE;
- Tisch_1_RFID := 10;
- END_IF
-
- 10: lWarten_RFID_Fehler_Tisch_1 := lWarten_RFID_Fehler_Tisch_1 + (RTInfo_0.cycle_time/1000);
- IF gTisch_1_RFID_Read[0] = 135 THEN //135 : 1000 0111 / Cech-Comment: Bit: 0...Tag im Lesebereich, 1...Auftragsbearbeitung läuft, 2...Auftrag fehlerlos beendet, 3...Auftrag fehlerhaft bearbeitet, 5...Wenn toggelt: Sensor bereit, weitere Daten zu übermitteln, 6...Sensor abgeschaltet, 7...Sensor bereit
- gMerker_Debug_Test_Counter_RFID := 10; //Cech-Comment: eingefügt für TEstzwecke
- gMerker_RFID_Value_Tisch_1 := gTisch_1_RFID_Read[1];
- // gMerker_RFID_Tisch_1_gelesen := TRUE;
- // gMerker_Tisch_1_lesen_fertig := TRUE;
- lWarten_RFID_Fehler_Tisch_1 := 0;
- Tisch_1_RFID := 15;
- ELSIF lWarten_RFID_Fehler_Tisch_1 >= 5000 AND gTisch_1_RFID_Read[0] <> 135 THEN //Wenn nach 5s noch keine fehlerfreie Rückmeldung vom LEser gekommen ist, dann wird der Leser resetiert und alles wieder rückgesetzt ab 100:
- gMerker_Debug_Test_Counter_RFID := 11; //Cech-Comment: eingefügt für TEstzwecke
- gMerker_Tisch_1_Auftrag_Lesen := FALSE;
- gMerker_Tisch_1_RFID_Reset := TRUE;
- lWarten_RFID_Fehler_Tisch_1 := 0;
- Tisch_1_RFID := 100;
- END_IF
-
- 15:
- IF gMerker_RFID_Value_Tisch_1 <> 0 THEN //ungleich 0 von gTisch_1_RFID_Read[1] bedeutet einen Fehlercode; ohne Fehler muss das 00h sein
- gMerker_Debug_Test_Counter_RFID := 15; //Cech-Comment: eingefügt für TEstzwecke
- gMerker_RFID_Tisch_1_gelesen := TRUE;
- gMerker_Tisch_1_lesen_fertig := TRUE;
- Tisch_1_RFID := 20;
- ELSIF gMerker_RFID_Value_Tisch_1 = 0 THEN //kein Fehler beim Lesen
- gMerker_Debug_Test_Counter_RFID := 16; //Cech-Comment: eingefügt für TEstzwecke
- gMerker_RFID_Tisch_1_gelesen := FALSE;
- gMerker_Tisch_1_lesen_fertig := FALSE;
- Tisch_1_RFID := 100;
- END_IF
-
- 20: lWarten_fuer_OPCUA_Tisch_1 := lWarten_fuer_OPCUA_Tisch_1 + (RTInfo_0.cycle_time/1000);
- IF gMerker_Tisch_1_RFID_Vorhanden = FALSE AND gTisch_1.Inputs.Vor_Stopper = FALSE AND lWarten_fuer_OPCUA_Tisch_1 >= Wartezeit_OPCUA THEN
- gMerker_Debug_Test_Counter_RFID := 20; //Cech-Comment: eingefügt für TEstzwecke
- gMerker_Tisch_1_Auftrag_Lesen := FALSE;
- gMerker_RFID_Value_Tisch_1 := 0;
- gTisch_1_RFID_Write[0] := 4; //SW-Reset des RFID-Sensors
- gMerker_Tisch_1_RFID_UID_STR := '0';
- Tisch_1_RFID := 30;
- END_IF
-
- 30:
- IF gTisch_1_RFID_Read[0] = 0 THEN
- gMerker_Debug_Test_Counter_RFID := 30; //Cech-Comment: eingefügt für TEstzwecke
- gTisch_1_RFID_Write[0] := 0;
- Tisch_1_RFID := 0;
- END_IF
-
- 100: //Hier geht es weiter, wenn die Daten fehlerfrei empfangen wurden
- IF gMerker_Tisch_1_Auftrag_Lesen = FALSE AND gMerker_Tisch_1_RFID_Reset = TRUE THEN
- gMerker_Debug_Test_Counter_RFID := 100; //Cech-Comment: eingefügt für TEstzwecke
- gTisch_1_RFID_Write[0] := 4; //SW-Reset des RFID-Sensors
- gMerker_RFID_Value_Tisch_1 := 0;
- gMerker_Tisch_1_RFID_UID_STR := '0';
- Tisch_1_RFID := 110;
- END_IF
-
- 110:
- IF gTisch_1_RFID_Read[0] = 0 THEN
- gMerker_Debug_Test_Counter_RFID := 110; //Cech-Comment: eingefügt für TEstzwecke
- gMerker_Tisch_1_alles_nullen := TRUE;
- Tisch_1_RFID := 120;
- END_IF
-
- 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
- gMerker_Debug_Test_Counter_RFID := 120; //Cech-Comment: eingefügt für TEstzwecke
- gMerker_Tisch_1_alles_nullen := FALSE;
- gMerker_Tisch_1_RFID_Reset := FALSE;
- Tisch_1_RFID := 0;
- END_IF
-
- END_CASE
-
-
- // SCHREIBEN AUF ALLE GLEICH
-
- CASE RFID_Schreiben OF
-
- 0:
- IF gMerker_Tisch_1_RFID_Vorhanden = TRUE AND gMerker_OPCUA_Schreibauftrag = TRUE AND gMerker_Tisch_1_lesen_fertig = TRUE THEN
- gTisch_1_RFID_Write[0] := 4; // Kopf-Reset
- RFID_Schreiben := 10;
- END_IF
-
- 10:
- IF gTisch_1_RFID_Read[0] = 0 THEN
- gMerker_Tisch_1_alles_nullen := TRUE;
- RFID_Schreiben := 20;
- END_IF
-
- 20:
- 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
- gMerker_Tisch_1_alles_nullen := FALSE;
- gMerker_neuen_Befehl_schreiben := TRUE;
- RFID_Schreiben := 30;
- END_IF
-
- 30:
- IF gTisch_1_RFID_Read[0] = 163 THEN //163 : 10100011 betriebsbereit; toggelbit zeigt an dass Kopf bereit weitere Daten zu übermitteln; Auftrag erkannt und entgegengenommen; Datenträger im Lesebereich;
- gMerker_neuen_Befehl_schreiben := FALSE;
- gMerker_Tisch_1_alles_nullen := TRUE;
- RFID_Schreiben := 40;
- END_IF
-
- 40:
- 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
- gMerker_Tisch_1_alles_nullen := FALSE;
- gTisch_1_RFID_Write[1] := gMerker_OPCUA_Seriennummer_Test;
- gTisch_1_RFID_Write[2] := 0;
- gTisch_1_RFID_Write[3] := 0;
- gTisch_1_RFID_Write[4] := 0;
- gTisch_1_RFID_Write[5] := 0;
- gTisch_1_RFID_Write[6] := 0;
- gTisch_1_RFID_Write[7] := 0;
- gTisch_1_RFID_Write[8] := 0;
- gTisch_1_RFID_Write[0] := 65; //65: 0100 0001 das obere Bit zeigt an, durch Toggelung, dass die Linien-SPS bereit ist, Daten vom Kopf zu empfangen
- RFID_Schreiben := 50;
- END_IF
-
- 50:
- IF gTisch_1_RFID_Read[0] = 167 THEN //167 1010 0111, Kopf bereit;Kopf bereit für neue Daten; Auftrag ohne Fehler beendet; Auftrag erkannt und entgegengenommen; Datenträger im LEsebereich des Kopfes
- gMerker_Tisch_1_alles_nullen := TRUE;
- RFID_Schreiben := 60;
- END_IF
-
- 60:
- 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
- gMerker_Tisch_1_alles_nullen := FALSE;
- gMerker_OPCUA_Schreibauftrag := FALSE;
- gMerker_Tisch_1_lesen_fertig := FALSE;
- // gMerker_Tisch_1_Auftrag_Lesen := TRUE;
- RFID_Schreiben := 0; // war 70
- END_IF
-
- // 70:
- // IF gMerker_Tisch_1_RFID_Vorhanden = FALSE THEN
- // // gMerker_Tisch_1_Auftrag_Lesen := FALSE;
- // RFID_Schreiben := 0;
- // END_IF
-
- END_CASE
- //********************************** Tisch 2 ***********************************************
-
- (* Lesen *)
- gMerker_Tisch_2_RFID_Vorhanden := gTisch_2_RFID_Read[0].0; (* Auslesen ob Chip vor Lesekopf *)
-
- IF gMerker_Tisch_2_Auftrag_Lesen = TRUE THEN
- // gMerker_Lesen_Fertig := FALSE;
- gTisch_2_RFID_Write[1] := 1;(* Befehl Datenträger lesen *)
- gTisch_2_RFID_Write[2] := 0;
- gTisch_2_RFID_Write[3] := 0;
- gTisch_2_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
- gTisch_2_RFID_Write[5] := 0;
- gTisch_2_RFID_Write[6] := 0;
- gTisch_2_RFID_Write[7] := 0;
- gTisch_2_RFID_Write[8] := 0;
- gTisch_2_RFID_Write[9] := 1;
- gTisch_2_RFID_Write[0].0 := TRUE;
- END_IF
-
- (* Write Variable nullen *)
-
- IF gMerker_Tisch_2_alles_nullen = TRUE THEN
- gTisch_2_RFID_Write[1] := 0;
- gTisch_2_RFID_Write[2] := 0;
- gTisch_2_RFID_Write[3] := 0;
- gTisch_2_RFID_Write[4] := 0;
- gTisch_2_RFID_Write[5] := 0;
- gTisch_2_RFID_Write[6] := 0;
- gTisch_2_RFID_Write[7] := 0;
- gTisch_2_RFID_Write[8] := 0;
- gTisch_2_RFID_Write[0] := 0;
- END_IF
-
- gTisch_2_RFID_Write[9] := gTisch_2_RFID_Write[0];
-
- CASE Tisch_2_RFID OF
- //Cech-Implement-Beginn: Hier soll die UID aus dem TAg nach Tag-Present rausgeholt und auf 8Byte-Array gMerker_Tisch_1_RFID_UID übergeben werden, damit die UID für Centurio über Opc-Ua übergeben werden kannn
- 0: IF gTisch_2_RFID_Read[0] = 129 AND gTisch_2_RFID_Write[0].0 = FALSE THEN //Cech-Comment: Wenn der TAG im Lesebereich ist und der Lesekopf betriebsbereit ist ( Read[0] = 1000 0001 ), aber noch kein Lesebefehl ausgegeben wurde
- gMerker_Tisch_2_STRING_HELPER := '';
- gMerker_Tisch_2_RFID_UID_STR := '0';
- FOR i := 1 TO 8 DO
- gMerker_Tisch_2_STRING_HELPER := USINT_TO_STRING (gTisch_2_RFID_Read[i]);
- IF LEN(gMerker_Tisch_2_STRING_HELPER) = 1 THEN //Cech-Comment: Wenn der String nur 1 ZEichen ist, muss mit 2 Nullen links verlängert werden, sonst wird ID verstümmelt und ist dadurch nicht mehr eindeutig über alle 8 Bytes der UID
- gMerker_Tisch_2_STRING_HELPER := CONCAT('00', gMerker_Tisch_2_STRING_HELPER);
- ELSIF LEN(gMerker_Tisch_2_STRING_HELPER) = 2 THEN //Cech-Comment: Wenn der String nur 2 Zeichen ist, muss mit 1 Null links verlängert werden, sonst wird ID verstümmelt und ist dadurch nicht mehr eindeutig über alle 8 Bytes der UID
- gMerker_Tisch_2_STRING_HELPER := CONCAT('0', gMerker_Tisch_2_STRING_HELPER);
- END_IF;
- gMerker_Tisch_2_RFID_UID_STR := CONCAT( gMerker_Tisch_2_RFID_UID_STR, gMerker_Tisch_2_STRING_HELPER );
- END_FOR
- Tisch_2_RFID := 5;
- END_IF
- //Cech-Implement-Ende
- 5: 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
- gMerker_Tisch_2_Auftrag_Lesen := TRUE;
- Tisch_2_RFID := 10;
- END_IF
-
- 10: lWarten_RFID_Fehler_Tisch_2 := lWarten_RFID_Fehler_Tisch_2 + (RTInfo_0.cycle_time/1000);
- IF gTisch_2_RFID_Read[0] = 135 THEN
- gMerker_RFID_Value_Tisch_2 := gTisch_2_RFID_Read[1];
- // gMerker_RFID_Tisch_2_gelesen := TRUE;
- // gMerker_Tisch_2_lesen_fertig := TRUE;
- lWarten_RFID_Fehler_Tisch_2 := 0;
- Tisch_2_RFID := 15;
- ELSIF lWarten_RFID_Fehler_Tisch_2 >= 5000 AND gTisch_2_RFID_Read[0] <> 135 THEN
- gMerker_Tisch_2_Auftrag_Lesen := FALSE;
- gMerker_Tisch_2_RFID_Reset := TRUE;
- lWarten_RFID_Fehler_Tisch_2 := 0;
- Tisch_2_RFID := 100;
- END_IF
-
- 15:
- IF gMerker_RFID_Value_Tisch_2 <> 0 THEN
- gMerker_RFID_Tisch_2_gelesen := TRUE;
- gMerker_Tisch_2_lesen_fertig := TRUE;
- Tisch_2_RFID := 20;
- ELSIF gMerker_RFID_Value_Tisch_2 = 0 THEN
- gMerker_RFID_Tisch_2_gelesen := FALSE;
- gMerker_Tisch_2_lesen_fertig := FALSE;
- Tisch_2_RFID := 100;
- END_IF
-
- 20: lWarten_fuer_OPCUA_Tisch_2 := lWarten_fuer_OPCUA_Tisch_2 + (RTInfo_0.cycle_time/1000);
- IF gMerker_Tisch_2_RFID_Vorhanden = FALSE AND gTisch_2.Inputs.Vor_Stopper = FALSE AND lWarten_fuer_OPCUA_Tisch_2 >= Wartezeit_OPCUA THEN
- gMerker_Tisch_2_Auftrag_Lesen := FALSE;
- gMerker_RFID_Value_Tisch_2 := 0;
- gTisch_2_RFID_Write[0] := 4;
- gMerker_Tisch_2_RFID_UID_STR := '0';
- Tisch_2_RFID := 30;
- END_IF
-
- 30:
- IF gTisch_2_RFID_Read[0] = 0 THEN
- gTisch_2_RFID_Write[0] := 0;
- Tisch_2_RFID := 0;
- END_IF
-
- 100:
- IF gMerker_Tisch_2_Auftrag_Lesen = FALSE AND gMerker_Tisch_2_RFID_Reset = TRUE THEN
- gTisch_2_RFID_Write[0] := 4;
- gMerker_RFID_Value_Tisch_2 := 0;
- Tisch_2_RFID := 110;
- gMerker_Tisch_2_RFID_UID_STR := '0';
- END_IF
-
- 110:
- IF gTisch_2_RFID_Read[0] = 0 THEN
- gMerker_Tisch_2_alles_nullen := TRUE;
- Tisch_2_RFID := 120;
- END_IF
-
- 120:
- 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
- gMerker_Tisch_2_alles_nullen := FALSE;
- gMerker_Tisch_2_RFID_Reset := FALSE;
- Tisch_2_RFID := 0;
- END_IF
-
- END_CASE
-
- //********************************** Tisch 3 ***********************************************
-
- (* Lesen *)
- gMerker_Tisch_3_RFID_Vorhanden := gTisch_3_RFID_Read[0].0; (* Auslesen ob Chip vor Lesekopf *)
-
- IF gMerker_Tisch_3_Auftrag_Lesen = TRUE THEN
- // gMerker_Lesen_Fertig := FALSE;
- gTisch_3_RFID_Write[1] := 1;(* Befehl Datenträger lesen *)
- gTisch_3_RFID_Write[2] := 0;
- gTisch_3_RFID_Write[3] := 0;
- gTisch_3_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
- gTisch_3_RFID_Write[5] := 0;
- gTisch_3_RFID_Write[6] := 0;
- gTisch_3_RFID_Write[7] := 0;
- gTisch_3_RFID_Write[8] := 0;
- gTisch_3_RFID_Write[9] := 1;
- gTisch_3_RFID_Write[0].0 := TRUE;
- END_IF
-
- (* Write Variable nullen *)
-
- IF gMerker_Tisch_3_alles_nullen = TRUE THEN
- gTisch_3_RFID_Write[1] := 0;
- gTisch_3_RFID_Write[2] := 0;
- gTisch_3_RFID_Write[3] := 0;
- gTisch_3_RFID_Write[4] := 0;
- gTisch_3_RFID_Write[5] := 0;
- gTisch_3_RFID_Write[6] := 0;
- gTisch_3_RFID_Write[7] := 0;
- gTisch_3_RFID_Write[8] := 0;
- gTisch_3_RFID_Write[0] := 0;
- END_IF
-
- gTisch_3_RFID_Write[9] := gTisch_3_RFID_Write[0];
-
- CASE Tisch_3_RFID OF
- //Cech-Implement-Beginn: Hier soll die UID aus dem TAg nach Tag-Present rausgeholt und auf 8Byte-Array gMerker_Tisch_1_RFID_UID übergeben werden, damit die UID für Centurio über Opc-Ua übergeben werden kannn
- 0: IF gTisch_3_RFID_Read[0] = 129 AND gTisch_3_RFID_Write[0].0 = FALSE THEN //Cech-Comment: Wenn der TAG im Lesebereich ist und der Lesekopf betriebsbereit ist ( Read[0] = 1000 0001 ), aber noch kein Lesebefehl ausgegeben wurde
- gMerker_Tisch_3_STRING_HELPER := '';
- gMerker_Tisch_3_RFID_UID_STR := '0';
- FOR i := 1 TO 8 DO
- gMerker_Tisch_3_STRING_HELPER := USINT_TO_STRING (gTisch_3_RFID_Read[i]);
- IF LEN(gMerker_Tisch_3_STRING_HELPER) = 1 THEN //Cech-Comment: Wenn der String nur 1 ZEichen ist, muss mit 2 Nullen links verlängert werden, sonst wird ID verstümmelt und ist dadurch nicht mehr eindeutig über alle 8 Bytes der UID
- gMerker_Tisch_3_STRING_HELPER := CONCAT('00', gMerker_Tisch_3_STRING_HELPER);
- ELSIF LEN(gMerker_Tisch_3_STRING_HELPER) = 2 THEN //Cech-Comment: Wenn der String nur 2 Zeichen ist, muss mit 1 Null links verlängert werden, sonst wird ID verstümmelt und ist dadurch nicht mehr eindeutig über alle 8 Bytes der UID
- gMerker_Tisch_3_STRING_HELPER := CONCAT('0', gMerker_Tisch_3_STRING_HELPER);
- END_IF;
- gMerker_Tisch_3_RFID_UID_STR := CONCAT( gMerker_Tisch_3_RFID_UID_STR, gMerker_Tisch_3_STRING_HELPER );
- END_FOR
- Tisch_3_RFID := 5;
- END_IF
- //Cech-Implement-Ende
- 5: 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
- gMerker_Tisch_3_Auftrag_Lesen := TRUE;
- Tisch_3_RFID := 10;
- END_IF
-
- 10: lWarten_RFID_Fehler_Tisch_3 := lWarten_RFID_Fehler_Tisch_3 + (RTInfo_0.cycle_time/1000);
- IF gTisch_3_RFID_Read[0] = 135 THEN
- gMerker_RFID_Value_Tisch_3 := gTisch_3_RFID_Read[1];
- // gMerker_RFID_Tisch_3_gelesen := TRUE;
- // gMerker_Tisch_3_lesen_fertig := TRUE;
- lWarten_RFID_Fehler_Tisch_3 := 0;
- Tisch_3_RFID := 15;
- ELSIF lWarten_RFID_Fehler_Tisch_3 >= 5000 AND gTisch_3_RFID_Read[0] <> 135 THEN
- gMerker_Tisch_3_Auftrag_Lesen := FALSE;
- gMerker_Tisch_3_RFID_Reset := TRUE;
- lWarten_RFID_Fehler_Tisch_3 := 0;
- Tisch_3_RFID := 100;
- END_IF
-
- 15:
- IF gMerker_RFID_Value_Tisch_3 <> 0 THEN
- gMerker_RFID_Tisch_3_gelesen := TRUE;
- gMerker_Tisch_3_lesen_fertig := TRUE;
- Tisch_3_RFID := 20;
- ELSIF gMerker_RFID_Value_Tisch_3 = 0 THEN
- gMerker_RFID_Tisch_3_gelesen := FALSE;
- gMerker_Tisch_3_lesen_fertig := FALSE;
- Tisch_3_RFID := 100;
- END_IF
-
- 20: lWarten_fuer_OPCUA_Tisch_3 := lWarten_fuer_OPCUA_Tisch_3 + (RTInfo_0.cycle_time/1000);
- IF gMerker_Tisch_3_RFID_Vorhanden = FALSE AND gTisch_3.Inputs.Vor_Stopper = FALSE AND lWarten_fuer_OPCUA_Tisch_3 >= Wartezeit_OPCUA THEN
- gMerker_Tisch_3_Auftrag_Lesen := FALSE;
- gMerker_RFID_Value_Tisch_3 := 0;
- gTisch_3_RFID_Write[0] := 4;
- gMerker_Tisch_3_RFID_UID_STR := '0';
- Tisch_3_RFID := 30;
- END_IF
-
- 30:
- IF gTisch_3_RFID_Read[0] = 0 THEN
- gTisch_3_RFID_Write[0] := 0;
- Tisch_3_RFID := 0;
- END_IF
-
- 100:
- IF gMerker_Tisch_3_Auftrag_Lesen = FALSE AND gMerker_Tisch_3_RFID_Reset = TRUE THEN
- gTisch_3_RFID_Write[0] := 4;
- gMerker_RFID_Value_Tisch_3 := 0;
- gMerker_Tisch_3_RFID_UID_STR := '0';
- Tisch_3_RFID := 110;
- END_IF
-
- 110:
- IF gTisch_3_RFID_Read[0] = 0 THEN
- gMerker_Tisch_3_alles_nullen := TRUE;
- Tisch_3_RFID := 120;
- END_IF
-
- 120:
- 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
- gMerker_Tisch_3_alles_nullen := FALSE;
- gMerker_Tisch_3_RFID_Reset := FALSE;
- Tisch_3_RFID := 0;
- END_IF
-
- END_CASE
-
- //********************************** Tisch 4 ***********************************************
-
- (* Lesen *)
- gMerker_Tisch_4_RFID_Vorhanden := gTisch_4_RFID_Read[0].0; (* Auslesen ob Chip vor Lesekopf *)
-
- IF gMerker_Tisch_4_Auftrag_Lesen = TRUE THEN
- // gMerker_Lesen_Fertig := FALSE;
- gTisch_4_RFID_Write[1] := 1;(* Befehl Datenträger lesen *)
- gTisch_4_RFID_Write[2] := 0;
- gTisch_4_RFID_Write[3] := 0;
- gTisch_4_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
- gTisch_4_RFID_Write[5] := 0;
- gTisch_4_RFID_Write[6] := 0;
- gTisch_4_RFID_Write[7] := 0;
- gTisch_4_RFID_Write[8] := 0;
- gTisch_4_RFID_Write[9] := 1;
- gTisch_4_RFID_Write[0].0 := TRUE;
- END_IF
-
- (* Write Variable nullen *)
-
- IF gMerker_Tisch_4_alles_nullen = TRUE THEN
- gTisch_4_RFID_Write[1] := 0;
- gTisch_4_RFID_Write[2] := 0;
- gTisch_4_RFID_Write[3] := 0;
- gTisch_4_RFID_Write[4] := 0;
- gTisch_4_RFID_Write[5] := 0;
- gTisch_4_RFID_Write[6] := 0;
- gTisch_4_RFID_Write[7] := 0;
- gTisch_4_RFID_Write[8] := 0;
- gTisch_4_RFID_Write[0] := 0;
- END_IF
-
- gTisch_4_RFID_Write[9] := gTisch_4_RFID_Write[0];
-
- CASE Tisch_4_RFID OF
- //Cech-Implement-Beginn: Hier soll die UID aus dem TAg nach Tag-Present rausgeholt und auf 8Byte-Array gMerker_Tisch_1_RFID_UID übergeben werden, damit die UID für Centurio über Opc-Ua übergeben werden kannn
- 0: IF gTisch_4_RFID_Read[0] = 129 AND gTisch_4_RFID_Write[0].0 = FALSE THEN //Cech-Comment: Wenn der TAG im Lesebereich ist und der Lesekopf betriebsbereit ist ( Read[0] = 1000 0001 ), aber noch kein Lesebefehl ausgegeben wurde
- gMerker_Tisch_4_STRING_HELPER := '';
- gMerker_Tisch_4_RFID_UID_STR := '0';
- FOR i := 1 TO 8 DO
- gMerker_Tisch_4_STRING_HELPER := USINT_TO_STRING (gTisch_4_RFID_Read[i]);
- IF LEN(gMerker_Tisch_4_STRING_HELPER) = 1 THEN //Cech-Comment: Wenn der String nur 1 ZEichen ist, muss mit 2 Nullen links verlängert werden, sonst wird ID verstümmelt und ist dadurch nicht mehr eindeutig über alle 8 Bytes der UID
- gMerker_Tisch_4_STRING_HELPER := CONCAT('00', gMerker_Tisch_4_STRING_HELPER);
- ELSIF LEN(gMerker_Tisch_4_STRING_HELPER) = 2 THEN //Cech-Comment: Wenn der String nur 2 Zeichen ist, muss mit 1 Null links verlängert werden, sonst wird ID verstümmelt und ist dadurch nicht mehr eindeutig über alle 8 Bytes der UID
- gMerker_Tisch_4_STRING_HELPER := CONCAT('0', gMerker_Tisch_4_STRING_HELPER);
- END_IF;
- gMerker_Tisch_4_RFID_UID_STR := CONCAT( gMerker_Tisch_4_RFID_UID_STR, gMerker_Tisch_4_STRING_HELPER );
- END_FOR
- Tisch_4_RFID := 5;
- END_IF
- //Cech-Implement-Ende
-
- 5: 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
- gMerker_Tisch_4_Auftrag_Lesen := TRUE;
- Tisch_4_RFID := 10;
- END_IF
-
- 10: lWarten_RFID_Fehler_Tisch_4 := lWarten_RFID_Fehler_Tisch_4 + (RTInfo_0.cycle_time/1000);
- IF gTisch_4_RFID_Read[0] = 135 THEN
- gMerker_RFID_Value_Tisch_4 := gTisch_4_RFID_Read[1];
- // gMerker_RFID_Tisch_4_gelesen := TRUE;
- // gMerker_Tisch_4_lesen_fertig := TRUE;
- lWarten_RFID_Fehler_Tisch_4 := 0;
- Tisch_4_RFID := 15;
- ELSIF lWarten_RFID_Fehler_Tisch_4 >= 5000 AND gTisch_4_RFID_Read[0] <> 135 THEN
- gMerker_Tisch_4_Auftrag_Lesen := FALSE;
- gMerker_Tisch_4_RFID_Reset := TRUE;
- lWarten_RFID_Fehler_Tisch_4 := 0;
- Tisch_4_RFID := 100;
- END_IF
-
- 15:
- IF gMerker_RFID_Value_Tisch_4 <> 0 THEN
- gMerker_RFID_Tisch_4_gelesen := TRUE;
- gMerker_Tisch_4_lesen_fertig := TRUE;
- Tisch_4_RFID := 20;
- ELSIF gMerker_RFID_Value_Tisch_4 = 0 THEN
- gMerker_RFID_Tisch_4_gelesen := FALSE;
- gMerker_Tisch_4_lesen_fertig := FALSE;
- Tisch_4_RFID := 100;
- END_IF
-
- 20: lWarten_fuer_OPCUA_Tisch_4 := lWarten_fuer_OPCUA_Tisch_4 + (RTInfo_0.cycle_time/1000);
- IF gMerker_Tisch_4_RFID_Vorhanden = FALSE AND gTisch_4.Inputs.Vor_Stopper = FALSE AND lWarten_fuer_OPCUA_Tisch_4 >= Wartezeit_OPCUA THEN
- gMerker_Tisch_4_Auftrag_Lesen := FALSE;
- gMerker_RFID_Value_Tisch_4 := 0;
- gTisch_4_RFID_Write[0] := 4;
- gMerker_Tisch_4_RFID_UID_STR := '0';
- Tisch_4_RFID := 30;
- END_IF
-
- 30:
- IF gTisch_4_RFID_Read[0] = 0 THEN
- gTisch_4_RFID_Write[0] := 0;
- Tisch_4_RFID := 0;
- END_IF
-
- 100:
- IF gMerker_Tisch_4_Auftrag_Lesen = FALSE AND gMerker_Tisch_4_RFID_Reset = TRUE THEN
- gTisch_4_RFID_Write[0] := 4;
- gMerker_RFID_Value_Tisch_4 := 0;
- gMerker_Tisch_4_RFID_UID_STR := '0';
- Tisch_4_RFID := 110;
- END_IF
-
- 110:
- IF gTisch_4_RFID_Read[0] = 0 THEN
- gMerker_Tisch_4_alles_nullen := TRUE;
- Tisch_4_RFID := 120;
- END_IF
-
- 120:
- 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
- gMerker_Tisch_4_alles_nullen := FALSE;
- gMerker_Tisch_4_RFID_Reset := FALSE;
- Tisch_4_RFID := 0;
- END_IF
-
- END_CASE
-
- //********************************** Tisch 5 ***********************************************
-
- (* Lesen *)
- gMerker_Tisch_5_RFID_Vorhanden := gTisch_5_RFID_Read[0].0; (* Auslesen ob Chip vor Lesekopf *)
-
- IF gMerker_Tisch_5_Auftrag_Lesen = TRUE THEN
- // gMerker_Lesen_Fertig := FALSE;
- gTisch_5_RFID_Write[1] := 1;(* Befehl Datenträger lesen *)
- gTisch_5_RFID_Write[2] := 0;
- gTisch_5_RFID_Write[3] := 0;
- gTisch_5_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
- gTisch_5_RFID_Write[5] := 0;
- gTisch_5_RFID_Write[6] := 0;
- gTisch_5_RFID_Write[7] := 0;
- gTisch_5_RFID_Write[8] := 0;
- gTisch_5_RFID_Write[9] := 1;
- gTisch_5_RFID_Write[0].0 := TRUE;
- END_IF
-
- (* Write Variable nullen *)
-
- IF gMerker_Tisch_5_alles_nullen = TRUE THEN
- gTisch_5_RFID_Write[1] := 0;
- gTisch_5_RFID_Write[2] := 0;
- gTisch_5_RFID_Write[3] := 0;
- gTisch_5_RFID_Write[4] := 0;
- gTisch_5_RFID_Write[5] := 0;
- gTisch_5_RFID_Write[6] := 0;
- gTisch_5_RFID_Write[7] := 0;
- gTisch_5_RFID_Write[8] := 0;
- gTisch_5_RFID_Write[0] := 0;
- END_IF
-
- gTisch_5_RFID_Write[9] := gTisch_5_RFID_Write[0];
-
- CASE Tisch_5_RFID OF
- //Cech-Implement-Beginn: Hier soll die UID aus dem TAg nach Tag-Present rausgeholt und auf 8Byte-Array gMerker_Tisch_1_RFID_UID übergeben werden, damit die UID für Centurio über Opc-Ua übergeben werden kannn
- 0: IF gTisch_5_RFID_Read[0] = 129 AND gTisch_5_RFID_Write[0].0 = FALSE THEN //Cech-Comment: Wenn der TAG im Lesebereich ist und der Lesekopf betriebsbereit ist ( Read[0] = 1000 0001 ), aber noch kein Lesebefehl ausgegeben wurde
- gMerker_Tisch_5_STRING_HELPER := '';
- gMerker_Tisch_5_RFID_UID_STR := '0';
- FOR i := 1 TO 8 DO
- gMerker_Tisch_5_STRING_HELPER := USINT_TO_STRING (gTisch_5_RFID_Read[i]);
- IF LEN(gMerker_Tisch_5_STRING_HELPER) = 1 THEN //Cech-Comment: Wenn der String nur 1 ZEichen ist, muss mit 2 Nullen links verlängert werden, sonst wird ID verstümmelt und ist dadurch nicht mehr eindeutig über alle 8 Bytes der UID
- gMerker_Tisch_5_STRING_HELPER := CONCAT('00', gMerker_Tisch_5_STRING_HELPER);
- ELSIF LEN(gMerker_Tisch_5_STRING_HELPER) = 2 THEN //Cech-Comment: Wenn der String nur 2 Zeichen ist, muss mit 1 Null links verlängert werden, sonst wird ID verstümmelt und ist dadurch nicht mehr eindeutig über alle 8 Bytes der UID
- gMerker_Tisch_5_STRING_HELPER := CONCAT('0', gMerker_Tisch_5_STRING_HELPER);
- END_IF;
- gMerker_Tisch_5_RFID_UID_STR := CONCAT( gMerker_Tisch_5_RFID_UID_STR, gMerker_Tisch_5_STRING_HELPER );
- END_FOR
- Tisch_5_RFID := 5;
- END_IF
- //Cech-Implement-Ende
-
- 5: 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
- gMerker_Tisch_5_Auftrag_Lesen := TRUE;
- Tisch_5_RFID := 10;
- END_IF
-
- 10: lWarten_RFID_Fehler_Tisch_5 := lWarten_RFID_Fehler_Tisch_5 + (RTInfo_0.cycle_time/1000);
- IF gTisch_5_RFID_Read[0] = 135 THEN
- gMerker_RFID_Value_Tisch_5 := gTisch_5_RFID_Read[1];
- // gMerker_RFID_Tisch_5_gelesen := TRUE;
- // gMerker_Tisch_5_lesen_fertig := TRUE;
- lWarten_RFID_Fehler_Tisch_5 := 0;
- Tisch_5_RFID := 15;
- ELSIF lWarten_RFID_Fehler_Tisch_5 >= 5000 AND gTisch_5_RFID_Read[0] <> 135 THEN
- gMerker_Tisch_5_Auftrag_Lesen := FALSE;
- gMerker_Tisch_5_RFID_Reset := TRUE;
- lWarten_RFID_Fehler_Tisch_5 := 0;
- Tisch_5_RFID := 100;
- END_IF
-
- 15:
- IF gMerker_RFID_Value_Tisch_5 <> 0 THEN
- gMerker_RFID_Tisch_5_gelesen := TRUE;
- gMerker_Tisch_5_lesen_fertig := TRUE;
- Tisch_5_RFID := 20;
- ELSIF gMerker_RFID_Value_Tisch_5 = 0 THEN
- gMerker_RFID_Tisch_5_gelesen := FALSE;
- gMerker_Tisch_5_lesen_fertig := FALSE;
- Tisch_5_RFID := 100;
- END_IF
-
- 20: lWarten_fuer_OPCUA_Tisch_5 := lWarten_fuer_OPCUA_Tisch_5 + (RTInfo_0.cycle_time/1000);
- IF gMerker_Tisch_5_RFID_Vorhanden = FALSE AND gTisch_5.Inputs.Vor_Stopper = FALSE AND lWarten_fuer_OPCUA_Tisch_5 >= Wartezeit_OPCUA THEN
- gMerker_Tisch_5_Auftrag_Lesen := FALSE;
- gMerker_RFID_Value_Tisch_5 := 0;
- gTisch_5_RFID_Write[0] := 4;
- gMerker_Tisch_5_RFID_UID_STR := '0';
- Tisch_5_RFID := 30;
- END_IF
-
- 30:
- IF gTisch_5_RFID_Read[0] = 0 THEN
- gTisch_5_RFID_Write[0] := 0;
- Tisch_5_RFID := 0;
- END_IF
-
- 100:
- IF gMerker_Tisch_5_Auftrag_Lesen = FALSE AND gMerker_Tisch_5_RFID_Reset = TRUE THEN
- gTisch_5_RFID_Write[0] := 4;
- gMerker_RFID_Value_Tisch_5 := 0;
- gMerker_Tisch_5_RFID_UID_STR := '0';
- Tisch_5_RFID := 110;
- END_IF
-
- 110:
- IF gTisch_5_RFID_Read[0] = 0 THEN
- gMerker_Tisch_5_alles_nullen := TRUE;
- Tisch_5_RFID := 120;
- END_IF
-
- 120:
- 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
- gMerker_Tisch_5_alles_nullen := FALSE;
- gMerker_Tisch_5_RFID_Reset := FALSE;
- Tisch_5_RFID := 0;
- END_IF
-
- END_CASE
-
- //********************************** Tisch 6 ***********************************************
-
- (* Lesen *)
- gMerker_Tisch_6_RFID_Vorhanden := gTisch_6_RFID_Read[0].0; (* Auslesen ob Chip vor Lesekopf *)
-
- IF gMerker_Tisch_6_Auftrag_Lesen = TRUE THEN
- // gMerker_Lesen_Fertig := FALSE;
- gTisch_6_RFID_Write[1] := 1;(* Befehl Datenträger lesen *)
- gTisch_6_RFID_Write[2] := 0;
- gTisch_6_RFID_Write[3] := 0;
- gTisch_6_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
- gTisch_6_RFID_Write[5] := 0;
- gTisch_6_RFID_Write[6] := 0;
- gTisch_6_RFID_Write[7] := 0;
- gTisch_6_RFID_Write[8] := 0;
- gTisch_6_RFID_Write[9] := 1;
- gTisch_6_RFID_Write[0].0 := TRUE;
- END_IF
-
- (* Write Variable nullen *)
-
- IF gMerker_Tisch_6_alles_nullen = TRUE THEN
- gTisch_6_RFID_Write[1] := 0;
- gTisch_6_RFID_Write[2] := 0;
- gTisch_6_RFID_Write[3] := 0;
- gTisch_6_RFID_Write[4] := 0;
- gTisch_6_RFID_Write[5] := 0;
- gTisch_6_RFID_Write[6] := 0;
- gTisch_6_RFID_Write[7] := 0;
- gTisch_6_RFID_Write[8] := 0;
- gTisch_6_RFID_Write[0] := 0;
- END_IF
-
- gTisch_6_RFID_Write[9] := gTisch_6_RFID_Write[0];
-
- CASE Tisch_6_RFID OF
- //Cech-Implement-Beginn: Hier soll die UID aus dem TAg nach Tag-Present rausgeholt und auf 8Byte-Array gMerker_Tisch_1_RFID_UID übergeben werden, damit die UID für Centurio über Opc-Ua übergeben werden kannn
- 0: IF gTisch_6_RFID_Read[0] = 129 AND gTisch_6_RFID_Write[0].0 = FALSE THEN //Cech-Comment: Wenn der TAG im Lesebereich ist und der Lesekopf betriebsbereit ist ( Read[0] = 1000 0001 ), aber noch kein Lesebefehl ausgegeben wurde
- gMerker_Tisch_6_STRING_HELPER := '';
- gMerker_Tisch_6_RFID_UID_STR := '0';
- FOR i := 1 TO 8 DO
- gMerker_Tisch_6_STRING_HELPER := USINT_TO_STRING (gTisch_6_RFID_Read[i]);
- IF LEN(gMerker_Tisch_6_STRING_HELPER) = 1 THEN //Cech-Comment: Wenn der String nur 1 ZEichen ist, muss mit 2 Nullen links verlängert werden, sonst wird ID verstümmelt und ist dadurch nicht mehr eindeutig über alle 8 Bytes der UID
- gMerker_Tisch_6_STRING_HELPER := CONCAT('00', gMerker_Tisch_6_STRING_HELPER);
- ELSIF LEN(gMerker_Tisch_6_STRING_HELPER) = 2 THEN //Cech-Comment: Wenn der String nur 2 Zeichen ist, muss mit 1 Null links verlängert werden, sonst wird ID verstümmelt und ist dadurch nicht mehr eindeutig über alle 8 Bytes der UID
- gMerker_Tisch_6_STRING_HELPER := CONCAT('0', gMerker_Tisch_6_STRING_HELPER);
- END_IF;
- gMerker_Tisch_6_RFID_UID_STR := CONCAT( gMerker_Tisch_6_RFID_UID_STR, gMerker_Tisch_6_STRING_HELPER );
- END_FOR
- Tisch_6_RFID := 5;
- END_IF
- //Cech-Implement-Ende
-
- 5: 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
- gMerker_Tisch_6_Auftrag_Lesen := TRUE;
- Tisch_6_RFID := 10;
- END_IF
-
- 10: lWarten_RFID_Fehler_Tisch_6 := lWarten_RFID_Fehler_Tisch_6 + (RTInfo_0.cycle_time/1000);
- IF gTisch_6_RFID_Read[0] = 135 THEN
- gMerker_RFID_Value_Tisch_6 := gTisch_6_RFID_Read[1];
- // gMerker_RFID_Tisch_6_gelesen := TRUE;
- // gMerker_Tisch_6_lesen_fertig := TRUE;
- lWarten_RFID_Fehler_Tisch_6 := 0;
- Tisch_6_RFID := 15;
- ELSIF lWarten_RFID_Fehler_Tisch_6 >= 5000 AND gTisch_6_RFID_Read[0] <> 135 THEN
- gMerker_Tisch_6_Auftrag_Lesen := FALSE;
- gMerker_Tisch_6_RFID_Reset := TRUE;
- lWarten_RFID_Fehler_Tisch_6 := 0;
- Tisch_6_RFID := 100;
- END_IF
-
- 15:
- IF gMerker_RFID_Value_Tisch_6 <> 0 THEN
- gMerker_RFID_Tisch_6_gelesen := TRUE;
- gMerker_Tisch_6_lesen_fertig := TRUE;
- Tisch_6_RFID := 20;
- ELSIF gMerker_RFID_Value_Tisch_6 = 0 THEN
- gMerker_RFID_Tisch_6_gelesen := FALSE;
- gMerker_Tisch_6_lesen_fertig := FALSE;
- Tisch_6_RFID := 100;
- END_IF
-
- 20: lWarten_fuer_OPCUA_Tisch_6 := lWarten_fuer_OPCUA_Tisch_6 + (RTInfo_0.cycle_time/1000);
- IF gMerker_Tisch_6_RFID_Vorhanden = FALSE AND gTisch_6.Inputs.Vor_Stopper = FALSE AND lWarten_fuer_OPCUA_Tisch_6 >= Wartezeit_OPCUA THEN
- gMerker_Tisch_6_Auftrag_Lesen := FALSE;
- // gMerker_RFID_Value_Tisch_6 := 0;
- gTisch_6_RFID_Write[0] := 4;
- gMerker_Tisch_6_RFID_UID_STR := '0';
- Tisch_6_RFID := 30;
- END_IF
-
- 30:
- IF gTisch_6_RFID_Read[0] = 0 THEN
- gTisch_6_RFID_Write[0] := 0;
- Tisch_6_RFID := 0;
- END_IF
-
- 100:
- IF gMerker_Tisch_6_Auftrag_Lesen = FALSE AND gMerker_Tisch_6_RFID_Reset = TRUE THEN
- gTisch_6_RFID_Write[0] := 4;
- // gMerker_RFID_Value_Tisch_6 := 0;
- gMerker_Tisch_6_RFID_UID_STR := '0';
- Tisch_6_RFID := 110;
- END_IF
-
- 110:
- IF gTisch_6_RFID_Read[0] = 0 THEN
- gMerker_Tisch_6_alles_nullen := TRUE;
- Tisch_6_RFID := 120;
- END_IF
-
- 120:
- 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
- gMerker_Tisch_6_alles_nullen := FALSE;
- gMerker_Tisch_6_RFID_Reset := FALSE;
- Tisch_6_RFID := 0;
- END_IF
-
- END_CASE
-
- //********************************** Tisch 7 ***********************************************
-
- (* Lesen *)
- gMerker_Tisch_7_RFID_Vorhanden := gTisch_7_RFID_Read[0].0; (* Auslesen ob Chip vor Lesekopf *)
-
- IF gMerker_Tisch_7_Auftrag_Lesen = TRUE THEN
- // gMerker_Lesen_Fertig := FALSE;
- gTisch_7_RFID_Write[1] := 1;(* Befehl Datenträger lesen *)
- gTisch_7_RFID_Write[2] := 0;
- gTisch_7_RFID_Write[3] := 0;
- gTisch_7_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
- gTisch_7_RFID_Write[5] := 0;
- gTisch_7_RFID_Write[6] := 0;
- gTisch_7_RFID_Write[7] := 0;
- gTisch_7_RFID_Write[8] := 0;
- gTisch_7_RFID_Write[9] := 1;
- gTisch_7_RFID_Write[0].0 := TRUE;
- END_IF
-
- (* Write Variable nullen *)
-
- IF gMerker_Tisch_7_alles_nullen = TRUE THEN
- gTisch_7_RFID_Write[1] := 0;
- gTisch_7_RFID_Write[2] := 0;
- gTisch_7_RFID_Write[3] := 0;
- gTisch_7_RFID_Write[4] := 0;
- gTisch_7_RFID_Write[5] := 0;
- gTisch_7_RFID_Write[6] := 0;
- gTisch_7_RFID_Write[7] := 0;
- gTisch_7_RFID_Write[8] := 0;
- gTisch_7_RFID_Write[0] := 0;
- END_IF
-
- gTisch_7_RFID_Write[9] := gTisch_7_RFID_Write[0];
-
- CASE Tisch_7_RFID OF
- //Cech-Implement-Beginn: Hier soll die UID aus dem TAg nach Tag-Present rausgeholt und auf 8Byte-Array gMerker_Tisch_1_RFID_UID übergeben werden, damit die UID für Centurio über Opc-Ua übergeben werden kannn
- 0: IF gTisch_7_RFID_Read[0] = 129 AND gTisch_7_RFID_Write[0].0 = FALSE THEN //Cech-Comment: Wenn der TAG im Lesebereich ist und der Lesekopf betriebsbereit ist ( Read[0] = 1000 0001 ), aber noch kein Lesebefehl ausgegeben wurde
- gMerker_Tisch_7_STRING_HELPER := '';
- gMerker_Tisch_7_RFID_UID_STR := '0';
- FOR i := 1 TO 8 DO
- gMerker_Tisch_7_STRING_HELPER := USINT_TO_STRING (gTisch_7_RFID_Read[i]);
- IF LEN(gMerker_Tisch_7_STRING_HELPER) = 1 THEN //Cech-Comment: Wenn der String nur 1 ZEichen ist, muss mit 2 Nullen links verlängert werden, sonst wird ID verstümmelt und ist dadurch nicht mehr eindeutig über alle 8 Bytes der UID
- gMerker_Tisch_7_STRING_HELPER := CONCAT('00', gMerker_Tisch_7_STRING_HELPER);
- ELSIF LEN(gMerker_Tisch_7_STRING_HELPER) = 2 THEN //Cech-Comment: Wenn der String nur 2 Zeichen ist, muss mit 1 Null links verlängert werden, sonst wird ID verstümmelt und ist dadurch nicht mehr eindeutig über alle 8 Bytes der UID
- gMerker_Tisch_7_STRING_HELPER := CONCAT('0', gMerker_Tisch_7_STRING_HELPER);
- END_IF;
- gMerker_Tisch_7_RFID_UID_STR := CONCAT( gMerker_Tisch_7_RFID_UID_STR, gMerker_Tisch_7_STRING_HELPER );
- END_FOR
- Tisch_7_RFID := 5;
- END_IF
- //Cech-Implement-Ende
-
- 5: 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
- gMerker_Tisch_7_Auftrag_Lesen := TRUE;
- Tisch_7_RFID := 10;
- END_IF
-
- 10: lWarten_RFID_Fehler_Tisch_7 := lWarten_RFID_Fehler_Tisch_7 + (RTInfo_0.cycle_time/1000);
- IF gTisch_7_RFID_Read[0] = 135 THEN
- gMerker_RFID_Value_Tisch_7 := gTisch_7_RFID_Read[1];
- // gMerker_RFID_Tisch_7_gelesen := TRUE;
- // gMerker_Tisch_7_lesen_fertig := TRUE;
- lWarten_RFID_Fehler_Tisch_7 := 0;
- Tisch_7_RFID := 15;
- ELSIF lWarten_RFID_Fehler_Tisch_7 >= 5000 AND gTisch_7_RFID_Read[0] <> 135 THEN
- gMerker_Tisch_7_Auftrag_Lesen := FALSE;
- gMerker_Tisch_7_RFID_Reset := TRUE;
- lWarten_RFID_Fehler_Tisch_7 := 0;
- Tisch_7_RFID := 100;
- END_IF
-
- 15:
- IF gMerker_RFID_Value_Tisch_7 <> 0 THEN
- gMerker_RFID_Tisch_7_gelesen := TRUE;
- gMerker_Tisch_7_lesen_fertig := TRUE;
- Tisch_7_RFID := 20;
- ELSIF gMerker_RFID_Value_Tisch_7 = 0 THEN
- gMerker_RFID_Tisch_7_gelesen := FALSE;
- gMerker_Tisch_7_lesen_fertig := FALSE;
- Tisch_7_RFID := 100;
- END_IF
-
- 20: lWarten_fuer_OPCUA_Tisch_7 := lWarten_fuer_OPCUA_Tisch_7 + (RTInfo_0.cycle_time/1000);
- IF gMerker_Tisch_7_RFID_Vorhanden = FALSE AND gTisch_7.Inputs.Vor_Stopper = FALSE AND lWarten_fuer_OPCUA_Tisch_7 >= Wartezeit_OPCUA THEN
- gMerker_Tisch_7_Auftrag_Lesen := FALSE;
- gMerker_RFID_Value_Tisch_7 := 0;
- gTisch_7_RFID_Write[0] := 4;
- gMerker_Tisch_7_RFID_UID_STR := '0';
- Tisch_7_RFID := 30;
- END_IF
-
- 30:
- IF gTisch_7_RFID_Read[0] = 0 THEN
- gTisch_7_RFID_Write[0] := 0;
- Tisch_7_RFID := 0;
- END_IF
-
- 100:
- IF gMerker_Tisch_7_Auftrag_Lesen = FALSE AND gMerker_Tisch_7_RFID_Reset = TRUE THEN
- gTisch_7_RFID_Write[0] := 4;
- gMerker_RFID_Value_Tisch_7 := 0;
- gMerker_Tisch_7_RFID_UID_STR := '0';
- Tisch_7_RFID := 110;
- END_IF
-
- 110:
- IF gTisch_7_RFID_Read[0] = 0 THEN
- gMerker_Tisch_7_alles_nullen := TRUE;
- Tisch_7_RFID := 120;
- END_IF
-
- 120:
- 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
- gMerker_Tisch_7_alles_nullen := FALSE;
- gMerker_Tisch_7_RFID_Reset := FALSE;
- Tisch_7_RFID := 0;
- END_IF
-
- END_CASE
-
- //********************************** Tisch 8 ***********************************************
-
- (* Lesen *)
- gMerker_Tisch_8_RFID_Vorhanden := gTisch_8_RFID_Read[0].0; (* Auslesen ob Chip vor Lesekopf *)
-
- IF gMerker_Tisch_8_Auftrag_Lesen = TRUE THEN
- // gMerker_Lesen_Fertig := FALSE;
- gTisch_8_RFID_Write[1] := 1;(* Befehl Datenträger lesen *)
- gTisch_8_RFID_Write[2] := 0;
- gTisch_8_RFID_Write[3] := 0;
- gTisch_8_RFID_Write[4] := 8; (* Anzahl Bytes Lowbytes *)
- gTisch_8_RFID_Write[5] := 0;
- gTisch_8_RFID_Write[6] := 0;
- gTisch_8_RFID_Write[7] := 0;
- gTisch_8_RFID_Write[8] := 0;
- gTisch_8_RFID_Write[9] := 1;
- gTisch_8_RFID_Write[0].0 := TRUE;
- END_IF
-
- (* Write Variable nullen *)
-
- IF gMerker_Tisch_8_alles_nullen = TRUE THEN
- gTisch_8_RFID_Write[1] := 0;
- gTisch_8_RFID_Write[2] := 0;
- gTisch_8_RFID_Write[3] := 0;
- gTisch_8_RFID_Write[4] := 0;
- gTisch_8_RFID_Write[5] := 0;
- gTisch_8_RFID_Write[6] := 0;
- gTisch_8_RFID_Write[7] := 0;
- gTisch_8_RFID_Write[8] := 0;
- gTisch_8_RFID_Write[0] := 0;
- END_IF
-
- gTisch_8_RFID_Write[9] := gTisch_8_RFID_Write[0];
-
- CASE Tisch_8_RFID OF
- //Cech-Implement-Beginn: Hier soll die UID aus dem TAg nach Tag-Present rausgeholt und auf 8Byte-Array gMerker_Tisch_1_RFID_UID übergeben werden, damit die UID für Centurio über Opc-Ua übergeben werden kannn
- 0: IF gTisch_8_RFID_Read[0] = 129 AND gTisch_8_RFID_Write[0].0 = FALSE THEN //Cech-Comment: Wenn der TAG im Lesebereich ist und der Lesekopf betriebsbereit ist ( Read[0] = 1000 0001 ), aber noch kein Lesebefehl ausgegeben wurde
- gMerker_Tisch_8_STRING_HELPER := '';
- gMerker_Tisch_8_RFID_UID_STR := '0';
- FOR i := 1 TO 8 DO
- gMerker_Tisch_8_STRING_HELPER := USINT_TO_STRING (gTisch_8_RFID_Read[i]);
- IF LEN(gMerker_Tisch_8_STRING_HELPER) = 1 THEN //Cech-Comment: Wenn der String nur 1 ZEichen ist, muss mit 2 Nullen links verlängert werden, sonst wird ID verstümmelt und ist dadurch nicht mehr eindeutig über alle 8 Bytes der UID
- gMerker_Tisch_8_STRING_HELPER := CONCAT('00', gMerker_Tisch_8_STRING_HELPER);
- ELSIF LEN(gMerker_Tisch_8_STRING_HELPER) = 2 THEN //Cech-Comment: Wenn der String nur 2 Zeichen ist, muss mit 1 Null links verlängert werden, sonst wird ID verstümmelt und ist dadurch nicht mehr eindeutig über alle 8 Bytes der UID
- gMerker_Tisch_8_STRING_HELPER := CONCAT('0', gMerker_Tisch_8_STRING_HELPER);
- END_IF;
- gMerker_Tisch_8_RFID_UID_STR := CONCAT( gMerker_Tisch_8_RFID_UID_STR, gMerker_Tisch_8_STRING_HELPER );
- END_FOR
- Tisch_8_RFID := 5;
- END_IF
- //Cech-Implement-Ende
-
- 5: 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
- gMerker_Tisch_8_Auftrag_Lesen := TRUE;
- Tisch_8_RFID := 10;
- END_IF
-
- 10: lWarten_RFID_Fehler_Tisch_8 := lWarten_RFID_Fehler_Tisch_8 + (RTInfo_0.cycle_time/1000);
- IF gTisch_8_RFID_Read[0] = 135 THEN
- gMerker_RFID_Value_Tisch_8 := gTisch_8_RFID_Read[1];
- // gMerker_RFID_Tisch_8_gelesen := TRUE;
- // gMerker_Tisch_8_lesen_fertig := TRUE;
- lWarten_RFID_Fehler_Tisch_8 := 0;
- Tisch_8_RFID := 15;
- ELSIF lWarten_RFID_Fehler_Tisch_8 >= 5000 AND gTisch_8_RFID_Read[0] <> 135 THEN
- gMerker_Tisch_8_Auftrag_Lesen := FALSE;
- gMerker_Tisch_8_RFID_Reset := TRUE;
- lWarten_RFID_Fehler_Tisch_8 := 0;
- Tisch_8_RFID := 100;
- END_IF
-
- 15:
- IF gMerker_RFID_Value_Tisch_8 <> 0 THEN
- gMerker_RFID_Tisch_8_gelesen := TRUE;
- gMerker_Tisch_8_lesen_fertig := TRUE;
- Tisch_8_RFID := 20;
- ELSIF gMerker_RFID_Value_Tisch_8 = 0 THEN
- gMerker_RFID_Tisch_8_gelesen := FALSE;
- gMerker_Tisch_8_lesen_fertig := FALSE;
- Tisch_8_RFID := 100;
- END_IF
-
- 20: lWarten_fuer_OPCUA_Tisch_8 := lWarten_fuer_OPCUA_Tisch_8 + (RTInfo_0.cycle_time/1000);
- IF gMerker_Tisch_8_RFID_Vorhanden = FALSE AND gTisch_8.Inputs.Vor_Stopper = FALSE AND lWarten_fuer_OPCUA_Tisch_8 >= Wartezeit_OPCUA THEN
- gMerker_Tisch_8_Auftrag_Lesen := FALSE;
- gMerker_RFID_Value_Tisch_8 := 0;
- gTisch_8_RFID_Write[0] := 4;
- gMerker_Tisch_8_RFID_UID_STR := '0';
- Tisch_8_RFID := 30;
- END_IF
-
- 30:
- IF gTisch_8_RFID_Read[0] = 0 THEN
- gTisch_8_RFID_Write[0] := 0;
- Tisch_8_RFID := 0;
- END_IF
-
- 100:
- IF gMerker_Tisch_8_Auftrag_Lesen = FALSE AND gMerker_Tisch_8_RFID_Reset = TRUE THEN
- gTisch_8_RFID_Write[0] := 4;
- gMerker_RFID_Value_Tisch_8 := 0;
- gMerker_Tisch_8_RFID_UID_STR := '0';
- Tisch_8_RFID := 110;
- END_IF
-
- 110:
- IF gTisch_8_RFID_Read[0] = 0 THEN
- gMerker_Tisch_8_alles_nullen := TRUE;
- Tisch_8_RFID := 120;
- END_IF
-
- 120:
- 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
- gMerker_Tisch_8_alles_nullen := FALSE;
- gMerker_Tisch_8_RFID_Reset := FALSE;
- Tisch_8_RFID := 0;
- END_IF
-
- END_CASE
-
- OPCUA_TEST_1;
-
- OPCUATEST2;
-
- OPCUATEST3;
-
-
-
- END_PROGRAM
- PROGRAM _EXIT
- (* Insert code here *)
-
- END_PROGRAM
|