Beckhoff TwinCAT (2) Debugging mit Breakpoints / Single Step ...

cpalm

Level-1
Beiträge
19
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe in meinem Programm Bugs, die ich gerne mit Debugging lösen möchte. Vom Grundsatz her ist das auch eine klare Sache und mir schon von anderen Programmiersprachen jahrzehntelang bekannt.
Mein konkretes Problem ist jedoch, dass ich dies bei meiner Hausautomation machen möchte. Hierzu sind von Beckhoff zum großen Teil Busklemmen wie die digitale KL2408 (8 Port Ausgänge) verbaut worden, die auf entsprechend viele Relais gehen.
Wenn ich jetzt einen Breakpoint setze, oder das Programm sonstwie anhalte, springen alle Ausgänge auf False also aus. Alle Relais fallen ab und alle Geräte gehen aus. Dies mag bei einer Maschinensteuerung natürlich ein tolles Sicherheitsfeature sein (im Notfall lieber alles aus...) aber in meinem Fall ist dies kontraproduktiv bzw. mehr als unschön, wenn für einen Cycle mal wieder alle Relais kurz anklicken und wieder abfallen!

  • Wie macht ihr das in der Praxis? Gibt es irgendwo eine Grundeinstellung, dieses Verhalten zu ändern? (Ausgang bleibt an, auch wenn er nicht zyklisch beschrieben wird)
  • Gibt es eine Möglichkeit, mehrere Tasks zu haben, die weiterlaufen, obwohl die Debugging Task gerade angehalten ist?
  • Gibt es eine Möglichkeit, mehrere Programme auf der SPS zu haben, die unabhängig laufen, aber irgendwie miteinander kommunizieren können (gemeinsame Variablen o.ä.?), so dass man ein Programm (z.B. eine über dem Basisprogramm darüberliegende Kontroll oder Monitoring-Schicht) debuggen kann.
Vielen Dank!
 
Ich habe keine Erfahrung mit Twincat. Bei allen möglichen SPS habe ich allerdings noch nie Debugging mit Breakpoints/Einzelschritt gebraucht. Üblicherweise findet man Bugs durch geeignete Testeingaben, Beobachtung und Wegspeichern oder Trace von relevanten Variablenwerten.

Wenn größere Eingriffe/Anpassungen in das SPS-Programm inkl. Stops für das Debugging nötig sind, kann man auf einer softwaremäßig simulierten CPU oder einer Test-CPU debuggen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn du auf die SPS eingeloggt bist, kannst du in der Onlineansicht die Ablaufkontrolle aktiveren. Die zeigt dir an welcher Teil deines Codes ausgeführt wird (bei Verzweigungen etc.).
Mit angeschlossener Peripherie kannst du nicht mehr mit Breakpoints arbeiten da ein Zyklus-stopp dazu führt, dass das Prozessabbild nicht mehr aktualisiert wird. Das hat dann zur folge, dass die Klemmen in den sicheren Zustand wechseln -> Ausgänge werden abgeschaltet.

In der Regel sollte die Onlineansicht aber alle nötigen Informationen liefern, die du brauchst um deinen Code zu debuggen. Zusätzlich kannst du über das Scope oder die Trace Funktion Variablen Werte tracken.
 
Zurück
Oben