Step 7 Array of Bytes in String

Juergena

Level-1
Beiträge
120
Reaktionspunkte
14
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich bin gerade auf der Suche nach einer Lösung. Ich bin nach gefühlten zig Jahren mal wieder in der S7-300 Classic-Welt unterwegs. Ich habe einen DB mit einem Array [0..199] of bytes in diesem liegen Informationen von QR-Codes drin. Jetzt möchte ich dieses Array in einen zusammenhängenden String kopieren um danach den String nach einer bestimmten Wortkombination zu durchsuchen und dort ab dieser Stelle eine bestimmte Anzahl an Character raus zu filtern. Im Tia stehen da schöne Bausteine zur Verfügung. Ich weiß das ich das schon einmal gemacht habe, aber ich steh gerade auf der Leitung und komme nicht mehr drauf wie ich das programmiert hatte. Da gibt´s doch bestimmt wieder irgendwo in de IEC Bibliothek einen Baustein oder?

Danke schon mal

Gruß

Jürgen
 
in stdlibs/iec sind die Stringfunktionen

Array of Bytes in String:

Code:
FUNCTION ArrOfBytToString : INT
TITLE = 'ArrOfBytToString'

VERSION : '0.1'
AUTHOR : 'Oberchefe'
FAMILY : 'XYZ'

VAR_INPUT
    MyArrOfBytes: ARRAY [0..199] OF BYTE;
END_VAR
VAR_OUTPUT
    MyString  :STRING[200];
END_VAR

VAR
    iLoop : INT;
    MyTempString : STRING[200];
    ArrBytTemp AT MyTempString : ARRAY[-2..199] OF BYTE;
END_VAR

ArrOfBytToString := 0;

ArrBytTemp[-2] := 200;
ArrBytTemp[-1] := 200;
FOR iLoop := 0 TO 199 DO
    ArrBytTemp[iLoop] := MyArrOfBytes[iLoop];
    IF ArrBytTemp[iLoop] = 0 THEN
        ArrBytTemp[-1] := INT_TO_BYTE(iLoop);
        ArrOfBytToString := 1;
        EXIT;
    END_IF;
END_FOR;

MyString := MyTempString;


END_FUNCTION
 
Hallo zusammen,

ich benötige noch einmal Hilfe bei meinem Projekt. Ich habe letzte Woche meinen Scanner am Schreibtisch in Betrieb genommen mit einer 315-2PNDP 6ES7315-2EH14-0AB0 / V3.2. Da lief alles prima. Und heute wollte ich dann das gleiche in der Anlage machen bei einer 314C-DP 6ES7314-6CH04-0AB0 /V 3.3 und er frisst meinen Code am Baustein nicht. Was ist hier das Problem mit dem String? In der 314er musste ich den DB umbenennen.
 

Anhänge

  • 314C_DP.PNG
    314C_DP.PNG
    92,7 KB · Aufrufe: 47
  • 315-2PNDP.PNG
    315-2PNDP.PNG
    91,9 KB · Aufrufe: 46
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja DB existiert, ich habe es auch mittlerweile hin bekommen, aber verstehen tue ich es noch nicht ganz. Vielleicht kann mich hier jemand mal aufklären.
 

Anhänge

  • 314C_DP_1.PNG
    314C_DP_1.PNG
    99,2 KB · Aufrufe: 35
Ab und zu gibt es das Verhalten, dass wenn man den FC/FB zuerst öffnet, dann den DB anlegt dann die Variablen auf den DB umbenennt, dass der Compiler nicht weiß, dass der DB vorhanden ist und rot einfärbt. Über ein erneutes Öffnen des FC/FB kann dieser Fehler nur korrigiert werden. Ein weiterer Punkt könnte sein, dass in der Symboltabelle noch ein falscher UDT/Datentyp hinter dem DB hinterlegt war. Vielleicht hilft dir das.
 
Zurück
Oben