Skip to main content

POU : CheckDivReal

Fonctions CheckDivInt, CheckDivLint, CheckDivReal, et CheckDivLReal pour éviter la division par 0

Pour éviter la division par zéro, vous pouvez utiliser les fonctions CheckDivInt, CheckDivLint, CheckDivReal, et CheckDivLReal. Si vous incluez ces fonctions dans l'application, elles sont appelées avant chaque opération de division dans le code.

Pour plus d'informations, consultez : Utiliser des blocs de construction pour les vérifications implicites, POU pour les contrôles implicites

Attention

Pour obtenir la fonctionnalité de surveillance des fonctions, ne modifiez pas la partie déclaration. Cependant, vous êtes autorisé à ajouter des variables locales.

Exemple 545. L'implémentation par défaut de CheckDivReal :

Partie déclaration :

// Automatisch erzeugter Code : NICHT EDITIEREN
FUNCTION CheckDivReal : REAL
VAR_INPUT
        divisor:REAL;
END_VAR

Partie implémentation :

// Automatisch erzeugter Code: Es handelt sich hierbei um einen Implementierungsvorschlag.
IF divisor = 0 THEN
        CheckDivReal:=1;
ELSE
        CheckDivReal:=divisor;
END_IF;

Le DIV l'opérateur utilise la sortie du CheckDivReal fonctionne comme un diviseur. Dans l'exemple de programme ci-dessous, CheckDivReal empêche la division par 0 en modifiant la valeur implicite du diviseur d de « 0 » à 1 avant l'exécution de l'opération de division. Par conséquent, le résultat de la division est 799.

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