TIA Zykluszeit - Fehler im zyklischen Programm finden?

Zuviel Werbung?
-> Hier kostenlos registrieren
Also der Simulator (PLCSIM?) hat ja grundsätzlich keine ordentlich konstante Zykluszeit... Wenn da irgendwas im Windows rumzickt, geht evtl. auch die Zykluszeit vom PLCSIM hoch. Oder halt beim Online beobachten usw.

Also zusätzlich zur Fehlersuche im SPS-Code würd ich mal schaun, obs auf ner realen CPU läuft, und auch mal die Zykluszeitüberwachung auf 500ms hochsetzen.

Gruß.

23ms im PLCSIM ist schon arg hoch... was ist das denn für ne lahme Möhre?

Bei dem Gedanken bin ich auch gerade angekommen. Ist zwar nen halbwegs aktuelles Thinkpad aber Win10 -> VMWare -> Win10 -> TIA
 
Ansonsten könntest du dich auch im STOP Zustand online verbinden und die Aufrufhierarchie öffnen.
Dann siehst du den letzten aktiven Baustein vor dem OB80 Zeitfehler. Hier man ein Bild dazu im #2:
Ich habe es selber noch nie ausprobiert...
https://support.industry.siemens.co...tack-bei-r-cksprung/129768?page=0&pageSize=10

Das führt leider nicht zum Ziel. Hier kann ich nur erkennen in welcher Hierarchie ein ausgewählter Baustein aufgerufen wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In dem Programm werden Daten aus Tabellen verarbeitet, es sind also schon einige Schleifen und Sprünge drin. Grundsätzlich tut das Programm auch genau das was es soll. Und da ich das Programm nicht selber geschrieben habe fehlt mir auch das Gefühl für die kritischen Stellen. Und leider ist das Programm auch nicht mal eben in zwei Tagen neu geschrieben...

Ich würde die Anweisung "Runtime" - Laufzeitmessung nutzen. Die kann einfach über die Schleifen gelegt werden und dann ein Array mit den Werten gefüttert werden. Dadurch hast Du beim Stop die Möglichkeit zu sehen wie lange die letzte Ausführung der Schleife gedauert hat und es lässt sich einfacher nachverfolgen.

So gehe ich zumindest vor um Überschreitungen herauszufiltern.
Könnte man auch über FBs oder FCs legen wenn man mag.
 
Nachtrag:

Also der Simulator (PLCSIM?) hat ja grundsätzlich keine ordentlich konstante Zykluszeit... Wenn da irgendwas im Windows rumzickt, geht evtl. auch die Zykluszeit vom PLCSIM hoch. Oder halt beim Online beobachten usw.

Also zusätzlich zur Fehlersuche im SPS-Code würd ich mal schaun, obs auf ner realen CPU läuft, und auch mal die Zykluszeitüberwachung auf 500ms hochsetzen.

Gruß.

23ms im PLCSIM ist schon arg hoch... was ist das denn für ne lahme Möhre?

Das war wohl tatsächlich der richtige Ansatz. Auf einer echten CPU (CPU 1511, ein echtes Rennpferd) läuft mein Programm nun schon seit einigen Tagen ohne Probleme bei 30ms Zykluszeit, längster Zyklus 80ms.

Vorher habe ich im Simulator die Zyklusüberwachung mal auf 5000ms eingestellt, da hat sich der längste Zyklus dann bei 1600ms eingestellt.

Falls aber trotzdem noch mal jemand eine Antwort auf die ursprügliche Frage hat, interessieren würde mich die ja immer noch.

Schönes Wochenende

Frank
 
Aber die eigentliche Frage:
Ein OB80 gibt mir in seinen Lokaldaten nur an aus welchem OB heraus er angesprungen wurde. Gibt es eine Möglichkeit im OB80 genau den Baustein/Bausteinadresse zu ermitteln aus dem heraus OB80 aufgerufen wurde?


Falls aber trotzdem noch mal jemand eine Antwort auf die ursprügliche Frage hat, interessieren würde mich die ja immer noch.

Grundsätzlich ist es ja Zufall, an welcher Stelle im Programm jetzt grad die 150ms erreicht sind... Es sei denn, es ist wirklich ne Endlosschleife ;)

Gruß.
 
Zurück
Oben