BOOL in STRING
Die Funktion BOOL_TO_STRING wandelt einen Wert vom Datentyp BOOL in einen Wert vom Datentyp STRING[2] um. Der Ergebnisstring wird als '0' oder '1' dargestellt.
Eingang
Ausgang
Bei der Verwendung des Datentyps STRING mit Kleinsteuerungen wie FP-e oder FP0 müssen Sie darauf achten, dass die Länge der Ergebniszeichenfolge mindestens so groß ist wie die Länge der Ausgangszeichenfolge.
Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.
VAR
input_value: BOOL:=FALSE;
result_string: STRING;
END_VAR
Die Eingangsvariable input_value vom Datentyp BOOL wird mit dem Wert TRUE initialisiert. Die Ausgangsvariable result_string ist vom Datentyp STRING[2]. Sie kann maximal zwei Zeichen speichern. Sie können auch eine Zeichenfolge mit mehr als einem Zeichen deklarieren z.B. STRING[5]. Von den reservierten 5 Zeichen würden dann 2 nicht benutzt werden.
Statt der Variablen input_value, können Sie im Rumpf die Konstanten TRUE oder FALSE direkt an den Eingang der Funktion schreiben.
input_value vom Datentyp BOOL wird in STRING[2] umgewandelt. Der umgewandelte Wert wird in result_string geschrieben. Mit der Variable input_value = TRUE steht in result_string '1'.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_F,BOOL_TO_STRING!,Instance,9,1,19,3,,?D?C);
B(B_VARIN,,input_value,7,1,9,3,);
B(B_VAROUT,,result_string,19,1,21,3,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF Boolean_value then
output_value:=BOOL_TO_STRING(input_value);
END_IF;
Wenn Sie als Ergebnis statt '0' oder '1' 'TRUE' oder 'FALSE' wollen, können Sie die Funktion BOOL_TO_STRING nicht verwenden. Dieses Beispiel zeigt, wie man mit einem Eingangswert vom Datentyp BOOL einen STRING der Länge 5 (STRING[5]) erzeugt, welcher die Zeichen 'TRUE' oder'FALSE' beinhaltet. Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.
VAR
input_value: BOOL:=TRUE;
(*example value*)
result_string: STRING[5]:='';
(*result: here TRUE*)
@'': @'';
@'': @'';
END_VAR
In diesem Beispiel werden eine Eingangsvariable input_value vom Datentyp BOOL sowie eine Ausgangsvariable result_string vom Datentyp STRING[5] deklariert.
Zur Realisierung der geforderten Aufgabe wird die Standardfunktion MOVE verwendet. Sie weist den Wert ihres Eingangs unverändert dem Ausgang zu. Am Eingang wird die STRING-Konstante 'TRUE' bzw. 'FALSE' angelegt. Es findet eine "BOOL to STRING-Konvertierung" statt, da die boolesche Variable input_variable am EN-Freigabe-Eingang über die Ausgabe des STRING entscheidet.
BODY
WOKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORRKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 8 ;
NETWORK_BODY
B(B_CONTACT,,input_value,3,1,5,3,);
B(B_F,E_MOVE!,Instanz,11,0,17,4,,?DEN?D?AENO?C);
B(B_VARIN,,'TRUE',9,2,11,4,);
B(B_VAROUT,,result_string,17,2,19,4,);
B(B_F,E_MOVE!,Instanz,11,4,17,8,N,?DEN?D?AENO?C);
B(B_VARIN,,'FALSE',9,6,11,8,);
B(B_VAROUT,,result_string,17,6,19,8,);
L(1,2,3,2);
L(5,2,11,2);
L(1,0,1,8);
L(6,2,6,6);
L(6,6,11,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY