Eigenschaft

Überblick

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 Basisfunktions­baustein beschränkt ist.

Get und Set-Accessor einer Eigenschaft

Zwei spezielle Methoden, genannt „Accessor“, werden automatisch in die Anwendungsbaum­struktur  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 Deklarati­onsteil 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:

G-SE-0072542.1.gif-high.gif

 

 

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.

Überwachen einer Eigenschaft

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.