Methoden von FBs in PLCnext Engineer
Allgemeine Informationen zu FB-Methoden
PLCnext Engineer unterstützt die objektorientierte Programmierung für Funktionsbausteine mit Hilfe von Methoden. Durch Hinzufügen einer Methode zu einer anwenderdefinierten Funktionsbaustein-POE wird dieser Baustein zum objektorientierten FB.
Hinweis
Sicherheitsbezogene objektorientierte Funktionsbausteine werden nicht unterstützt. Einem sicherheitsbezogenen Funktionsbaustein kann daher keine Methode hinzugefügt werden. |
Ähnlich wie Funktions-POEs besitzen Methoden einen Rückgabetyp, einen Variablendeklarationsteil und ein oder mehrere Code-Arbeitsblätter.
Hinweis
Methoden mit Rückgabewerten vom Typ Struct oder Array Methoden mit Rückgabewerten vom Typ Struct oder Array sind nicht vollständig zustandslos. Das bedeutet, der Rückgabewert eines Struct oder Array wird beim nächsten Aufruf der Methode gehalten. Der Grund dafür ist, dass diese Typenelemente auf Grund von Performance-Problemen als Referenzen übergeben werden. Initialisieren Sie deshalb den Rückgabewert innerhalb Ihrer Methode. |
- 'Public': Auf die Methode kann von überall zugegriffen werden, wo diese angewendet werden kann (interne und externe Aufrufe).
- 'Private': Die Methode kann nur innerhalb der POE aufgerufen werden, in der sie definiert ist (nur interne Aufrufe).
Der Zugriffsbezeichner und der Datentyp des Rückgabewerts müssen im 'Einstellungen'-Editor angegeben werden (siehe nachfolgende Abbildung).
Zum Hinzufügen einer Methode zu einer anwenderdefinierten Funktionsbaustein-POE rechtsklicken Sie unter 'KOMPONENTEN | Programmierung > Lokal > Funktionen & Funktionsbausteine' (oder einem darin enthaltenen Unterordner) auf die FB-POE und wählen den Befehl 'Methode hinzufügen' aus dem Kontextmenü.
Methodenaufruf
Methoden können in der textuellen Sprache ST und den grafischen Sprachen FBS, KOP, NKOP und AS entweder intern oder extern aufgerufen werden (je nach Zugriffsbezeichner).
Hinweis
In allen Sprachen wird die Eingabe des Methodenaufrufs durch die Intellisense ![]() ×‣ Intellisense im grafischen Editor ×-Funktion unterstützt. |
Interner Aufruf einer Methode
Methoden mit dem Zugriffsbezeichner 'Public' oder 'Private' können intern aufgerufen werden. Intern bedeutet, dass die Methode innerhalb der anwenderdefinierten FB-POE aufgerufen, in der sie definiert ist.
In ST muss dem Methodennamen das Schlüsselwort 'THIS', gefolgt von einem Punkt "." vorangehen. Der Methodenaufruf muss durch Klammern "()" abgeschlossen werden, auch wenn keine Parameter übergeben werden.
In FBS/KOP/NKOP/AS muss der Instanzname "THIS" für eine interne Methode verwendet werden. Das Schüsselwort "THIS" wird im grafischen Editor über dem Blocksymbol angezeigt. Der Name der FB-POE und der Methodenname (durch einen Punkt getrennt) stehen innerhalb des Symbols.
Interner Methodenaufruf in ST | ![]() |
Interner Methodenaufruf in FBS/KOP/NKOP | ![]() |
Externer Aufruf einer Methode
Methoden mit dem Zugriffsbezeichner 'Public' können extern aufgerufen werden. Extern bedeutet, dass die Methode aus einer anderen POE (Programm oder FB) heraus aufgerufen wird.
Beim externen Aufruf einer Methode muss der Instanzname des Funktionsbausteins, der die Methode enthält, im Aufruf angegeben sein. Der FB-Instanzname muss deshalb in der Variablentabelle der aufrufenden POE deklariert sein.
In ST muss dem Methodennamen der FB-Instanzname vorausgehen, gefolgt von einem Punkt ("."). Der Methodenaufruf muss durch Klammern "()" abgeschlossen werden, auch wenn keine Parameter übergeben werden.
In FBS/KOP/NKOP/AS müssen Sie für die eingefügte externe Methode den bereits deklarierten FB-Instanznamen eingegeben bzw. auswählen. Der FB-Instanzname wird über dem Symbol des Funktionsbausteins angezeigt. Innerhalb des Symbols steht der Name des Funktionsbausteins, der die Methode enthält, vor dem Methodennamen (getrennt durch einen Punkt).
Instanzdeklaration des Funktionsbausteins mit einer enthaltenen Methode in der Variablentabelle der aufrufenden POE | ![]() |
Externer Methodenaufruf in ST | ![]() |
Externer Methodenaufruf in FBS/KOP/NKOP | ![]() |