Principe
Dans le langage
de programmation IL, l'appel d'un bloc fonction utilisateur s'effectue
à l'aide d'une instruction CAL
suivie du nom
de l'instance de DFB comme opérande et d'une liste d'arguments
(facultative). A l’intérieur de la liste, matérialisée
par des parenthèses, les arguments sont séparés par
des virgules.
Il existe 3 possibilités pour appeler un DFB en langage IL :
L'instruction
CAL nom_DFB
est suivie d'une liste d'arguments qui sont des affectations (paramètre = valeur). Dans ce cas, l’ordre de saisie des arguments dans la liste est sans importance.Vous pouvez utiliser le paramètre d'entrée EN pour contrôler l'exécution du bloc fonction.
L'instruction
CAL nom_DFB
est suivie d'une liste d'arguments qui sont des valeurs (expression, objet ou valeur immédiate). Dans ce cas, l’ordre de saisi des arguments dans la liste doit respecter l’ordre des paramètres d’entrée du DFB, y compris pour les entrées qui ne sont pas affectées (l’argument est un champ vide).L’utilisation des paramètres EN et ENO n’est pas possible.
L'instruction CAL nom_DFB n'est pas suivie d'une liste d'arguments. Dans ce cas, cette instruction doit être précédée par l'affectation des paramètres d'entrée, via le chargement (Load) en registre de la valeur puis l'affectation (Store) au paramètre d'entrée. L’ordre d’affectation des paramètres (LD/ST) n’a pas d’importance ; toutefois, vous devez affecter tous les paramètres d’entrée qui le nécessitent avant d’exécuter la commande
CAL
. L’utilisation des paramètres EN et ENO n’est pas possible.
CAL Nom_DFB (argument 1, argument 2, ..., argument
n)
ou
LD Valeur 1
ST Paramètre 1
...
LD Valeur n
ST Paramètre n
CAL Nom_DFB
Utilisation des paramètres EN\ENO
Voir Paramètres EN et ENO.
Exemple de DFB
L'exemple suivant permet de comprendre les différents
appels d'un DFB en langage IL. Il s'agit de l'instance Cpt_1
du type de DFB Cpt_parts
.

Appel du DFB lorsque les arguments sont des affectations
Lorsque les arguments sont des affectations,
l'appel du DFB Cpt_1
s'effectue suivant la syntaxe
:
CAL Cpt_1 (Reset:=Clear, Presel:=%MD10, Count:=100,
Done=>%Q1.2.1)
Dans le cas où les paramètres d’entrée affectés par une valeur (expression, objet ou valeur immédiate) sont saisis dans la liste des arguments, la syntaxe est :
CAL Cpt_1 (Raz:=Clear, Presel:=%MD10,
Count:=100)
...
LD Cpt_1.Done
ST %Q1.2.1
Afin de rendre plus lisible votre programme d'application, vous pouvez saisir un retour à la ligne après les virgules de séparation des arguments. La phrase présente alors la syntaxe suivante :
CAL Cpt_1(
Reset:=Clear,
Presel:=%MD10,
Count:=100,
Done=>%Q1.2.1)
Eléments du programme d'appel du DFB
Le tableau suivant répertorie les différents éléments du programme d'appel du DFB.
Elément |
Signification |
---|---|
CAL |
Instruction d'appel du DFB |
Cpt_1 |
Nom de l'instance de DFB |
Reset, Presel, Count |
Paramètres d'entrée |
:= |
Symbole d’affectation d’une entrée |
Clear, %MD10, 100 |
Objet ou valeur d’affectation des entrées |
Done |
Paramètre de sortie |
=> |
Symbole d’affectation d’une sortie |
%Q1.2.1 |
Objet d’affectation d’une sortie |
, |
Symbole de séparation des arguments |
Appel du DFB lorsque les arguments sont des valeurs
Lorsque les arguments sont des valeurs,
l'appel du DFB Cpt_1
s'effectue à l'aide de
la syntaxe suivante :
CAL Cpt_1 (Clear, %MD10,, 100)
...
LD Cpt_1.Done
ST %Q1.2.1
Eléments du programme d'appel du DFB
Le tableau suivant répertorie les différents éléments du programme d'appel du DFB.
Elément |
Signification |
---|---|
CAL |
Instruction d'appel du DFB |
Cpt_1 |
Nom de l'instance de DFB |
Clear, %MD10, 100 |
Objet ou valeur d’affectation des entrées |
, |
Symbole de séparation des arguments |
Appel d'un DFB sans argument
Lorsqu'il n'y a pas d'argument, l'appel du DFB Cpt_1
s'effectue à l'aide de la syntaxe suivante :
LD Clear
ST Cpt_1.Reset
LD %MD10
ST Cpt_1.Presel
LD 100
ST Cpt_1.Count
CAL Cpt_1(
...
LD Cpt_1.Done
ST %Q1.2.1
Eléments du programme d'appel du DFB
Le tableau suivant répertorie les différents éléments du programme d'appel du DFB.
Elément |
Signification |
---|---|
LD Clear |
Instruction de chargement de la
valeur |
ST Cpt_1.Reset |
Instruction d’affectation
du contenu du registre au paramètre d’entrée |
CAL Cpt_1( |
Instruction d'appel du DFB |