Loop Next Schleife triggern

Froma

Well-known member
Beiträge
46
Punkte Reaktionen
1
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo!

Ich möchte eine Loop-Next-Schleife mit einem Signal triggern. Ich denke da z.B. an ein Start Signal und einen CPU-Takt (1 Sek.), bei dem dann ein Integer um einen
bestimmten Wert erhöht werden soll. Das ganze soll so oft passieren, bis die zuvor eingegebene Schleifenanzahl (In-Parameter) erreicht wurde. Dann soll die Schleife verlassen werden und der Integer abgelöscht (INT = 0) werden. Erst bei einem erneuten Startsignal soll wieder "hochgezählt" werden. Der Takt dient hierbei eher als Verzögerung der ganzen Rechengeschichte, einfach um das ganze leichter beobachten zu können..

Ich habe jetzt keinen konkreten Anwendungsfall für dieses Tool, möchte aber mal den grundsätzlichen Aufbau eines solchen Programms sehen. Auch um vielleicht
tiefer in die Welt der Schleifen einzutauchen. Ich weiß, es gäbe einfachere Wege um im Sekundentakt um einen bestimmten Wert hochzuzählen, allerdings würde mich das Ganze als Schleife interessieren.

Da diese Forum geradezu vor Kompetenz strotzt;), bin ich mir sicher, dass es für mein Anliegen jemanden gibt, der mir weiter helfen kann.
Vielen Dank schon mal im Voraus für eure Bemühungen!

Gruß
 

Sinix

Well-known member
Beiträge
1.588
Punkte Reaktionen
216
Hi Froma,

völlig falscher Ansatz, da eine SPS ihr Programm zyklisch durchläuft. Das Programm und somit die darin enthaltene Loop muss innerhalb der maximalen Zykluszeit abgearbeitet werden, sonst gibts einen Interrupt wegen Zykluszeitüberschreitung.
Für das Thema Schleifen gibt es in den Hilfedateien, Büchern und Manuals jede Menge Stoff, ansonst googeln.
Falls du einen Anwendungsfall hast könnte dann hier eine optimale Lösung gefunden werden.

MfG MK
 

ducati

Well-known member
Beiträge
6.007
Punkte Reaktionen
1.165
Hmm, und ich hab nicht verstanden, was er eigentlich machen will...

Der Integer soll im sekundentakt hochzählen, bis zu einem bestimmten Wert? Dafür braucht man gar keine Schleife.

Code:
T:=T+Sample_Time
IF T>=1.0 THEN 
ZAEHLER:=ZAEHLER+1;
T:=0.0;
END_IF;
IF ZAEHLER>=MAX THEN
ZAEHLER:=0;
END_IF;

oder wie? Ausserdem welches Programmiersystem, welche SPS, welche Programmiersprache...???

oder gehts einfach nur um ein Beispiel für ne Schleife?

Code:
T:=T+Sample_Time
IF T>=1.0 THEN 
FOR ZAEHLER:=0 TO MAX DO
//Code der Schleife
END_FOR;
T:=0.0;
END_IF;

Dann zählts aber nicht im Sekundentakt hoch...

Gruß
 
Zuletzt bearbeitet:
OP
F

Froma

Well-known member
Beiträge
46
Punkte Reaktionen
1
Zuviel Werbung?
->Hier kostenlos registrieren
Im Prinzip wollte ich den Umgang mit "Schleifen" etwas vertiefen und das Arbeiten damit erlernen.
Ich habe ein paar nützliche Denkeanstöße bekommen. Vielen Danke für eure Antworten!
mfg
 
Oben