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