# Schrittmotorsteuerung S7-314C-2 DP/PN



## hoschi7 (29 April 2013)

Hallo Forum,
in den letzten Tagen habe ich mich intensiv mit dem Thema Schrittmotorsteuerung befasst und Vieles hier im Forum gelesen. Allerdings konnte ich aus den einzelnen Beiträgen noch keine konkrete Lösung für mein Problem finden. Ich würde mich freuen, wenn mit jemand hierbei helfen kann.

Ich befinde mich zur Zeit an meinem Abschlussprojekt für meine Ausbildung zum Mechatroniker. Mein Projekt besteht darin eine Maschine zum automatischen Ablängen von Leitungen herzustellen und zu konstruieren.
Die Leitungen sollen extern z.B. von einer Trommel zugeführt werden und dann von einer Antriebsrolle von der Trommel gezogen werden. Um möglichst genaue Leitungslängen zu garantieren dacht ich mir, dass man diese Antriebsrolle mit einem Schrittmotor ansteuern könnte. 
Hardwaretechnisch bin ich ziemlich an eine S7-314C-2 DP/PN gebunden. Die Eingabe von Leitungslänge und Stückzahl soll vom Benutzer individuell möglich sein. Hierzu möchte ich ein HMI KTP-400 TouchPanel nutzen, da mir andere Eingabemöglichkeiten für die SPS nicht bekannt sind. 
Im Steuerungsprogramm sollen dann die eingegebenen Werte in das TouchPanel auf eine gewisse Anzahl an Schritten für den Schrittmotor umgerechnet werden, sodass ich eine exakte Leitungslänge erhalte.

Mein Problem besteht nun darin, dass ich beim Ansteuern eines Schrittmotors noch keine Erfahrungen habe und nur Informationen aus dem Forum oder von Herstellerseiten kenne. Meine SPS-Kenntnisse belaufen sich auf einen einwöchigen Lehrgang, gute Grundkenntnisse sind also vorhanden, jedoch kann ich schwer einschätzen welche Programmierfähigkeiten für meine geplante Umsetzung erforderlich sind.

Ist es nun möglich einen Schrittmotor über diese SPS in einer individuell einstellbaren Schrittzahl (Benutzeringabe am HMI) anzusteuern? Meine Überlegungen gingen in Richtung Plug&Drive-Motoren von Nanotec (Plug & Drive ? Schrittmotoren - Nanotec) oder einem Schrittmotor mit einer Nanotec SMCI33-Steuerung (SMCI33 ? Schrittmotorsteuerung mit Closed-Loop Controller - Nanotec). 
Mir ist es hierbei aber ein Rätsel wie ich die Anzahl der Schritte, welche in der SPS gespeichert sind, sinnvoll auf die Schrittmotorsteuerungen übertragen kann. Einfach über einen Relaisausgang?

Ich hoffe ich habe meine Problematik einigermaßen gut schildern können und würde mich sehr freuen, wenn sich der ein oder andere meiner Problematik annehmen würde.

Gruß
hoschi


----------



## zako (29 April 2013)

... so wie ich das hier verstehe, musst Du doch nur immer um ein Stück relativ weiterpositionieren.
Da baut man einen umrichtertauglichen Asynchronmotor mit Geber ran und man kann dann über einen normalen Umrichter (mit integrierter Positioniermöglichkeit) immer relativ weiterpositionieren. 
Bei einer Siemens Steuerung würde sich dann ein Siemens Umrichter anbieten, z.B. SINAMICS S110.


----------



## hoschi7 (29 April 2013)

Damit hast du schon recht. Der Motor fährt bei einem Auftrag immer um dieselbe relative Länge weiter. Aber wie bekomme ich die Verbindung zwischen den eingegebenen Daten am TouchPanel und der Steuerung soweit, dass der Motor letztlich weiß wie weit er fahren muss. Für SINAMICS 110 gibt es ja diese "STARTER"-Software, aber dort kann ich ja nur über einen PC neue Jobs erstellen, oder?

Prinzipiell spielt es für mich keine Rolle mit welchem Motor diese Positionierung realisiert wird, jedoch suche ich verzweifelt nach einer Möglichkeit. Mir ist nicht klar wie die Daten in der SPS so verarbeitet werden müssen, damit letztlich die Antriebsrolle auch nur soweit fährt, wie es vom Benutzer eingegeben wurde. Die Leitunglänge soll übrigens zwischen 50mm und 3000mm individuell einstellbar sein. 

Vielleicht stehe ich auch nur etwas auf dem Schlauch und benötige mal einen Anschubser.


----------



## peter(R) (29 April 2013)

Schau doch mal bei Siemens   SIMODRIVE POSMO A - Niederspannungsumrichter - Siemens
Posmo ein Antrieb mit dezentaler intelligenz angesteuert über DP. Per DP einen Verfahrweg angeben , Starten und auf Fertigsignal warten. Klappt prima und das beigegebene "Getting Started" 
Programm machts recht einfach.

peter(R)


----------



## Deltal (29 April 2013)

Mal ganz Einfach.. du nutzt ein DC Motor und ein Schütz. An der Antriebsrolle hast du einen Initiator, welcher dir pro Umdrehung einen Impuls gibt.

In der SPS erstellst du einem Umrechnungsfaktor, ein Impuls = z.B. 10 mm (Umfang der Rolle). Bei jeder flanke des Impulses addierst du auf die Variable "Istlänge" deine 10mm bzw den Faktor auf.

Jetzt kannst du über das TP eine Länge vorgeben. (Variable solllänge)

Du startest den Motor und lässt ihn solange drehen bis Istlänge > Sollänge. Motor aus, Istlänge auf 0 setzen. Fertig

Das ganze wird in der Praxis nicht so gut funktionieren. Bei der Auswahl der Hardware (Motor, Geber, event. externer Regler) muss die geforderte Genauigkeit und die Geschwindigkeit beachtet werden.


----------



## zako (29 April 2013)

Hallo Hoschi,

normallerweise nimmt man da ein Standardtelegramm SPS <--> Antrieb. In diesem Telegramm sind Datenbereiche für Steuerwörter, Zustandswörter, Sollwerte wie Geschwindigkeits-, Beschleunigungs-, Positionssollwerte definiert. Vom HMI kann man z.B. Werte direkt in den Datenbaustein der SPS schreiben.

Es gäbe zwar noch die Möglichkeit von HMI direkt Werte im Antrieb zu schreiben (um z.B. komplett von eine SPS verzichten zu können), aber Möglichkeiten gibt es viele. 

Grüße
 Zako


----------



## thomas_1975 (1 Mai 2013)

Kenne es auch so, daß gerade bei den C-CPU´s schnelle Outputs mit bei sind, welche direkt auf den Steppercontroller geführt werden können, um eine definierte Anzahl von Schritten zu fahren.
Ich denke die zweite Lösung mit dem Treiber hat diese Funktionalität bestimmt.
Also Ein Out für Richtung, Ein Out für Freigabe, Ein schneller Out für die Schritte.
Die 200ér hatte doch sogar den Assistenten für Positionieraufgaben, in welchem Bewegungsprofile hinterlegt werden können.

gruß Thomas


----------



## hoschi7 (2 Mai 2013)

Zunächst erstmal vielen Dank für eure Antworten.
Ich denke, dass ich mich vielleicht doch von einer Schrittmotorsteuerung distanzieren muss, da es einfach zu anspruchsvoll und wahrscheinlich auch zu kostenintensiv wird.
Vermutlich werde ich mich erstmal nach einer Umsetzung nach Deltals Vorschlag umsehen müssen.

@peter(R):
Die Lösung hört sich interessant an, habe aber nach kurzer Recherche gesehen, dass solch ein Motor schon ca. 1000€ kostet. Das ist leider für mein Projekt viel zu viel.

@thomas_1975:
Wie genau kann ich mir denn das mit dem Ausgang für die Schritte vorstellen? Ein Relaisausgang der direkt auf den Treiber führt und damit einen einzelnen Schritt ausführt? Wie stelle ich denn sicher, dass der Ausgang erst erneut aktiv wird, wenn der vorherige Schritt auch abgeschlossen ist? 
Habe leider nicht so die Erfahrung, was Schrittmotoren angeht, daher ist es für mich schwer zu verstehen.


Das TouchPanel habe ich heute projektiert und weiß nun auch, wie ich die Werte von SPS und TouchPanel nutzen kann. Jetzt muss nur noch die Umsetzung auf einen Motor gelingen.
Wenn noch jemandem etwas zur Umsetzung einfällt, bin ich weiterhin dankbar für Kommentare.


----------



## thomas_1975 (2 Mai 2013)

also es geht z.B. mit solch einem Treiber, MBC25081 - 0-2.5A Current Range - Stepper Drivers with DC Input
dabei wird der schnelle Digitalout auf den Clock des Treibers gezogen und damit angesteuert. ( natürlich mußt du noch die direction und enable usw. entsprechend beschalten ).
Wie gesagt, mit der 200ér hab ich das schon gemacht ( mit dem integrierten Assistenten ), und funzt auch wirklich gut.

Habe mal ein Projekt mit der 314C angelegt und folgenden Screenshot angehängt.
Du müßtest dann halt die geforderte Länge auf Stepps umrechnen, und zum Pulsausgang bringen.

gruß Thomas


----------



## hoschi7 (3 Mai 2013)

Ah okay. So langsam verstehe ich. Scheint doch gar nicht so kompliziert zu sein.
Das ganze müsste auch hiermit SMCI12 ? Schrittmotorcontroller - Nanotec funktionieren, oder?

Letzlich muss ich dann eigentlich "nur" meine digitalen Ausgänge, wie sie in der Ansteuerungsart bei der Positionierfunktion angegeben sind, mit den jeweiligen Eingängen an dem Treiber verbinden oder? Habe allerdings noch nicht so ganz die einzelnen Funktionen der Ansteuerarten, wie z.B. " DO + 1.1 | Position erreicht " oder " DO + 1.0 | Fahren plus", verstanden.

Gruß
hoschi


----------



## thomas_1975 (3 Mai 2013)

soweit richtig verstanden.
Auf Seite 20 im Handbuch wird auf die Funktionalität hingewiesen.
was mir aber aufgefallen ist, ist daß die Digital Eingänge nur max.5V bekommen dürfen.
also : SMCI12 ? Schrittmotorcontroller - Nanotec

jedenfalls vom Prinzip, wünsche viel Erfolg gruß Thomas


----------



## hoschi7 (12 Juni 2013)

Hallo Kollegen,
die Tage habe ich meinen Schrittmotor bekommen. Letztlich ist es ein PAN-Drive Typ PD-1161 der Firma TRINAMIC geworden. 
Der Schrittmotor verfügt über einen sogenannten STEP/DIRECTION-Modus. In diesem Modus kann ich das Richtungssignal und das Schrittsignal durch zwei Ausgänge der SPS steuern. Alternativ gibt es auch noch die Ansteuerung über RS485, wobei ich hier keine Ahnung habe, ob das mit meiner SPS möglich ist.

Ich habe heute versucht mit der "Positionieren"-Funktion der SPS zu arbeiten, jedoch ohne Erfolg. In der Hardware-Konfiguration muss ich ja die E/A-Adressen der Positionieren-Funktion festlegen. Ich dachte nun, dass ich hier den Adressbereich meine Ausgangsbaugruppe angeben muss um diese Ausgänge mit der Funktion nutzen zu können, funktioniert leider nicht. Kann mir jemand sagen welchen Fehler ich mache?

Da ich mit der Positionieren-Funktion nicht weitergekommen bin, hab ich gedacht, dass man vielleicht einfach eine Art Taktgeber vom Ausgang an das Schrittsignal legen könnte. Allerdings habe die Taktmerker ja nur eine maximale Frequenz von 10Hz. Das ist leider deutlich zu wenig für meinen Schrittmotor, da eine Umdrehung ca. 4000 Schritte benötigt.

Wäre nett, wenn mich nochmal jemand unterstützen könnte. Wäre extrem erleichtert, wenn die Steuerung so langsam mal laufen würde.

Grüße
Hoschi


----------



## Ottmar (12 Juni 2013)

Hi!

Du kannst die Schrittauflösung und andere Parameter über das Programm "TMCL-IDE" von Trinamic anpassen (siehe Parameterlisten).

Die RS-485-Schnittstelle über das TMCL-Protokoll oder über den ASCII-Modus kannst du nur benutzen, wenn deine SPS einen entsprechenden Kommunikationsprozessor (CP) bzw. eine entsprechende Schnittstellenbaugruppe besitzt.
Damit aber noch nicht genug - du musst dafür das TMCL-Protokoll erstmal umsetzen und das ist garnicht so einfach.

Bleib deshalb bei der Ansteuerung des Motors über die Schritt-Richtung-Schnittstelle.
Hierfür musst du schon die von der Baugruppe unter "Positionieren" bereitgestellten Ausgänge verwenden.
Hier wird das ganze von Beginn an beschrieben: http://support.automation.siemens.c...ib.csFetch&nodeid=48077521&forcedownload=true

Ist der Antrieb denn freigegeben? Ist die Schritt-Richtung-Schnittstelle aktiviert? (siehe Hardwaremanual des Pandrive)


Gruß,

Ottmar


----------



## hoschi7 (13 Juni 2013)

Hallo Ottmar,

Den Schrittmotor habe ich über "TMCL-IDE" parametriert und kann ihn über das Programm auch im DirectMode verfahren.
Nachdem ich den STEP/DIR-Mode aktiviere ist ein Verfahren über das Interface nicht mehr möglich. Wenn ich jetzt das Step-Signal der Schnittstelle auf Masse ziehe wird ein Schritt durchgeführt. Da ich den SPS Ausgang aber nicht auf Masse ziehen kann, hab ich die internen Pull-Ups aktiviert, sodass ein Schritt durchgeführt wird, wenn ich ein 24V über einen SPS-Ausgang anlege. Zusätzlich habe ich die Signale für Direction und Enable an den Ausgängen, was auch soweit funktioniert. Das Enable-Signal wird nicht beötigt, da in dem Betriebsmodus der Motor automtisch freischaltet, wenn ein Step-Signal gegeben wird und verrigelt, wenn kein Step-Signal mehr kommt.

Irgendwie komme ich aber mit dem Positionieren über die Funktionen nicht sonderlich weit. In der Hardware-Konfiguration habe ich bei "Positionieren" die Achsart auf Rundachse umgestellt, das Rundachsen-Ende auf 6400 Impulse gelegt, da der Schrittmotor 6400 Schritte für eine Umdrehung benötigt und die Inkremente pro Geberumdrehun ebenso auf 6400 gesetzt. Sonst habe ich dort nichts geändert. 
Das Beispielprogramm habe ich geladen, bekomme jedoch keine Bewegung am Motor heraus und kann auch nicht feststellen, dass überhaupt ein Ausgang der SPS von dem Programm angesteuert wird. Das Step-Signal habe ich einfach auf den Ausgang "Verfahren plus" gelegt. Dadurch sollte doch irgendetwas am Ausgang passieren oder?
In der Beschreibung wird ja das Beispiel nur mit einem Inkrementalgeber durchgeführt, den ich ja eigentlich gar nicht habe. Was nun?

Grüße
hoschi


----------



## hoschi7 (19 Juni 2013)

Hat vielleicht noch jemand ne Idee, wo es bei mir bei der Umsetzung scheiter?
Wäre wirklich toll. Nächste Woche hab ich mein Fachgespräch von der Abschlussprüfung, da würde es mir bestimmt helfen, wenn ich nach der Schrittmotorsteuerung gefragt werden.

Grüße
hoschi


----------

