Ansteuerung einer Schrittmotor-Achse mit Siemens SIMATIC S7-300 SPS

Aus HSHL Mechatronik
Version vom 8. Februar 2014, 12:12 Uhr von Mirekgoebel (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „=== Aufgabenstellung === Ansteuerung einer Zahnriemenachse mit Schrittmotor durch den Einsatz von einer Speicherprogrammierbaren Steuerung (SPS),Link zu SPS =…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Aufgabenstellung

Ansteuerung einer Zahnriemenachse mit Schrittmotor durch den Einsatz von einer Speicherprogrammierbaren Steuerung (SPS),Link zu SPS => [[1]] SIMATIC S7-300, des Unternehmen Siemens. Zwischen der SPS und dem Schrittmotor befindet sich zusätzlich noch ein GeckoDrive G201X als Motorsteuerung.

Aufbau / Schaltplan

Im Allgemeinen ist der Aufbau der Hardwarekomponenten wie bei den meisten Steuerungen in Last- und Steuerkreis aufgeteilt.

Laststromkreis:

  • alle Verbindungen zwischen der Spannungsversorgung (Power Supply), dem Geckodrive und dem Schrittmotor

Steuerstromkreis:

  • alle Verbindungen zwischen der SPS und dem Geckodrive
Schaltplan SPS-Gecko-Igus

Einrichtung der Hardware SIMATIC S7-300

Wichtig bei der Programmierung einer SPS ist, dass die CPU (Central Processing Unit) weis welche Hardware vorhanden ist.

Bevor eine Steuerung mit STEP 7 in Betrieb genommen werden kann, muss die vorhandene Hardware in der Software STEP 7 konfiguriert werden. Das SPS-System kann ohne eine Hardwarekonfiguration der SPS und der dazugehörigen Baugruppen nicht in Betrieb genommen werden.

Bei der Hardwarekonfiguration werden in STEP 7 die vorhandene Hardware (Profilschiene, Stromversorgung, CPU) aufgelistet. Danach werden je nach Bedarf die Baugruppen ausgewählt und Adressen zugewiesen. Zum Schluss wird diese Konfiguration in die CPU geladen, damit die CPU weis, welche Baugruppen zur Verfügung stehen welche Adressen vergeben sind.

Weitere Informationen zur Hardwarekonfiguration sind unter folgendem Link zu finden:

http://www.sps-lehrgang.de/hardwarekonfiguration/

Kommunikation zwischen SPS und Rechner

Bei der Einrichtung der Hardware muss zunächst eine Verbindung zwischen SPS und dem Rechner mit der Software STEP 7 hergestellt werden. Dazu wird ein Multimaster-Kabel verwendet welches die RS 232 Schnittstelle der SPS-CPU mit der USB-Schnittstelle des Rechners verbindet (siehe Abbildung unten).

Diese Verbindung ist wichtig, um die Programm-Daten aus der Software STEP 7 in die SPS zu laden und ebenfalls die SPS auslesen zu können. Beim Auslesen können sowohl schon vorhandene Programme ausgelesen werden, als auch Signalzustände z.B. von Sensorik am Eingang der SPS. Die SPS besitzt sowohl einen internen Speicher, als auch einen Slot für eine SD-Speicherkarte.

Komplikationen und letzter Stand

Beim laden der Software in die SPS gab es ein Problem mir der Kommunikation zwischen dem Rechner und der SPS. Als Fehlermeldung wurde folgender Text ausgegeben: "Die Systemdaten können nicht auf die Baugruppe CPU 313C der Station SIMATIC 300 geladen werden".

Daraufhin wurde der Kontakt zum Siemens Support gesucht. Herr Asaad Al-Suleihi hält den Kontakt zum Siemens Support. Mail an Siemens Support:

"Geehrter Siemens Support,

wir haben in einem Praktikum unseres Studiengangs Mechatronik ein Projekt, in dem die Studierenden mit einer Siemens SPS (313-5BG04-0AB0) arbeiten. Die Verbindung der SPS mit dem Computer erfolgt über ein USB PC Adapter und soll als Programmierschnittstelle genutzt werden.

Unser Problem tritt bei dem Ladevorgang der Hardwarekonfiguration in die Baugruppe auf. Es wird dann folgende Fehlermeldung ausgegeben:

Die Systemdaten können nicht auf die Baugruppe CPU 313C - (R0/S2) der Station SIMATIC 300(1) geladen werden. Schauen Sie unter Details nach oder versuchen Sie die Ursache im Diagnosepuffer der Baugruppe zu ermitteln.

Die Hilfe-Angaben wurden bereits ausprobiert.

In der Anlage befindet sich auch der aktuelle Screenshot des Problems. Das Problem taucht nur bei der Nutzung ohne SD-Karte auf. Wenn eine SD-Karte eingesetzt wird, wird die Hardware nicht in dem Fenster "Teilnehmeradresse auswählen" erkannt."

Achsensteuerung mit dSpace DS1104 und Matlab Simulink

Aufgabenstellung

Ansteuerung einer Zahnriemenachse mit Schrittmotor durch den Einsatz von einem dSpace Board (DS1104) mit einer Programmierung auf Basis von Matlab Simulink. Zwischen dem dSpace Board und dem Schrittmotor befindet sich zusätzlich noch ein GeckoDrive G201X als Motorsteuerung.

Aufbau / Schaltplan

Im Allgemeinen ist der Aufbau der Hardwarekomponenten wie bei den meisten Steuerungen in Last- und Steuerkreis aufgeteilt.

Laststromkreis:

  • alle Verbindungen zwischen der Spannungsversorgung (Power Supply), dem Geckodrive und dem Schrittmotor

Steuerstromkreis:

  • alle Verbindungen zwischen der dSpace Ausgabebox (dSpace CP1104) und dem Geckodrive

Zum Programmieren wurde nach Schaltplan ein Versuchsaufbau generiert, damit erste Ergebnisse direkt erkannt und dokumentiert werden konnten.

Schaltplan dSpace-Geckodrive-Schrittmotor

Pinbelegung am SubD-Stecker der Ausgabebox

Pinbelegung CP1104

Regelkreis

Für diesen Anwendungsfall startet der Regelkreis mit dem Einlesen eines bestimmten Weges über eine RS232 Schnittstelle. Dieser Wert ist der Sollwert der Position (Xsoll). Aus dieser Position wird durch die Programmierung auf dem dSpace Board ein PWM Signal erzeugt, welches eine bestimmte Anzahl an High-Pegeln an den Geckodrive sendet. Jeder High-Pegel steht für einen Schritt. Der Schrittmotor setzt diese Signale dann in 1.8° Schritte um und entlang der Linearachse wird ein Weg verfahren. Ein Encoder soll dann diesen Weg durch Rückgabewerte zurücksenden, so dass ein kontinuierlicher Vergleich zwischen der Ist- und der Sollposition stattfinden kann, bis keine Regeldifferenz vorhanden ist.

Regelkreis dSpace

Starten einer Simulink Programmierung inkl. ControlDesk

Informationen zum Start einer Simulink Programmierung inkl. Anbindung von ControlDesk sind unter diesem Link zu finden: Datei:Start Simulink und ControlDesk.pdf


Simulink Programm

Im Simulink Programm startet mit der Eingabe der blau markierten Sollposition in hundertstel Millimetern. Dieser Wert kann in ControlDesk durch einen Schieberegler verändert oder durch einen Baustein zum Einlesen von Daten einer RS232-Schnittstelle ersetzt werden.

Im nächsten Schritt wird diese Position in eine Position umgerechnet, welche eine Datenbasis in Schritten besitzt. 0,01 mm sind dann 0,303 Schritte.

In einer Datentyp-Umwandlung wird dieser Positionswert in ganzzahlige Werte (Integer-Werte) umgewandelt.

Anschließend wird dieses Signal mit der aktuellen Position, welche in der Software hinterlegt ist, verglichen. Der Relational Operator1 unterbricht bei Erreichen des Zielwertes die Verbindung zwischen dem Pulsgenerator und dem Digitalausgang für die Schritte. Dies geschieht durch ein Umschalten des Switch_Stop-Bausteins auf ein konstantes Low-Signal. Der Relational Operator im unteren Bereich des Programms vergleicht die Sollposition mit der aktuellen Position, um die Richtung vorzugeben. Ist der neue Wert größer als die aktuelle Position, so fährt der Motor weiter vorwärts, sonst rückwärts. Dies funktioniert über den Switch-Richtung-Baustein.

Das Richtungssignal wird dann durch den Gain-Baustein halbiert, da es auf einen Analogausgang geleitet wird. Dieser Ausgang gibt bei dem Wert 1 eine Spannung von 10 V. Um 5 V zu erreichen muss also ein Wert von 0.5 an den Ausgang gesendet werden.

Für die Positionsbestimmung ist im oberen rechten Bereich ein Zähler über ein getriggertes Subsystem realisiert worden. Je nach gefahrener Richtung wird pro Schritt, also pro High-Signal, ein Schritt addiert oder subtrahiert, so dass für jedes reale Signal am Schrittmotor auch ein Schritt im Memory-Baustein gespeichert wird. Der Ausgang dieses Bausteins wird dann wie beschrieben zum Ist-Soll-Vergleich genutzt.

Mit dem rechts dargestellten Scope können in der Simulink Simulation die Richtung, sowie die Ist- und die Sollpositionen dargestellt werden.

Programm dSpace Simulink

ControlDesk Oberfläche

ControlDesk ist als Programm für die Visualisierung und Steuerung des Simulinkprogramms genutzt worden.

In dem Bild ist die erstellte Oberfläche dargestellt. Oben ist ein Schieberegler für die Sollposition vorhanden. Links oben ist eine Anzeige der aktuellen Position in Schritten integriert (Labels/IstSchritte).

Darüber hinaus ist ein Plotter für den Vergleich der Ist- und der Sollschritte integriert worden.

Mit den Schiebereglern links unten kann man die Pulsweite und die Periodendauer variieren.


ControlDesk Oberfläche

PWM Signal zur Ansteuerung des Motors

Die Mindestperiodendauer, die der GeckoDrive benötigt um die einzelnen Schritte erkennen zu können beträgt 3,5 µs. In dem vorhandenen Simulinkprogramm ist bisher eine Periodendauer von 2 ms realisiert worden. Dieses Signal besteht aus 1 ms High- und 1 ms Low-Pegel.


PWM-Signal zur Motoransteuerung

Herausforderungen

Integration eines Zählers für die Erkennung der Ist-Position durch

  • eine Matlab-Funktion
  • einen Counter aus der DSP-Toolbox
  • eine Eigenentwicklung (siehe Simulink Programm)


Spannungsabfall am Digitalausgang (von 5 V auf 1,77 V)

  • Nutzung eines Netzteils
  • Wechsel auf Analogausgang
  • Kontakt zum dSpace Support wurde aufgenommen (ohne nutzbares Ergebnis)


Positioniergenauigkeit

  • Datentyp double musste in Integer umgewandelt werden, um einen Vergleich möglich zu machen. Realisierung durch Simulink-Baustein (siehe Programm)


Historisch gewachsenes Programm

  • zwischenzeitlich sehr unübersichliches Programm

Ausblick

  • Integration einer RS232-Schnittstelle
  • Integration von Software-Endschaltern
  • Integration einer Kalibrierfahrt
  • Integration des Encoders