WORD en STRING
La fonction WORD_TO_STRING convertit une valeur du type de données WORD en une valeur du type de données STRING.
Il en résulte une chaîne de caractères en format hexadécimal qui est alignée à droite. Cette chaîne est complétée par des zéros placés à gauche afin d’atteindre le nombre maximum de caractères défini pour la chaîne.
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.
Entrée |
Sortie définie par |
Résultat |
---|---|---|
16#ABCD |
STRING[1] |
'D' |
STRING[2] |
'CD' |
|
STRING[3] |
'BCD' |
|
STRING[4] |
'ABCD' |
|
STRING[5] |
'0ABCD' |
|
STRING[6] |
'00ABCD' |
|
et ainsi de suite... |
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: WORD:=0;
result_string: STRING;
La variable d’entrée input_value du type de données WORD est initialisée par la valeur 16#ABCD. La variable de sortie result_string est du type de données STRING[6]. Elle peut enregistrer un maximum de 6 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 WORD est convertie en STRING[6]. La valeur convertie est écrite dans result_string. Lorsque la variable input_value = 16#ABCD, result_string affiche '00ABCD'.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 2 ;
NETWORK_BODY
B(B_F,WORD_TO_STRING!,Instance,11,0,21,2,,?D?C);
B(B_VARIN,,input_value,9,0,11,2,);
B(B_VAROUT,,result_string,21,0,23,2,);
L(1,0,1,2);
END_NETWORK_BODY
END_NET_WORK
END_BODY
result_string:=WORD_TO_STRING(input_value);
Cet exemple illustre comment créer une chaîne de caractères STRING[4] à partir d’une valeur d’entrée du type de données WORD dont les premiers caractères '16#' sont supprimés.
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: WORD:=16#1234;
(*example value*)
result_string1: STRING[7]:='';
(*result: here '0001234'*)
result_string: STRING[4]:='';
(*result: here '1234'*)
END_VAR
Dans cet exemple, la variable d’entrée input_value du type de données WORD et la variable de sortie result_string du type STRING[4] sont déclarées.
Pour exécuter cette opération, la fonction standard RIGHT est utilisée avec la fonction WORD_TO_STRING. RIGHT crée une chaîne de caractères alignée à droite de longueur L.
Dans l’exemple, la chaîne de sortie de la fonction WORD_TO_STRING est ajoutée à l’entrée de la fonction RIGHT. A l’entrée L de RIGHT, la constante INT 4 détermine la longueur de la chaîne de caractères à remplacer. À partir de la variable input_value = 0001234, on obtiendra le résultat result_string 1234 après exécution de la conversion et de la fonction RIGHT.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 2 ;
NETWORK_BODY
B(B_F,WORD_TO_STRING!,Instance,11,0,21,2,,?D?C);
B(B_VARIN,,input_value,9,0,11,2,);
B(B_VAROUT,,result_string1,21,0,23,2,);
L(1,0,1,2);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_VARIN,,result_string1,10,2,12,4,);
B(B_VAROUT,,result_string,17,2,19,4,);
B(B_F,RIGHT!,Instance,12,1,17,5,,?DIN?DL?C);
B(B_VARIN,,4,10,3,12,5,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY