Step 7 S7-300 SCL Zykluszeitüberschreitung beim beobachten

mrtommyt

Level-2
Beiträge
136
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

habe heute das erste Mal mich an SCL (Step7 5.5) an einer alten 317 versucht. Das lief auch alles ganz gut bis ich den Baustein beobachten wollte.
Bei dem Beobachten eines Arrays mit 500 Einträgen welche durch eine For Schleife abgefragt wurden, schmierte mir die CPU mit Zykluszeitüberwachung ab. Ohne beobachten lief diese sauber mit ca. 8-15ms. Nachdem ich die Eintragszahl der For Schleife auf 20 geändert habe, lief die CPU beim beobachten - aber die Zykluszeit lag bei 35ms, bei 200 Einträgen wieder Stop.

ist dies bekannt und evtl. mit Firmwareupdate behoben oder mach ich was falsch? Mir ist ganz anderes geworden, als die ganze Produktionslinie auf einmal Stand und ich dafür keine Erklärung hatte...

So in etwa:
For i:= 1 to 499 do
If Schritt then
Schritt[500] := TRUE;
end_if;
end_for;

Über Hilfe würde ich mich freuen,
thx
 
Ganz generell geht die Zykluszeit beim Beobachten des Programms hoch. Ob sich das bei einer Schleife extremer auswirkt kann ich so nicht sagen - ich habe bislang noch nie die Abläufe innerhalb einer Schleife beobachten wollen. Ich denke aber mal, dass deine CPU sich da vollkommen korrekt verhält.

Aber etwas anderes : ist der von dir gepostete Code denn das, worum es geht ?
Wenn dein Schritt-Array ein Array of Bool ist dann liesse sich diese Auswertung, ob irgendwo ein Schritt aktiv ist (ein Bit gesetzt ist) auch einfacher und performanter Umsetzen. Du könntest auf deine 500 Bits eine AT-Sicht als Array of DWord legen und die dann entweder addieren oder auf ungleich 0 auswerten. Da hättest du dann anstatt deiner 500 Durchläufe nur noch 16 (500 / 32).

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Verhalten hängt vom Betriebsmodus ab, ob Testbetrieb oder Prozessbetrieb.
Im Testbetrieb wird bei Schleifen der Status nach jedem Durchlauf aktualisiert, im Prozessbetrieb nicht. Bei manchen CPUs kannst du den Standard-Modus in der Hardwarekonfiguration der CPU unter "Schutz" festlegen. Wenn da "Testbetrieb" angewählt ist, dann bist du eben im Testbetrieb mit allem was dazugehört.
 
Übrigens, im SCL des TIA-Portals wird man an genau dieser Stelle auf genau dieses Verhalten hingewiesen. Standardmäßig sieht man dort in FOR-Schleifen keinen Status. Erst über das Kontextmenü innerhalb der Schleife (rechte Maustaste) kann man verschiedene Optionen zur Statusanzeige wählen. Ich dachte erst, mein schönes TIA wäre kaputt :ROFLMAO: .

Die Zyklusüberwachungszeit sollte man generell nicht zu knapp einstellen, sofern es der Prozess zulässt.
 
Wieder was dazu gelernt...besten Dank.

Die Schleife ist als Störungsindex für eine Schrittkette gedacht... Stoe[schrittnummer]. Ich wollte mir die auch nicht anschauen, bin eher durch Zufall darauf gestoßen, da in der nächsten Zeile mein Problem lag.
Mit dem Testbetrieb muss ich mal schauen, da ich die Schleife brauch. Im TIA ist mir das Problem noch nicht aufgetreten...
 
Zurück
Oben