Benutzerdefinierte Funktionen

Für die vom Benutzer im Projekt bzw. einer Benutzerbibliothek erstellten Funktionsbausteine wird im kompilierten Programm ein Unterprogramm angelegt. Bei jedem Aufruf werden zunächst die Eingangsparameter der Klassen VAR_INPUT und VAR_IN_OUT übergeben. Dann erfolgt ein Sprung ins entsprechende Unterprogramm. Anschließend werden die Ausgangsparameter der Klassen VAR_OUTPUT und VAR_IN_OUT sowie das Funktionsergebnis wieder gelesen. Die zulässige Anzahl von Unterprogrammen bzw. Funktionen/Funktionsbausteinen, die der Anwender definieren kann, ist vom Steuerungstyp abhängig.

Für alle Aufrufe einer benutzerdefinierten Funktion wird nur ein Unterprogramm erzeugt, das von verschiedenen Stellen aufgerufen werden kann.

Zum besseren Vergleich des erzeugten Assembler-Codes werden im folgenden Beispiel FP-Adressen verwendet. Da das Programm bei Verwendung von FP-Adressen leicht unübersichtlich wird, empfiehlt es sich, Variablen mit sinnvollen Namen zu verwenden.

Verwandte Themen

Aufruf der benutzerdefinierten Funktion User_ADD im Kontaktplan-Editor:

Sie hat folgenden Inhalt:

Assembler-Code für die Steuerung (Programmcode), Erläuterungen rechts

ST R9010

Schreiben der Eingangswerte

F0 (*MV*)

R9010 ist immer TRUE

DT0 DT0 -> User_ADD.In1
DT550

F0 (*MV*)

DT1 DT1 -> User_ADD.In2
DT551

CALL 0

Aufruf des Unterprogramms User_ADD

ST R9010

Ausgangswerte zurückladen

F0 (*MV*)

DT552

DT2 User_ADD -> DT2
...

ED

Ende des Hauptprogramms

SUB 0

Unterprogramm User_ADD

ST R9010

F22 (*PLUS_S*)

DT550

DT551

DT552 if (TRUE)
UserAdd=UserAdd.In1 + UserAdd.In2
RET

Rücksprung zum Hauptprogramm

Verwandte Themen

Letzte Änderung: 2024-01-12Feedback zu dieser SeitePanasonic Hotline