Skip to main content

Objekt: Schnittstelleneigenschaft

Symbol: _cds_icon_interface_property.png

Schnittstelleneigenschaften sind eine Erweiterung der Norm IEC 61131-3 und ein Mittel der objektorientierten Programmierung. Eine Schnittstelleneigenschaft deklariert die Accessormethoden Get und Set (kein Implementerungscode). Ein Funktionsbaustein, der eine Schnittstelle implementiert, erbt damit auch deren Schnittstelleneigenschaften.

Sie können im Gerätebaum bei einer Schnittstelle eine Schnittstelleneigenschaft hinzufügen, dann wird die Schnittstelle um die Accessormethoden Get und Set erweitert. Der Get-Accessor dient dem Lesezugriff. Der Set-Accessor dient dem Schreibzugriff. Sie können einen nicht benötigten Accessor löschen. Um einen Accessor hinzuzufügen, verwenden Sie den Befehl Projekt → Objekt hinzufügen → Schnittstelleneigenschaft . Dann öffnet sich der Dialog Schnittstelleneigenschaft hinzufügen.

Beispiel

Beispiel 521. Deklaration und Implementierung der Schnittstelleneigenschaft Literal_A
_cds_img_interface_property_pous.png
_cds_img_interface_property_devices.png

Die Schnittstelle itf_A hat die Eigenschaft Literal_A mit den Accessormethoden Get und Set.

Die Funktionsbausteine fb_A1 und fb_A2 implementieren die Schnittstelle itf_A und erben damit deren Schnittstelleneigenschaft. Jeder FB hat seine eigene Implementierung.

Schnittstelle itf_A

INTERFACE itf_A
VAR
END_VAR
PROPERTY Literal_A : STRING

FB fb_A1

FUNCTION_BLOCK fb_A1 IMPLEMENTS itf_A
VAR
        str_1 : STRING;
        str_2 : STRING;
        iCnt : INT;
END_VAR
iCnt := iCnt + 1;

str_1 := 'Function block A1';

Accessor fb_A1.Literal_A.Get

VAR
END_VAR
Literal_A := CONCAT (str_1,' and property.');

Accessor fb_A1.Literal_A.Set

VAR
END_VAR
str_2 := Literal_A;

FB fb_A2

FUNCTION_BLOCK fb_A2 IMPLEMENTS itf_A
VAR
        str_1 : STRING;
        str_2 : STRING;
        iCnt : INT;
END_VAR

iCnt := iCnt + 1;
str_1 := 'Function block A2';

Accessor fb_A2.Literal_A.Get

VAR
END_VAR
Literal_A := str_1;

Accessor fb_A2.Literal_A.Set

VAR
END_VAR
str_2 := Literal_A;

Programm PLC_PRG

PROGRAM PLC_PRG
VAR
        iCnt : INT;
        my_1 : fb_A1;
        my_2 : fb_A2;
        strName_1 : STRING;
        strName_2: STRING;
END_VAR

iCnt := iCnt + 1;
my_1();
my_2();
strName_1:= my_1.Literal_A;
strName_2:= my_2.Literal_A;
my_1.Literal_A := 'Hello 1';
my_2.Literal_A := 'World 2';

Das führt zur Laufzeit der Applikation zu folgendem Monitoring von PLC_PRG:

_cds_img_interface_property_monitoring.png