BOOL in STRING
La funzione BOOL_TO_STRING converte un valore del tipo di dato BOOL in un valore del tipo di dato STRING[2]. La stringa risultante è rappresentata da ' 0' o ' 1'.
Ingresso
Uscita
In caso di utilizzo del tipo di dato STRING con PLC piccoli come FP-e o FP0, assicuratevi che la lunghezza della stringa risultato sia uguale o maggiore della lunghezza della stringa di origine.
Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.
VAR
input_value: BOOL:=FALSE;
result_string: STRING;
END_VAR
La variabile di ingresso input_value del tipo di dato BOOL è inizializzata dal valore TRUE. La variabile di uscita result_string presenta il tipo di dato STRING[2]. Può memorizzare un massimo di due caratteri. Potete dichiarare una stringa di caratteri formata da più di un carattere, p.es. STRING[5]. Dei 5 caratteri riservati, solo 2 vengono utilizzati.
Anziché utilizzare la variabile input_value, potete scrivere le costanti TRUE o FALSE direttamente nel contatto di ingresso della funzione nel corpo.
input_value del tipo di dato BOOL viene convertito in STRING[2]. Il valore convertito viene scritto in result_string. Quando la variabile input_value = TRUE, result_string mostra ' 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;
Se volete visualizzare il risultato 'TRUE' o 'FALSE' anziché ' 0' o ' 1', non potete utilizzare la funzione BOOL_TO_STRING. Questo esempio illustra come creare una STRING[5] contenente i caratteri 'TRUE' o 'FALSE' partendo da un valore di ingresso del tipo di dato BOOL. Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.
VAR
input_value: BOOL:=TRUE;
(*example value*)
result_string: STRING[5]:='';
(*result: here TRUE*)
@'': @'';
@'': @'';
END_VAR
In questo esempio sono dichiarate sia una variabile di ingresso input_value del tipo di dato BOOL sia una variabile di uscita result_string del tipo di dato STRING[5].
Per realizzare l'operazione voluta viene utilizzata la funzione standard MOVE. Essa alloca il valore dell'ingresso all'uscita, lasciandolo invariato. All'ingresso viene collegata la costante STRING 'TRUE' o 'FALSE'. In sostanza si verifica una conversione "BOOL in STRING" in quanto la variabile booleana input_variable nel contatto di abilitazione in ingresso (EN) decide l'uscita di STRING.
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