FB_FormatString

Mit dem Funktionsbaustein können bis zu 10 Argumente (ähnlich wie bei fprintf) entsprechend der Formatspezifikation 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 FBs verfügbar.
VAR_INPUT
VAR_INPUT
sFormat : T_MaxString;
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;
END_VAR
sFormat: Formatspezifikation als String ( z.B. '%+20.5f' oder 'Measure X: %+.10d, Y: %+.10d' ).
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_SINT, F_INT, F_DINT, F_USINT, F_UINT, F_UDINT, F_STRING, F_REAL, F_LREAL.
VAR_OUTPUT
VAR_OUTPUT
bError : BOOL;
nErrId : UDINT;
sOut : T_MaxString;
END_VAR
bError: Sollte ein Fehler bei der Formatierung aufgetreten sein, dann wird dieser Ausgang gesetzt.
nErrId: Liefert bei einem gesetzten bError-Ausgang den Format Fehlercode.
sOut: Bei Erfolg liefert dieser Ausgang den formatierten Ausgabestring.
Beispiel in ST:
PROGRAM MAIN
VAR
fbFormat : FB_FormatString;
iY : DINT;
iX : DINT;
bError : BOOL;
nErrID : UDINT;
sOut : T_MaxString;
END_VAR
iX := iX + 1;
iY := iY + 1;
fbFormat( sFormat := 'Measure X: %+.10d, Y: %+.10d', arg1 := F_DINT( iX ), arg2 := F_DINT( iY ), sOut => sOut, bError => bError, nErrID => nErrID );
Das Ergebnis:
sOut = 'Measure X: +0000000130, Y: +0000000130'
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
TwinCAT v2.9.0 Build >1021 | PC or CX (x86) | TcUtilities.Lib |
TwinCAT v2.10.0 Build >= 1301 | CX (ARM) |