TIA TIA - Stopursache rausfinden (S71500 in AWL)

Jochen Kühner

Level-3
Beiträge
4.291
Reaktionspunkte
525
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,hab jetzt mal mit einer 1500er in TIA angefangen, einige Bausteine in AWL Programmiert. Nun hat Ich einen Fehler und die SPS geht auf Stop! Wie finde Ich nun den Fehler?? aus dem Diagnosepuffer kann Ich nit zu der Stelle springen. Ok, den FC konnte Ich aus dem Puffer auslesen, gut den Baustein geöffnet, beobachtet, CPU Start/Stop, aber man sieht nichts... Bei Step 7 konnte man dann die letzten Werte sehen, bevor die CPU auf Stop ging, in TIA -> nichts... So musste Ich nun BEA einbauen, bis Ich den Fehler gefunden habe, aber geht das nicht einfacher??? Und, wie kann Ich die anderen Register (DB1, DB2, Akku2, etc ...) einblenden? Wie kann Ich die anzeige von Dez auf Hex umschalten ??
 
Hi Jochen

manchmal klappt das mit dem Diagnosepuffer, manchmal nicht.
Oft ist nicht der oberste Eintrag, der der dich zum Fehler führt sondern einer oder zwei weiter unten, da klapp dann auch der Baustein öffnen Knopf.

Aber wenn die 1500 (oder die neueren 1200) im Stop ist, dann kann man über die Aufrufhierarchie viel schneller zur Fehlerstelle kommen. Das funzt sogar öfter als über den Diagnosepuffer.

Deine AS ist im Stop. Öffne einen beliebigen Baustein, z.B. den OB1 -- alias ProgramCycle. Rechts ist eine Lasche Debug. Diese hervor holen. Unten gibt es eine Fläche Aufrufhierachie. Darin werden dir die Bausteine des B-Stack aufgelistet. Der Fensterinhalt sieht gar nicht nach TIA-Portal aus, sondern so als ob es ein Werkstudent mal eben an einem Nachmittag da rein gehackt hat. Trotz des Aussehen, kann man auf die darin aufgelisteten Baustein klicken. Und siehe da, der Editor wird geöffnet und der Curser in die Nähe des ausgeführten Befehls positioniert. D.h. zumeist zum CALL, außer beim letzten, bei dem, der dich interessiert. Hier wirst du in die Nähe des Statements geschickt, die den Stop verursacht hat. Also wenn es ein KOP Addierer mit 10 Eingängen ist, dann musst man schon genauer Nachdenken, welcher Operand jetzt den Zugriffsfehler verursacht hat, aber ich bin bisher zumindest immer im problematischen Netzwerk, bzw innerhalb von 5 SCL Zeilen rausgekommen. Die Treffergenauigkeit ist in etwa wie beim Simatic-Manager, der hat mir auch nicht immer den richtigen Operanden markiert -- früher war eben auch nicht alles besser.

Fazit: Aufrufhierarchie funzt gut -- besser als Diagnosepuffer.

Das Fenster sieht nicht nur schlecht aus, es fehlt auch der U-Stack :-(
Hallo S. wann kommt denn der?

Auf dieser seitlichen Debug Lasche findet sich bei einer 300/400 auch ein Registersatz. Es wird allerdings nur in AWL darin was angezeigt. Bei 1200 1500 ist da nix. Die anderen Register scheint es bei weder bei 1500 noch 1200 zu geben. Der S.-ler fabulierte was wie "optimale Abbildung" und Emulation ...

Wenn du nach Thomas Thread über "der 1200 unter den Rock geschaut" suchst, dann erfährt man was über die neue Abbildung. So wie ich das sehe, haben die neuen CPUen Drei-Addressbefehle und keinen Akkustack. Es scheint auch deutlich mehr Adressregister zu geben. AWL wird uns scheinbar nur vorgegaukelt, kann man auch bei der Performance beobachten. Aber sicher ist das nicht, denn die 1200 hat kein AWL und die 1500 hat Hosen an. AWL ist gelegentlich langsamer als SCL oder FUP, besonders dann wenn man AR Akrobatik treibt. Hier fürchte ich, dass der freundliche Vertreter nicht gelogen hat (ganz untypisch) und AWL tasächlich emuliert wird. Vielleicht sogar in Form eines SCL-Programms ... zugegeben das ist meine reine Spekulation.

Die Anzeige der Operanden und Ergebnisse kann man mittels der rechten Maustaste umschalten. Also in der Spalte rechts auf den Wert klicken und dann Modify > Format ... wieso das so gut versteckt ist? ...

Ein paar mehr Formate wären da auch nicht schlecht, und wenn sich das gemerkt würde ...
Und Haltepunkte und Einzelschritt gibt es auch nicht ...

'n schön' Tach auch
HB
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Heist das AWL ist nun langsamer als bei den jetzigen CPU's oder ist die Leistung trotzdem noch spürbar schneller, und nur langsamer als in KOP/FUP/SCL?
So wie's im Moment läuft ist es ja ein riesen Act einen Fehler in einem AWL Prg zu finden. Keine Register anzeige, keine Anzeige der letzten Werte wenn Ich ein Baustein beobachte und die CPU auf Stop geht,...
 
Hallo Jochen,

ja ich denke das heißt es.
Ich für meinen Teil habe ja früher viel in AWL gemacht, verabschiede mich aber bei der 1500-er von AWL. Was ich AWL erledigt habe geht ja i.d.R. auch in SCL ganz gut, nur war der Editor und Debuggger in Klassik halt grottig. In TIA gibts ja leider auch viele Mängel, aber der SCL-Editor ist zumindest besser als der Alte, wozu aber wirklich nicht viel gehört. :)
 
Hallo

Heist das AWL ist nun langsamer als bei den jetzigen CPU's oder ist die Leistung trotzdem noch spürbar schneller, und nur langsamer als in KOP/FUP/SCL?

Pauschal kann man das nicht sagen. Der Unterschied ist jetzt halt jede Sprache wird durch einen eigenen compiler übersetz, und zwar nicht in AWL sondern gleich in Maschinen Code. Dadurch kann je nach Optimierung usw jede Sprache die schnellste sein. Bei AWL kommt halt noch das Thema Emulation von den Registern usw dazu. Werden die verwendet wirds deutlich langsamer.

daschris
 
Zurück
Oben