Illustration

Cette illustration présente quelques exemples de paramètres de DFB

Description des paramètres

Ce tableau décrit le rôle de chaque paramètre

Paramètre

Nombre maximal

Rôle

Entrées

32 (1)

Ces paramètres permettent de transférer les valeurs du programme d'application vers le programme interne du DFB. Ils sont accessibles en lecture par le DFB, mais ne sont pas accessibles par le programme d'application.

Sorties

32 (2)

Ces paramètres permettent de transférer les valeurs du DFB vers le programme d'application. Ils sont accessibles en lecture par le programme d'application, sauf pour les paramètres de type ARRAY.

Entrées/Sorties

32

Ces paramètres permettent de transférer des données du programme d'application vers le DFB, lequel peut ensuite les modifier et les renvoyer au programme d'application. Ces paramètres ne sont pas accessibles par le programme d'application.

Légende :

(1) Nombre d'entrées + Nombre d'entrées/sorties inférieur ou égal à 32

(2) Nombre de sorties + Nombre d'entrées/sorties inférieur ou égal à 32

NOTE : L'IODDT associé aux équipements CANopen pour Modicon M340 ne peut pas être utilisé comme paramètre d'E/S de DFB. Au cours de la phase d'analyse/génération d'un projet, le message "This IODDT cannot be used as a DFB parameter (Cet IODDT ne peut pas être utilisé comme paramètre de DFB)" informe l'utilisateur de ces limites.

Paramètres accessibles par le programme d'application

Les seuls paramètres accessibles par le programme d'application en dehors de l’appel sont les paramètres de sorties. Pour cela, le programme doit utiliser la syntaxe Nom_DFB.Nom_paramètre

Nom_DFB représente le nom de l'instance de DFB utilisée (32 caractères au maximum).

Nom_paramètre représente le nom du paramètre de sortie (32 caractères au maximum).

Exemple : Control.Accel indique la sortie Accel de l'instance de DFB nommée Control

Paramètres EN et ENO

EN est un paramètre d'entrée et ENO est un paramètre de sortie. Tous les deux sont de type BOOL et peuvent être ou ne pas être utilisés (facultatif) dans la définition d'un type de DFB.

Dans le cas où l'utilisateur souhaite les utiliser, l'éditeur les positionne automatiquement : EN est le premier paramètre d'entrée et ENO le premier paramètre de sortie.

Exemple d’implémentation des paramètres EN\ENO.

Si le paramètre d’entrée EN d’une instance reçoit la valeur 0 (FALSE), alors :

  • les sections constituant le code du DFB ne sont pas exécutées (cela est géré par le système),

  • le paramètre de sortie ENO est défini sur 0 (FALSE) par le système.

Si le paramètre d’entrée EN d’une instance reçoit la valeur 1 (TRUE), alors :

  • les sections constituant le code du DFB sont exécutées (cela est géré par le système),

  • le paramètre de sortie ENO est défini sur 1 (TRUE) par le système.

Si une erreur est détectée (erreur de traitement par exemple) par l'instance du DFB, l'utilisateur peut s'il le souhaite définir le paramètre de sortie ENO sur 0 (FALSE). Dans ce cas :

  • soit les paramètres de sortie sont figés dans l’état qui était le leur lors du traitement précédant jusqu’à la disparition du défaut,

  • soit l'utilisateur prévoit dans le code du DFB un forçage des sorties dans l'état qu'il souhaite jusqu'à la disparition du défaut.

Variable VAR_IN_OUT

Très souvent, on utilise des blocs fonction pour lire une variable au niveau de l’entrée (variables d’entrée), traiter celle-ci, et sortir les valeurs modifiées de la même variable (variables de sortie). Ce type particulier de variable d'entrée/de sortie est également appelé variable VAR_IN_OUT.

Il convient de noter les particularités suivantes lors de l'utilisation de blocs fonction/DFB avec des variables VAR_IN_OUT :

  • une variable doit être affectée à toutes les entrées VAR_IN_OUT.

  • il est interdit d'affecter des valeurs littérales ou des constantes aux entrées VAR_IN_OUT.

  • aucune valeur ne doit être affectée aux sorties VAR_IN_OUT.

  • Les variables VAR_IN_OUT ne peuvent pas être utilisées en dehors de l'appel du bloc fonction.

Appel d'un bloc fonction avec une variable VAR_IN_OUT en IL :

CAL MY_FBLOCK(IN1:=V1, IN2:=V2, IO1:=V3, 
               OUT1=>V4, OUT2=>V5)

Appel du même bloc fonction dans FBD :

Les variables VAR_IN_OUT ne peuvent pas être utilisées en dehors de l'appel du bloc fonction.

Par conséquent, les appels de blocs fonction suivants ne sont pas valides :

Appel non valide, exemple 1 :

LD V1

Chargement de la variable V1 dans l'accumulateur

CAL InOutFB

Appel d'un bloc fonction avec un paramètre VAR_IN_OUT.

L'accumulateur contient désormais une référence à un paramètre VAR_IN_OUT.

AND V2

Opération ET sur le contenu de l'accumulateur et la variable V2.

Erreur : l'opération ne peut pas être exécutée car il n'est pas possible d'accéder au paramètre VAR_IN_OUT (contenu de l'accumulateur) en dehors de l'appel d'un bloc fonction.

Appel non valide, exemple 2 :

LD V1

Chargement de la variable V1 dans l'accumulateur

AND InOutFB.inout

Opération ET sur le contenu de l'accumulateur et une référence à un paramètre VAR_IN_OUT.

Erreur : l'opération ne peut pas être exécutée car il n'est pas possible d'accéder au paramètre VAR_IN_OUT en dehors de l'appel du bloc fonction.

Les appels de blocs fonction suivants sont en revanche valides :

Appel valide, exemple 1 :

CAL InOutFB (IN1:=V1,inout:=V2

Appel d'un bloc fonction avec le paramètre VAR_IN_OUT et affectation du paramètre réel dans l'appel de bloc fonction.

Appel valide, exemple 2 :

LD V1

Chargement de la variable V1 dans l'accumulateur

ST InOutFB.IN1

Affectation du contenu de l'accumulateur au paramètre IN1 du bloc fonction IN1.

CAL InOutFB(inout:=V2)

Appel du bloc fonction avec affectation du paramètre réel (V2) au paramètre VAR_IN_OUT.