Eine Eigenschaft ist zur 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 aus, klicken Sie auf die grüne Plus-Schaltfläche und führen Sie den Befehl aus. Sie können auch mit der rechten Maustaste auf den Knoten klicken und im Kontextmenü den Befehl ausführen.
Geben Sie im Dialogfeld
einen , den gewünschten , die und optional einen ein.Wie für Methoden sind die folgenden Zugriffsbezeichner verfügbar:
EcoStruxure Machine Expert erleichtert die objektorientierte Programmierung durch die Verwendung der Vererbungsfunktion in den Funktionsbausteinen: Wenn Sie den Befehl für einen Funktionsbaustein ausführen, der von einem anderen Funktionsbaustein erbt, werden die im Basisfunktionsbaustein verwendeten Elemente , , und zur Auswahl gestellt:
Die Elemente
, , und , für die im Basisfunktionsbaustein ein = , oder definiert wurde, stehen zur Auswahl. Sie können die Definition für das geerbte Objekt anpassen. Im geerbten Objekt wird derselbe wie bei den Quellelementen zugewiesen.Die Elemente
, , und , für die der = 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 unterhalb des Eigenschaftsobjekts 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 , falls der Accessor explizit eingefügt wird.
Der Accessor Set
wird beim Schreiben der Eigenschaft aufgerufen.
Der 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.
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 das Kapitel Attributüberwachung) in der Definition eingefügt werden.