Wieso RoboPro eine tolle Entwicklungsumgebung ist (Teil 6: Debugging).

Wer programmiert, macht Fehler – nur mit viel Übung und Erfahrung gelingt es, ein (komplexeres) Programm auf Anhieb fehlerfrei zu schreiben. Zwar ist es immer empfehlenswert, erst Nachzudenken und den Programmablauf auf Papier zu skizzieren, bevor man sich an die Tastatur setzt – dennoch ist es oft unvermeidlich, Fehler im Programm aufzustöbern (zu „debuggen“).

Grundsätzlich gibt es mehrere Methoden zur Fehlersuche, wie z. B.

  • Anzeigen an der Benutzerschnittstelle vorsehen (Werte, Lämpchen, …)
  • Ausgabe von Zwischenergebnissen (CSV-Datei, Datenliste, …)
  • Setzen von „Breakpoints“, an denen das Programm anhält (z.B. Warten auf Tastendruck)

Diese Methoden werden oft durch Mechanismen der Entwicklungsumgebung unterstützt. RoboPro bietet drei wichtige Debugging-Funktionen im Online-Mode:

  • den Interface-Monitor,
  • die Anzeige von Variablenwerten und
  • den Single-Step-Modus.

Der Interface-Monitor wird über das Menu-Icon „Interface testen“ gestartet (siehe auch Warum RoboPro eine tolle Entwicklungsumgebung ist (Teil 2: Koppelung, Simulator)).

RoboPro Interface-Test

RoboPro Interface-Monitor

In diesem Monitor können zur Laufzeit alle an den Eingängen eingestellten Sensortypen und anliegenden Werte abgelesen werden, ebenso die Einstellungen an den Motor- und Lampenausgängen sowie die Zählerstände – und das bei kaskadierten TX Controllern nicht nur vom Master, sondern auch von allen bis zu acht Slaves.

Die Inhalte aller (globalen) Variablen werden während des Programmablaufs angezeigt und müssen daher nicht separat ausgegeben werden; die Inhalte von Listenvariablen erhält man, wenn man während des Programmlaufs mit der rechten Maustaste auf die jeweilige Listenvariable klickt. Ist die Analyse der Zwischenwerte komplizierter, kann man die Daten auch in eine CSV-Datei auslagern und mit einem Tabellenkalkulationsprogramm auswerten (siehe auch Wieso RoboPRo eine tolle Entwicklungsumgebung ist (Teil 3: Anzeige- und Steuerelemente)).

Der Single-Step-Modus ermöglicht eine komfortable Schritt-für-Schritt-Analyse des RoboPro-Programms: Ein Klick auf den gelben Pfeil mit Strich in der oberen Menuleiste führt einen einzelen Programmschritt aus. Wenn man kurz vor „kritischen“ Stellen im Programm, die man analysieren möchte, eine Tasterabfrage einbaut, kann man das Programm auch zunächst mit dem gelben Pfeil starten und, wenn es an der Tasterabfrage anhält, mit einem Klick auf das gelbe Pause-Symbol anhalten und erst dann die Single-Step-Analyse starten.

Manche Fehler, insbesondere Timing-Probleme, treten allerdings nur im Offline-Mode auf – und da helfen weder Interface-Monitor noch Variablenanzeige, und auch der Single-Step-Debugger funktioniert nicht. In solchen Fällen kommt man nur mit Breakpoints und der Ausgabe relevanter Daten auf dem TX-Display zum Ziel.

Advertisements

kommentieren

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: