TIME en STRING
La fonction TIME_TO_STRING convertit une valeur du type de données TIME en une valeur du type de données STRING[20]. Conformément à la norme CEI-1131, la chaîne résultante est affichée avec un préfixe de temps court et sans soulignement. Les valeurs possibles pour la chaîne résultat de la conversion sont de 'T#000d00h00m00s000ms' à 'T#248d13h13m56s470ms'.
Entrée
Sortie
Si vous utilisez le type de données STRING avec des petits automates tels que FP-e ou FP0, veillez à ce que la longueur de la chaîne, résultat de la conversion, soit égale ou supérieure à celle de la chaîne de départ.
Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.
VAR
input_value: TIME:=T#0s;
result_string: STRING;
La variable d’entrée input_value du type de données TIME est initialisée par la valeur T#1h30m45s. La variable de sortie result_string est du type de données STRING[20]. Elle peut enregistrer un maximum de 20 caractères. A défaut d’utiliser la variable input_value, vous pouvez aussi entrer une constante directement au contact d’entrée de la fonction, dans le corps.
La variable input_value du type de données TIME est convertie en STRING[20]. La valeur convertie est écrite dans result_string. Lorsque la variable input_value = T#1h30m45s, result_string affiche '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);
Cet exemple illustre comment, à partir d’une valeur d’entrée du type de données TIME, une chaîne de caractères STRING[9] est créée avec le format 'xxhxxmxxs' (heures, minutes et secondes uniquement). Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.
VAR
input_value: TIME:=T#1h30m45s;
(*example value*)
result_string: STRING[9]:='';
(*result: here '01h30m45s'*)
END_VAR
Dans cet exemple, la variable d’entrée input_value du type de données TIME et la variable de sortie result_string du type STRING[9] sont déclarées.
Pour exécuter cette opération, la fonction standard MID est utilisée avec la fonction TIME_TO_STRING. MID crée un secteur central dans la chaîne de caractères à partir de la position P (valeur INT) avec les caractères L (valeur INT).
Dans l’exemple, la constante INT 9 est entrée dans L, l’entrée de MID, laquelle détermine la longueur du résultat de la chaîne. La constante INT 7 à l’entrée P détermine la position à partir de laquelle le secteur central doit commencer. À partir de la variable input_value = T#1h30m45s, on obtient la chaîne de caractères 'T#000d01h30m45s000ms' après conversion du type de données. La fonction MID supprime les caractères avant la position 7 de la chaîne de caractères et donne le résultat 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