SCL Watchdog

Febo

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute

Ich habe ein Problem mit einer Verzögerung innerhalb einer Schleife. Zum testen meines Programmes benutze ich PLCSIM. Die CPU geht nach ca.20s auf Stop. Ich glaube das der Watchdog anspringt.Kann man den irgendwie ausschalten? Oder mache ich was falsch mit den timer? Für Hilfe wär ich dankbar. Hier der Codeauszug:

Code:
FOR i:=0 TO x1 DO         
  IF SollwertOut=x1 THEN
    EXIT;
  END_IF; 
            
  WHILE qt=false DO
    t:=S_ODT(T_NO:= T1, S:=TRUE, TV:=T#1s, R:=FALSE,Q:=qt);
  END_WHILE;
  
  t:=S_ODT(T_NO:= T1, S:=false, TV:=T#1s, R:=true,Q:=qt); 
  SollwertOut:=SollwertOut+1;           
END_FOR;
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Den timer in der while-Schleife zu starten würde ich so nicht machen, weil dein Propgramm dort "stehen bleibt" (siehe 4L). Starte doch den timer und unterbreche den Baustein mit einem exit wenn qt=false ist. Dann müßte es gehen.
 
... in Anlehnung an meine Vorredner ...

Was soll denn überhaupt die Aufgabe sein ?
Aus deinem Code-Beispiel kann ich das nicht ableiten ...

Gruß
LL
 
Danke erstmal für die Antworten.

Die Problemstellung ist eine verzögerte Sollwertübernahme. Das heist wenn sich der Sollwert ändert, ändert sich der Augang dazu zeitverzögert. Dies geschieht in 3 Stufen. In der ersten Stufe beträgt der Takt 5s in der zweiten 2,5s und in der letzten 1s.
Naja wenn man so will eine Art Regler.
Ich wollte hallt 3 Schleifen hintereinander schalten und innerhalb dieser Schleife eine Verzögerung reinbauen.

Gruß
 
ich denke schon. dies ist nur mein erster versuch mit scl. ich wäre in der lage dazu das problem mit awl/kop/fup zu lösen.
 
Was Vierlagig dir damit sagen wollte :
Die Bausteine werden immer zyklisch bearbeitet. Du musst also keine Schleife programmieren, die macht dir die CPU schon von selbst. Ist eine Anweisung ausführbar, so wird sie ausgeführt - wenn nicht dann nicht. Brauchst du für etwas einen sequentiellen Ablauf, dann musst du dir den künstlich erzeugen (z.B. mit einer Zähl-Variablen).

Gruß
LL
 
Zurück
Oben