Step 7 Barcodes-Vergleichen

firefree

Level-1
Beiträge
1
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Community,

ich hab folgendes Problem. Ich bekomme über ein ET200 Modul mit dem Standart FB Receive Date (FB2) Daten eines Barcodescanner eingelesen. Ich muss jetzt zwei Codes miteinander vergleichen. Die Codes werden nacheinander eingelesen. Am FB2 kann ich einstellen an welche Stelle ich im DB die Daten will. Im Moment ist es so das einfach alle Scans überschrieben werden. Kann mir jemand helfen wie ich an dem Eingang am FB2 nach einem Scan den nächsten Scan 50 Bits weiter schiebe? Und wie ich dann die beiden Scans miteinander vergleichen kann?
Hab mehr Programmiererfahrung in C++, muss dieses Projekt aber in AWL/FUP schreiben.

mfg
fire
 
Ich würde zwei Speicherbereiche machen für die zwei Barcodes.

Dann mit dem baustein BLK_MOV bei Empfang des ersten Barcodes in den Bereich Barcode1 übertragen, und bei zweiten in den anderen.

Vergleich dann je nach Datentyp (ich schätze es ist ein Array-of-Char mit 50 Zeichen) etwa so

Code:
barcodes_gleich = true
for i:=0 to 49 by1 do

    if BARCODE1[i] <> BARCODE2[i] then
         barcodes_gleich = false
    end_if;
end_for;

Woher weißt Du wann das passende Pärchen an Barcodes kommt? Nicht das mal einer ausbleibt und Du immer ungleichheit hast.

Grüße

Marcel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich denke dass du musst der NDR überwachen.
Die DB_NO und DBB_NO zeigen auf ein Empfangspuffer.
Wenn NDR=TRUE dann musst du den angekommene STRING in weitere Puffer kopieren.

Ich wurde es so machen:
Du hast 2 Puffer für die 2 Barcodes.
Auf den HMI Bildschirm gibt es ein Taste "Start/Reset Zwei Barcodes einlesen." und eine Taste "2 Barcodes übernehmen und vergleichen"
Wenn "Start/Reset Zwei Barcodes einlesen" gedruckt wird, werden die Puffer gelöscht, und das Program wartet auf NDR=TRUE.
Wenn NDR=TRUE erstmals, wird den Empfangspuffer in Puffer 1 kopiert.
Wenn NDR=TRUE zum zweiten mal, wird den Empfangspuffer in Puffer 2 kopiert.
Wenn NDR=TRUE zum drittten mal, oder es gibt ein Fehler im Telegram, oder wenn den Zeit zu lang ist usw. wird ein Fehlermeldung angezeigt.
Auf den HMI Bildschirm sieht man die 2 Barcodes.
Wenn "2 Barcodes übernehmen und vergleichen" gedruckt wird, werden die 2 Puffer vergleicht und du machst damit was du willst.

Du kannst es auch so programmieren, das der Anwender braucht nicht den Taste "2 Barcodes übernehmen und vergleichen" drucken, sondern den Vergleich wird sofort ausgeführt wenn NDR zum 2. mal TRUE ist.
 
Zurück
Oben