Hochsprache als intelligente Lösung für die Automatisierung

Die wesentlichen Kosteneinsparungen sind in der Steuerungs- und Antriebstechnik nicht auf der Hardware-, sondern auf der Software- und der Toolebene zu erreichen. Je komplexer die Antriebs-Aufgabe ist, desto wichtiger ist eine leistungsfähige Programmiersprache. Mit JetSym STX bietet die Jetter AG als einer der wenigen Steuerungs- und Antriebslieferanten dem Anwender eine echte Hochsprache. Alle, die eine Sprache wie C++, C# oder Java beherrschen, fühlen sich sofort darin zurecht. Es existieren diverse Lösungen dafür, wie die Verbindung zwischen Antriebsregler und Steuerung optimal hergestellt werden kann. Insbesondere bei der Softwareintegration mangelt es vielfach, da bei den klassischen SPS-Sprachen die Integration von Antrieben ursprünglich nicht vorgesehen war. JetSym STX hingegen verfügt über eine Reihe von verständlichen Motion-Befehlen, die die Programmierer in ihrer Anwendung unterstützen. Sie reichen von der Initialisierung der Achse über einfache Punkt-zu-Punkt-Positionierung bis hin zu komplexen Interpolationen und 3D-Bewegungsprofilen. Die Sprache wurde von Beginn an für die Integration der Antriebstechnik in die Programmierung designed. Setup der Antriebe An dieser Stelle ist anzumerken, dass die Antriebe in JetSym nicht nur programmiert, sondern auch definiert, parametriert und in Betrieb genommen werden. Sind die Parameter definiert, braucht man diese im Quellcode nicht noch einmal beschreiben; sie werden automatisch übernommen. Ähnlich verhält es sich mit koordinierten Achsen: Im Motion-Setup wird ein Bahnverbund von zwei oder mehr Achsen definiert. Dieser Verbund verhält sich im Anwenderprogramm als Objekt mit einem Tool Center point (TCP). Der Programmierer gibt dem TCP des Achsverbundes die Bahn vor wie z.B. eine Gerade, ein Kreis oder eine beliebig zusammengesetzte Bahn. Er braucht sich also nicht um die Berechnung hochkomplexer Polynome oder Interpolationen zu kümmern, sondern er gibt lediglich den Verfahrweg des TCP an. Leicht lesbarer Ablauf Sauber strukturierte und leicht lesbare Programme sind bei komplexeren Anwendungen wichtig. Für Ablaufsteuerung, wie sie bei Antriebsanwendungen häufig vorkommt, enthält JetSym STX eine besonders geeignete WHEN ..THEN ELSE_WHEN … THEN ELSE_TIME …THEN Bedingung. Logisch hält WHEN den ausführenden Task solange an, bis eine der angegebenen Bedingungen erfüllt ist. Die Realisierung erfolgt so, dass alle Bedingungen des aktuellen WHEN-Statements einmal geprüft werden – wenn keine Bedingung erfüllt ist, wird der ausführende Task zunächst deaktiviert. Ist eine Bedingung erfüllt, werden die zugehörigen Anweisungen ausgeführt und das WHEN verlassen. Für Fälle, in denen die Bedingungen nie erfüllt sein könnten, besteht die Möglichkeit einen Timeout-Zweig anzugeben. Die Anweisungen nach ELSE_TIME werden nur einmal ausgeführt, wenn innerhalb der angegebenen Zeit keine der anderen Bedingungen erfüllt war. Mit diesem Befehl lassen sich Bewegungen zum Beispiel eines Pneumatikzylinder in einem Block überwachen. Kombinationen mit Arithmetik und Datenstrukturen Eine Hochsprache ist prädestiniert, Datenstrukturen zu verwalten und arithmetische Ausdrücke höherer Ordnung darzustellen. Beides ist im Zusammenhang mit Antriebstechnik hoch interessant. So lassen sich in einem Positionierbefehl MotionMovePtP() direkt arithmetische Ausdrücke einfügen. Der in Bild 1 dargestellte Positionierbefehl beinhaltet als Positionsvorgabe direkt ein Element aus einem indizierten Array. Das ist von großem Wert bei Applikationen, in denen von der Achse wiederholt vom Benutzer zu variierende Positionen oder / und Geschwindigkeiten in einer bestimmten Abfolge abgefahren werden. Ein klassisches Beispiel dafür ist ein Pick & Place-Roboter mit mehreren Ablagepositionen. Bahnsteuerung Im Entwicklungstool JetSym lassen sich mehrere Antriebe zu einem Technologieverbund oder zu einem Bahnverbund zusammenfassen und damit koordinierte Achsbewegungen ausführen. Bahnverbunde sind eine Zusammenfassung mehrerer zuvor konfigurierter Achsen, die gemeinsam eine Bahn beschreiben. Die beteiligten Achsen bilden eine kinematische Kette, an deren Ende ein Werkzeug angebracht ist, über das die Achsen mechanisch gekoppelt sind. Beispiele dafür sind 3D-kartesische Verbunde oder Scara-Roboter. Technologieverbunde sind eine Zusammenfassung mehrerer zuvor konfigurierter Achsen, die gemeinsam einen Prozessablauf beschreiben. Zwischen den Achsen besteht in der Regel keine mechanische Kopplung. Es wird eine Aufteilung in eine Leitachse und mehrere Folgeachsen vorgenommen. Beispiele sind elektronische Getriebe oder auch elektronische Kurvenscheiben. Der Achsverbund Achsverbunde verhalten sich wie eigenständige Objekte. Damit wird die Programmierung von koordinierten Bewegungen erleichtert und systematisiert. Die Programmierung eines Bahnverbundes erfolgt unabhängig von der tatsächlichen Achskonfiguration in einem raumfesten Anwenderkoordinatensystem. Wird ein Technologieverbund mit einer entsprechenden Funktion gestoppt, halten automatisch alle beteiligten Achsen an. Sofern es technologisch erforderlich ist, dass Einzelachsen innerhalb eines Verbundes ein gesondertes Verhalten aufweisen (z.B. Auskoppeln einer fliegenden Säge, Ändern von Reglerparametern während der Bewegung), wird innerhalb des Achsverbundes dafür eine Funktion zur Verfügung gestellt. Ein Bahn- oder Technologieverbund wird programmtechnisch gleich behandelt wie eine Einzelachse. Der Programmierer kümmert sich nur um die zu fahrende Bahn, sei das eine Gerade, ein Kreis, ein Helix, ein Polynom oder die Zusammensetzungen dieser Funktionen. In der Praxis bedeutet dies, dass er dem TCP des Verbundes die zu fahrende Bahn vorgibt. Der Rest, und damit sind die komplexen Koordinations- und Bahnberechnungen gemeint, erledigt das System automatisch. Es geht noch weiter Der Nutzen einer Hochsprache wie JetSym STX in der Automatisierung zeigt sich besonders bei Aufgaben von gewisser Komplexität. Dazu gehören auch Antriebsaufgaben. Mit JetSym STX lassen sich dafür kompakte und übersichtliche Programme gestalten, da der Befehlsumfang des IEC-normierten strukturierten Textes erweitert wurde. Je höher die Anforderungen der zu lösenden Aufgabe sind, desto mehr ist der Einsatz einer Hochsprache wie JetSym STX gefragt. Um dem Anspruch einer modernen Hochsprache in letzter Konsequenz gerecht zu werden, lässt JetSym-STX auch die objektorientierte Programmierung zu. Der Nutzen, den die objektorientierte Programmierung den Anwender bringt, wird Inhalt des dritten und letzten Teil dieses Beitrags sein.