Une méthode est un élément de langage similaire à une fonction, qui peut être utilisé dans le contexte d'un bloc fonction. Elle peut être considérée comme une fonction contenant une instance du bloc fonction. Comme une fonction, elle dispose d'une valeur renvoyée et d'une partie déclaration propre pour les variables temporaires et les paramètres.
Pour la programmation orientée objet, vous pouvez également utiliser des interfaces pour organiser les méthodes disponibles dans un projet.
NOTE : Lors de la copie ou du déplacement d'une méthode ou d'une propriété depuis un POU vers une interface, les implémentations sont supprimées automatiquement. Lors de la copie ou du déplacement depuis une interface vers un POU, vous devez préciser le langage d'implémentation désiré.
Pour affecter une méthode à un bloc fonction ou à une interface, sélectionnez le bloc fonction ou l'interface qui convient dans l'arborescence des applications, cliquez sur le signe plus de couleur verte et exécutez la commande Méthode. Vous pouvez aussi cliquer avec le bouton droit sur le nœud du bloc fonction ou de l'interface et exécuter la commande Ajouter un objet > Méthode du menu contextuel.
Dans la boîte de dialogue Ajouter une méthode, définissez le Nom, le Type de retour souhaité, le Langage d'implémentation et le Modificateur d'accès (voir plus bas). Pour choisir le type de données renvoyées, cliquez sur le bouton ... pour accéder à la boîte de dialogue Aide à la saisie.
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 :
oPRIVATE : L'accès à la méthode est limité au bloc fonction.
oPROTECTED : L'accès à la méthode est limité au bloc fonction et à ses dérivés.
oINTERNAL : L'accès à la méthode est limité à l'espace de noms actuel (la bibliothèque).
Cliquez sur Ouvrir pour confirmer. L'éditeur de méthode s'ouvre.
Aide à la saisie lors de la création de blocs fonction hérités
EcoStruxure Machine Expert facilite la programmation orientée objet grâce à l'héritage dans les blocs fonction : lorsque vous exécutez Ajouter un objet sur un bloc fonction qui hérite d'un autre bloc fonction, les éléments Action, Méthode, Propriété et Transition utilisés dans le bloc fonction de base sont sélectionnables :
oLes éléments Action, Méthode, Propriété et Transition avec Modificateur d'accès = PUBLIC, PROTECTED et INTERNAL défini dans le bloc fonction de base sont sélectionnables. Vous pouvez adapter la définition de l'objet hérité. Dans l'objet hérité, le même Modificateur d'accès est affecté comme aux éléments sources.
oLes éléments Action, Méthode, Propriété et Transition avec Modificateur d'accès = PRIVATE ne sont pas sélectionnables, car l'accès est limité au bloc fonction de base.
Syntaxe :
METHOD <modificateur d'accès> <nom de la méthode> : <type de données renvoyées>VAR_INPUT ... END_VAR
Pour obtenir une description sur la façon de déclarer les méthodes de traitement des interfaces, consultez le chapitre Interface.
Les appels de méthode sont également nommés appels de fonction virtuelle. Pour plus d'informations, consultez le chapitre Appel de méthodes.
Tenez compte des points suivants lorsque vous appelez une méthode :
oLes données d'une méthode sont temporaires et valides uniquement pendant son exécution (pile des variables). Cela signifie que les variables et les blocs fonction déclarés dans une méthode sont réinitialisés pour chaque appel de la méthode.
oLes méthodes définies dans une interface sont uniquement autorisées à disposer de variables d'entrée, de sortie et d'entrée/sortie, mais pas de corps (partie relative à l'implémentation).
oLes méthodes telles que les fonctions peuvent contenir des sorties supplémentaires. Elles doivent être affectées lors de l'appel de la méthode .
Tenez compte des points suivants lorsque vous mettez en œuvre une méthode :
oDans le corps d'une méthode, l'accès aux variables de l'instance du bloc fonction est autorisé.
oSi nécessaire, utilisez le pointeur THIS qui pointe toujours vers l'instance en cours.
oIl est impossible d'accéder aux variables VAR_TEMP du bloc fonction dans une méthode.
Méthodes spéciales pour un bloc fonction
Méthode |
Description |
---|---|
Init |
Par défaut, une méthode nommée FB_init est déclarée de façon implicite, mais peut également l'être de façon explicite. Elle contient le code d'initialisation du bloc fonction tel que déclaré dans la partie déclaration de celui-ci. Reportez-vous à la méthode FB_init. |
Reinit |
Si une méthode nommée FB_reinit est déclarée pour une instance de bloc fonction, elle est appelée suite à la copie de l'instance (pendant l'opération Changement en ligne, par exemple) et réinitialise le nouveau module. Reportez-vous aux méthodes FB_init, FB_reinit. |
Exit |
Si une méthode de sortie nommée FB_exit est souhaitée, elle doit être déclarée de façon explicite. Aucune déclaration implicite n'est possible. La méthode Exit est appelée pour chaque instance du bloc fonction avant tout nouveau téléchargement, toute réinitialisation, ou pendant un changement en ligne pour toutes les instances déplacées ou supprimées. Reportez-vous à la méthode FB_exit. |
Les propriétés et les propriétés d'interface correspondent respectivement à une méthode de l'accesseur Set et/ou Get.
Appel de méthode lors de l'arrêt de l'application
Dans le fichier de description de l'appareil, il est possible d'indiquer qu'une méthode donnée doit toujours être appelée après un cycle de tâches par un bloc fonction donné (d'un module de bibliothèque). Si cette méthode contient les paramètres d'entrée qui suivent, son traitement peut également avoir lieu lorsque l'application active n'est pas en cours d'exécution.
Exemple
VAR_INPUT
pTaskInfo : POINTER TO DWORD;
pApplicationInfo: POINTER TO _IMPLICIT_APPLICATION_INFO;
END_VAR
Le programmeur peut vérifier l'état de l'application à l'aide de la commande pApplicationInfo, puis définir ce qu'il convient de faire.
IF pApplicationInfo^.state = RUNNING THEN <instructions> END_IF