Propriété

Présentation

Dans le prolongement de la norme IEC 61131-3, une propriété est disponible pour la programmation orientée objet. Elle comporte une paire de méthodes d'accesseurs (Get, Set) qui permettent d'encapsuler un accès en lecture ou en écriture aux variables déclarées dans un POU ou une GVL au niveau d'un appel de fonction, tout en conservant la syntaxe de l'accès aux variables.

Pour insérer une propriété en tant qu'objet sous un noeud programme, bloc fonction, GVL ou interface, sélectionnez le noeud dans l'arborescence Applications, cliquez sur le signe plus de couleur verte et exécutez la commande Propriété. Vous pouvez également cliquer avec le bouton droit sur le noeud et choisir la commande Ajouter un objet > Propriété du menu contextuel.

Dans la boîte de dialogue Ajouter une propriété, définissez le Nom, le Type de retour souhaité, le Langage d'implémentation et éventuellement un Modificateur d'accès.

Les modificateurs d'accès suivants sont disponibles comme pour les méthodes :

  • PUBLIC

  • PRIVATE

  • PROTECTED

  • INTERNAL

  • ABSTRACT

NOTE : les propriétés peuvent également être déclarées dans des interfaces.

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 :

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

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

Accesseurs de propriété Get et Set

Deux méthodes spéciales nommées accesseurs sont insérées automatiquement dans l' arborescence des applications sous l'objet de propriété. Vous pouvez en supprimer une si la propriété doit être utilisée uniquement pour l'écriture ou uniquement pour la lecture. Un accesseur, tout comme une propriété (voir le paragraphe précédent), peut se voir affecté un modificateur d'accès dans la partie déclarative ou par le biais de la boîte de dialogue Ajouter un POU, lors de l'ajout explicite d'un accesseur.

  • L'accesseur Set est appelé lors de l'écriture de la propriété.

  • L'accesseur Get est appelé lors de la lecture de la propriété.

Exemple :

Le bloc fonction FB1 a une propriété seconds qui utilise une variable locale milli. Cette variable est déterminée par les propriétés Get et Set :

Exemple d'implémentation de Get

seconds := milli / 1000; 

Exemple d'implémentation de Set

milli := seconds * 1000; 

Vous pouvez écrire la propriété du bloc fonction (méthode Set), par exemple avec fbinst.seconds := 22;.

(fbinst est l'instance de FB1).

Vous pouvez lire la propriété du bloc fonction (méthode Get), par exemple avec testvar := fbinst.seconds;.

Dans l'exemple suivant, la propriété seconds est affectée au bloc fonction FB1 :

Une propriété peut disposer de variables locales supplémentaires, mais pas d'entrées supplémentaires et, contrairement à une fonction ou à une méthode, pas de sorties supplémentaires.

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

Surveillance d'une propriété

Il est possible de surveiller une propriété en mode en ligne à l'aide de la surveillance en ligne ou d'une liste de surveillance. La condition préalable à la surveillance d'une propriété est l'ajout du pragma {attribute 'monitoring' := 'variable'} (voir le chapitre Surveillance des attributs).