L'éditeur Liste d'instructions (IL) est un éditeur de table. La structure réseau des programmes FBD ou LD est également représentée dans un programme IL. En principe, un seul réseau suffit dans un programme IL, mais en prenant en compte le basculement entre FBD, LD et IL, vous pouvez aussi utiliser les réseaux pour structurer un programme IL.
Activez le langage d'implémentation IL pour EcoStruxure Machine Expert dans la boîte de dialogue Outils > Options, catégorie FBD, LD et IL, onglet IL.
Les info-bulles contiennent des informations sur les variables ou les paramètres de boîte.
Reportez-vous à la section Utilisation de la vue de l'éditeur FBD et LD.
Insertion et organisation des éléments
oLes commandes d'utilisation de l'éditeur sont disponibles dans le menu FBD/LD/IL. Les commandes fréquemment utilisées sont également disponibles dans le menu contextuel.
oLes unités de programmation qui sont des éléments sont chacune insérées à la position actuelle du curseur via les commandes Insérer, disponibles dans le menu FBD/LD/IL.
oVous pouvez faire glisser un élément Réseau de la boîte à outils sur la flèche vers le haut ou vers le bas à gauche de l'éditeur. Un réseau est créé au-dessus ou au-dessous de l'élément existant.
oVous pouvez utiliser les commandes Couper, Copier, Coller et Supprimer, disponibles dans le menu Edition, pour organiser les éléments.
oReportez-vous aussi aux informations relatives au langage de programmation Liste d'instructions (IL, Instruction List).
oLes opérateurs disposant de la fonctionnalité EN/ENO peuvent uniquement être insérés dans l'éditeur FBD et LD.
Ce chapitre explique comment l'éditeur de table est structuré, comment naviguer dans l'éditeur et comment utiliser les appels, les sauts et les opérandes complexes.
Structure de l'éditeur de table IL
Éditeur de table IL
Chaque ligne de programme est écrite dans une ligne de table, structurée en champs par les colonnes de table :
Colonne |
Contient |
Description |
---|---|---|
1 |
opérateur |
Ce champ contient l'opérateur IL (LD, ST, CAL, AND, OR, etc.) ou un nom de fonction. En cas d'appel de bloc fonction, les paramètres correspondants sont également spécifiés ici. Entrez le champ de préfixe := ou =>. Pour plus d'informations, reportez-vous à la section Modificateurs et opérateurs dans IL. |
2 |
opérande |
Ce champ contient exactement un opérande ou une étiquette de saut. Si plusieurs opérandes sont requis (opérateurs multiples/extensibles AND A, B, C, ou appels de fonction avec plusieurs paramètres), écrivez-les sur les lignes suivantes et laissez vide le champ d'opérateur. Dans ce cas, ajoutez une virgule de séparation des paramètres. En cas d'appel de bloc fonction, programme ou action, ajoutez les parenthèses d'ouverture et/ou de fermeture appropriées. |
3 |
adresse |
Ce champ contient l'adresse de l'opérande défini dans la partie de déclaration. Vous ne pouvez pas modifier ce champ. Utilisez l'option Show symbol address pour l'activer ou le désactiver. |
4 |
symbol comment |
Ce champ contient le commentaire défini pour l'opérande dans la partie de déclaration. Vous ne pouvez pas modifier ce champ. Utilisez l'option Show symbol address pour l'activer ou le désactiver. |
5 |
operand comment |
Ce champ contient le commentaire de la ligne actuelle. Il est modifiable et peut être activé ou désactivé via l'option Show operand comment. |
oTouches fléchées HAUT et BAS : déplacement vers le champ situé au-dessus ou en dessous.
oTAB : déplacement sur une ligne vers le champ situé à droite.
oMAJ + TAB : déplacement sur une ligne vers le champ situé à gauche.
oESPACE : ouvre le champ sélectionné pour modification. Vous pouvez aussi cliquer sur le champ. Le cas échéant, l'assistant de saisie sera disponible via le bouton .... Vous pouvez fermer un champ de modification ouvert en appuyant sur ENTREE pour confirmer les entrées actuelles ou en appuyant sur ECHAP pour annuler les entrées réalisées.
oCTRL + ENTREE : insère une nouvelle ligne sous la ligne actuelle.
oSUPPR : supprime le ligne actuelle où vous avez sélectionné un champ.
oCouper, Copier, Coller : pour copier une ou plusieurs lignes, sélectionnez au moins un champ de la lignes ou des lignes, puis exécutez la commande Copier. Pour couper une ligne, utilisez la commande Couper. La commande Coller insérera les lignes précédemment copiées/coupées avant la ligne où un champ est actuellement sélectionné. Si aucun champ n'est sélectionné, elles seront insérées à la fin du réseau.
oCTRL + DEBUT permet de revenir au début du document et de marquer le premier réseau.
oCTRL + FIN permet de passer à la fin du document et de marquer le dernier réseau.
oPAGE PRECEDENTE permet de monter d'un écran et de marquer le rectangle situé tout en haut.
oPAGE SUIVANTE permet de descendre d'un écran et de marquer le rectangle situé tout en haut.
Opérandes multiples (opérateurs extensibles)
Si le même opérateur est utilisé avec plusieurs opérandes, vous disposez de deux moyens de programmation :
oLes opérandes sont saisis sur les lignes suivantes, séparés par des virgules. Par exemple :
LD 7
ADD 2,
4,
7
ST iVar
oL'instruction est répétée sur les lignes suivantes. Par exemple :
LD 7
ADD 2
ADD 4
ADD 7
ST iVar
Si un opérande complexe doit être utilisé, entrez une parenthèse ouvrante avant celui-ci, puis utilisez les lignes suivantes pour les composants d'opérande spécifiques. Sous ceux-ci, sur une ligne séparée, entrez la parenthèse fermante.
Exemple : faire pivoter une chaîne d'un caractère à chaque cycle.
Code ST correspondant :
stRotate := CONCAT(RIGHT(stRotate, (LEN(stRotate) - 1)), (LEFT(stRotate, 1)));
LD stRotate
RIGHT( stRotate
LEN
SUB 1
)
CONCAT( stRotate
LEFT 1
)
ST stRotate
Entre le nom de la fonction dans le champ d'opérateur. Placez le (premier) paramètre d'entrée comme opérande dans une opération LD précédente. Si d'autres paramètres sont présents, placez le suivant sur la même ligne que le nom de fonction. Vous pouvez ajouter d'autres paramètres sur cette ligne, séparés par des virgules, ou sur les lignes suivantes.
La valeur de retour de fonction sera stockée dans l'accumulateur. La restriction suivante concernant la norme IEC s'applique.
NOTE : Tout appel de fonction ayant plusieurs valeurs de retour est interdit. Pour qu'une opération réussisse, une seule valeur de retour doit être utilisée.
Exemple : la fonction GeomAverage, qui a 3 paramètres d'entrée, est appelée. Le premier paramètre est donné par X7 dans une opération précédente. Le deuxième, 25, est donné avec le nom de fonction. Le troisième est donné par la variable tvar, sur la même ligne ou sur la ligne suivante. La valeur de retour est attribuée à la variable Ave.
Code ST correspondant :
Ave := GeomAverage(X7, 25, tvar);
Appel de fonction dans IL :
LD X7
GeomAverage 25
tvar
ST Ave
Appels de bloc fonction et appels de programme
Utilisez l'opérateur CAL- ou CALC. Entrez le nom de l'instance de bloc fonction ou le nom de programme dans le champ d'opérande (deuxième colonne) suivi de la parenthèse ouvrante. Saisissez les paramètres d'entrée, chacun sur l'une des lignes suivantes :
Champ d'opérateur : nom de paramètre
Champ de préfixe :
o:= pour les paramètres d'entrée
o=> pour le paramètre de sortie
Champ d'opérande : paramètre actuel
Champ de suffixe :
o, si d'autres paramètres suivent
) après le dernier paramètre
o() en cas d'appels sans paramètre
Exemple : appel de POUToCAll avec 2 paramètres d'entrée et 2 paramètres de sortie.
Code ST correspondant :
POUToCall(Counter := iCounter, iDecrement:=2, bError=>bErr, wError=>wResult);
Appel de programme dans IL avec paramètres d'entrée et de sortie :
Il n'est pas nécessaire d'utiliser tous les paramètres d'un bloc fonction ou programme.
NOTE : Les expressions complexes ne peuvent pas être utilisées. Elles doivent être attribuées à l'entrée du bloc fonction ou programme avant l'instruction d'appel.
Pour être effectué comme un appel de bloc fonction ou programme, le nom de l'action doit être ajouté au nom de l'instance ou au nom du programme.
Exemple : appel de l'action ResetAction.
Code ST correspondant :
Inst.ResetAction();
Appel d'action dans IL :
CAL Inst.ResetAction()
Pour être effectué comme un appel de fonction, le nom de l'instance avec le nom de méthode ajouté doit être saisi dans la première colonne (opérateur).
Exemple : appel de méthode Home.
Code ST correspondant :
Z := IHome.Home(TRUE, TRUE, TRUE);
Appel de méthode dans IL :
LD TRUE
IHome.Home TRUE
TRUE
ST Z
Un saut est programmé par JMP dans la première colonne (opérateur) et un nom d'étiquette dans la deuxième colonne (opérande). L'étiquette doit être définie dans le réseau cible du champ d'étiquette.
La liste des instructions précédant le saut non conditionnel doit se terminer par l'une des commandes suivantes : ST, STN, S, R, CAL, RET ou un autre JMP.
Cela n'est pas le cas pour un saut conditionnel. L'exécution du saut dépend de la valeur chargée.
Exemple : instruction de saut conditionnel ; si bCallRestAction est TRUE, le programme doit sauter vers le réseau étiqueté avec Cont.
Instruction de saut conditionnel en IL :
LDN bCallResetAction
JMPC Cont