TIA Endlosschleife in Programm einer 1500-er finden

Ralle

Super-Moderator , User des Jahres 2006-2007
Teammitglied
Beiträge
15.404
Reaktionspunkte
4.039
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab gestern, wegen eines Schreibfehlers, meine 1500-er in eine Endlosschleife geschickt. (falscher Name an Sprungmarke, Copy&Paste ist eben doch gefährlich :ROFLMAO: )
Problem ist nun, wie finde ich die Stelle, an der das passiert?
Meine 1500-er hat im Log nur angezeigt dass OB 80 wegen einer Zykluszeit-Überschreitung angefordert wurde. Es gab keine Hinweise auf die Stelle und keine Möglichkeit, dorthin zu springen.
"Gehe zu Fehler" brachte die Hardwarekonfig der PLC zur Anzeige.

Hab ich das nicht gefunden oder geht das wirklich nicht. Ich hatte immer in Erinnerung, das die 300-er das konnt, möglicherweise liege ich da aber doch falsch.
Die Suche ist leider recht aufwändig, wenn man nicht gerade erst geändert hat und weiß, wo was passiert sein könnte.
 
IMHO ging das schon bei der 300er nicht. in ner 400er hatte ich auch so einen doofen Fehler der nur hochsporadisch zugehauen hat. Da habe ich dann alle meine FB/FCs immer vor Codebeginn, den eigenen Namen und den IDB plus versatz in einem Merker zwischengespeichert (immer im selben Merker, der letzte ist der auslöser des OB80)

So hatte ich dann wenigstens den genauen Bausteinaufruf der als auslöser in frage kam. Das hat mir gerreicht. Man könnte dann noch Zeilennummern in einen Merker eintragen wenn man den Baustein mal hat.

mfG René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es ist immer möglich mit STEP7 Classic, wenn der CPU in STOP wegen SF gegangen ist auf der Stelle im Code zu gehen wo der CPU in STOP gegangen ist.
Man findet es unter die "STACKS" in die Online CPU Eigenschaften. Die STACKS sind nur aktuell wenn der CPU in STOP ist.
In den obengenannten Fall öffnet der Code Editor irgendwo innerhalb von der Endlosschleife.
Ob dies geht mit S7-1500 weis ich nicht. Wenn nicht, ist das für mich ein grossen minus für TIA.

edit: Diese Verfahren verwende ich wenn ich einen schwer-zu-finden Fehler habe (was SEHR selten passiert ;) ).
Weck mit die Fehler-OBs.
Bösartigen Code in PLCSIM laden.
Fehler-Szenario starten.
Der CPU geht dann hoffentlich in STOP wegen SF.
Dann die STACKs öffnen, und "Gehe Zu" wählen.
Der Code Editor öffnet mit der Cursor genau auf der Fehler, oder die Zeile gerade nach der Fehler.
 
Zuletzt bearbeitet:
Ja, über "Baugruppenzustand > Stacks > U-Stack > Baustein öffnen" kommt man auch bei S7-300 zu der Stop-auslösenden Programmstelle.

Harald
 
Ich hatte vor kurzem auf IBN auch genau den selben Fehler wie Ralle gemacht.
1500er geht in Stopp und das "Springe zu" zeigt dir die CPU in der Hardware-Config.

Auf der 300er in Classic zeigt dir das "Springe zu" immer die Code-Stelle im Baustein.

Musste dann auch über "auskommentieren und probieren" arbeiten.
Ob man bei der 1500 an die Stacks rankommt weiß jetzt auch nicht. Glaube aber nicht das ich die irgenwo gesehen hätte.

Sowas ist definitiv ein Minus bei TIA/1500-
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Auf der 300er in Classic zeigt dir das "Springe zu" immer die Code-Stelle im Baustein.
Das "Gehe zu" aus der Diagnosepuffer-Ansicht geht nur bei S7-400 (und ich glaube auch bei CPU 318-2).
Bei einer S7-300 ist "Gehe zu" aus der Diagnosepuffer-Ansicht nicht möglich (weil S7-300 die Information zur Programmstelle nicht im Diagnosepuffer einträgt und auch nicht im Fehler-OB liefert). Nur der Weg über den U-Stack geht.

Harald
 
@PN/DP: Leider genauso ist das, obwohl gerade bei so einem Fall sehr nützlich...

Was auch recht schnell geht ist halt einfach mal BEA im OB1 in die Mitte platzieren und dann immer wieder in die Mitte des verblieben Bereichs wenn mal mal gar nicht schlau wird aus den Stacks.
 
Bei einer S7-300 ist "Gehe zu" aus der Diagnosepuffer-Ansicht nicht möglich (weil S7-300 die Information zur Programmstelle nicht im Diagnosepuffer einträgt und auch nicht im Fehler-OB liefert). Nur der Weg über den U-Stack geht.
Klar geht das.

Hab's hier gerade an einer 315-2DP (2AG10 v2.6) ausprobiert.
S7316_GeheZuBeiCodeLoop.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Ronin

Ja, genau das meinte ich, aber die 1500-er scheint das so nicht zu kennen.
In Stop geht ja die SPS ohnehin bei Zykuszeitüberschreitung.
 
Bei einer S7-300 ist "Gehe zu" aus der Diagnosepuffer-Ansicht nicht möglich (weil S7-300 die Information zur Programmstelle nicht im Diagnosepuffer einträgt und auch nicht im Fehler-OB liefert). Nur der Weg über den U-Stack geht.
Klar geht das.

Hab's hier gerade an einer 315-2DP (2AG10 v2.6) ausprobiert.
OK, dann ist das bei S7-300 vielleicht CPU- und Firmware-abhängig?
Bei einer 315-2PN/DP (315-2EH14) V3.2.10 bleibt "Gehe zu" ausgegraut. Auch bei STOP-Einträgen.

Bei der 315-2DP (315-2AG10) V2.6.11 hat man das "Gehe zu" wohl für diejenigen Diagnosepuffer-Einträge implementiert, wo die CPU wegen fehlendem OB in STOP ging, samt der witzigen Meldung, daß der Diagnosepuffereintrag angeblich älter als der online vorhandene Baustein wäre. Bei den ursächlichen Fehler-Einträgen gibt es kein "Gehe zu". Ohne CPU-STOP gibt es keinen Hinweis, wo die fehlerhafte Programmstelle war.

Harald
 
Vielleicht ist der Siemens-Logik für die letzten Firmware Versionen, und in TIA, das wenn der CPU wegen Zykluszeitüberschreitung auf SF geht, dann steht der Programzeiger nicht auf der Programzeile das der Zykluszeitüberschreitung verursacht hat.
In unseren Logik aber, ist der position von der Programzeiger aber trotzdem wertvoll, weil wenn es um ein endlosschleife handelt, ist der Programzeiger innerhalb von diese Endlosschleife.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OK, dann ist das bei S7-300 vielleicht CPU- und Firmware-abhängig?
Bei einer 315-2PN/DP (315-2EH14) V3.2.10 bleibt "Gehe zu" ausgegraut. Auch bei STOP-Einträgen.
Tatsächlich! :shock:

Hab's mit einer 2EH14 probiert, da bleibt "Das gehe" zu grau. Nur über Stack.
Ich war immer fest davon ausgegangen dass das bei allen 300ern geht.
Aber so oft Bau ich dann doch keine Endlosschleifen ein damit ich eine regelmäßig Prüfung hätte... :rolleyes:

...samt der witzigen Meldung, daß der Diagnosepuffereintrag angeblich älter als der online vorhandene Baustein wäre.
Da bin ich mir nicht so ganz sicher. Kann sein dass das von mir kam

Ich hatte das Beispiel gleich ganz schnell zusammengeklickt.
Kann schon sein dass ich den FC nach dem Stop vor dem Erstellen der Screenshots nochmal gespeichert/reingeladen hab.
Daher möglicherweise die Meldung.

My bad. Hab möglicherweise nicht gut genug aufgepasst.
 
Zurück
Oben