-

STRING_COPY

TypFunktion
BeschreibungKopiert jedes Zeichen eines Eingangsstrings (STRING- oder WSTRING-Datentyp) bitweise in einen Puffer (beliebiges Array, typischerweise ein Byte-Array).

Der Array-Index, ab dem das erste Zeichen des Eingangsstrings kopiert werden soll, wird mit dem Parameter BUF_OFF vorgegeben. Dieser Parameter bestimmt den Byte-Offset im Puffer. Der Offset wird wie folgt berechnet:

        BUF_OFF = Array-Index, ab dem kopiert werden soll x Größe in Bytes, die jedes Array-Element belegt

Beispiel:

In einem Array aus DINT-Elementen (jedes Element belegt 4 Bytes) soll ab Array-Index [3] kopiert werden. BUF_OFF muss in diesem Fall auf den folgenden Wert gesetzt werden (siehe auch nachfolgende Beispiele):

        MyArray : ARRAY[0..5] OF DINT;

        BUF_OFF = 3 x SIZEOF(DINT) = 3 x 4 = 12
Hinweise
  • Stellen Sie sicher, dass die Länge des Puffers (BUFFER) beginnend bei BUF_OFF größer/gleich dem Wert an CNT ist, andernfalls wird nicht kopiert. Die Funktion liefert dann den Wert FALSE.
  • Wenn der am Eingang IN anliegende String weniger Zeichen enthält als für CNT angegeben, werden keine Zeichen in das Array kopiert. Die Funktion liefert den Wert FALSE zurück.
  • Das Endezeichen \0 in Zeichenfolgen wird nicht kopiert. Es werden nur die Zeichen in das Array geschrieben.
  • Die Eingangsparameter IN, BUFFER und CNT müssen zusammenpassen, um die Funktion korrekt auszuführen und den gesamten Eingangsstring in den Puffer zu kopieren. Einzelne Zeichen des Eingangsstrings werden in folgenden Fällen abgeschnitten und nicht in den Puffer kopiert:

    • Der am Eingang IN anliegende String enthält mehr Zeichen als für CNT angegeben. Die Funktion liefert den Wert TRUE. Die Anzahl der Zeichen (am Eingang CNT vorgegeben) des Eingangsstrings wird in das Array kopiert.
    • Die Größe der Array-Elemente (beginnend bei BUF_OFF) ist kleiner als CNT; die Funktion liefert den Wert FALSE. Es werden keine Zeichen in das Array kopiert.
  • Beachten Sie beim Kopieren eines Puffers mit STRUCTs die Startadresse. Eine Struktur kann bedingt durch das Alignment (Ausrichtung) Padding-Bytes (Füllbytes) enthalten, die auch geschrieben werden. Die Funktion SIZEOF berücksichtigt diese Padding-Bytes nicht bei der Berechnung der Anzahl an Bytes, die durch die STRUCT-Elemente belegt sind.
  • Diese Funktion sollten Sie nur verwenden, wenn ein Array benötigt wird. In allen anderen Fällen sollten Sie die Funktion GET_CHAR einsetzen.
ParameterEingänge

IN

BUFFER

BUF_OFF

CNT

Ausgang

OUT
FehlerverhaltenFehlerverhalten
Zusätzliche InformationenEN/ENO-Verhalten
BeispieleBeispiele in ST