L'utilisation des interfaces permet la programmation orientée objet. Un POU d'interface définit un jeu de méthodes et de propriétés sans implémentation. 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é.
Une interface IFT
est insérée sous une application. Il 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 :
Il est possible d'insérer un ou plusieurs blocs fonction pour l'implémentation de l'interface ITF
définie ci-dessus.
Création d'un bloc fonction mettant en œuvre une interface
Lors de l'ajout d'un POU
de type bloc fonction dans l'arborescence , 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
Une interface peut étendre d'autres interfaces en utilisant EXTENDS
dans sa définition (voir l'exemple suivant Exemple d'extension d'une 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.
Les informations suivantes doivent être prises en compte :
La 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.
Les variables déclarées avec le type d'une interface sont traitées comme des références.
Des 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.
Pour ajouter une interface à une application, sélectionnez le nœud
dans l'arborescence , cliquez sur le signe plus de couleur verte et sélectionnez . Vous pouvez également exécuter la commande . Si vous sélectionnez le nœud avant d'exécuter la commande, la nouvelle interface est disponible pour toutes les applications.Dans la boîte de dialogue extension d'une autre interface.
, attribuez un nom à la nouvelle interface (<nom de l'interface>). Vous pouvez activer l'option si vous souhaitez que l'interface actuelle soit l'
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
Cliquez sur
pour confirmr les paramètres. L'éditeur de la nouvelle interface s'ouvre.Syntaxe
INTERFACE <nom de l'interface>
Pour une interface en extension d'une autre interface :
INTERFACE <nom de l'interface> ÉTENDU <nom de l'interface de base>
Exemple
INTERFACE interface1 EXTENDS interface_base
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
, puis exécutez la commande . La boîte de dialogue s'ouvre pour définir une méthode pour l'interface. Vous pouvez aussi sélectionner le nœud de l'interface dans l' , cliquer sur le signe plus de couleur verte et sélectionner . 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).