-

BUF_TO_*

TypFunktionsbaustein
BeschreibungKopiert elementare Datentypen aus einem Byte-Strom in eine Variable, ein Feld oder in Elemente einer anwenderdefinierten Struktur. Für den Byte-Strom kann das Little-/Big-Endian-Format verwendet werden. Deshalb wird eine automatische Konvertierung des Datenformats unterstützt.

Dieser Funktionsbaustein ist für den Datentransfer oder die Kommunikation zwischen Applikationen auf verschiedenen Hardware-Plattformen (Little-/Big-Endian) geeignet.

Funktionsweise
Mit einer steigenden Flanke am Eingang REQ startet der Kopiervorgang. Die Daten werden je nach Wert des Parameters BUF_FORMAT entweder in das Little- oder in das Big-Endian-Format konvertiert (siehe unten stehenden Hinweis). Die Größe des Ziels (Parameter DST) wird vor dem Kopieren geprüft.
Nach erfolgreichem Kopieren wird DONE auf TRUE gesetzt. Sind beim Kopierprozess Fehler aufgetreten, wird der Parameter ERROR auf TRUE gesetzt und ein Wert ungleich Null in den Ausgang STATUS geschrieben (der STATUS-Wert stellt die Fehlernummer dar). Diese Werte werden gehalten bis eine fallende Flanke am Eingang REQ anliegt. Eine neue steigende Flanke an REQ löst einen neuen Kopierprozess aus.

Zeitdiagramm
Hinweise
  • '*' ist ein Platzhalter für die unterstützten Datentypen. Der FB ist für die Datentypen BYTE, WORD, DWORD, LWORD, SINT, INT, DINT, LINT, UDINT, UINT, ULINT, USINT, TIME, REAL, LREAL, STRING, WSTRING, LTIME, LDATE, LTOD und LDT verfügbar.
  • Beim Datentyp STRING/WSTRING unterscheidet sich das Verhalten von der nachfolgenden Beschreibung. Weitere Informationen über den Funktionsbaustein BUF_TO_STRING/BUF_TO_WSTRING finden Sie hier.
  • Für die Quelle und das Ziel darf nicht die gleiche Adresse verwendet werden!
  • Der Parameter BUF_FORMAT wird für einige Datentypen wie z.B. BYTE oder SINT nicht ausgewertet und hat keine Auswirkung.
  • Funktionsbausteine müssen instanziiert werden. Der FB-Instanzname muss in der 'Variablen'-Tabelle der POE deklariert werden, in welcher der FB verwendet werden soll. Der Instanzname muss innerhalb der POE eindeutig sein.
ParameterEingänge

REQ

BUF_FORMAT

BUF_OFFS

BUF_CNT

Ein-/Ausgang

BUFFER

DST

Ausgänge

DONE

ERROR

STATUS
Zusätzliche Informationen