F327_INT

Données à virgule flottante -> données INTEGER de 16 bits (INTEGER la plus élevée inférieure ou égale à la valeur à virgule flottante)

La fonction convertit des données à virgule flottante en entrée s dans l’intervalle de -32767.99 à 32767.99 en données de type INTEGER (avec signe +/-). Le résultat de la fonction est renvoyé en sortie d.

Paramètres

Entrée

s (REAL)

Données sources de type REAL (2 mots)

Sortie

d (INT, WORD)

Destination de sauvegarde des données converties

Remarques

La valeur de type entier convertie en sortie d est toujours inférieure ou égale à la valeur à virgule flottante en entrée s :

  • Lorsqu’une valeur à virgule flottante est positive en entrée, la valeur positive précédant la virgule est renvoyée en sortie.

  • Lorsqu’une valeur à virgule flottante est négative en entrée, la valeur inférieure suivante qui précède la virgule est renvoyée en sortie.

  • Si la valeur à virgule flottante est suivie uniquement de zéros après la virgule, la valeur précédant la virgule est renvoyée.

Drapeaux d’erreur

sys_bIsOperationErrorHold (passe à TRUE et reste TRUE)
  • Si la valeur en entrée s n’est pas un nombre de type REAL ou le résultat de la conversion excède la zone de 16 bits en sortie d.

sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)
  • Si la valeur en entrée s n’est pas un nombre de type REAL ou le résultat de la conversion excède la zone de 16 bits en sortie d.

sys_bIsEqual (passe à TRUE et reste TRUE)

Si le résultat calculé est 0.

Exemple

En-tête du POU

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
		start: BOOL:=FALSE;
			(*activates the function*)
		input_value: REAL:=-1.234;
		output_value: INT:=0;
			(*result after a 0->1 leading
edge from start: 32*)
	END_VAR

Dans cet exemple, la variable d’entrée input_value est déclarée. Vous pouvez aussi entrer directement une constante au contact d’entrée de la fonction.

Corps du POU

La fonction est exécutée lorsque la variable start est sur TRUE. Elle convertit la valeur à virgule flottante -1,234 en un nombre entier -2 qui est transféré vers la variable output_value en sortie. Puisque le nombre entier ne peut pas être supérieur à la valeur à virgule flottante, la valeur est arrondie au nombre entier inférieur.

Corps en LD

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_VARIN,,output,7,1,9,3,);
B(B_VARIN,,input_value,7,2,9,4,);
B(B_VAROUT,,output_value,17,2,19,4,);
B(B_F,F327_INT,,9,0,17,4,,?DEN?D@'s'?AENO?Cd);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

IF start THEN         
    F327_INT(input_value, output_value);
END_IF;

Corps en IL

Modifié le : 2021-08-09Commentaires sur cette pageAssistance téléphonique