Mikrocontroller waren bislang beinahe ausschließlich in Embedded Systems, wie zum Beispiel in der Unterhaltungselektronik, im Einsatz. Mit Industrie 4.0 und dem Internet der Dinge entsteht derzeit jedoch ein erheblicher Bedarf an Kleinst-Steuerungen und programmierbaren intelligenten Sensoren, beides Paradebeispiele für den Einsatz von Mikrocontrollern. Der Einzug dieser vielseitigen Technologie in die Welt der professionellen Automatisierung ist infolgedessen kaum aufzuhalten.
In der Vergangenheit wurden Mikrocontroller im Allgemeinen in C und Assembler programmiert. Beide Programmiersprachen setzen jedoch höchst spezifisches Know-how voraus. Daher stößt diese Art der Programmierung bei professionellen Automatisierern, der zukünftig primären Zielgruppe, auf nur geringe Akzeptanz. Die Umsetzung komplexer heterogener Automatisierungslösungen, bestehend aus Mikrocontroller-basierenden Kleinstsystemen und herkömmlichen speicherprogrammierbaren Steuerungen verlangt darüber hinaus sowohl eine einheitliche Form der Programmierung als auch die Möglichkeit der Wiederverwendung bestehender Teilfunktionen.
Die herkömmliche Art der Mikrocontroller-Programmierung setzt auf Standard-Entwicklungsumgebungen wie Microsoft Visual Studio und Eclipse CDT oder proprietären Entwicklungsumgebungen der Mikrocontroller-Hersteller - beispielsweise Atmel Studio oder Open-Source-Lösungen wie Arduino IDE. Die Art des Controllers gibt damit das einzusetzende Programmierwerkzeug vor. Beim Einsatz unterschiedlicher Mikrocontroller in größeren heterogenen Automatisierungssystemen ergibt sich damit zwangsläufig auch eine fragmentierte Werkzeuglandschaft. Die Pflege mehrerer Entwicklungswerkzeuge und getrennter Projektrepositories verursacht nicht nur erhöhte Aufwände, sondern behindert auch die werkzeugübergreifende Wiederverwendung bestehender Teilfunktionalität.
Unternehmen, welche im Zuge der Umsetzung von Automatisierungsprojekten schon jetzt Mikrocontroller und Standard-Industriesteuerungen gemeinsam einsetzen, müssen meist auf eigene Ingenieure mit entsprechendem Spezialwissen zurückgreifen, um auch die spezifischen Anforderungen der Mikrocontroller-Programmierung erfüllen zu können.
Grafische Programmierung als Lösung
Eine abstrahierte, standardisierte Form des Engineering nach EN 61131-3, speziell die grafische Programmierung, stellt eine bewährte Lösung für die zuvor angesprochenen Problemfelder dar. Diese Industrienorm definiert fünf unterschiedliche Programmiersprachen, sowohl grafisch als auch textuell, ist für die unterschiedlichsten Einsatzzwecke geeignet und weltweit akzeptiert. Wird eine Entwicklungsumgebung nach diesem Standard verwendet, kann die Programmierung von Mikrocontrollern und Standard-Industriesteuerungen in gleicher Weise erfolgen. Darüber hinaus kann so ein großer Fundus an Standardfunktionen in Form von Funktions- und Bausteinbibliotheken übergreifend genutzt werden.
Als Beispiel für eine derartige Entwicklungsumgebung sei das Engineering-Werkzeug logi.CAD 3 von logi.cals genannt. Dieses Programmiersystem bietet die Möglichkeit, Mikrocontroller verschiedener Hersteller, zum Beispiel Atmel AVR, ARM Cortex-M, ESP8266, mit Hilfe der normierten Programmiersprachen Structured Text (ST, Quellcode auf textueller Basis), Funktionsbausteinsprache (FBS, grafische Erstellung der Applikationslogik) sowie Ablaufsprache (AS, Implementierung von Schrittketten) zu programmieren. Damit hat der Anwender die Möglichkeit, mit derselben Entwicklungsumgebung und sogar in gemeinsamen Projekten ein breites Spektrum an Steuerungen vom Mikrocontroller bis hin zu Mehrkern-Industrie PCs zu programmieren. Für die einfachere Integration spezieller hardwarenaher Funktionen oder zum Anbinden an verfügbare Komponenten, wie zum Beispiel zur Kommunikation, bietet logi.CAD 3 außerdem die Möglichkeit, eigene C-Bibliotheken oder -Funktionen zu erstellen und zu integrieren.
Ein Beispiel zum Vereinfachen der hardwarenahen Portierung Mikrocontroller-spezifischer IO-Schnittstellen ist das sogenannte PEC-Framework (Laser & Co Solutions). Auf der Basis der PEC-Bibliotheken werden plattformspezifische Umsetzungen aufgebaut. Varianten für 8 Bit AVR Controller und 32 Bit ARM Controller setzen die Bereiche Xmc, Stm32 und Sam um. Hier finden sich vor allem spezifische Implementierungen der herstellerabhängigen IP (Internal Peripherals). Möglich wird diese Portabilität durch entsprechende VariationPoints.
Durch diesen Lösungsansatz (Programmiersprachen auf getrennten Abstraktionsschichten in Kombination mit portabler IO-Anbindung) eröffnet sich dem Ingenieur die Möglichkeit, eine Applikation analog zu Anwendungen für herkömmliche Industriesteuerungen auf unterschiedlichen logischen Ebenen zu implementieren. Das Verwenden beziehungsweise Umsetzen von Funktionen, welche spezifisch auf die jeweilige Hardware zugeschnitten sind, zum Beispiel I/O Funktionalitäten, können wie gewohnt in der Sprache C implementiert werden. Für die Implementierung von Basisfunktionen der Automatisierungsapplikation, wie beispielsweise Regler-Funktionen, kann die textuelle Programmierung in Strukturiertem Text (ST) genutzt werden. Die Umsetzung von Schrittketten wird durch die Verwendung der Ablaufsprache (AS) wesentlich erleichtert und ermöglicht außerdem die Erstellung von übersichtlichem und gut wartbarem Quellcode. Auf all diesen Elementen aufbauend kann schließlich die Funktionsbausteinsprache (FBS) dazu verwendet werden, mit Hilfe eines grafischen Editors die Basisfunktionen der Applikation entsprechend zu verschalten und damit die Applikation zu parametrieren und zu vervollständigen.
Einheitliche Form der Programmierung
Die Vorteile der Implementierung einer Automatisierungsapplikation mit Hilfe der normierten Sprachen der EN 61131-3 liegen somit auf der Hand: neben der zuvor schon erwähnten einheitlichen Form der Programmierung sowohl für Mikrocontroller als auch für herkömmliche Industriesteuerungen sorgen die standardisierten Sprachen für mehr Sicherheit und Komfort bei der Programmierung. Im Gegensatz zu den Sprachen C oder Assembler reduzieren die genormten und speziell auf die Anforderungen der Automatisierungstechnik ausgelegten Sprachen die Risiken bei der Programmierung erheblich.
Die Verwendbarkeit der EN 61131-3 für die Programmierung von Mikrocontrollern führt einerseits zu höherer Akzeptanz der Anwender und andererseits zu portablen und damit besser wiederverwendbaren Applikationen und Software-Komponenten. Es ist zu erwarten, dass der Bedarf an einer entsprechenden Werkzeugunterstützung in diesem Bereich in der nächsten Zeit stark steigen wird. Hersteller derartiger Engineering-Software sind gefordert, spezielle Bedarfe aus dem zu erwartenden Einsatzfeld der Mikrocontroller zu adressieren – Unterstützung neuer Low-Cost Plattformen, Deployment von Applikationen für eine große Menge an Endgeräten und so weiter. Der gemeinsame Einsatz von Mikrocontrollern zusammen mit herkömmlichen Steuerungen verspricht auf jeden Fall eine interessante Perspektive bei der Umsetzung von Projekten im Kontext von Industrie 4.0 und IoT.