Port_851 Exception nach dem aktivieren

BioBau

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
habe ein Projekt von Tc2 nach Tc3 convertiert. Das ganze hat mit 502 Fehlermeldungen angefangen und jetzt scheiterts an einer letzten Fehlermeldung. Jemand eine Idee?

'Port_851' (851): Exception (Exception Code: 0xc0000005, Page Fault) in PLC Application XY Instance, Task Standard (RBP: 0xffffd88030e5eca0, RIP: 0xffff8386ca202c6d, RSP: 0xffffd88030e5ec70), Area 0, Offset 0xf2be5
 
Das ist eine Speicherverletzung.
Wann kommt diese genau? Bevor du die SPS startest oder danach? Wenn es danach kommt ist es ziemlich sicher im UserProgramm.
Du solltest aber Online immer noch auf die Steuerung kommen und dann steht die SPS (wie in einem Breakpoint) in der Codezeile wo das Problem verursacht ist. Ansonsten gibt es eigentlich Application Dumps der SPS das du reinladen kannst und auch an diese Stelle springst.
Funktioniert meistens aber nicht immer.

Guga
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine Exception kann unter anderem bei einer Division by Zero oder einem unzulässigen Speicherzugriff auftreten.
Wenn Du das Bootprojekt deaktivierst, Online gehst und dann das Programm startest sollte die Entwicklungsumgebung Dir anzeigen wo der Fehler auftritt.
 
Zuletzt bearbeitet:
Die Fehlermeldung kommt beim Einloggen. Ich kann mich auch einloggen und die Startwerte beobachten, dass Projekt lässt sich jedoch nicht erfolgreich Starten, nach dem Start hüpft es einfach in den Config Mode.

In der Zwischenzeit habe ich das Projekt auf einem echten CX getestet, dort lief alles wie geschmiert. Muss also an meinem System liegen. Auf dem CX kann ich mich einloggen etc.
 
Dein System hat eine andere Speicheraufteilung als der CX. Insofern kann es beim einen System krachen, beim anderen wird der Mist nicht erkannt. Ich würde mich jetzt auf dem System einloggen, einen Breakpoint auf die erste Instruktion setzen und dann das ganze durchschreiten.
Wenn das System in Config rauscht dann ist das leider einer der Fälle wo die Dump-geschichte bzw. der automatische Sprung zur problematischen Instruktion nicht funktioniert.
Falls du eine ältere TwinCAT-Version nutzt wäre es auch noch möglich einfach diese hochzuziehen. Ändert fast sicher nichts am PageFault aber die Chancen dass der PageFault besser abgefangen wird (und du nicht im Config landest) ist gegeben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hab den Crashverursacher gefunden: siehe Bild 1

Dieser Baustein verursacht in der 2. Zeile den Config Mode.
Was dieser genau macht weiß ich leider selbst nicht da ich das Projekt nicht ganz selbst schreibe werde mich erkundigen

Genauer Ablauf:
Bild 2: Fehlermedung (Quittieren durch Klick auf NEIN)
Bild 3: Fehlermeldung (Quittieren durch Klick auf JA)
Konfig Modus erreicht

Ich verstehe nicht warum er den Quellcode sucht ich habe das Ganze mit dem Prozedurschritt überspringen wollen. Die Bibliothek TC2_SUPS ist ebenfalls referenziert.
 

Anhänge

  • 1662627756328.png
    1662627756328.png
    96,1 KB · Aufrufe: 47
  • 1662628154517.png
    1662628154517.png
    39,4 KB · Aufrufe: 46
  • 1662628162572.png
    1662628162572.png
    43,5 KB · Aufrufe: 42
Hab den Crashverursacher gefunden: siehe Bild 1

Dieser Baustein verursacht in der 2. Zeile den Config Mode.
Was dieser genau macht weiß ich leider selbst nicht da ich das Projekt nicht ganz selbst schreibe werde mich erkundigen

Genauer Ablauf:
Bild 2: Fehlermedung (Quittieren durch Klick auf NEIN)
Bild 3: Fehlermeldung (Quittieren durch Klick auf JA)
Konfig Modus erreicht
Das ist der Aufruf des FBs für die Sekunden USV, die gibt es nur in den CXen und da meine ich auch nicht in allen.
 
Hast du auch einmal probiert das Projekt ohne Autorun, herunterzuladen, um anschliessend dich einzuloggen und dann erst zu starten?
-> Meist hüpft es dann dorthin wo der Fehler entstanden ist bzw. auf die Zeile danach.

EDIT:
Hat sich ja nun gerade erledigt! Und ja das ist der Baustein für die interne USV,..

Du könntest mit de Baustein 'FB_GetDeviceIdentification' den Typ auslesen und dne Baustein nur callen wenn es ein CX51xx Devices ist,..
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Es gibt SUPS-Bausteine die HW spezifisch sind (das war die erste Version). Inzwischen gibt es den Baustein FB_S_UPS_BAPI der für alle Geräte funktioniert (braucht allerdings einen halbwegs aktuelln IPC Device Manager (das ist das Tool das dir auch die Diagnose Webseite liefert).
Du nutzt einen HW spezifischen für den CX9020, sagst aber das du einen CX51xx hast.
Das würde ich in jedem Fall abändern. Ansonsten halt nur bedingt aufrufen oder den oben genannten nutzen.

Guga
 
Zurück
Oben