Skriptsprachen wie JavaScript oder PHP haben einen festen Platz in der modernen Informationstechnik. Sie finden sich überall dort, wo es native Programmiersprachen, die direkt als Maschinencode kompiliert werden, durch übersichtliche Befehlsketten zu ergänzen gilt. Der Code von Skriptsprachen wird in der Regel über Interpreter verarbeitet. Mit der jüngsten Erweiterung für das Open Core Interface von Rexroth hält nun die schlanke und einfache Skriptsprache Lua Einzug in die Fabrikautomation.
Programmierung von Achsbewegungen
Ursprünglich in Brasilien entwickelt und nach dem portugiesischen Wort für Mond benannt, ist die heute von einer Open Source Community gepflegte Skriptsprache weltweit im Einsatz. Durch ihre überschaubare Grammatik findet sich Lua in vielfältigen aktuellen Anwendungen wieder: im Gaserkennungssystem des Space Shuttle genauso wie in Druckern und Routern oder Bildbearbeitungsprogrammen. Entwickler von Computerspielen nutzen Lua unter anderem zur Bewegungssteuerung komplexer Spielfiguren. Die vereinfachende Eigenschaft von Lua nutzt Bosch Rexroth für das Steuerungssystem IndraMotion MLC, um Achsbewegungen von Robotern und anderen Maschinen als effiziente Alternative zur SPS-Programmierung bzw. ohne gesonderte Entwicklungs- oder Engineering-Umgebung zu definieren. Um Mehrachsbewegungen wie einen Pick&Place-Vorgang in Lua zu definieren, schreibt der Konstrukteur lediglich ein simples Skript in einem gewöhnlichen Texteditor, das er anschließend per Filetransfer an die Steuerung überträgt. Die einfache Syntax von Lua ist an die Standardprogrammiersprache C angelehnt. Schon allein daraus ergibt sich gegenüber der zyklusbasierten SPS-Programmierung mit ihren typischen State-Maschinen ein deutlicher Effizienzgewinn. Weil Bosch Rexroth den mit 500KB schlanken Lua-Interpreter in das Open Core Interface seiner IndraMotion-MLC-Steuerungen integriert hat, kann mit Ausnahme der zyklischen Verarbeitung der E/A-Module auf SPS-Code verzichtet werden. Im Rahmen der Weiterentwicklung wird auch das browserbasierte Editieren und Testen auf dem integrierten Webserver der Steuerung ermöglicht.
Maschinenbauer und Endkunde
Ist der kundenspezifische SPS-Code einmal in gut zugängliche Skripte verlagert, wird die Logik auch für den Endkunden transparent, verständlich und adaptierbar. Die Inbetriebnahme kann nun deutlich schneller erfolgen. Bei Bedarf lädt der Endkunde das Skript einfach aus der Steuerung, um beispielsweise die Programmierung von Achsbewegungen im Texteditor zu finalisieren. Darüber hinaus verringert sich der Serviceaufwand vor Ort. Denn auch künftige Anpassungen kann entweder der Kunde selbst oder ein Techniker vornehmen – gegebenenfalls auch per Fernwartung. Um die Effizienz im Engineering zu steigern, stellt Bosch Rexroth mit dem Software Development Kit des Open Core Interface eine zusätzliche Abstraktionsschicht bereit. In einer Funktionsbibliothek findet der Anwender vordefinierte und ausführlich kommentierte Befehle, deren Syntax sich an objektorientierten Programmiersprachen orientiert. Das erleichtert Anwendern der bislang verwendeten Programmiersprache Robot Control Language (RCL) von Rexroth den Umstieg auf Lua in Verbindung mit neuen Software-Versionen. So lassen sich mit selbsterklärenden Kommandos beliebige Robotertypen steuern: DeltaRobot.MoveAbs oder DeltaRobot.MoveCircular beispielsweise kommandieren einen Delta-Roboter. Alternativ oder ergänzend dazu können Projektierer bei Bedarf die Syntax anderer Robotersprachen mit Lua nachbauen. Als Entwicklungsumgebung dient das kostenfrei verfügbare Lua Development Toolkit (LTD). 90 bis 95 Prozent des Fremdcodes lassen sich auf diese Art unverändert weiterverwenden.
Praxisbeispiel Roboterzelle
Die vereinfachende Wirkung der Skriptsprache Lua zeigt sich beispielsweise in der Robotik mit deren komplexen Bewegungen. Ein typischer Fall aus der Praxis: Ein Maschinenbauer erstellt für seinen Endkunden eine vorkonfigurierte Roboterzelle mit einem Delta-Roboter. Um den Roboter mit möglichst wenigen Zeilen Code zu bewegen und dem Endkunden ein finales Parametrieren zu ermöglichen, wird lediglich das Steuerungssystem IndraMotion MLC und das Open Core Interface benötigt. Die Programmierung erfolgt in Lua – ohne schwergewichtige Entwicklungsumgebung mit Compiler/Linker. Unmittelbar vor Inbetriebnahme der Zelle komplettiert ein Servicetechniker oder der Endanwender selbst das Lua-Skript. In wenigen Minuten ist das kurze Programm aus der Steuerung auf den PC oder ein Smart Device geladen und mittels Texteditor finalisiert. Dabei werden lediglich die Befehle vom Typ DeltaRobot.MoveAbs mit den endgültigen Parametern für Position, Ruck und Geschwindigkeit versehen. Nach der Rückübertragung in die Steuerung kann der Roboter in Betrieb gehen.