TIA String aus Byte-Array erstellen (S7-1500)

Beckx-net

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

ich möchte gerne den Inhalt eines Byte-Arrays auf eine String-Variable abbilden. Der Inhalt des Arrays sind ASCII Zeichen. Das Ende ist mit 16#0 Terminiert.

Den Inhalt des Byte-Array kopiere ich folgendermaßen via BlockMove-Befehl:
#iBlockMoveReturn:= BLKMOV(SRCBLK:= #myByteArray, DSTBLK=> #myString);

Die tatsächliche Stringlänge (Byte1) meiner Stringvariablen wird automatisch auf die Länge meines Byte-Arrays gesetzt (das macht BLKMOV ja automatisch). Wie kann ich diese Länge manuell setzten, damit ich Strings wie 'Hallo World$00$00$00' vermeiden kann?
 
Ich habe gerade die Funktion Chars_TO_Strg in der Bibliothek gefunden. Hiermit scheint es hin zuhauen. Trotzdem würde mich mal interessieren, wie man manuell die tatsächliche Länge eines Strings manipulieren kann?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Naja indem du das zweite Byte des Strings entsprechend schreibst.

Entweder mit der absoluten Adresse oder:
String
AT
> Struct
>>Dummy<Byte>
>>Len<Byte>
 
Das würde sicherlich funktionieren, allerdings nur wenn der Baustein nicht optimiert ist.
Bei optimierten Bausteinen könnte man es mit dem Slice Operator lösen. Werde ich bei Gelegenheit mal ausprobieren.
 
Zurück
Oben