Deklaration von Variablen, die auf einem Interface basieren
Syntax |
---|
|
Bedeutung | |
---|---|
Deklaration einer oder mehrerer →Variablen, die auf einem →Interface basieren (ein Feature der →objektorientierten Programmierung)
|
Die Deklaration von Variablen basierend auf einem Interface ist innerhalb dieser Abschnitte möglich:
(Informieren Sie sich in der jeweiligen Beschreibung zum Abschnitt über evtl. zusätzliche Möglichkeiten für die Variable.)
Abschnitt |
Die Deklaration der Variable erfolgt als: |
---|---|
|
interne Variable (siehe "Deklaration von internen Variablen") |
|
Eingangsvariable (siehe "Deklaration von Eingangsvariablen in ST") |
|
Ausgangsvariable (siehe "Deklaration von Ausgangsvariablen in ST") |
|
als Strukturelement (siehe "Deklaration eines strukturierten Datentyps in ST") |
Abweichung zur IEC-Norm In Neuron ist es nicht möglich, Variablen basierend auf einem Interface im Abschnitt für →temporäre Variablen ( |
Zuweisungen auf Variablen basierend auf einem Interface
→Zuweisungen auf Variablen basierend auf einem Interface sind – wie üblich – mit dem Zuweisungsoperators :=
möglich. Zusätzlich unterstützt Neuron Power Engineer auch den Operator ?=
(siehe "Zuweisungsversuch in ST" für Details).
Syntax für Zuweisungen:
Syntax |
---|
|
Der Ausdruck auf der rechten Seite des Zuweisungsoperators ":=
" darf eines der folgenden Konstrukte sein:
-
eine →Instanz eines →Funktionsbaustein-Typs oder einer →Klasse, der/die das gleiche Interface implementiert oder der/die von einem Basis-Funktionsbaustein oder einer Klasse abgeleitet wurde und dieser Basis-Funktionsbaustein bzw. diese Klasse das gleiche Interface implementiert.
-
eine andere deklarierte Variable basierend auf dem gleichen oder einem abgeleiteten Interface
-
NULL
Beispiele für Verwendung von Interfaces und Variablen basierend auf diesen Interfaces (inkl. Zuweisungen)
Beispiel 1 |
---|
|
Im Vergleich:
-
Die obige Zuweisung
i_Switch := switchVal;
ist korrekt. Grund: Die Funktionsbaustein-InstanzswitchVal
wird der Variableni_Switch
zugewiesen und diese Variable basiert auf dem InterfaceISwitch
. Der FunktionsbausteinMySwitch
implementiert dieses InterfaceISwitch
. -
Die Zuweisung
i_Switch := fbinst;
würde jedoch als fehlerhaft gekennzeichnet werden. Grund: Die Funktionsbaustein-Instanzfbinst
wird zwar der gleichen Variablei_Switch
zugewiesen. Der FunktionsbausteinmyFB
implementiert das InterfaceISwitch
jedoch nicht.
Beispiel 2 |
---|
|