Eine Eigenschaft ist in Erweiterung der Norm IEC 61131-3 als Mittel der objektorientierten Programmierung verfügbar. Sie besteht aus einem Paar von Zugriffsmethoden (Get, Set). Diese ermöglichen die Einkapselung eines Lese- oder Schreibzugriffs auf in POUs oder GVLs deklarierte Variablen in einen Funktionsaufruf bei gleichzeitiger Beibehaltung der Syntax des Variablenzugriffs.
Um eine Eigenschaft als Objekt unterhalb eines Programm-, Funktionsbaustein, GVL- oder Schnittstellen-Knotens einzufügen, wählen Sie den Knoten in der Anwendungsbaumstruktur aus, klicken Sie auf die grüne Plus-Schaltfläche und führen Sie den Befehl Eigenschaft aus. Sie können auch mit der rechten Maustaste auf den Knoten klicken und im Kontextmenü den Befehl Objekt hinzufügen > Eigenschaft ausführen.
Geben Sie im Dialogfeld Eigenschaft hinzufügen einen Namen, den gewünschten Rückgabetypen, die Implementierungssprache und optional einen Zugriffsbezeichner ein.
Wie für eine Methode sind die folgenden Zugriffsbezeichner möglich:
oPUBLIC
oPRIVATE
oPROTECTED
oINTERNAL
HINWEIS: Eigenschaften können auch innerhalb von Schnittstellen deklariert werden.
EcoStruxure Machine Expert erleichtert die objektorientierte Programmierung durch die Verwendung der Vererbungsfunktion in den Funktionsbausteinen: Wenn Sie den Befehl Objekt hinzufügen für einen Funktionsbaustein ausführen, der von einem anderen Funktionsbaustein erbt, werden die im Basisfunktionsbaustein verwendeten Elemente Aktion, Methode, Eigenschaft und Transition zur Auswahl gestellt:
oDie Elemente Aktion, Methode, Eigenschaft und Transition, für die im Basisfunktionsbaustein ein Zugriffsmodifizierer = ÖFFENTLICH, GESCHÜTZT oder INTERN definiert wurde, stehen zur Auswahl. Sie können die Definition für das geerbte Objekt anpassen. Im geerbten Objekt wird derselbe Zugriffsmodifizierer wie bei den Quellelementen zugewiesen.
oDie Elemente Aktion, Methode, Eigenschaft und Transition, für die der Zugriffsmodifizierer = PRIVAT definiert wurde, stehen nicht zur Auswahl, da der Zugriff auf den Basisfunktionsbaustein beschränkt ist.
Get und Set-Accessor einer Eigenschaft
Zwei spezielle Methoden, genannt „Accessor“, werden automatisch in die Anwendungsbaumstruktur unterhalb des Eigenschaftenobjekts eingefügt. Eine davon kann gelöscht werden, falls die Eigenschaft nur für Lesezugriff oder nur für Schreibzugriff verwendet werden soll. Ein Accessor kann wie eine Eigenschaft (siehe oben) einen Zugriffsbezeichner erhalten, entweder im Deklarationsteil oder über das Dialogfeld Objekt hinzufügen, falls der Accessor explizit eingefügt wird
oDer Accessor Set wird beim Schreiben der Eigenschaft aufgerufen.
oDer Accessor Get wird beim Lesen der Eigenschaft aufgerufen.
Beispiel:
Der Funktionsbaustein FB1 besitzt die Eigenschaft seconds, die eine lokale Variable milli verwendet. Diese Variable wird durch die Eigenschaften Get und Set bestimmt:
Implementierungsbeispiel für Get
seconds := milli / 1000;
Implementierungsbeispiel für Set
milli := seconds * 1000;
Die Eigenschaft des Funktionsbausteins kann geschrieben werden (Set-Methode), z. B. mit fbinst.seconds := 22;.
(fbinst ist die Instanz von FB1).
Die Eigenschaft des Funktionsbausteins kann gelesen werden (Get-Methode), z. B. mit testvar := fbinst.seconds;.
Im folgenden Beispiel wird die Eigenschaft seconds dem Funktionsbaustein FB1 zugeordnet:
Eine Eigenschaft kann zusätzliche lokale Variablen enthalten, aber keine zusätzlichen Eingänge und – im Gegensatz zu einer Funktion oder Methode – keine zusätzlichen Ausgänge.
HINWEIS: Beim Kopieren oder Verschieben einer Methode oder Eigenschaft von einer POU in eine Schnittstelle werden die enthaltenen Implementierungen automatisch gelöscht. Beim Kopieren oder Verschieben von einer Schnittstelle in eine POU werden Sie zur Angabe der gewünschten Implementierungssprache aufgefordert.
Eine Eigenschaft kann im Online-Modus entweder mithilfe des Inline-Monitorings oder über eine Überwachungsliste überwacht werden. Damit eine Eigenschaft überwacht werden kann, muss das Pragma {attribute 'monitoring' := 'variable'} (siehe Kapitel Attribut-Monitoring) an oberster Stelle in der Definition eingefügt werden.