Interface

Présentation

L'utilisation des interfaces permet la programmation orientée objet. Un POU de type interface définit un ensemble de méthodes et de propriétés sans mise en œuvre. Une interface peut être décrite comme l'environnement vide d'un bloc fonction. Elle doit être mise en œuvre dans la déclaration du bloc fonction afin d'être réalisée dans les instances de bloc fonction. Un bloc fonction peut mettre en œuvre une ou plusieurs interfaces.

La même méthode peut être réalisée avec des paramètres identiques, mais par différents blocs fonction utilisant des codes de mise en œuvre distincts. Ainsi, une interface peut être utilisée/appelée dans n'importe quel POU sans que ce dernier ait à identifier le bloc fonction spécifique concerné.

Exemple de définition et d'utilisation d'une interface dans un bloc fonction

Une interface IFT est insérée sous une application. Elle contient deux méthodes, Method1 et Method2. Ni l'interface ni les méthodes ne contiennent de code de mise en œuvre. Seule la partie déclarative des méthodes doit être remplie avec les déclarations de variable souhaitées :

Interface avec deux méthodes :

G-SE-0027215.2.gif-high.gif

 

 

Un ou plusieurs blocs fonction peuvent désormais être insérés pour la mise en œuvre de l'interface ITF définie ci-dessus.

Création d'un bloc fonction mettant en œuvre une interface

G-SE-0027199.2.gif-high.gif

 

 

Lors de l'ajout d'un POU de type bloc fonction dans l'arborescence Applications, les méthodes Method1 et Method2 sont insérées automatiquement dessous, conformément à la définition de l'interface ITF. Le code de mise en œuvre du bloc fonction peut alors y être introduit.

Utilisation de l'interface dans la définition du bloc fonction

G-SE-0027217.2.gif-high.gif

 

 

Une interface peut étendre d'autres interfaces en utilisant EXTENDS dans sa définition (voir l'exemple suivant Exemple d'extension d'une interface).

Propriétés d'interface

Une interface peut également définir une propriété d'interface contenant les méthodes d'accesseur Get et/ou Set. Pour plus d'informations sur les propriétés, reportez-vous au chapitre Propriété. Une propriété dans une interface telle que les méthodes susceptibles d'être incluses n'est autre qu'un prototype, ce qui signifie qu'elle ne contient pas de code de mise en œuvre. Comme les méthodes, elle est ajoutée automatiquement au bloc fonction qui met en œuvre l'interface. Elle peut y recevoir un code de programmation spécifique.

Observations

Les informations suivantes doivent être prises en compte :

oLa déclaration de variables dans une interface n'est pas autorisée. Une interface ne contient ni corps (partie relative à l'implémentation) ni actions. Seul un ensemble de méthodes est défini dans une interface et ces méthodes peuvent uniquement contenir des variables d'entrée, des variables de sortie et des variables d'entrée/sortie.

oLes variables déclarées avec le type d'une interface sont traitées comme des références.

oDes méthodes et des propriétés dont les noms sont identiques à ceux qu'elles portent dans l'interface doivent être affectées à un bloc fonction mettant en œuvre une interface. Elles doivent contenir des entrées, des sorties et des entrées/sorties portant le même nom.

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é.

Insertion d'une interface

Pour ajouter une interface à une application, sélectionnez le nœud Application dans l'arborescence des applications ou dans Catalogue de logiques > Ressources, cliquez sur le plus de couleur verte et sélectionnez Ajouter d'autres objets... > Interface. Vous pouvez également exécuter la commande Ajouter un objet > Interface. Si vous sélectionnez le nœud Global avant d'exécuter la commande, la nouvelle interface est disponible pour toutes les applications.

Dans la boîte de dialogue Ajouter Interface, attribuez un nom à la nouvelle interface (<nom de l'interface>). Vous pouvez activer l'option Étendu : si vous souhaitez que l'interface actuelle soit l'extension d'une autre interface.

Exemple d'extension d'une interface

Si l'interface ITF1 étend l'interface ITF_base, toutes les méthodes décrites par ITF_base sont automatiquement disponibles dans ITF1.

Extension d'une interface

G-SE-0027216.2.gif-high.gif

 

 

Cliquez sur Ajouter pour confirmr les paramètres. L'éditeur de la nouvelle interface s'ouvre.

Déclaration d'une interface

Syntaxe

INTERFACE <nom de l'interface>

Pour une interface en extension d'une autre interface :

INTERFACE <nom de l'interface> EXTENDS <nom de l'interface de base>

Exemple

INTERFACE interface1 EXTENDS interface_base

Ajout de l'ensemble des méthodes souhaitées

Pour terminer la définition de l'interface, ajoutez l'ensemble des méthodes souhaitées. Pour ce faire, sélectionnez le nœud d'interface dans l'arborescence Applications, puis exécutez la commande Méthode d'interface. La boîte de dialogue Ajouter Méthode d'interface s'ouvre pour définir une méthode pour l'interface. Vous pouvez aussi sélectionner le nœud de l'interface dans l'arborescence des applications, cliquer sur le signe plus de couleur verte et sélectionner Méthode d'interface. Ajoutez autant de méthodes que vous le souhaitez, sans oublier qu'elles ne peuvent contenir que des variables d'entrée, des variables de sortie et des variables d'entrée/sortie, mais pas de corps (partie relative à l'implémentation).