TIME in STRING
La funzione TIME_TO_STRING converte un valore del tipo di dato TIME in un valore del tipo di dato STRING[20]. Conformemente a IEC-1131, la stringa risultato viene visualizzata con un breve prefisso di tempo e senza sottolineature. I valori possibili per l'intervallo della stringa risultato vanno da 'T#000d00h00m00s000ms' a 'T#248d13h13m56s470ms'.
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: TIME:=T#0s;
result_string: STRING;
La variabile di ingresso input_value del tipo di dato TIME è inizializzata dal valore T#1h30m45s. La variabile di uscita result_string presenta il tipo di dato STRING[20]. Può memorizzare un massimo di 20 caratteri. Anziché utilizzare la variabile input_value, potete inserire una costante direttamente nel contatto di ingresso della funzione nel corpo.
input_value del tipo di dato TIME viene convertito in STRING[20]. Il valore convertito viene scritto in result_string. Quando la variabile input_value = T#1h30m45s, result_string mostra 'T#000d01h30m45s000ms'.
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,TIME_TO_STRING!,Instance,10,1,19,3,,?D?C);
B(B_VARIN,,input_value,8,1,10,3,);
B(B_VAROUT,,result_string,19,1,21,3,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
result_string:=TIME_TO_STRING(input_value);
Questo esempio illustra come creare, partendo da un valore di ingresso del tipo di dato TIME, una stringa STRING[9] che presenti il formato 'xxhxxmxxs' (solo le ore, i minuti e i secondi vengono restituiti). 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: TIME:=T#1h30m45s;
(*example value*)
result_string: STRING[9]:='';
(*result: here '01h30m45s'*)
END_VAR
In questo esempio sono dichiarate sia una variabile di ingresso input_value del tipo di dato TIME sia una variabile di uscita result_string del tipo di dato STRING[9].
Nell'esecuzione dell'operazione in questione, la funzione standard MID viene collegata alla funzione TIME_TO_STRING. MID crea un settore centrale nella stringa di caratteri partendo dalla posizione P (valore INT) con L (valore INT) caratteri.
Nell'esempio, la costante INT 9 viene inserita all'ingresso L di MID, il quale determina la lunghezza della stringa risultato. La costante INT 7 all'ingresso P determina la posizione in cui inizia il settore centrale. Partendo dalla variabile input_value = T#1h30m45s, il valore STRING 'T#000d01h30m45s000ms' risulta dalla conversione del tipo di dato. La funzione MID tronca il valore STRING alla posizione 7 e restituisce result_string '01h30m45s'.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_F,TIME_TO_STRING!,Instance,7,2,16,4,,?D?C);
B(B_VARIN,,input_value,5,2,7,4,);
B(B_VAROUT,,result_string,24,2,26,4,);
B(B_F,MID!,Instance,19,1,24,6,,?DIN?DL?DP?C);
B(B_VARIN,,9,17,3,19,5,);
B(B_VARIN,,7,17,4,19,6,);
L(1,0,1,6);
L(16,3,19,3);
END_NETWORK_BODY
END_NET_WORK
END_BODY