Symbol:
Schlüsselwort: PROPERTY
Eigenschaften sind eine Erweiterung der Norm IEC 61131-3 und ein Mittel der objektorientierten Programmierung.
Eigenschaften dienen der Datenkapselung, da sie von außen Zugriff auf Daten ermöglichen
und gleichzeitig als Filter fungieren. Dafür stellt eine Eigenschaft die Accessormethoden
Get
und Set
bereit, die Lese- und Schreibzugriff auf die Daten der Instanz ermöglichen, unter
der die Eigenschaft angeordnet ist.
Unterhalb eines Programms, eines Funktionsbausteins oder einer Globalen Variablenliste können Sie eine Eigenschaft mit Accessormethoden hinzufügen. Verwenden Sie dafür den Befehl „Projekt Objekt hinzufügen Eigenschaft“, um den Dialog „Eigenschaft hinzufügen“ zu öffnen.
Unterhalb einer Schnittstelle können Sie eine Schnittstelleneigenschaft einfügen.
Wenn Sie eine Eigenschaft kopieren, die unter einem Programmierbaustein eingehängt ist, und sie unter einer Schnittstelle einfügen, oder wenn Sie die Eigenschaft dorthin verschieben, werden automatisch die enthaltenen Implementierungen entfernt.
Siehe auch
Dialog 'Eigenschaft hinzufügen'
Funktion: Legt eine neue Eigenschaft an, die mit Beenden des Dialogs unterhalb des selektierten Programmierbausteins angeordnet wird.
Aufruf: „Projekt Objekt hinzufügen Eigenschaft“, Kontextmenü
Voraussetzung: In Ansicht „POUs“ oder Ansicht „Geräte“ ist ein Programm (PRG
), ein Funktionsbaustein (FUNCTION_BLOCK
) oder eine Globalen Variablenliste (GVL
) selektiert.
„Name“ |
Name (Bezeichner) der Eigenschaft Beispiel: |
„Rückgabetyp“ |
Standardtyp oder strukturierter Typ des Rückgabewerts Beispiel: |
„Implementierungssprache“ |
Beispiel: „Stukturierter Text (ST)“ |
„Zugriffsmodifizierer“ |
Regelt den Zugriff auf die Daten |
„PUBLIC“ oder keine Angabe |
Der Zugriff ist nicht beschränkt. |
„PRIVATE“ |
Der Zugriff ist auf das Programm, den Funktionsbaustein oder die GVL beschränkt. Im POUs- oder Gerätebaum ist das Objekt mit |
„PROTECTED“ |
Der Zugriff ist auf das Programm, die GVL, oder dem Funktionsbaustein mit seinen Ableitungen beschränkt. Im POUs- oder Gerätebaum ist das Objekt mit |
„INTERNAL“ |
Der Zugriff ist auf den Namensraum (Bibliothek) beschränkt. Im POUs- oder Gerätebaum ist das Objekt mit |
„Abstrakt“ |
|
„Hinzufügen“ |
Fügt unterhalb des selektierten Objekts eine neue Eigenschaft und darunter die Accessormethoden
Hinweis: Wenn Sie eine Eigenschaft selektiert haben, können Sie mit dem Befehl „Objekt hinzufügen“ auch explizit einen vorher entfernten Accessor hinzufügen. |
Editor 'Eigenschaft'
Im Editor können Sie den Datenzugriff programmieren. Der Code darf zusätzliche lokale Variablen enthalten. Aber er darf keine zusätzlichen Eingangsvariablen oder (im Gegensatz zu einer Funktion oder Methode) keine zusätzlichen Ausgangsvariablen enthalten.
Beispiel

Funktionsbaustein FB_A
FUNCTION_BLOCK FB_A VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR iA : INT; END_VAR iA := iA + 1;
Eigenschaft prop_iA
PROPERTY PUBLIC prop_iA : INT
Accessormethode FB_A.prop_iA.Get
prop_iA := iA;
Accessormethode FB_A.prop_iA.Set
iA := prop_iA;
PROGRAM PLC_PRG VAR fbA : FB_A; iVar: INT; END_VAR fbA(); IF fbA.prop_iA > 500 THEN fbA.prop_iA := 0; END_IF iVar := fbA.prop_iA;
Get
- und Set
-Accessor
Dei Aufruf des Set
-Accessors wird auf die Eigenschaft geschrieben. Sie wird somit wie ein Eingabeparameter
verwendet. Bei Aufruf des Get-Accessors wird die Eigenschaft gelesen. Sie wird wie
ein Ausgabeparameter verwendet. Der Zugriff wird jeweils über Zugiffsmodifizierer
(Qualifizierer) beschränkt. Die Objekte sind dabei entsprechend gekennzeichnet.
Wenn auf eine Eigenschaft nur lesend oder nur schreibend zugegriffen wird, können Sie den nicht benötigten Accessor löschen.
Sie können explizit Accessoren hinzufügen, indem Sie eine Eigenschaft selektieren und den Befehl „Objekt hinzufügen“ ausführen. Es öffnet sich der Dialog „Get-Accessor hinzufügen“ oder „Set-Accessor hinzufügen“. Dort können Sie die Implementierungssprache und den Zugriff einstellen.
„Implementierungssprache“ |
Beispiel: „Strukturierter Text (ST)“ |
„Zugriffsmodifizierer“ |
Qualifizierer für Deklarationsabschnitt |
|
Der Zugriff ist nicht beschränkt. |
|
Der Zugriff ist auf das Programm, den Funktionsbaustein oder die GVL beschränkt. Im POUs- oder Gerätebaum ist das Objekt mit |
|
Der Zugriff auf die Eigenschaft ist auf das Programm, die GVL oder dem Funktionsbaustein und seine Ableitungen beschränkt. Die Deklaration enthält das Schlüsselwort. Im POUs- oder Gerätebaum ist das Objekt mit |
|
Der Zugriff auf die Methode ist auf den Namensraum (die Bibliothek) beschränkt. Im POUs- oder Gerätebaum ist das Objekt mit |
„Hinzufügen“ |
Fügt unterhalb der selektierten Eigenschaft die Accessormethoden |
Monitoring von Eigenschaften im Onlinebetrieb
Für das Monitoring von Eigenschaften im Onlinebetrieb stehen folgende Pragmas zur Verfügung, die Sie an oberster Stelle in der Deklaration der Eigenschaft einfügen:
-
{attribute 'monitoring' := 'variable'}
Bei jedem Zugriff auf die Eigenschaft speichert CODESYS den Istwert in einer Variablen und stellt den Wert dieser Variablen dar. Dieser Wert kann unter Umständen veralten, wenn im Code kein Zugriff mehr auf die Eigenschaft erfolgt.
-
{attribute 'monitoring' := 'call'}
Bei jeder Darstellung des Werts ruft CODESYS den Code des
Get
-Accessors auf. Wenn dieser Code einen Seiteneffekt enthält, dann wird der Seiteneffekt durch das Monitoring ausgeführt!
Sie können eine Eigenschaft mit Hilfe folgender Funktionalitäten monitoren.
-
Inline-Monitoring
Voraussetzung: In der Kategorie „Texteditor“ des „Optionen“-Dialogs ist die Option „Inline-Monitoring aktivieren“ aktiviert.
-
Überwachungsliste
Siehe auch
Eingabeunterstützung beim Erzeugen von erbenden Bausteinen
Wenn Sie objektorientiert programmieren und die Vererbung (Schlüsselwort EXTENDS
) von Bausteinen nutzen, können Sie folgendermaßen Unterstützung erhalten:
Wenn Sie unterhalb eines von einem Basisbaustein abgeleiteten Bausteins eine Aktion, Eigenschaft, Methode oder Transition einfügen, öffnet sich der Dialog „... hinzufügen“. Dort ist das Eingabefeld für den Namen erweitert zu einer Combobox. Die Auswahlliste der Combobox enthält eine gültige Auswahl aus den im Basisbaustein vorhandenen Aktionen, Eigenschaften, Methoden oder Transitionen. Nun können Sie beispielsweise eine Methode des Basisbausteins auf einfache Weise zunächst übernehmen, um sie dann entsprechend für die abgeleitete Funktion des Bausteins anzupassen.
Methoden und Eigenschaften mit dem Zugriffsmodifizierer PRIVATE
erscheinen in dieser Auswahl nicht, da sie auch nicht vererbt werden. Methoden
und Eigenschaften mit dem Zugriffsmodifizierer PUBLIC
erhalten beim Übernehmen in den abgeleiteten Baustein automatisch ein leeres Zugriffsmodifiziererfeld,
was funktional das Gleiche bedeutet.
Beispiel
