Tigerente1974
Level-3
- Beiträge
- 1.826
- Reaktionspunkte
- 294
-> Hier kostenlos registrieren
Ich habe eine Anwendung in der ich einen Profibus-Scanner auslese.
Je nach Barcodelänge benötige ich unterschiedliche Teile aus dem Barcode. Ich lese also die Barcodelänge aus und nutze den MID-Befehl, um den relevanten Teil zu lesen.
Folgende Zeilen in SCL funktionieren:
-SCAN_COMMDB.Scanner[ScannerIndex].Sendedaten ist als STRING[9] in einem Global-DB deklariert.
-tmpSendedaten ist ebenfalls als STRING[9] deklariert und ist eine TEMP-Variable.
Wenn ich den Code ohne den "Umweg" über tmpSendedaten schreibe und direkt die Variable SCAN_COMMDB.Scanner[ScannerIndex].Sendedaten mit dem MID-Befehl verwende, geht die CPU auf STOP.
Warum?
Je nach Barcodelänge benötige ich unterschiedliche Teile aus dem Barcode. Ich lese also die Barcodelänge aus und nutze den MID-Befehl, um den relevanten Teil zu lesen.
Folgende Zeilen in SCL funktionieren:
Code:
IF SCAN_COMMDB.SCANNER[ScannerIndex].READ.HEADER.Barcodelaenge = 20 THEN
tmpSendedaten:=MID(IN:=SCAN_COMMDB.Scanner[ScannerIndex].READ.Barcode,L:=9,P:=12);
ELSIF SCAN_COMMDB.SCANNER[ScannerIndex].READ.HEADER.Barcodelaenge = 25 THEN
tmpSendedaten:=MID(IN:=SCAN_COMMDB.Scanner[ScannerIndex].READ.Barcode,L:=9,P:=16);
END_IF;
SCAN_COMMDB.Scanner[ScannerIndex].Sendedaten:=tmpSendedaten;
-SCAN_COMMDB.Scanner[ScannerIndex].Sendedaten ist als STRING[9] in einem Global-DB deklariert.
-tmpSendedaten ist ebenfalls als STRING[9] deklariert und ist eine TEMP-Variable.
Wenn ich den Code ohne den "Umweg" über tmpSendedaten schreibe und direkt die Variable SCAN_COMMDB.Scanner[ScannerIndex].Sendedaten mit dem MID-Befehl verwende, geht die CPU auf STOP.
Warum?
