Ansteuerung einer Schrittmotorachse mit SPS und HMI: Unterschied zwischen den Versionen
(112 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Kategorie:SPS]] | |||
zurück zum Hauptartikel: [[Praktikum Produktionstechnik]] | |||
'''Betreuer''' [[Benutzer:Mirekgoebel|Prof. Dr. Mirek Göbel]] & [[Benutzer:Marc Ebmeyer|Marc Ebmeyer]] | |||
'''Wintersemester 20/21''' | |||
'''Autor:''' [[Benutzer:Matthias_Stork|Matthias Stork]], [[Benutzer:Lukas_Kriete|Lukas Kriete]] | '''Autor:''' [[Benutzer:Matthias_Stork|Matthias Stork]], [[Benutzer:Lukas_Kriete|Lukas Kriete]] | ||
[[Datei:SchriMoAufbau.jpg|mini|800px|Schrittmotorachse mit SPS und HMI]] | |||
== Einleitung == | == 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. | 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. | ||
Zeile 14: | Zeile 23: | ||
==== Funktionaler Systementwurf ==== | ==== Funktionaler Systementwurf ==== | ||
Der funktionale Systementwurf gibt Aufschluss über die Verbindungen der jeweiligen Komponenten. Hierbei steht die Funktionsweise im Fokus. | 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 ==== | ==== Technischer Systementwurf ==== | ||
Der technische Systementwurf gibt Aufschluss über die Daten und Signale, welche die Systemkomponenten benötigen bzw. genieren, empfangen oder aussenden. | 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 === | === Komponentenspezifikation === | ||
Die Schnittstellen, Aufgaben und Spezifikationen der ausgewählten Bauteile werden in der Komponentenspezifikation beschrieben. | Die Schnittstellen, Aufgaben und Spezifikationen der ausgewählten Bauteile werden in der Komponentenspezifikation beschrieben. | ||
In diesem Projekt wurden folgende Komponenten verbaut und genutzt: | In diesem Projekt wurden folgende Komponenten verbaut und genutzt (Auszug aus den Datenblättern): | ||
'''Hardware:''' | '''Hardware:''' | ||
[[Datei:SPS Aufbau1.jpg|mini|500px|Komponenten der SPS]] | |||
==== SPS-Aufbau ==== | |||
{| class="mw-datatable" | |||
|- | |||
|Netzteil (6) | |||
|SIMATIC ET 200SP (T.Nr. 6EP7133-6AE00-0BN0) | |||
*Schrittmotortreiber GeckoDrive | |- | ||
|Steuerung (1+2) | |||
|SIMATIC CPU 1515SP PC2 (T.Nr. 6ES7677-2DB40-0AA0) | |||
|- | |||
|Mensch-Maschinen Schnittstelle | |||
|SIMATIC HMI Comfort Panel (T.Nr. 6AV2-124-0GC01-0AX0) | |||
|- | |||
|Analoges Eingangsmodul (3) | |||
|T.Nr. 6ES7134-6HB00-0DA1 | |||
|- | |||
|Analoges Ausgangsmodul (4) | |||
|T.Nr. 6ES7135-6HB00-0DA1 | |||
|- | |||
|Digitales Eingangsmodul (5) | |||
|T.Nr. 6ES7131-6BF00-0CA0 | |||
|- | |||
|Digitales Ausgangsmodul (6) | |||
|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 ==== | |||
{| class="mw-datatable" | |||
|- | |||
|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) | |||
|} | |||
<ref>[https://www.geckodrive.com/amfile/file/download/file_id/7/product_id/7/ ''Datenblatt GeckoDrive 201x'']</ref> | |||
*Netzteil für den GeckDrive: Tisch- und Wand-Festspannungsgeräte Serie PS-500 (PS 524-05 R) | *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 ==== | ||
{|class="mw-datatable" | |||
|- | |||
|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 ==== | |||
{|class="mw-datatable" | |||
|- | |||
|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 ==== | |||
{|class="mw-datatable" | |||
|- | |||
|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) | |||
|} | |||
<ref>[https://igus.widen.net/content/wxhmp1gd10/original/MOT-AN-S_DE.pdf?download=true ''Datenblatt IGUS Nema23'']</ref> | |||
'''Software:''' | '''Software:''' | ||
*SIEMENS Totally Integrated Automation Portal (TIA-Portal) | *SIEMENS Totally Integrated Automation Portal (TIA-Portal) Version 15.1 | ||
*Simatic Software Pack: PLC F+HMI | *Simatic Software Pack: PLC F+HMI | ||
=== 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 <math>\frac{V_\text{PLC}-5}{0,016}</math> <ref>[https://www.geckodrive.com/support/using-current-source-plc.html ''G201x Current Source PLC'']</ref> berechnet, was einen Widerstandswert von 1,2kOhm ergab. | |||
== Entwicklung == | == Entwicklung == | ||
=== | === Erstellen eines Stromlaufplans mit SEE Electrical === | ||
Die verwendeten Komponenten wurden in einem Stromlaufplan dargestellt und den Datenblättern entsprechend verbunden. Der Stromlaufplan wurde mit der Software SEE Electrical 7 erstellt. | |||
<gallery widths = "800" heights = "400" perrow = "1" > | |||
Stromlaufplan1.jpg | SEE Electrical 7 Stromlaufplan Seite 1 (Schrittmotor, GeckoDrive, Bremse, Encoder) <ref>[https://svn.hshl.de/svn/MTR_GPE_Praktikum/trunk/Fachthemen/Siemens_Schrittmotorachse/05_Entwicklung/Praktikum.sep ''SVN Originaldatei'']</ref> | |||
Stromlaufplan2.jpg | SEE Electrical 7 Stromlaufplan Seite 2 (Eingänge und Ausgänge der SPS) <ref>[https://svn.hshl.de/svn/MTR_GPE_Praktikum/trunk/Fachthemen/Siemens_Schrittmotorachse/05_Entwicklung/Praktikum.sep ''SVN Originaldatei'']</ref> | |||
</gallery> | |||
=== Entwicklung im TIA Portal=== | |||
==== Erstellung der Hardware im TIA-Portal ==== | |||
<gallery widths = "800" heights = "400" perrow = "1" > | |||
TIAPortal_Projektherstellung.png | 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_Schrittmotorachse" vergeben. Durch das Klicken auf "Erstellen" wird diese Projekt erstellt. | |||
TIAPortal_SPS_Hardware_hinzuzufügen.png | Unter dem Abschnitt "Geräte & Netze" kann eine Speicherprogrammierbare (kurz SPS) in dem TIA Portal hinzugefügt werden. In diesem Fall handelt es sich um ein PC-System -> Open Controller -> CPU 1515SP PCF. Durch Klicken auf die Schaltfläche "Hinzufügen" wird der Open Controller in dem Projekt hinzugefügt. | |||
TIAPortal_HMI_Hardware_hinzuzufügen.PNG | 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. | |||
Netzsicht.PNG | In dem TIA Portal muss zudem die Verbindung der SPS und des HMIs konfiguriert werden. Unter dem Abschnitt "Netzsicht" wird durch "Drag and Drop" (ziehen und loslassen) die Ethernet-Verbindung von dem PC-System und des HMIs gemäß des tatsächlichen Anschlusses erstellt. | |||
01_Übersicht_PLC.PNG | 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. | |||
</gallery> | |||
==== 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. | |||
<gallery widths = "800" heights = "400" perrow = "1" > | |||
03 PLC AI.PNG | 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. | |||
PLCDO.png | 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, dass bei 24 Volt die Bremse gelöst ist. | |||
AllDataDB.png | 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. Dieses ist zum Beispiel ein Zähler (=counter), der für das Zählen der Steps benötigt wird. | |||
04 HMI Variablen.PNG | Hier werden alle Variablen des HMIs aufgeführt. Diese Variablen sind alle mit der Variable unter den DB „All_data.HMI“ 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. | |||
</gallery> | |||
===== 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. | |||
<gallery widths = "800" heights = "400" perrow = "1" > | |||
01 Motor Ansteuerung HMI.PNG | 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. | |||
02.Verfahren Richtung Steps.PNG | Die 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). | |||
03 Flanken Steps.PNG | 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. | |||
04 Verfahren Links Counter.PNG | 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. | |||
05 Verfahren Rechts Counter.PNG | 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. | |||
</gallery> | |||
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. | |||
== Komponententest == | == 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. | |||
=== Limitationen der SPS - Auslesen des Encoders === | |||
<gallery widths = "800" heights = "400" perrow = "1" > | |||
Trace Encoder.png |Die Ausgänge des Encoders sind in dem TIA-Portal gemessen worden. Damit die Drehrichtung und Geschwindigkeit mit dem Encoder bestimmt werden können, werden vier Signale des Encoders eingelesen. Das Datenblatt des Encoders gibt an, dass das Signal A/ das negierte Signal A darstellt. In dem TIA-Portal werden dazu die Signale des Encoders eingelesen. Dazu wird der Wert ("0" oder "1") des Signals über die Zeit betrachtet. Dabei ist ersichtlich, dass nicht der Verlauf des Datenblatts gemessen werden kann. Grund dafür ist, dass die Eingänge nicht schnell genug eingelesen werden können. Somit können die Drehrichtung und Geschwindigkeit nicht mit den gemessenen Signalen bestimmt werden. Eine Alternative stellt das Eingangsmodul TM (Time Based) von Siemens dar. Dieses kann auch schnellere Signale messen. | |||
</gallery> | |||
=== Maximale Verfahrgeschwindigkeit === | |||
Aufgrund der Limitationen ist eine maximale Verfahrgeschwindigkeit von 5,71mm pro Sekunde realisierbar, was maximal 162 Steps pro Sekunde entspricht. | |||
== Integrationstest == | == Integrationstest == | ||
=== Bedienungsanleitung === | === Bedienungsanleitung === | ||
[[Datei:HMISchrittmotorachse.png|mini|800px|Benutzeroberfläche des HMI]] | |||
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 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 die aktuelle Position des Schlittens in das entsprechende Feld im Interface ein. Die Achse ist nun einsatzbereit. | |||
# | # Der Benutzer trägt einmalig die aktuelle Position des Schlittens in das entsprechende Feld im Interface ein. Die Achse ist nun einsatzbereit. | ||
# Nach Eingabe | # 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. | # 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 == | |||
[[Datei: DemoFunktion1.mp4|mini|links|800px|Demonstration der Funktionsweise]] | |||
[[Datei: DemoFunktion2.mp4|mini|mitte|800px|Demonstration: Verfahrweg ist größer als die Endposition]] | |||
== Fazit == | == 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 === | === 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 === | === 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 == | == Quellen == | ||
[https://svn.hshl.de/svn/MTR_GPE_Praktikum/trunk/Fachthemen/Siemens_Schrittmotorachse/ SVN Projektordner] | |||
[https://svn.hshl.de/svn/MTR_GPE_Praktikum/trunk/Fachthemen/Siemens_Schrittmotorachse/Schrittmotorachse.zip/ ZIP-Archiv mit allen notwendigen Daten zum Nachbau] | |||
→ zurück zur Übersicht: [[Praktikum Produktionstechnik]] | → zurück zur Übersicht: [[Praktikum Produktionstechnik]] |
Aktuelle Version vom 11. Februar 2021, 18:02 Uhr
zurück zum Hauptartikel: Praktikum Produktionstechnik
Betreuer Prof. Dr. Mirek Göbel & Marc Ebmeyer
Wintersemester 20/21
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 (6) | SIMATIC ET 200SP (T.Nr. 6EP7133-6AE00-0BN0) |
Steuerung (1+2) | SIMATIC CPU 1515SP PC2 (T.Nr. 6ES7677-2DB40-0AA0) |
Mensch-Maschinen Schnittstelle | SIMATIC HMI Comfort Panel (T.Nr. 6AV2-124-0GC01-0AX0) |
Analoges Eingangsmodul (3) | T.Nr. 6ES7134-6HB00-0DA1 |
Analoges Ausgangsmodul (4) | T.Nr. 6ES7135-6HB00-0DA1 |
Digitales Eingangsmodul (5) | T.Nr. 6ES7131-6BF00-0CA0 |
Digitales Ausgangsmodul (6) | 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) Version 15.1
- Simatic Software Pack: PLC F+HMI
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 [3] berechnet, was einen Widerstandswert von 1,2kOhm ergab.
Entwicklung
Erstellen eines Stromlaufplans mit SEE Electrical
Die verwendeten Komponenten wurden in einem Stromlaufplan dargestellt und den Datenblättern entsprechend verbunden. Der Stromlaufplan wurde mit der Software SEE Electrical 7 erstellt.
-
SEE Electrical 7 Stromlaufplan Seite 1 (Schrittmotor, GeckoDrive, Bremse, Encoder) [4]
-
SEE Electrical 7 Stromlaufplan Seite 2 (Eingänge und Ausgänge der SPS) [5]
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_Schrittmotorachse" 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 hinzugefügt werden. In diesem Fall handelt es sich um ein 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" wird durch "Drag and Drop" (ziehen und loslassen) die Ethernet-Verbindung von dem PC-System und des HMIs 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, dass bei 24 Volt 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. Dieses ist zum Beispiel ein Zähler (=counter), der für das Zählen der Steps benötigt wird.
-
Hier werden alle Variablen des HMIs aufgeführt. Diese Variablen sind alle mit der Variable unter den DB „All_data.HMI“ 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.
-
Die 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.
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.
Limitationen der SPS - Auslesen des Encoders
-
Die Ausgänge des Encoders sind in dem TIA-Portal gemessen worden. Damit die Drehrichtung und Geschwindigkeit mit dem Encoder bestimmt werden können, werden vier Signale des Encoders eingelesen. Das Datenblatt des Encoders gibt an, dass das Signal A/ das negierte Signal A darstellt. In dem TIA-Portal werden dazu die Signale des Encoders eingelesen. Dazu wird der Wert ("0" oder "1") des Signals über die Zeit betrachtet. Dabei ist ersichtlich, dass nicht der Verlauf des Datenblatts gemessen werden kann. Grund dafür ist, dass die Eingänge nicht schnell genug eingelesen werden können. Somit können die Drehrichtung und Geschwindigkeit nicht mit den gemessenen Signalen bestimmt werden. Eine Alternative stellt das Eingangsmodul TM (Time Based) von Siemens dar. Dieses kann auch schnellere Signale messen.
Maximale Verfahrgeschwindigkeit
Aufgrund der Limitationen ist eine maximale Verfahrgeschwindigkeit von 5,71mm pro Sekunde realisierbar, was maximal 162 Steps pro Sekunde entspricht.
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
ZIP-Archiv mit allen notwendigen Daten zum Nachbau
→ zurück zur Übersicht: Praktikum Produktionstechnik