CHF | EUR | USD

Schnelle Konfiguration von industriellen Automatisierungsanlagen mit Remote-Mikrocontroller-Debuggern

Von Bill Giovino

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von Digi-Key

In industriellen Automatisierungsanlagen werden zunehmend mikrocontrollerbasierte Einplatinencomputer zur Steuerung der Anlagenabläufe eingesetzt, um die Effizienz zu erhöhen und die Produktivität zu verbessern. Oft sind die verwendeten Einplatinencomputer eine Kombination aus handelsüblichen Einplatinencomputern mit konfigurierbarer Firmware und kundenspezifischen Einplatinencomputern mit kundenspezifischer Firmware. Bei neuen Industrieanlagen oder bei bestehenden Anlagen, die gerade neu konfiguriert wurden, muss die Firmware der Einplatinencomputer jedoch möglicherweise geändert werden, um den Betrieb zu verbessern oder Codefehler zu beheben.

In diesem Artikel wird die Rolle von Einplatinencomputern diskutiert und warum Remote-Debugging in industriellen Umgebungen immer wichtiger wird. Anschließend werden Remote-Debugger und die zugehörige Software von MikroElektronika vorgestellt und erklärt, wie diese mit einem Wi-Fi-Netzwerk verbunden werden können, um die Arm®-Mikrocontroller, die in den meisten Einplatinencomputern verwendet werden, aus der Ferne zu debuggen.

Einplatinencomputer in Industriecomputern

Moderne industrielle Automatisierungsanlagen stehen unter dem Druck, die Produktivität durch eine bessere Prozessführung mit höherer Präzision zu steigern. Dies kann die Verwendung von hochauflösenden Sensoren beinhalten, um genauere Daten an die Steuerungsfirmware zu liefern. Darüber hinaus können Aktoren wie Motoren und Magnete zu Aktoren aufgerüstet werden, die sich in viel feineren Schritten bewegen können.

Sobald diese Sensoren und Aktoren mit höherer Genauigkeit und höherer Auflösung installiert sind, muss die Steuerungsfirmware in den Einplatinencomputern, die diese Geräte verwalten, modifiziert werden, um die Vorteile der höheren Auflösung zu nutzen. Wenn das Firmware-Upgrade vom aktuellen Einplatinencomputer nicht bewältigt werden kann, muss ein neuer Einplatinencomputer installiert werden. In jedem Fall wird die neue Firmware typischerweise auf dem Prüfstand getestet und debuggt, bevor sie in der Industrieanlage installiert wird. Nach ersten Tests wird das neue System in Betrieb genommen.

Bei komplexeren Prozessen ist die Fehlersuche und Programmierung damit aber möglicherweise noch nicht beendet. Der Betrieb im System kann Probleme aufdecken, die während dieser Vorproduktionstests nicht entdeckt wurden, und in vielen Fällen ist die einzige Möglichkeit, die Firmware zu optimieren, das Debugging, während der Einplatinencomputer in Betrieb ist.

Neue industrielle Automatisierungsanlagen können mit den gleichen Problemen konfrontiert werden. Dies gilt insbesondere für Hochleistungssysteme, bei denen die Firmware-Regelkreise fein abgestimmt werden müssen, um die Effizienzanforderungen zu erfüllen. Unabhängig davon, ob es sich um eine neue oder modernisierte Industrieanlage handelt, sind Ausfallzeiten teuer und müssen minimiert werden. Das bedeutet, dass die Einplatinencomputer im System debugged und programmiert werden müssen.

Fehlersuche in industriellen eingebetteten Systemen per Fernzugriff

Das Debuggen von Einplatinencomputern, die in industriellen Systemen eingesetzt werden, unterscheidet sich nicht von dem Debuggen eines beliebigen Mikrocontroller-basierten Systems. Ein Debugger muss physisch per Kabel vom Debug-Port des Mikrocontrollers mit einem PC verbunden werden, auf dem ein Debug-Softwareprogramm läuft. Ein Techniker am PC untersucht und debuggt dann die Firmware, während sie läuft. Dies kann zeitaufwendig sein, wenn viele Einplatinencomputer vor Ort debuggt werden müssen, da die Techniker zu den einzelnen Standorten der Einplatinencomputer wechseln müssen. Dies kann schwieriger sein, wenn sich einige Einplatinencomputer in rauen Umgebungen oder an physisch abgelegenen oder unzugänglichen Orten befinden. Darüber hinaus ist es typisch, dass nur eine begrenzte Anzahl von Technikern mit der benutzerdefinierten Firmware vertraut ist, so dass diese Techniker viele Systeme in kurzer Zeit debuggen müssen, was das Verfahren verkompliziert und den Prozess verzögert.

Die Lösung ist die Verwendung von Remote-Debuggern, die physisch mit den Einplatinencomputern verbunden sind, deren Debugging-Funktionen jedoch von einem vernetzten PC an einem anderen Ort bereitgestellt werden. Remote-Debugger können in den Mikrocontroller-Debug-Port des Einplatinencomputers eingesteckt werden, während sie über Wi-Fi mit dem Netzwerk einer Einrichtung verbunden sind. Ein PC im gleichen Netzwerk an einem günstigen Standort kann für den Zugriff auf jeden der Remote-Debugger verwendet werden. Der Techniker hat dann die vollständige Debug-Fähigkeit am entfernten PC.

Um dieses Remote-Debugging durchzuführen, können Ingenieure den CodeGrip von Mikroe verwenden, eine Familie von Remote-Debuggern, die sich über Wi-Fi mit einem entfernten PC verbinden können, um die Programmierung und das Debugging vieler Arm-Mikrocontroller zu unterstützen. Der Wi-Fi-Debugger MIKROE-3460 CodeGrip kann auf den meisten Arm-Mikrocontrollern mit JTAG-Anschluss verwendet werden (Abbildung 1). Er unterstützt auch den Eindraht-Debug-Port SWO (Serial Wire Output) von Arm, der auf den meisten Cortex-M3-, Cortex-M4- und Cortex-M7-Mikrocontrollern von Arm zu finden ist.

Abbildung des Remote-Debuggers MIKROE-3460 CodeGrip von MikroElektronikaAbbildung 1: Der Remote-Debugger MIKROE-3460 CodeGrip wird physikalisch an den Debug-JTAG- oder SWO-Port eines Einplatinencomputers angeschlossen. Es kann aus der Ferne über Wi-Fi angesprochen werden, um die Arm-Mikrocontroller-Firmware zu programmieren oder zu debuggen. (Bildquelle: Mikroe)

Der MIKROE-3460 CodeGrip von Mikroe wird am physikalischen Ort des Arm-basierten Einplatinencomputers platziert. Er verfügt über einen Anschluss zum Verbinden mit dem JTAG- oder SWO-Port, der auf dem Platinenstecker verfügbar ist. Es wird dann vorübergehend per USB mit einem Laptop verbunden, um die CodeGrip-Einheit zunächst für den zu debuggenden Mikrocontroller zu konfigurieren. Für Hochleistungssysteme verfügt das CodeGrip-Gerät über einen USB-C-Anschluss. Dies ist besonders in beengten Situationen nützlich und spart Zeit und Frustration, da USB-C-Stecker im Gegensatz zu früheren USB-Steckern keine Ausrichtung nach oben oder unten haben.

Auf dem Laptop, der mit dem CodeGrip-Gerät verbunden ist, muss die CodeGrip Suite von Mikroe laufen, um das CodeGrip-Gerät anfänglich zu konfigurieren. Das CodeGrip-Gerät zeigt seinen Status über fünf LEDs an (Abbildung 2). Dadurch erhält ein Techniker vor Ort wichtige Statusinformationen über den ordnungsgemäßen Betrieb des Geräts, ohne einen Laptop anschließen zu müssen. Wenn das Gerät ordnungsgemäß mit Strom versorgt wird, leuchtet die grüne Power-LED. Während des normalen Betriebs des CodeGrip-Geräts leuchtet auch die rote aktive LED. Wenn die grüne LED leuchtet und die rote LED aus ist, kann dies auf eine schlechte oder fehlende Verbindung zum JTAG/SWO-Anschluss hinweisen; eine wichtige Information für einen Techniker vor Ort, dass das Debug-Kabel möglicherweise neu verlegt oder ausgetauscht werden muss.

Schema des CodeGrip-Geräts von MikroElektronika (zum Vergrößern anklicken)Abbildung 2: Das CodeGrip-Gerät liefert wichtige Statusinformationen über fünf LEDs, die eine schnelle visuelle Rückmeldung im Feld ermöglichen, ohne dass ein Laptop angeschlossen werden muss. (Bildquelle: Mikroe)

Sobald das CodeGrip-Gerät per USB mit einem Laptop verbunden ist, zeigt es eine erfolgreiche Verbindung durch Aufleuchten der gelben USB-LINK-LED am Gerät an. Der Benutzer führt dann die CodeGrip Suite aus, um das CodeGrip-Gerät über die USB-Verbindung zu konfigurieren.

Konfigurieren von CodeGrip

Die CodeGrip Suite kann den Arm-Mikrocontroller auf dem Einplatinencomputer oft automatisch erkennen, aber er kann auch manuell mit dem Kerntyp, der Flash-Speichergröße und der RAM-Konfiguration konfiguriert werden. Allerdings lassen sich nicht alle Arm-Produktfamilien mit dem gleichen Debugger so einfach konfigurieren. Für die Arm-Familie STM32 von STMicroelectronics bietet Mikroe die CodeGrip-Einheit MIKROE-3461 an. Die Kinetis-Familie von NXP Semiconductors wird durch den CodeGrip MIKROE-3462 unterstützt. Die Bedienung des CodeGrip-Geräts und der CodeGrip Suite sind dabei identisch.

Einmal angeschlossen und konfiguriert, kann die CodeGrip Suite Programmier- und Debugging-Vorgänge vor Ort durchführen. Während einer Datenübertragung zum CodeGrip-Gerät blinkt die blaue Daten-LED und zeigt damit an, dass Daten zwischen CodeGrip-Gerät und CodeGrip Suite übertragen werden. Dies zeigt an, dass die CodeGrip-Einheit ordnungsgemäß funktioniert und den Einplatinencomputer programmiert oder debuggt.

Für das Remote-Debugging kann das CodeGrip-Gerät so konfiguriert werden, dass es sich über Wi-Fi mit einem entfernten PC verbindet, auf dem ebenfalls die CodeGrip Suite läuft. Aus Sicherheits- und Leistungsgründen sollte das Wi-Fi-Netzwerk, das für die Verbindung mit den CodeGrip-Geräten verwendet wird, von den anderen in der Industrieanlage verwendeten Wi-Fi-Netzwerken getrennt sein. Das Senden einer großen .bin- oder .hex-Datei an das CodeGrip-Gerät über Wi-Fi entspricht dem Herunterladen einer großen Datei auf einen PC, so dass es das gesamte Netzwerk verlangsamen kann. Wenn ein Remote-PC erfolgreich eine Verbindung zum CodeGrip-Gerät herstellt, leuchtet die orangefarbene NET-LINK-LED am CodeGrip-Gerät auf und zeigt damit eine erfolgreiche Verbindung an. Sobald das CodeGrip-Gerät konfiguriert ist, kann der über USB angeschlossene Laptop getrennt werden.

Die CodeGrip Suite kann den gesamten Flash-Speicher auf dem Ziel-Mikrocontroller lesen, programmieren und löschen. Sie kann auch den Inhalt des Flash-Speichers des Mikrocontrollers mit einer Quelldatei vergleichen, um zu überprüfen, ob die Firmware authentisch ist und nicht manipuliert wurde. Dies kann auch während eines Sicherheitsaudits nützlich sein, um die Sicherheit der Firmware zu überprüfen, ohne zum physischen Standort jedes Einplatinencomputers wechseln zu müssen.

Die CodeGrip Suite kann auch einen Hardware-Reset des Ziel-Mikrocontrollers durchführen. Dies kann bei einer Fehlfunktion des Einplatinencomputers oder bei Verdacht auf eine Sicherheitsverletzung nützlich sein. Normalerweise führt ein zurückgesetzter Einplatinencomputer beim Booten einen eingebauten Selbsttest (BIST) durch, der Sicherheitsprüfungen beinhaltet und verifiziert, dass das Gerät ordnungsgemäß funktioniert und nicht manipuliert wurde.

Eine leistungsstarke Funktion der CodeGrip-Einheit von Mikroe ist die Unterstützung des Arm-SWO-Echtzeit-Debug-Ports. Der SWO-Pin überträgt Debug-Informationen über den Status des Arm-Mikrocontrollers und kann verwendet werden, um in Echtzeit Status- und Trace-Informationen über den Betrieb der Firmware zu liefern. Mikroe stellt eine SWO-Bibliothek mit Funktionen zur Verfügung, die die Debugging-Möglichkeiten der CodeGrip Suite erweitern können (Abbildung 3). Dadurch kann die Mikrocontroller-Firmware einfach aus der Ferne überwacht und debuggt werden.

Abbildung: Die CodeGrip Suite von MikroElektronika kann Echtzeit-Debug- und Trace-Informationen liefernAbbildung 3: Die CodeGrip Suite kann Echtzeit-Debug- und Trace-Informationen für einen Arm-Mikrocontroller liefern, indem sie Daten über den SWO-Port streamt. Die Debug-Informationen sind zur leichteren Orientierung farblich codiert. (Bildquelle: Mikroe)

SWO-Meldungen haben drei Meldungskategorien: Info, Warnung und Fehler. CodeGrip kann eine oder alle dieser Nachrichtenkategorien anzeigen. Die angezeigten Meldungen sind zur leichteren Orientierung farbcodiert; blau für Informationen, gelb für Warnungen und rot für Fehler. So können Benutzer schnell entscheiden, was angezeigt werden soll, und auch Fehlermeldungen einfach gegenüber Warnungen und Infos priorisieren.

Fazit

Das Debuggen von Einplatinencomputern in Industrieanlagen im laufenden Betrieb kann zeitaufwändig sein, insbesondere wenn viele Einplatinencomputer programmiert und debuggt werden müssen. Außerdem ist es nicht immer praktikabel, jeden einzelnen Standort zu besuchen. Wie gezeigt, spart das Remote-Debugging über Wi-Fi mit Geräten wie CodeGrip und der dazugehörigen Software Zeit und verbessert die Produktivität.

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der Digi-Key Electronics oder offiziellen Politik der Digi-Key Electronics wider.

Über den Autor

Bill Giovino

Bill Giovino ist Elektronikingenieur mit einem BSEE von der Syracuse University und einer der wenigen, die erfolgreich vom Entwicklungsingenieur über den Anwendungsingenieur zum Technologiemarketing wechselten.

Seit über 25 Jahren wirbt Bill für neue Technologien vor technischem und nicht-technischem Publikum für viele Unternehmen, darunter STMicroelectronics, Intel und Maxim Integrated. Während seiner Zeit bei STMicroelectronics trug Bill dazu bei, die frühen Erfolge des Unternehmens in der Mikrocontroller-Industrie voranzutreiben. Bei Infineon inszenierte Bill die ersten Erfolge des Unternehmens im Bereich Mikrocontroller-Design in den USA. Als Marketingberater für sein Unternehmen CPU Technologies hat Bill vielen Unternehmen geholfen, unterbewertete Produkte in Erfolgsgeschichten zu verwandeln.

Bill war zudem ein früher Anwender des Internets der Dinge, einschließlich der Implementierung des ersten vollständigen TCP/IP-Stacks auf einem Mikrocontroller. Die Botschaft von „Verkauf durch Aufklärung“ und die zunehmende Bedeutung einer klaren, gut geschriebenen Kommunikation bei der Vermarktung von Produkten im Internet sind Bills Anliegen. Er ist Moderator der beliebten „Semiconductor Sales & Marketing Group“ auf LinkedIn und spricht fließend B2E.

Über den Verlag

Nordamerikanische Fachredakteure von Digi-Key