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

Fonction

Présentation

Une fonction est un POU qui produit exactement un élément de données (qui peut être constitué de plusieurs éléments, tels que des champs ou des structures) lorsqu'elle est traitée. Son appel dans les langages textuels peut être effectué sous la forme d'un opérateur dans des expressions.

Ajout d'une fonction

Pour attribuer une fonction à une application existante, sélectionnez le nœud de l'application dans l'arborescence des applications, cliquez sur le signe plus de couleur verte et exécutez la commande POU.... Vous pouvez aussi cliquer avec le bouton droit sur le nœud Application et choisir la commande Ajouter un objet > POU dans le menu contextuel. Pour ajouter un POU ne dépendant d'aucune application, sélectionnez le nœud Global dans l'arborescence des applications, puis exécutez les mêmes commandes.

Dans la boîte de dialogue Ajouter un POU, sélectionnez l'option Fonction. Indiquez le nom (<nom de fonction>) et le type de données renvoyées (<type de données>) de la nouvelle fonction, puis sélectionnez le langage d'implémentation souhaité. Pour choisir le type de données renvoyées, cliquez sur le bouton ... pour accéder à la boîte de dialogue Aide à la saisie. Cliquez sur Ouvrir pour confirmer. L'éditeur de la nouvelle fonction s'ouvre et vous pouvez commencer à la modifier.

Déclaration d'une fonction

Syntaxe :

FUNCTION <nom de fonction> : <type de données>

Viennent ensuite les déclarations des variables d'entrée et de fonction.

Attribuez un résultat à la fonction. Ceci signifie que le nom de la fonction est utilisé comme variable de sortie.

Dans une fonction, il est inutile de déclarer les variables locales comme RETAIN ou PERSISTENT, cela n'aurait aucun effet.

Exemple de fonction en langage ST : une telle fonction nécessite trois variables d'entrée et renvoie le produit des deux dernières ajouté à la première.

G-SE-0027210.1.gif-high.gif

 

 

Appel d'une fonction

L'appel d'une fonction en langage ST peut être effectué sous la forme d'un opérande dans des expressions.

En langage IL, un appel de fonction peut être placé uniquement dans les actions d'une étape ou dans une transition.

Les fonctions (contrairement à un programme ou à un bloc fonction) ne contiennent aucune information sur l'état interne, de sorte que l'appel d'une fonction avec les mêmes arguments (paramètres d'entrée) produit toujours les mêmes valeurs (sortie). C'est pour cette raison que les fonctions ne peuvent contenir ni variables globales ni adresses.

Exemple d'appels de fonction en langage IL

Appels de fonction en langage IL ;

LD               5
Fct              3               ,
                 22
ST               result

Exemple d'appels de fonction en langage ST

result := fct1(5,3,22);

Exemple d'appels de fonction en langage FBD

Appels de fonction en langage FBD :

G-SE-0027208.1.gif-high.gif

 

 

Exemple :

fun(formal1 := actual1, actual2); // -> error message
fun(formal2 := actual2, formal1 := actual1); // same semantics as the following:
fun(formal1 := actual1, formal2 := actual2);

Conformément à la norme IEC 61131-3, les fonctions peuvent disposer de sorties supplémen­taires. Celles-ci doivent être affectées dans l'appel de la fonction. En langage ST, par exemple, la syntaxe suivante doit être utilisée :

out1 => <variable de sortie 1> | out2 => <variable de sortie 2> | … autres variables de sortie

Exemple

La fonction fun est définie avec les deux variables d'entrée in1 et in2 et avec les deux variables de sortie out1 et out2. Les valeurs de sortie de fun sont consignées dans les variables déclarées localement (loc1 et loc2).

fun(in1 := 1, in2 := 2, out1 => loc1, out2 => loc2);