FB_FormatString

FB_FormatString 1:

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 (Typ: T_MaxString)( z.B. '%+20.5f' oder 'Measure X: %+.10d, Y: %+.10d' ).

arg1 bis arg10: Argumente, die formatiert werden sollen (Typ: T_Arg). 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.

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 (Typ: T_MaxString)

Beispiel:

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 (Kategoriegruppe)

TwinCAT v3.1.0

PC oder CX (x86, x64, ARM)

Tc2_Utilities (System)