Print Friendly, PDF & Email
Share

Entwickeln von Multi-Motorsteuerungen mit hoher Leistung unter Beibehaltung des modularen Aufbaus

Dies ist ein Auszug aus einer Präsentation von Jonas Hemming, CTO bei Unjo, auf der SPS IPC Drives 2011. Anliegen der Präsentation war es zu erklären, inwieweit richtig konzipierte, modulare, FPGA-basierte Multi-Motorsteuerungen im Vergleich zur modernen Digitalsignalprozessor (DSP) -Technologie innerhalb sehr kurzer Entwicklungszeiten zu flexiblen, kundenspezifischen Steuerungssystemen führen.

„Unjo besitzt den Ehrgeiz, zu den Besten zu zählen, wenn es um die Entwicklung effizienter FPGA-Anwendungen geht, und setzt auf eine Methode, bei der wirklich parallele FPGA mit hoher Leistung und Energieeffizienz entstehen und gleichzeitig der modulare Aufbau erhalten bleibt“, erklärt Jonas Hemming, CTO bei Unjo.

 

Was braucht man für die Konzeption eines kundenspezifischen Antriebssystems?

Um ein kundenspezifisches Antriebssystem effizient planen zu können, wenn hohe Anforderungen an eine möglichst kurze Entwicklungszeit gestellt werden, ist ein Höchstmaß an Modularität und Flexibilität gefordert. Möglicherweise geht es um verschiedene Motortypen und Kommutierungsverfahren oder verschiedene Steuerungen, jedoch beispielsweise auch um verschiedene Arten von Sensoren. Häufig läuft dies auf einen Kompromiss zwischen modularem Aufbau und Flexibilität auf der einen und Präzision und Geschwindigkeit auf der anderen Seite hinaus. Um hohe Leistung und Effizienz zu gewährleisten, ist jedoch beides nötig. Noch viel deutlicher wird dies, wenn eine größere Anzahl von Motoren gesteuert werden soll und auch noch die Steuerungen der einzelnen Motoren voneinander unabhängig sein sollen, außer wenn die Motoren aufeinander abgestimmt werden müssen. Derart weitgehende Flexibilität stellt sogar noch wesentlich höhere Anforderungen an das Steuerungssystem.

Moderner sequenzieller Digitalsignalprozessor

Eines der wesentlichen Probleme bei CPU-basierten Echtzeitsystemen geht darauf zurück, dass alle Vorgänge sequenziell ausgeführt werden. Die Abbildung stellt die Kernprozesse in einer Motorsteuerung dar. Die einzelnen Blöcke werden hier scheinbar parallel ausgeführt. Doch wenn man den Prozess genauer betrachtet, ist zu erkennen, dass immer nur ein Block ausgeführt wird. Um nun alle diese Prozesse in der richtigen Reihenfolge hintereinander auszuführen, ist oft genug eine Art der Ablaufplanung erforderlich. Die Darstellung zeigt, wie dies in einem interruptgesteuerten System aussehen kann. Bei anderen Verfahren bestehen ähnliche Schwierigkeiten. Der Grund hierfür ist, dass alle diese Prozesse ein und dieselbe Ressource beanspruchen – ZEIT!

Die beschränkt verfügbare Zeit bringt eine ganze Reihe von Herausforderungen mit sich, die wichtigsten sind jedoch: zum einen, dass der Ressourcenbedarf und die Komplexität drastisch zunehmen, wenn mehrere Motoren zu steuern sind, und zum zweiten, dass jede Veränderung an wesentlichen Bestandteilen der Software einen umfangreichen und komplexen Verifizierungsprozess erfordert, der wieder genau von der allgemeinen Verteilung der Zeit abhängt. Diese Bedingungen stehen in direktem Widerspruch zu der Forderung, kundenspezifische, hochleistungsfähige Multi-Motorsysteme innerhalb kurzer Zeit konzipieren zu können.

Was ist also zu tun? Man kann zum Beispiel den Prozessor mit zusätzlicher Hardware – Peripheriegeräten – unterstützen, sodass die Ausführung aus der sequenziellen Verarbeitung in die Parallelverarbeitung der Hardware verlagert wird. Dies hilft zwar offensichtlich, doch bleiben große Teile des Prozesses auch dann noch sequenziell. Darüber hinaus können die Peripheriegeräte eine zusätzliche Einschränkung bedeuten, da sie in der Regel recht unflexibel sind.

Halbparalleles, feldprogrammierbares Gate-Array (FPGA)

Wenn das System in ein FPGA (programmierbare Logikschaltung) konstruiert ist, entfällt das Problem der unflexiblen Peripheriegeräte, denn sie können nach Bedarf modifiziert werden. Das Problem der sequenziellen Software wird dadurch aber immer noch nicht gelöst, außerdem könnte man anführen, dass eine zentrale Verarbeitungseinheit, die in einem FPGA realisiert ist, weder eine kostengünstige noch eine ressourcenschonende Lösung ist, zumindest dann nicht, wenn sie aus programmierbaren Logikschaltungen besteht.

Echtes paralleles FPGA

Das gesamte Potenzial eines FPGA tritt erst zutage, wenn sehr viel größere Teile der zentralen Steuerungsfunktionen direkt in einer programmierbaren Logikschaltung implementiert werden. Dies hat zum Ziel, mehr oder weniger die gesamte Abwicklung zeitkritischer Prozesse unterhalb des Millisekundenbereichs in die echte Parallelverarbeitung zu verlagern – hier dargestellt durch den Steuerungsblock außerhalb des eingebetteten Prozessors. Auf diese Weise wird die gesamte sequenzielle Abwicklung zeitkritischer Prozesse vermieden. Dem Prozessor fällt weiterhin die Aufgabe zu, die Kontrolldatenströme, die üblicherweise langsamer und von eher sequenzieller Art sind, oder andere organisatorische Operationen abzuwickeln.

Wenn mehrere Steuerungsblöcke realisiert werden, lassen sich mehrere Motoren ohne Überlastung der CPU steuern. Letztere hat dann nur noch die Aufgabe, die Steuerungsblöcke zu steuern und zu überwachen, die die eigentliche Arbeit machen. Hierbei ist zu bemerken, dass die Steuerungsblöcke nicht alle gleich sein müssen. Sie können sich in ihrer Leistung und Komplexität unterscheiden oder verschiedene Motortypen steuern. Grenzen sind dem mit größerer Wahrscheinlichkeit durch das Design der umgebenden Hardware gesetzt.

Ebenfalls bemerkenswert: Weil zwischen den Blöcken so gut wie gar keine unbeabsichtigte Interaktion stattfindet, ist der Verifizierungsaufwand beim Hinzufügen oder Entfernen vorgefertigter Steuerungsblöcke nur gering verglichen mit entsprechenden Veränderungen in der CPU-Umgebung. Auch Module völlig unterschiedlicher Art können in dieses Design eingefügt werden, beispielsweise wenn mehrere Anbieter Funktionsblöcke (IP-Blöcke) liefern, in denen alle allgemeinen Feldbussysteme wie auch das Echtzeit-Ethernet implementiert sind.

Schlussfolgerungen

 

Share this!

×