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 , cliquez sur le signe plus de couleur verte et exécutez la commande . Vous pouvez également cliquer avec le bouton droit sur le noeud et choisir la commande du menu contextuel.
Dans la boîte de dialogue
, définissez le , le souhaité, le et éventuellement un .Les modificateurs d'accès suivants sont disponibles comme pour les méthodes :
EcoStruxure Machine Expert facilite la programmation orientée objet grâce à l'héritage dans les blocs fonction : lorsque vous exécutez sur un bloc fonction qui hérite d'un autre bloc fonction, les éléments , , et utilisés dans le bloc fonction de base sont sélectionnables :
Les éléments
, , et avec = , et 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 est affecté comme aux éléments sources.Les éléments
, , et avec = ne sont pas sélectionnables, car l'accès est limité au bloc fonction de base.Get
et Set
Deux méthodes spéciales nommées accesseurs sont insérées automatiquement dans l' 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 , 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.
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).