PLCopen-Motion-Control-Funktionsbausteine (FBs) haben sich mittlerweile für die Programmierung der Bewegungsführung auf vielen SPSen als Standard etabliert. Diese FBs lassen sich in allen IEC-Programmiersprachen (FUP, KOP, SCL) und auf allen Ablaufebenen solcher Steuerungen einsetzen. Damit stehen sie dem Logik-Programmierer genauso zur Verfügung wie dem Technologen, der anspruchsvolle Algorithmen in SCL programmieren möchte.
Die Stärke der PLCopen-FBs besteht einerseits in ihrem Bekanntheitsgrad durch die Standardisierung und andererseits in ihrer Kombinierbarkeit. Die angebotenen Funktionen stellen die Grundelemente der Bewegungsführung dar und lassen sich in beliebiger Weise kombinieren, überlagern und gegenseitig ablösen. Damit ist es beispielsweise möglich, in Interrupt-Programmen schnell und definiert in eine laufende Bewegung einzugreifen. PLCopen-FBs eignen sich außerdem dazu, feste Abläufe zu implementieren. Jeder Schritt des Maschinenablaufs findet sich als Code-Sequenz im Anwenderprogramm. Dadurch werden Programme aber oft sehr umfangreich, was das spätere Anpassen an Prozessveränderungen erschwert. Das Programmieren wird also umso aufwendiger, je mehr sich die Maschinenabläufe im Betrieb ändern können.
Genau hier liegt der Vorteil der CNC-Programmierung. Denn bei Werkzeugmaschinen werden die Abläufe an jedes Produkt angepasst. Der Bediener gibt eine Sequenz vor, die Steuerung führt sie nur noch aus. Solche Anwendungen gibt es nicht nur in der High-End-Werkzeugmaschinen-Technik, sondern bereits im Bereich kleiner Maschinen mit wenigen Antriebsachsen. Die Eingabesprache G-Code ist für die meisten Anwendungen dabei nicht zwingend erforderlich. Die eigentliche Anforderung besteht oft darin, die Motion-Funktionen zur Laufzeit frei konfigurieren zu können und das bei möglichst geringem Programmieraufwand.
Konfigurierbare Bewegungssequenzen für Kompaktsteuerungen
Eine Micro-SPS wie die Simatic S7-1200 wird meist zur Automatisierung einfacher Maschinenabläufe mit ein oder zwei Antriebsachsen verwendet. Da ist die Frage berechtigt, welche konfigurierbaren Bewegungssequenzen in diesem Bereich anfallen. Das einfachste hier zu nennende Beispiel ist das Erzeugen eines Drehzahlprofils, also die Vorgabe eines zeitabhängigen Drehzahl-Verlaufs. Die Aufgabe besteht beispielsweise darin, Wasserspiele zu erzeugen. Dazu werden Springbrunnenpumpen über verschiedene Drehzahlprofile angesteuert. Über die Drehzahl lässt sich die Höhe der Fontäne verändern. Um etwas Abwechslung in die Wasserspiele zu bringen, sollen die Profile gelegentlich variieren. Dazu möchte der Betreiber aber weder ins Programm eingreifen müssen, noch in der Anzahl und Art der verfügbaren Operationen eingeschränkt sein.
Die Konfigurierbarkeit einer Bewegungssequenz wird bei dieser Micro-SPS dadurch erreicht, dass alle relevanten Informationen in Tabellen hinterlegt werden. Dazu zählen sowohl die Art des Bewegungsauftrags als auch alle zugehörigen Parameter. Der Bediener kann diese Werte jederzeit von einem Bediengerät aus verändern. Bei der S7-1200 sind Bewegungssequenzen in Form einer Auftragstabelle implementiert. Zur Laufzeit verhält sich eine Auftragstabelle wie ein Datenbereich, der aus dem Anwenderprogramm heraus oder von Bediengeräten modifiziert werden kann. Im Engineering werden Auftragstabellen als spezielle Objekte behandelt, um den Anwender bei der Erstellung zu unterstützen. Er wählt in der Tabelle zeilenweise zunächst den gewünschten Auftragstyp aus und ergänzt danach die zugehörigen Parameter. Positionieraufträge lassen sich bei Bedarf fließend miteinander verketten, ohne die Achse an der Zielposition anzuhalten. Geschwindigkeitsaufträge haben eine vorgegebene Dauer und bringen die Achse auf die angegebene Geschwindigkeit. Diese Geschwindigkeit wird auch nach Ablauf der Auftragsdauer beibehalten und dient als Startgeschwindigkeit für den Folgeauftrag. Damit ist es möglich, Auftragstabellen untereinander oder mit PLCopen-Bewegungsaufträgen zu verketten, ohne die Achse zwischenzeitlich anzuhalten.
Resultierende Bewegungsabläufe visualisieren
Bewegungsabläufe werden üblicherweise an der laufenden, realen Maschine verbessert. Erst dann werden die Details der Vorgänge sichtbar und messbar. Darunter fallen Aspekte wie die gesamte Dauer der Sequenz, der Einfluss der Ruckbegrenzung auf die Übergänge oder auch die Tatsache, dass die Achse bei dem eingestellten Verzögerungswert über ein Zwischenziel hinausschießen würde. Um solche Erkenntnisse schon im Engineering zu ermöglichen, besitzt die Auftragstabelle eine grafische Darstellung des Positions- und Geschwindigkeitsverlaufs, quasi eine Simulation der Bewegungssequenz. Sie verdeutlicht dem Anwender die Auswirkung der Tabellenaufträge auf die Verläufe. Er kann auch erkennen, wenn ein Software-Endschalter überfahren wird, weil zu lange mit Geschwindigkeitsvorgabe gefahren wird.
In dem Beispiel in Bild 2 wird ein Geschwindigkeitsprofil dargestellt. Schritt 3 ist in der Tabelle selektiert und der zugehörige Abschnitt wird in der Grafik hervorgehoben. Laut Vorgabe soll der Antrieb bis zum Stillstand abbremsen und der Folgeschritt nach Ablauf einer Sekunde gestartet werden. Die Darstellung veranschaulicht, dass es mit der vorgegebenen Verzögerung nicht möglich ist, innerhalb einer Sekunde anzuhalten. Um dies zu erreichen, muss der Anwender entweder die Dauer des Abschnitts oder die Verzögerung erhöhen. Auf den gleichen Sachverhalt weist auch schon die Eingabetabelle hin, indem das Feld für die Auftragsdauer in Warnfarbe hinterlegt ist. Ein Tooltip zeigt die Ursache für die Warnung an. Allerdings sind die visuellen Signalverläufe für den Anwender anschaulicher. Sie verdeutlichen auch solche Sachverhalte, die für den Anwender wichtig sind, die aber das System nicht als Fehler bewerten kann.
Nebenläufige Prozesse steuern
Eine Auftragstabelle steuert nicht nur die Bewegung einer Achse, sondern koordiniert auch gleichzeitig die synchron dazu anfallenden Prozessaktivitäten. So könnte während der gesamten Tabellenbearbeitung eine steuerungsinterne Freigabe erteilt werden. Im dritten Bearbeitungsschritt kann beispielsweise ein Ventil geöffnet und im letzten Schritt eine mechanische Klappe betätigt werden. Um solche schrittrelevanten Funktionen zu spezifizieren, hat jede Tabellenzeile einen Wert ‚Schrittcode‘. Während der Bearbeitung der Tabelle wird der aktuelle Schrittcode ausgegeben. Der Wert besteht aus 16 Bits, von denen jedes eine eigene Steuerungsfunktion übernehmen kann.
Auftragstabelle in Anwenderprogramm einbauen
Das Abarbeiten der Bewegungssequenzen erfolgt durch den Funktionsbaustein ‚MC_CommandTable‘, der sich wie eine Erweiterung der PLCopen-Bausteine darstellt. Er verhält sich wie andere Motion-FBs, löst beim Aufruf die laufende Bewegung ab und kann genauso durch andere Motion-FBs abgebrochen werden.
Eine Auftragstabelle kann bis zu 32 Aufträge enthalten. Was davon abgearbeitet wird, entscheidet der Anwender durch Angabe des Ausgabebereiches (StartStep … EndStep). Folglich kann eine Auftragstabelle mehrere unabhängige Auftragssequenzen enthalten. Der Index des aktuell bearbeiteten Schritts und der Schrittcode werden bei der Abarbeitung an den Ausgängen ‚CurrentStep‘ und ‚StepCode‘ ausgegeben. Diese Signale können im Programm weiterverwendet oder auf Peripherieausgänge geschaltet werden.
(mf)