SPSGreenhorn
Level-1
- Beiträge
- 74
- Reaktionspunkte
- 1
-> Hier kostenlos registrieren
Hallo Zusammen,
ich hab einen Zyklusverteiler in SCL Programmiert. Kurz gesagt mein Cyclic interrupt wird all 10ms aufgerufen bei 10 Reglern will ich das halt jeder Regler in Exakt 100ms Zyklus aufgerufen wird.
Jetzt meine Frage: Das Programm springt in die IF Schleife sobald Zyklusteiler==0 und setzt darauf Zyklusteiler = 1. Spring das Programm jetzt zum END_IF oder wird die nächste ELSIF Bedingung geprüft? Wenn ja würde der Zyklusteiler ja so nicht funktionieren und ich müsste noch eine art "Break" an das ende jeder Schleifenbedingung einfügen.
Danke im Voraus und Vorweihnachtliche Grüße,
euer Greenhorn.
ich hab einen Zyklusverteiler in SCL Programmiert. Kurz gesagt mein Cyclic interrupt wird all 10ms aufgerufen bei 10 Reglern will ich das halt jeder Regler in Exakt 100ms Zyklus aufgerufen wird.
Code:
"ProgramData".Zykluszeit := T#100MS;
IF "ProgramData".Zyklusteiler = 0 THEN
"Regler1"(RESET := FALSE,
CYCLE := "ProgramData".Zykluszeit);
"ProgramData".Zyklusteiler := 1;
ELSIF "ProgramData".Zyklusteiler = 1 THEN
"Regler2"(RESET := FALSE,
CYCLE := "ProgramData".Zykluszeit);
"ProgramData".Zyklusteiler := 2;
...
...
ELSIF "ProgramData".Zyklusteiler = 9 THEN
"Regler3_PCV_03"(RESET := FALSE,
CYCLE := "ProgramData".Zykluszeit);
"ProgramData".Zyklusteiler := 0;
END_IF;
Jetzt meine Frage: Das Programm springt in die IF Schleife sobald Zyklusteiler==0 und setzt darauf Zyklusteiler = 1. Spring das Programm jetzt zum END_IF oder wird die nächste ELSIF Bedingung geprüft? Wenn ja würde der Zyklusteiler ja so nicht funktionieren und ich müsste noch eine art "Break" an das ende jeder Schleifenbedingung einfügen.
Danke im Voraus und Vorweihnachtliche Grüße,
euer Greenhorn.