STRING en LREAL
STRING_TO_LREAL convertit une chaîne de caractères en format à virgule flottante en une valeur du type de données LREAL.
D’abord, la chaîne de caractères est convertie en une valeur du type de données STRING[64]. Ensuite, cette dernière est convertie en une valeur du type de données LREAL via un sous-programme nécessitant 580 pas environ.
Type de données d’entrée
Sortie
Résultat de la conversion
Format accepté : '[espace][signe][nombres décimaux].[nombres décimaux][espace]', par exemple ' 1.45620752 '
Caractères acceptés :
Espace ““
Nombres décimaux "0"-"9"
L’analyse se termine avec le premier nombre non décimal.
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
lrValue: LREAL:=0.0;
bStart: BOOL:=FALSE;
sValue: STRING[64]:='';
END_VAR
La fonction est exécutée lorsque la variable bStart est définie sur TRUE.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_CONTACT,,bStart,3,2,5,4,);
B(B_F,E_STRING_TO_LREAL!,,10,1,20,5,,?DEN?D?AENO?C);
B(B_VARIN,,sValue,8,3,10,5,);
B(B_VAROUT,,lrValue,20,3,22,5,);
L(1,0,1,6);
L(1,3,3,3);
L(5,3,10,3);
END_NETWORK_BODY
END_NET_WORK
END_BODY
if (bStart) then
lrValue:=STRING_TO_LREAL(sValue);
end_if;