FB_FormatString2

Mit dem Funktionsbaustein können bis zu 10 Argumente (ähnlich wie bei fprintf) entsprechend der Formatspezifikation (z. B. '%+20.5f' oder 'Measure X: %+.10d, Y: %+.10d') in einen String konvertiert und formatiert werden. Die Formatierung wird im gleichen SPS-Zyklus durchgeführt. D. h. der Ausgabestring ist sofort nach dem Aufruf des Funktionsbausteins verfügbar.
Die Größen von Format-String und Ausgabestring sind, entgegen dem Funktionsbaustein FB_FormatString, nicht auf 255 Zeichen begrenzt. Jedes Argument ist jedoch limitiert auf eine Darstellung von maximal 250 Zeichen. Wenn die Zeichenanzahl überschritten wird oder der Ausgabestring zu klein sein für die formatierte Zeichenkette, so gibt der Funktionsbaustein einen Fehler aus.
Eingänge
VAR_INPUT
pFormatString : POINTER TO STRING;
arg1 : T_Arg;
arg2 : T_Arg;
arg3 : T_Arg;
arg4 : T_Arg;
arg5 : T_Arg;
arg6 : T_Arg;
arg7 : T_Arg;
arg8 : T_Arg;
arg9 : T_Arg;
arg10 : T_Arg;
pDstString : POINTER TO STRING;
nDstSize : UDINT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
pFormatString | STRING | Zeiger auf die Formatspezifikation als String. Die Adresse muss bei jedem Aufruf des Funktionsbausteins zugewiesen werden. Bei der Zuweisung kann der Operator ADR() verwendet werden. |
arg1 bis arg10 | Argumente, die formatiert werden sollen. Folgende Hilfsfunktionen können benutzt werden, um SPS-Variablen unterschiedlichsten Typs in den benötigten Datentyp T_Arg zu konvertieren: F_BYTE, F_WORD, F_DWORD, F_LWORD, F_SINT, F_INT, F_DINT, F_LINT, F_USINT, F_UINT, F_UDINT, F_ULINT, F_STRING, F_REAL, F_LREAL. | |
pDstString | STRING | Zeiger auf die resultierende STRING-Variable. Bei Erfolg wird hier die formatierte Zeichenkette geschrieben. Die Adresse muss bei jedem Aufruf des Funktionsbausteins zugewiesen werden. Bei der Zuweisung kann der Operator ADR() verwendet werden. |
nDstSize | UDINT | Größe der resultierenden STRING-Variablen in Bytes. Bei der Zuweisung kann der Operator SIZEOF() verwendet werden. |
Ausgänge
VAR_OUTPUT
bError : BOOL;
nErrId : UDINT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bError | BOOL | TRUE, wenn bei der Formatierung ein Fehler aufgetreten ist. |
nErrId | UDINT | Liefert bei einem gesetzten bError-Ausgang den Format Fehlercode. |
Beispiel
PROGRAM MAIN
VAR
fbFormat : FB_FormatString2;
sFormat : STRING := 'Measure X: %+.10d, Y: %+.10d';
iY : DINT;
iX : DINT;
bError : BOOL;
nErrID : UDINT;
sOut : STRING(600);
END_VAR
iX := iX + 1;
iY := iY + 1;
fbFormat( pFormatString := ADR(sFormat), arg1 := F_DINT( iX ), arg2 := F_DINT( iY ), pDstString := ADR(sOut), nDstSize := SIZEOF(sOut), bError => bError, nErrID => nErrID );
Ergebnis:
sOut = 'Measure X: +0000000130, Y: +0000000130'
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken (Kategoriegruppe) |
---|---|---|
TwinCAT v3.1.4022 | PC oder CX (x86, x64, Arm®) | Tc2_Utilities (System) >= 3.3.35.0 |