-> Hier kostenlos registrieren
Hallo zusammen,
für eine kleine Funktion benötige ich die Anzahl der Enumelemente in einer Typendeklaration.
Die Anzahl der Elemente habe ich schon herausbekommen (mit einem Trick) aber dazu musste ich bisher
die Type in der Funktion fest angeben...
Nun die Frage an die Experten:
Wie kann ich eine Type an einen FB weitergeben ?
Ich nutze Twincat 2.x
Bsp:
TYPE stMischerstatus :
(
Init, (* 0 Kalibrierung: Mischer zufahren, Timerstart *)
MischerZu, (* 10 Kalibrierung: Mischer zufahren, Zeit festhalten, Timer für Auffahren starten *)
MischerAuf, (* 20 Kalibrierung: Mischer Auffahren, Zeit festhalten, Timer für Zufahren starten *)
MischerStart, (* 30 Kalibrierung Ende: Mischer zufahren, Timer für Wartung starten *)
Regelung, (* Standardregelung *)
Aufmachen, (* Zu Kalt *)
Zumachen, (* Zu Warm *)
last_element
);
END_TYPE
FUNCTION_BLOCK _fbCount_enum
VAR_INPUT
eStruct : stMischerstatus; >>>>>>>>> Hier ist mein Problem: Kann ich das als Eingangsvar übergeben ?
END_VAR
VAR_OUTPUT
iMax : INT;
END_VAR
VAR
END_VAR
iMax := eStruct;
Im Main-PRG
fbEnumtest(eStruct := last_element);
Ich bitte die Namensgebung (stM... hätte eTypexxx heissen müssen) zu entschuldigen, ich lerne noch...
Vielen dank für alle Antworten
LG
Shrimps
für eine kleine Funktion benötige ich die Anzahl der Enumelemente in einer Typendeklaration.
Die Anzahl der Elemente habe ich schon herausbekommen (mit einem Trick) aber dazu musste ich bisher
die Type in der Funktion fest angeben...
Nun die Frage an die Experten:
Wie kann ich eine Type an einen FB weitergeben ?
Ich nutze Twincat 2.x
Bsp:
TYPE stMischerstatus :
(
Init, (* 0 Kalibrierung: Mischer zufahren, Timerstart *)
MischerZu, (* 10 Kalibrierung: Mischer zufahren, Zeit festhalten, Timer für Auffahren starten *)
MischerAuf, (* 20 Kalibrierung: Mischer Auffahren, Zeit festhalten, Timer für Zufahren starten *)
MischerStart, (* 30 Kalibrierung Ende: Mischer zufahren, Timer für Wartung starten *)
Regelung, (* Standardregelung *)
Aufmachen, (* Zu Kalt *)
Zumachen, (* Zu Warm *)
last_element
);
END_TYPE
FUNCTION_BLOCK _fbCount_enum
VAR_INPUT
eStruct : stMischerstatus; >>>>>>>>> Hier ist mein Problem: Kann ich das als Eingangsvar übergeben ?
END_VAR
VAR_OUTPUT
iMax : INT;
END_VAR
VAR
END_VAR
iMax := eStruct;
Im Main-PRG
fbEnumtest(eStruct := last_element);
Ich bitte die Namensgebung (stM... hätte eTypexxx heissen müssen) zu entschuldigen, ich lerne noch...
Vielen dank für alle Antworten
LG
Shrimps