Propriété

Présentation

En plus 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 écriture pour les 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 nœud de programme, bloc fonction, GVL ou interface, sélectionnez ce nœud dans l'arborescence Applications, cliquez sur le signe plus de couleur verte et exécutez la commande Propriété. Vous pouvez aussi cliquer avec le bouton droit sur le nœud et choisir la commande Ajouter un objet > Propriété dans le 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 disponibles sont les mêmes que pour les méthodes :

oPUBLIC

oPRIVATE 

oPROTECTED

oINTERNAL

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 :

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.

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 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 affecter un modificateur d'accès dans la partie déclaration ou par le biais de la boîte de dialogue Ajouter un objet, lors de son ajout explicite.

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

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

Exemple :

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

Exemple de mise en œuvre de Get

seconds := milli / 1000; 

Exemple de mise en œuvre 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 :

G-SE-0072542.1.gif-high.gif

 

 

Une propriété peut disposer de variables locales supplémentaires, mais pas d'entrées supplémen­taires 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. L'ajout d'un pragma {attribute 'monitoring' := 'variable'}  (voir le chapitre Surveillance des attributs) en plus de sa définition constitue une condition préalable à la surveillance d'une propriété.