La version V1.1 d' EcoStruxure Machine Expert ne prend pas en charge les contrôleurs M258, LMC058 et LMC078.

DIV

Vue d'ensemble

Opérateur IEC servant à diviser une variable par autre variable.

Types autorisés

oBYTE

oWORD

oDWORD

oLWORD

oSINT

oUSINT

oINT

oUINT

oDINT

oUDINT

oLINT

oULINT

oREAL

oLREAL

oTIME

Les variables TIME peuvent être divisées par des variables de type entier.

Exemple en langage IL

Le résultat dans Var1 est 4.

LD     8
DIV    2
ST     Var1

Exemple en langage ST

var1 := 8/2;

Exemple en langage FBD

G-SE-0024267.1.gif-high.gif

 

1.   Série de zones DIV

2.   Zone DIV unique

3.   Zone DIV avec paramètres EN/ENO

Une division par zéro ne génère pas la même erreur en fonction du système cible. Elle peut entraîner l'arrêt du contrôleur ou bien ne pas être détectée.

Warning_Color.gifAVERTISSEMENT

FONCTIONNEMENT INATTENDU DE L'ÉQUIPEMENT

Pour éviter une division par zéro dans le code de programmation, servez-vous des fonctions de vérification décrites dans ce document ou écrivez vos propres vérifications.

Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels.

NOTE : Pour plus d'informations sur les fonctions de vérification implicite, reportez-vous au chapitre POU pour vérifications implicites.

Fonctions de vérification

Les fonctions de vérification suivantes permettent de vérifier la valeur du diviseur afin d'éviter une division par 0 et, le cas échéant, de les adapter :

oCheckDivDInt

oCheckDivLint

oCheckDivReal

oCheckDivLReal

Pour plus d'informations sur l'insertion de la fonction, consultez la description de la fonction POU pour vérifications implicites.

Les fonctions de vérification sont appelées automatiquement avant chaque division trouvée dans le code de l'application.

Pour une implémentation de la fonction CheckDivReal, consultez l'exemple ci-dessous.

Implémentation par défaut de la fonction CheckDivReal

Partie déclaration

// Implicitly generated code : DO NOT EDIT
FUNCTION CheckDivReal : REAL
VAR_INPUT
 divisor:REAL;
END_VAR

Partie implémentation :

// Implicitly generated code : only an suggestion for implementation
IF divisor = 0 THEN
 CheckDivReal:=1;
ELSE
 CheckDivReal:=divisor;
END_IF;

L'opérateur DIV utilise la sortie de la fonction CheckDivReal comme diviseur. La division par 0 étant interdite, dans l'exemple suivant, la fonction CheckDivReal remplace la valeur d'initialisation 0 du diviseur d par 1 avant l'opération de division. Le résultat de la division est donc égal à 799.

PROGRAM PLC_PRG
VAR
 erg:REAL;
 v1:REAL:=799;
 d:REAL;
END_VAR
erg:= v1 / d;