Informations générales

Présentation

Un bloc fonction est un POU qui fournit une ou plusieurs valeurs lors du traitement d'un programme de contrôleur. Contrairement à une fonction, les valeurs des variables de sortie, ainsi que des variables internes nécessaires, doivent persister d'une exécution du bloc fonction à une autre. Par conséquent, l'appel d'un bloc fonction avec les mêmes arguments (paramètres d'entrée) ne doit pas toujours produire les mêmes variables de sortie.

En plus de la fonctionnalité décrite par la norme IEC11631-3, la programmation orientée objet est prise en charge et des blocs fonction peuvent être définis en tant qu'extensions d'autres blocs fonction. Ils peuvent contenir des définitions d'interface relatives à l' appel de méthodes. Il est donc possible d'utiliser l'héritage lors de la programmation avec des blocs fonction.

L'appel d'un bloc fonction se fait toujours par le biais d'une instance, soit une reproduction (copie) du bloc fonction.

Ajout d'un bloc fonction

Pour ajouter un bloc fonction dans une application existante, sélectionnez respectivement le nœud dans Catalogue de logiques > Ressources ou dans l'arborescence des applications, cliquez sur le signe plus de couleur verte et choisissez POU.... Vous pouvez aussi cliquer avec le bouton droit sur le nœud et choisir la commande Ajouter l'objet > POU. Pour créer un bloc fonction indépendant d'une application, sélectionnez le nœud Global dans l'arborescence des applications ou Ressources.

Dans la boîte de dialogue Ajouter un objet, sélectionnez l'option Bloc fonction, saisissez un nom (<identifiant>) de bloc fonction, puis choisissez le langage d'implémentation.

Vous pouvez en outre définir les options suivantes :

Option

Description

Étendu

Entrez le nom d'un autre bloc fonction disponible dans le projet afin de l'utiliser comme base du bloc fonction actuel. Pour plus d'informations, consultez Extension d'un bloc fonction.

Implémenté

Entrez les noms des interfaces disponibles dans le projet qui doivent être implémentées dans le bloc fonction actuel. Vous pouvez entrer plusieurs interfaces séparées par des virgules. Pour plus d'informations, consultez Mise en œuvre d'interfaces.

Modificateur d'accès

Pour des raisons de compatibilité, les modificateurs d'accès sont facultatifs. Le modificateur PUBLIC équivaut à ne définir aucun modificateur.

Vous pouvez aussi choisir l'une des options de la liste de sélection :

oINTERNAL : L'accès au bloc fonction est limité à l'espace de noms actuel (la bibliothèque).

oFINAL : Il est impossible de dériver l'accès si bien que vous ne pouvez pas étendre un bloc fonction par un autre. Ceci permet une génération de code optimisée.

NOTE : Les modificateurs d'accès sont valides à partir de la version 3.4.4.0 du compilateur et peuvent ainsi servir d'identificateurs dans les versions antérieures.

Pour plus d'informations, consultez la table de mappage des versions de compilateur EcoStruxure Machine Expert/CoDeSys dans le document EcoStruxure Machine Expert Compatibilité et migration - Guide utilisateur.

Langage d'implémentation de méthode

Choisissez le langage de programmation souhaité pour les objets méthode et propriété créés par le biais de la mise en œuvre de l'interface, sans tenir compte de celui défini pour le bloc fonction lui-même.

Cliquez sur Ajouter pour confirmer les paramètres. L'éditeur du nouveau bloc fonction s'ouvre et vous pouvez commencer à le modifier.

Déclaration d'un bloc fonction

Syntaxe

FUNCTION_BLOCK <modificateur d'accès> <nom du bloc fonction> | EXTENDS <nom du bloc fonction> | IMPLEMENTS <liste des noms d'interface, séparés par une virgule>

Viennent ensuite les déclarations des variables. Il est également possible de regrouper les entrées et sorties pour les développer et les réduire rapidement lorsque le bloc fonction est utilisé dans un éditeur FBD ou LD. Reportez-vous également au chapitre Attribute Pingroup.

Exemple

Le bloc fonction FBexample illustré sur la figure suivante dispose de deux variables d'entrée et de deux variables de sortie out1 et out2.

 out1 est la somme des deux entrées et out2 est le résultat de la comparaison d'égalité.

Exemple de bloc fonction en langage ST

G-SE-0027207.1.gif-high.gif