Ansteuerung einer Schrittmotorachse mit SPS und HMI
Autor: Matthias Stork, Lukas Kriete
Einleitung
Im Rahmen des Praktikums „Produktionstechnik“ im Studiengang Mechatronik mit dem Schwerpunkt „Global Production Engineering“ soll ein Projekt der praktischen Automatisierungstechnik mit Hilfe einer Speicherprogrammierbaren Steuerung (SPS)-Anlage realisiert werden. Konkret befasst sich dieses Projekt mit einer Schrittmotorachse, welche von einer Siemens Simatic SPS in Kombination eines HMI angesteuert wird.
Vorgehensweise nach V-Modell
Anforderungsdefinition
Die Anforderungsdefinition legt verbindliche Anforderungen an ein zu entwickelndes System dar. Zu Projektbeginn wurde ein von zwei Personen gut transportierbarer Aufbau, welcher sowohl eine digitale, als auch eine analoge Bedienbarkeit ermöglichen soll, festgelegt. Eine Einkaufsliste zur Bestellung der benötigten Materialien wurde der Anforderungsdefinition entsprechend erstellt.
Systementwurf
Die Systementwürfe (funktional und technisch) beinhalten die detaillierten Spezifikationen der im Projekt verwendeten Bauteile und Schnittstellen.
Funktionaler Systementwurf
Der funktionale Systementwurf gibt Aufschluss über die Verbindungen der jeweiligen Komponenten. Hierbei steht die Funktionsweise im Fokus. Hierbei erhält die SPS Signale von dem digitalen oder analogem Bedienelement und verarbeitet diese. Der GeckoDrive (Motortreiber) erhält die von der SPS ausgegebenen Signale und steuert damit den Motor an, welcher über eine Kupplung den Riementrieb der Linearachse antreibt. An dem Motor ist außerdem ein Encoder montiert, welcher die Rotation des Motors als Signale ausgibt.
Technischer Systementwurf
Der technische Systementwurf gibt Aufschluss über die Daten und Signale, welche die Systemkomponenten benötigen bzw. genieren, empfangen oder aussenden. Die SPS verarbeitet digitale und analoge Signale und übermittelt dem GeckoDrive ein Step- (Schrittanzahl) und Directionsignal (Drehrichtung). Diese Signale dienen zur Ansteuerung des Motors. Die Drehsignale des Encoders werden im RS422-Protokoll ausgegeben.
Komponentenspezifikation
Die Schnittstellen, Aufgaben und Spezifikationen der ausgewählten Bauteile werden in der Komponentenspezifikation beschrieben. In diesem Projekt wurden folgende Komponenten verbaut und genutzt (Auszug aus den Datenblättern):
Hardware:
SPS-Aufbau
Netzteil | SIMATIC ET 200SP (T.Nr. 6EP7133-6AE00-0BN0) |
Steuerung | SIMATIC CPU 1515SP PC2 (T.Nr. 6ES7677-2DB40-0AA0) |
Mensch-Maschinen Schnittstelle | SIMATIC HMI Comfort Panel (T.Nr. 6AV2-124-0GC01-0AX0) |
Analoges Eingangsmodul | T.Nr. 6ES7134-6HB00-0DA1 |
Analoges Ausgangsmodul | T.Nr. 6ES7135-6HB00-0DA1 |
Digitales Eingangsmodul | T.Nr. 6ES7131-6BF00-0CA0 |
Digitales Ausgangsmodul | T.Nr. 6ES7132-6BF00-0CA0 |
- SIEMENS Hutschiene
- Widerstände 1,2 kOhm um die Eingänge des GeckoDrive mit den Ausgängen der SPS beschalten zu können
Schrittmotortreiber: GeckoDrive G201X
Eingangsspannung | 18-80 VDC |
maximale Stromaufnahme des angeschl. Motors | 7 A |
Induktivität des Motors | 1-50 mH |
Eingangsfrequenz des Step-Input | 0-200 kHz |
Spannung der Inputs | 3,3-5 VDC |
Inputs | Spannungsversorgung, Disable, Direction, Step, Common, Current Set |
Outputs | Winding A+B (1 Schrittmotor) |
- Netzteil für den GeckDrive: Tisch- und Wand-Festspannungsgeräte Serie PS-500 (PS 524-05 R)
Schrittmotor: Igus NEMA 23 MOT-AN-S-060-020-056-L-D-AAAD
Nennspannung | 24-48 V DC |
max. Eingangsspannung | 60 V DC |
Nennstrom | 4,2 A |
Haltemoment | 2,0 Nm |
Schrittwinkel | 1,8° |
Widerstand pro Phase | 0,5 Ω ± 10% |
Induktivität pro Phase | 1,9 mH ± 20% |
Pin 1 | Signal A/ (braun) |
Pin 2 | Signal A (weiß) |
Pin 3 | Signal B/ (blau) |
Pin 4 | Signal B (schwarz) |
Pin 5 | PE |
Encoder
M12 8-polig | 5 V DC |
Impulse/Umdrehung [1/min] | 500 |
Index | Ja |
Line Treiber | RS422 Protokoll |
Pin 1 | Signal A (weiß) |
Pin 2 | Signal A/ (braun) |
Pin 3 | Signal B (grün) |
Pin 4 | Signal B/ (gelb) |
Pin 5 | 0V (grau) |
Pin 6 | Signal N/ (rosa) |
Pin 7 | Signal N (blau) |
Pin 8 | 5V DC (rot) |
- Netzteil für den Encoder: Mean Well DR-15-5 Hutschienen-Netzteil (DIN-Rail) 5 V/DC 2.4 A 12 W 1
Bremse
M8 3-polig | 24 V DC |
Leistung | 8 - 11 W |
Haltemoment | 0,4 - 2,0 Nm |
Massenträgheitsmoment | 0,01 - 0,07 kgcm² |
Pin 1 | Signal Bremse (24V) (braun) |
Pin 2 | Signal 0V (blau) |
Pin 3 | Signal - (schwarz) |
Software:
- SIEMENS Totally Integrated Automation Portal (TIA-Portal)
- Simatic Software Pack: PLC F+HMI
Entwicklung im TIA Portal
Erstellung der Hardware im TIA-Portal
-
Damit die Schrittmotorachse mithilfe des TIA Portals programmiert werden kann, muss zuerst in dem TIA Portal von Siemens ein neues Projekt erstellt werden. Für dieses Projekt wird der Projektname "Projekt_Schrittmototachse" vergeben. Durch das Klicken auf "Erstellen" wird diese Projekt erstellt.
-
Unter dem Abschnitt "Geräte & Netze" kann eine Speicherprogrammierbare (kurz SPS) in dem TIA Portal hinzu gefügt werden. In diesem Fall handelt es sich um eine PC-System -> Open Controller -> CPU 1515SP PCF. Durch Klicken auf die Schaltfläche "Hinzufügen" wird der Open Controller in dem Projekt hinzugefügt.
-
Da das System aus einer SPS und einem Human Maschine interface (kurz HMI) besteht, muss dieses zusätzlich hinzugefügt werden. In dem diesem Fall handelt es sich um ein TP700 Comfort HMI.
-
In dem TIA Portal muss zudem die Verbindung der SPS und des HMIs konfiguriert werden. Unter dem Abschnitt "Netzsicht" wir durch "Drag and Drop" (ziehen und loslassen) die Ethernet-Verbindung von dem PC System und des HMI gemäß des tatsächlichen Anschlusses erstellt.
-
Bei der SPS werden die verwendeten Ein- und Ausgangskarten hinzugefügt. Im letzten Schritt werden zudem die IP-Adressen der SPS und des HMIs konfiguriert. Um eine korrekte Projektierung der Hardware sicherzustellen, wird dies im TIA Portal zuerst übersetzt und anschließend in die Hardware heruntergeladen. Wenn die Leuchten der SPS und der Ein- und Ausgangskarten grün leuchten, ist die Projektierung der Hardware korrekt.
Programmierung im TIA Portal
Variablen
Als erstes werden die PLC-Variablen in dem TIA-Portal erstellt. Dieses sind die Eingänge und Ausgänge, die mit den Ein- und Ausgangskarten eingelesen werden können.
-
Dieses sind die Analogen Eingänge (Analogen Inputs = AI) von dem Bedienelementen und dem Encoder. Unter der ersten Spalte befindet sich dazu der Variablenname, welcher im Programm später verwendet werden kann. Bei allen Variablen handelt es sich um die Datentypen „Bool“. Diese haben somit den Zustand „false“ (z.B. Taster.links := 0) oder den Zustand „true“ (z.B. Taster.links := 1). Die ersten drei Variablen kommen von dem Bedienelement, welches das analoge Steuern ermöglicht. Mit diesen Variablen wird eingelesen, ob der Bediener den Taster links, rechts oder Stopp betätigt. Die nächsten vier Variablen kommen von dem Encoder und werden zur Bestimmung der Ist- Position verwendet.
-
Die Digitalen Ausgänge werden für Ausgabe an den Encoder verwendet. Diese können den Zustand „true“ (Ausgang = 24 Volt) oder den Zustand „false“ (Ausgang = 0 Volt) an der digitalen Ausgangskarte ausgeben. Die Signale Schritte und Richtung gehen an den Geckodrive. Mit dem Ausgang Bremse kann die Bremse des Schrittmotors gelöst werden. Dabei ist zu beachten, wenn 24 Volt anliegen die Bremse gelöst ist.
-
Alle Daten werden in dem Datenbaustein (kurz DB) „All_data“ gespeichert. Die Variablen werden in den Bereichen für HMI und Motor eingeteilt. Unter der Struktur „HMI“ befinden sich die Variablen, die von dem HMI kommen. Diese sind zum Beispiel die Variablen für den Taster links, rechts und Stopp. Unter der Struktur „Motor_Logik“ werden alle Variablen aufgeführt, die für die Logik des Motors intern als Variable benötigt werden. Diese sind zum Beispiel ein Zähler (=counter), die für das Zählen der Steps benötigt wird.
-
Hier werden alle Variablen des HMI aufgeführt. Diese Variablen sind alle mit der Variable unter den DB „All_data“ verbunden. Für die Verbindung ist die internen Verbindung „HMI_Verbindung“ zuständig. Zudem Beispiel ist der Wert des rechten Tasters mit der PLC-Variable „All_data-HMI.taster_rechts“ verbunden.
SPS-Programm
Im folgenden wird anhand der selbst programmierten Funktionsbausteines "AnsteuerungMotor" die Funktionsweise der Ansteuerung erklärt. Dieser Baustein kann für die analoge und digitale Steuerung verwendet werden.
-
Der Funktionsbaustein "Ansteuerung_Baustein" dient zur Ansteuerung des Motors mithilfe von Eingaben des HMIs. Dieser wird links mit den Eingängen und rechts mit den Ausgängen verknüpft. Gesteuert wird dieser Baustein mit den Tastern des HMIs. So wird für den linken Taster das Signal der HMI von dem linken Taster verknüpft. Die Soll- Position ist die Position, die in dem HMI vorgeben wird. Zu dieser Position wird der Schrittmotor verfahren. Die Länge der Schrittmotorachse beträgt 110 cm. Damit der Schlitten nicht an das linke und rechte Ende verfahren wird, werden die obere und untere Grenze mit den Positionen 90 cm und 10 cm angegeben. Dadurch kann der Schlitten nur zwischen den Grenzen 10 cm und 90 cm verfahren werden.
-
Verfahrrichtung des Motors abhängig von HMI-Eingabe steuern: Der Motor verfährt, je nach betätigtem Taster, in eine bestimmte Richtung. Die Steps werden hierzu über die Soll-Position berechnet, welche über einen festen Faktor von Distanz in Zentimeter in Steps umgerechnet wird (1cm entspricht ca. 285 Steps).
-
Einhaltung der Grenzen prüfen: Es wird geprüft, ob die aktuelle Position die Grenzen der Schrittmotorachse einhält und der Stop-Taster nicht aktiv ist. Ist dies der Fall, verfährt der Motor mit einer Verzögerung von 2ms zwischen den Steps in die gewünschte Richtung.
-
Schlitten nach links verfahren lassen bei zeitgleicher Aktualisierung der Ist-Position: Da der Motor nach links verfährt, muss von der aktuellen Position der Verfahrweg subtrahiert werden. Um Rundungsfehler zu vermeiden, passiert dies nicht nach jedem Step, sondern erst nach dem 28ten Steps.
-
Schlitten nach rechts verfahren lassen bei zeitgleicher Aktualisierung der Ist-Position: Da der Motor nach rechts verfährt, muss von der aktuellen Position der Verfahrweg subtrahiert werden. Um Rundungsfehler zu vermeiden, passiert dies nicht nach jedem Step, sondern erst nach dem 28ten Steps.
Alle verbauten Komponenten müssen im TIA-Portal korrekt ausgewählt und konfiguriert werden. Hierbei sind die in der Hardwareliste angegebenen Teilenummern zur eindeutigen Identifizierung der Komponenten von großer Bedeutung.
GeckoDrive am 24V Ausgang der SPS betreiben
Um die Eingänge des GeckoDrives nicht zu beschädigen, mussten Widerstände an den Ausgängen des digitalen Ausgangsmoduls benutzt werden. Der Wert der Widerstände wurde mit der Formel berechnet, was einen Widerstandswert von 1,2kOhm ergab.
Komponententest
Um die verbauten Komponenten zu testen, wurde zunächst eine Sichtprüfung der Anlage durchgeführt. Die richtige Auswahl der Betriebsmittel und Sicherheitseinrichtungen und der Schutz gegen direktes Berühren wurden überprüft. Da ein Not Aus zu diesem Zeitpunkt nicht vorhanden war, konnte dieser nicht getestet werden. Im Anschluss wurden die ausgegebenen Spannungen der verschiedenen Netzteile mit Hilfe eine Spannungsmessgeräts überprüft.
Der GeckoDrive wird über ein externes Netzteil mit 24V versorgt, der Encoder mit 5V, was im Stromlaufplan kenntlich gemacht wurde. Die Anlage wurde nun des Plan entsprechend verdrahtet, so dass weitere Tests durchgeführt werden konnten.
Mit Hilfe eines Oszilloskops wurde der Spannungsverlauf des Schrittmotors und des Encoders überprüft. Beide lieferten die erwarteten Rechtecksignale.
Ein einfaches SPS-Programm, welches ein Drehrichtungssignal (Direction) und ein Schrittsignal (Step) an den GeckoDrive übermittelte, diente zur Überprüfung der korrekten Funktion des Schrittmotors. Die Bremse des Motors wurde zunächst durch den Direktanschluss an das 24V Netzteil danach durch Beschaltung über einen digitalen Ausgang der SPS auf Funktion geprüft. Die Bremse stoppt den Motor sobald keine Spannung anliegt. Der Signalverlauf wurde mittels der Beobachtungsfunktion des TIA-Portals überwacht.
Integrationstest
Bedienungsanleitung
Der Benutzer bedient die Anlage ausschließlich über das Interface des HMI. Die dargestellte Schrittmotorachse wird in Echtzeit aktualisiert und zeigt somit immer die aktuelle Position des Schlittens an.
- Der Benutzer trägt einmalig die aktuelle Position des Schlittens in das entsprechende Feld im Interface ein. Die Achse ist nun einsatzbereit.
- Der gewünschte Verfahrweg des Schlittens kann nun eingetragen werden oder mit Hilfe der [+] [-] Schaltflächen in 5cm-Schritten eingestellt werden.
- Nach Eingabe des Verfahrwegs muss nun die Fahrtrichtung durch Druck auf die Schaltfläche [Links] oder [Rechts] ausgewählt werden.
- Die Schaltfläche [Stop] hält den Motor umgehend an und muss zum Deaktivieren erneut gedrückt werden.
Sollte die eingegebene Endposition das Achsenlimit von 0 bzw. 100cm unter- oder überschreiten, verfährt der Schlitten bis zur maximal möglichen Position und stoppt dort automatisch. Wird eine Soll-Position von 0cm eingegeben, fährt der Motor im Handbetrieb, d.h. solange die Richtungstaste gedrückt ist, verfährt der Motor.
Abnahmetest & Systemtest
Fazit
Die Schrittmotorachse kann mit einer ansprechenden Bedienoberfläche über das HMI gesteuert werden. Der GeckoDrive-Schrittmotortreiber erhält hierzu von der SPS die Informationen zur Drehrichtung und Anzahl der auszuführenden Motorschritte. Die Achse lässt sich über eine Strecke von 100cm verfahren. Der Benutzer hat die Möglichkeit den Schlitten auf 0,1cm genau zu positionieren und kann auf dem Display jederzeit die aktuelle Position des Schlittens ablesen.
Lessons Learned
- Bearbeitung eines Projekts nach Vorgabe des V-Modells
- Dimensionierung und Verdrahtung von Komponenten nach Datenblattvorgabe
- Inbetriebnahme und Programmierung einer Speicherprogrammierbaren Steuerung von Siemens
- Dokumentation eines umfangreichen Projekts
Blick in die Zukunft
Da der Großteil der bestellten Komponenten nicht rechtzeitig geliefert worden ist, fehlt dem Projekt die analoge Ansteuerung. Diese könnte in der Zukunft implementiert werden, wodurch auch die Limitation der SPS in Bezug auf die Verfahrgeschwindigkeit des Motos umgangen werden könnte. Über den GeckoDrive soll laut Datenblatt eine Einstellbarkeit der Geschwindigkeit durch Anschluss eines Potentiometers möglich sein. Neben dem Handbetrieb und Geschwindigkeitsregelung des Motors kann auf dem analogen Bedienelement der Not-Aus untergebracht werden.
Eine Halterung für die SPS und das HMI würden sowohl die Handhabung als auch den Transport der Anlage deutlich vereinfachen.
Quellen
→ zurück zur Übersicht: Praktikum Produktionstechnik