F_FormatArgToStr

Format-Hilfsfunktion. Diese Funktion wird auch intern von dem FB_FormatString-Funktionsbaustein benutzt. Mit dieser Funktion kann eine Variable vom Typ T_Arg entsprechend der Formatspezifikation in einen formatierten String konvertiert werden.
Rückgabewert
Name | Typ | Beschreibung |
---|---|---|
F_FormatArgToStr | UDINT |
|
Eingänge
VAR_INPUT
bSign : BOOL;(* Sign prefix flag *)
bBlank : BOOL;(* Blank prefix flag *)
bNull : BOOL;(* Null prefix flag *)
bHash : BOOL;(* Hash prefix flag *)
bLAlign : BOOL;(* FALSE => Right align (default), TRUE => Left align *)
bWidth : BOOL;(* FALSE => no width padding, TRUE => blank or zeros padding enabled *)
iWidth : INT;(* Width length parameter *)
iPrecision : INT;(* Precision length parameter *)
eFmtType : E_TypeFieldParam; (* Format type field parameter *)
arg : T_Arg;(* Format argument *)
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bSign | BOOL | Das Vorzeichen-Flag. |
bBlank | BOOL | Das Leerzeichen-Flag. |
bNull | BOOL | Das Null-Flag. |
bHash | BOOL | Das Hash-Prefix-Flag. |
bLAlign | BOOL | Das Ausrichtungs-Flag (TRUE=left align). |
bWidth | BOOL | Wenn TRUE, dann wird der iWidth-Parameter ausgewertet, sonst nicht. |
iWidth | INT | Width-Parameter. |
iPrecision | INT | : Precision-Parameter. |
eFmtType | E_TypeFieldParam | Type-Parameter (Typ: E_TypeFieldParam). |
arg | T_Arg | Das zu formatierende Argument. 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. |
/
Ein-/Ausgänge
VAR_IN_OUT
sOut : T_MaxString;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
sOut | T_MaxString | Beim Erfolg liefert diese Variable den formatierten Ausgabestring (Typ: T_MaxString). |
Rückgabeparameter | Bedeutung |
---|---|
0 | Kein Fehler |
<> 0 | Fehler. Fehlerbeschreibung finden Sie unter: Format Fehlercodes |
Beispiele:
Formatieren einer BYTE-Variablen als Binärstring.
PROGRAM MAIN
VAR
s1 : T_MaxString;
s2 : T_MaxString;
s3 : T_MaxString;
s4 : T_MaxString;
s5 : T_MaxString;
errID : UDINT;
varByte : BYTE;
double : LREAL;
L1 : INT;
L2 : INT;
L3 : INT;
L4 : INT;
L5 : INT;
END_VAR
varByte := 128;
errID := F_FormatArgToStr(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 20, 8, TYPEFIELD_B, F_BYTE( varByte ), s1 );
errID := F_FormatArgToStr(FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, 20, 8, TYPEFIELD_B, F_BYTE( varByte ), s2 );
errID := F_FormatArgToStr(FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, 20, 8, TYPEFIELD_B, F_BYTE( varByte ), s3 );
errID := F_FormatArgToStr(FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, 20, 8, TYPEFIELD_B, F_BYTE( varByte ), s4 );
L1 := LEN( s1 );
L2 := LEN( s2 );
L3 := LEN( s3 );
L4 := LEN( s4 );
Das Ergebnis:
s1 = '10000000'
s2 = ' 10000000'
s3 = '10000000 '
s4 = '2#10000000 '
L1 = 8
L2 = 20
L3 = 20
L4 = 20
Formatieren einer LREAL-Variablen.
double := 12345.6789;
errID := F_FormatArgToStr( FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 20, 8, TYPEFIELD_F, F_LREAL( double ), s1 );
errID := F_FormatArgToStr( FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, 20, 8, TYPEFIELD_F, F_LREAL( double ), s2 );
errID := F_FormatArgToStr( FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, 20, 8, TYPEFIELD_F, F_LREAL( double ), s3 );
errID := F_FormatArgToStr( FALSE, FALSE, TRUE, FALSE, FALSE, TRUE, 20, 8, TYPEFIELD_F, F_LREAL( double ), s4 );
errID := F_FormatArgToStr( TRUE, FALSE, FALSE, TRUE, TRUE, TRUE, 20, 8, TYPEFIELD_F, F_LREAL( double ), s5 );
L1 := LEN( s1 );
L2 := LEN( s2 );
L3 := LEN( s3 );
L4 := LEN( s4 );
L5 := LEN( s5 );
Das Ergebnis:
s1 = '12345.67890000'
s2 = ' 12345.67890000'
s3 = '12345.67890000 '
s4 = '00000012345.67890000'
s5 = '+12345.67890000 '
L1 = 14
L2 = 20
L3 = 20
L4 = 20
L5 = 20
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken (Kategoriegruppe) |
---|---|---|
TwinCAT v3.1.0 | PC oder CX (x86, x64, Arm®) | Tc2_Utilities (System) |