# Frequenzumrichter mit SPS ansteuern



## yone (31 Oktober 2012)

Hey,
ich habe die Aufgabe mittels einer SPS einen Frequenzumrichter & damit einen Motor anzusteuern. Die Drehzahl soll stufenlos einstellbar sein!

Daten:
SPS - Siemens Simatic S7-300 (CPU 314C-2 PN/DP)
FU - Siemens Sinamics S120 (CU310 PN)
Asynchronmotor

Ich habe mir ueberlegt, SPS und FU jeweils via Profinetverbindung an meinen PC anzuschliessen, um diese zu parametrisieren & konfigurieren. D.h. ich nehme beide erstmal in Betrieb ohne dass diese miteinander verbunden sind.

1) Ich brauche die Verbindung vom PC zu FU doch nur fuer die eigentliche Parametrisierung sprich Erstinbetriebnahme meines Antriebs mit dem Programm STARTER, oder? Danach brauche ich doch keine weitere Kommunikation von meinem PC zu diesem? Anschliessend will ich ja alles ueber meine SPS ansteuern, d.h. programmiere meine SPS & Ausgaenge von dieser reagieren auf die Eingangszustaende und steuern meinen FU.

...wo ich zu meinem 2. Problem komme: 

2) Wie verbinde ich SPS mit FU, sodass ich diesen stufenlos regeln kann? Kann ich das einfach via Profinet machen? Meine FU hat nur Digitale Ein- und Ausgaenge, sprich: Die duerften mir ja nicht viel nutzen...
Habe mir das in etwa so vorgestellt wie hier: Aufbau (erstes Bild, was ja im Prinzip genau mein Aufbau ist)
Ich habe an meiner SPS ja 2 Module, die analoge und digitale Ein- und Ausgaenge besitzen. Inwiefern brauche ich ueberhaupt diese Module fuer meine eigentliche Aufgabe? Will beispielsweise nachher ein Programm schreiben, was einen Drehmomentverlauf vorgibt & meine SPS soll dann meinen FU so ansteuern, dass der Motor diesen Verlauf "abfaehrt". 

Vielen Dank schon einmal!


----------



## Ralle (31 Oktober 2012)

Suche mal bei Siemens, die haben Bausteine und auch schöne Beispiele, komplett mit Programm und oft auch mit Visualisierung. 

http://support.automation.siemens.com/WW/view/de/58820849

Auch das hier:

http://www.automation.siemens.com/m...vernetzte_antriebstechnik/Seiten/Default.aspx

könnte sehr nützlich sein.


----------



## yone (31 Oktober 2012)

Oh man, ich danke dir erstmal vielmals! Das wird mich bestimmt 'n ganz grossen Schritt weiterbringen!


----------



## yone (5 November 2012)

Okay, hab mal noch ne Frage zu der benoetigten Software. 

Brauch ich neben Step7,Simatic Manager, HWKonfig (die letzten zwei sind in S7 mein ich ja sogar integriert) & STARTER noch das Programm Simatic iMAP? Habe in den Inbetriebnahmehandbuecher bisher nur was von den 4 oben genannten Softwares gelesen...


----------



## Sinix (5 November 2012)

Ich habe es nicht gebraucht


----------



## yone (5 November 2012)

Hoert sich schonmal gut an  Kann mir vielleicht kurz einer die Idee des Programms erklaeren, damit ich entscheiden kann, ob's fuer mich nuetzlich ist?


----------



## yone (6 November 2012)

Die Software ist jetzt installiert, allerdings anders als erwartet. Es handelt sich um die Siemens TIA V11! Verstehe ich das richtig, dass diese Software bereits den Simatic Manager und HWKonfig integriert hat? 

_Gibt es eine Inbetriebnahmeanleitung für TIA?_ Das ist ja schon anders als mit Step7 V5.5 etc.! Habe meine SPS, 24DC Stromversorgung & mein Antrieb (S120) ins Projekt hinzugefügt und SPS mit Antrieb im Projekt via Profinet verbunden. Dann muss ich noch meine FU parametrisieren (mit STARTER oder mit dem Bedienpanel, was empfehlt ihr?) Ist das alles, was ich machen muss? Dann wäre ja die Konfiguration meines Prüfstands dann nur noch eine Arbeit von 2 min...IP-Zuweisungen etc (also alles was man bei den vorherigen Versionen noch manuell machen musste) scheint ja alles automatisch zu gehen!


----------



## SUW (9 November 2012)

Hallo yone,
Das oben genannte Anwendungsbeispiel ist für Step7 Classic V5 und nicht fürs TIA Portal. Prinzipiell kannst du auch das ganze auch mit dem TIA Portal und Starter machen.
Ich würde dir den Starter empfehlen, da hast du mehr Möglichkeiten (Trace aufzeichen, Fehler und Warnungen im Klartext mir Hilfestellungen,....) gegenüber dem Bedienpanel (BOP).
Das oben genannte Anwendungsbeispiel findest du auch hier für das TIA Portal.
http://support.automation.siemens.com/WW/view/de/61450312

Ich hoffe du kommst damit soweit zurecht.
Hier noch ein Link zu einem FAQ mit einer Themensammlung zum TIA Portal, da sollten doch viel Fragen beantwortet werden und auch Hilfestellung geboten werden.
http://support.automation.siemens.com/WW/view/de/65601780

Viel Erfolg


----------



## yone (12 November 2012)

Super, wenn der Antrieb dann endlich steht, werd ich das dann mal mit Hilfe dieser Anleitung konfigurieren. 

Will einen Drehmomentverlauf abfahren: Gibt es eine Moeglichkeit einen Drehmomentverlauf (Matlab-Plot) einzulesen, der dann an meinen FU weitergegeben wird?
Wie teile ich meinem FU am besten diesen Verlauf mit? Mit meinen digitalen Ein/Ausgaengen & einem Ist/Sollwert-Vergleich (mein FU besitzt nur digitale Eingaenge) oder kann ich das ueber meine Profinet-Schnittstelle machen?


----------



## zako (12 November 2012)

Soll das über einen Kennlinienbaustein ablaufen, wo man z.B. einen Drehmomentsollwert abhängig z.B. vom Lageistwert vorgibt? Dann könnte man die Stützpunkte über Tabellenpunkte ablegen (z.B. mittels DCC, oder in einer überlagerten Steuerung (Kurvenscheibe)) Oder wird alles zur Laufzeit gerechnet?
Falls es in einem PC gerechnet wird, könnte man z.B. über eine CP1616 und PROFINET IRT in Echtzeit mit dem Antrieb kommunizieren.


----------



## yone (13 November 2012)

Ich habe ein Simulink Modell gegeben, welches bei wechselnder Eingangsgroesse zu festen Abtastzeitpunkten das momentante Drehmoment als Element in einem Vektor/Array abspeichert. D.h. ich lasse vorher ein Drehmomentverlauf errechnen. Es ist halt die Frage, ob ich dieses Array irgendwie einlesen kann & meinem FU somit den Verlauf uebermitteln kann oder ob man das irgendwie anders machen muss. Speziell dazu muss ich halt wissen, ob ich mit den digitalen Eingaengen des FU arbeiten muss (also Soll/Istwertvergleich des Drehmoments & dementsprechende Erhoehung/Erniedrigung des aktuellen Drehmoments) oder ob man ueber Profinet die Werte des Arrays direkt uebermitteln kann (sprich konkrete Drehmomentwerte vorgibt & der Motor diese dann anfaehrt)
Zur Verfuegung steht mir halt nur der PC, SPS & der FU samt ASM!


----------



## yone (20 November 2012)

Kann mir da keiner helfen? Ist meine Problemstellung soweit klar verstaendlich? 
Das duerfte doch programmiertechnisch kein riesen Problem sein diesen Verlauf abzufahren, allerdings finde ich einfach nichts zu Drehmomentregelung ueber SPS, was mir ansatzweise weiterhelfen koennte... :-?


----------



## ducati (20 November 2012)

yone schrieb:


> Kann mir da keiner helfen? Ist meine Problemstellung soweit klar verstaendlich?
> Das duerfte doch programmiertechnisch kein riesen Problem sein diesen Verlauf abzufahren, allerdings finde ich einfach nichts zu Drehmomentregelung ueber SPS, was mir ansatzweise weiterhelfen koennte... :-?


wie groß ist denn das Array?
Den Sollwertverlauf nem DB in der SPS ablegen. In dem SPS-Programm zyklisch die Momentensollwerte aus dem DB lesen und per Profinet an den FU schicken.

Gruß.


----------



## yone (20 November 2012)

Genau kann ich das noch nicht sagen, weil ich momentan nur wenige Sekunden simuliert habe, allerdings werden vermutlich spaeter mehrere Minuten simuliert.. Mehrere tausende Arrayelemente werden es aber schon. Es sollen halt Drehmomentschwankungen abgefahren werden, da bringt es nix alle 30 sec einen Abtastwert abzufragen 

Okay: Datenbaustein mit meinen Arrayelementen fuellen, Elemente meines Datenbausteins auslesen & an FU weitergeben. 
Was noch zu klaeren ist: Ich kann wirklich per Profinet die Sollwerte weitergeben, sprich darueber meinen Antrieb steuern?  Ich muss also nicht mit meinen digitalen Eingaengen meines FU arbeiten?

Wie fuell ich denn meinen Datenbaustein mit meinen Arrayelementen? Ich rede ja nicht von 10 Elementen, die ich auch per Hand eingeben koennte.. . Werd mich dann jetzt mal mit DBs mehr beschaeftigen!

Danke fuer die Hilfe 

Edit: Sehe grad, dass die CPU314C2 die DBs auf 16kB begrenzt...da muesste ich dann vermutlich auch mehrere DBs anlegen!


----------



## SUW (21 November 2012)

Hallo yone,

ja da musst wahrscheinlich mit mehreren DBs arbeiten, bei einer PC based S7 (WinAC) hättest 65kB pro DB.

Ja die Sollwerte kannst über Profinet von der S7 an den Umrichter schicken, da musst bei der Hardwarekonfiguration nur das richtige Telegramm auswählen mit dem du den Momentensollwert zyklisch schreiben kannst.

Falls der Momentensollwert in deinem Telegramm nicht vorkommt, schaltest um auf freie Telegrammprogrammierung und fügst am Ende des Telegramms noch den gewünschten Parameter hinzu.

Gruß


----------



## yone (27 November 2012)

Ah okay, das werd ich dann mal so ausprobieren, danke 

Okay, aber das eigentliche Problem des Einlesen des Arrays ist damit ja noch nicht geloest leider! Hat da jemand vielleicht auch eine Idee, wie man das umsetzen kann?


----------



## SUW (27 November 2012)

Hallo yone,hab jetzt noch etwas gegooglet aber ich glaub du wirst nicht drum rum kommen, dass du einen PC hast und von dort deine Array-Elemente an die S7 übergibst.Hab zwar noch eine Applikation gefunden die mittels OPC von einem PC aus einen Umrichter steuert http://support.automation.siemens.com/WW/view/de/24332811 aber in wie weit das für deine Anforderungen abzuändern ist kann ich nicht sagen.Mein Vorschlag wäre hier eine PC basierte S7 Steuerung zu verwenden, da hast du mehr Möglichkeiten deine Array Tabellen vom Windows (Excel, csv, txt,...) in die S7 zu bekommen und dann den Drehmomentsollwert über Profinet abhängig von deiner Tabelle zu verändern.Sorry für meine Inkompetenz


----------



## borromeus (27 November 2012)

Was ist denn das für ein Antrieb, der so einen Aufwand braucht?


----------



## yone (5 Dezember 2012)

@ SUW: Ich habe für meinen Prüfstand dauerhaft einen PC zur Verfügung! 





> Mein Vorschlag wäre hier eine PC basierte S7 Steuerung zu verwenden, da hast du mehr Möglichkeiten deine Array Tabellen vom Windows (Excel, csv, txt,...) in die S7 zu bekommen und dann den Drehmomentsollwert über Profinet abhängig von deiner Tabelle zu verändern.


Genau das ist doch das was ich will. Eine Excel-Tabelle o.ä einlesen & via Profinet an meinen FU weitergeben. Und genau dazu ist meine Frage, wie ich das realisieren kann 

@ borromeus: 
Motor: ASM
Frequenzumrichter: Sinamics S120 CU310 PN
SPS: S7-300

Wie meinst du das jetzt?


----------



## zako (5 Dezember 2012)

Hallo yone,
in der Prüfstandstechnik hast Du normalerweise ein periodische Signal - z.B. nach einer Lastumdrehung wiederholt sich das Signal welches vorgegeben wird wieder.
Wie schnell brauchst Du einen neuen Stützpunkt - z.b. alle ms, oder muss es schneller sein? In Abhängigkeit vom Lageistwert - oder ist die X-Achse die Zeitachse?
Welche Regelbandbreite willst Du erreichen?
Wenn das Signal periodisch ist, macht es evtl. auch Sinn dieses durch Fourierkoeffizienten zusammenzusetzen. Dann kann man in Abhängigkeit der Regelstrecke getrennt bewerten.


----------



## ducati (6 Dezember 2012)

Hallo, so grob hab ich mir ne Vorstellung gemacht, was Du tun willst. Prinzipiell gibts der Lösungen viele...

So wie ichs verstanden habe, wärs eigentlich keine klassische Aufgabe für ne SPS. Es sei denn, Du willst noch weitere Steuerungsaufgaben realisieren, unabhängig von der Sollwertvorgabe für den FU...

Für nen Prüfstand ist natürliich immer LabView prädestiniert. Oder da Du ja schon Simulink erwähntest, nimm doch gleich XPC-Target...

Ausserdem muss es auch nicht unbedingt Profinet sein, die Sollwertvorgabe kannst auch über nen analogen Eingang am Umrichter machen.

Meine Idee wäre: Die Steuerungsaufgaben der Anlage (Verriegelungen/Ein-Aus/Visu?) über die SPS, die Sollwertvorgabe über XPC-Target... weil so große Arrays in die SPS zu schieben ist nicht so ganz optimal...

Gruß


----------



## yone (11 Dezember 2012)

Die Aufgabe ist aber gerade die Regelung über die SPS, das ist ja das Problem  Ich muss also definitiv irgendwie schauen, dass ich die Tabelle einlese oder das auf 'ne andere Art und Weise realisiere!

Prüfstand sollte man vielleicht nicht unbedingt so wörtlich nehmen. Nachher soll halt dieser Momentverlauf abgefahren werden, damit man sieht wie eine Windkraftanlage auf verschiedene Windverhältnisse reagiert!


----------



## zako (12 Dezember 2012)

Hallo yone,
irgendwie weiss ich immer noch nicht was Du treiben willst. Einen Regelkreis über die SPS wirst Du wohl nicht schließen - es sollen ja nur Sollmomente an den Antrieb vorgegeben werden.
In welchen Zeitabschnitten möchtest Du die Werte vorgeben - z.B. alle ms? Dann kannst Du die Stützpunkte in einem Datenbaustein in der SPS ablegen und dann zyklisch übertragen. Wenn man pro signalperiode 10 stützpunkte haben will, könntest Du hier 100Hz erreichen.
Wenn Du aber Frequenzen von mehren tausend Herz hast, dann gibt es eben Möglichkeiten direkt im Antrieb. Der SINAMICS Stromregler erreicht Grenzfrequenzen von einigen tausend Herz (also Anwendungen wo man wirklich mal die Dynamik der SINAMICS SERVO- Regelung voll ausnutzen kann).
Je nachdem ob periodische Störmomente vorgegeben werden sollen, oder feste Resonanzfrequenzen vorgegeben werden, gibt es hierzu OA- Erweiterungen, so dass z.B. alle 31,25µs bei Booksize- Geräten neue Werte vorgegeben werden können.
Man kann dann z.B. Kurvenverläufe in eine EXCEL- Tabelle zusammensetzen und die Werte direkt über ein Script in den Antrieb übertragen, die dann komplett im Antrieb abgearbeitet werden. Hierfür bräuchte man dann überhaupt keine SPS. 
Wie gesagt, es ist die Frage was gemacht werden soll.
Wir wissen z.B. auch nicht, welche Momentengenauigkeit gefordert wird - aber braucht Du z.B. wirklich eine so hohe Genauigkeit, wie Sie z.B. der SINAMICS in der Betriebsart VECTOR bietet (dann ist es schon wichtig, ob Du einen Wald & Wiesen Motor hast, oder z.B. einen 1PH8- Servoasynchronmotor?
Grüße
Zako


----------



## ducati (19 Dezember 2012)

Hallo zako,
 denke nicht dass es um ein so schnelles periodisches Moment geht? Der Wind ändert sich doch auch nicht so schnell... Ich vermute mal eher so alle 500ms nen neuer Momentensollwert an den Umrichter... so will er dann viel Wind, wenig Wind, Windböen, ansteigenden/abfallenden Wind etc. simulieren...
Und die Daten dafür kommen aus Matlab und sollen über die SPS an den Umrichter.
Jetzt fehlt nen Tool was die Matlab-Daten in den DB der SPS schiebt. Händisch per Copy/Paste wär ja erstmal die einfachste Variante...

Gruß.


----------



## yone (7 Januar 2013)

Erstmal will ich nur einen Drehmomentverlauf abfahren, den ich vorher simuliert habe. 


> Und die Daten dafür kommen aus Matlab und sollen über die SPS an den Umrichter.
> Jetzt fehlt nen Tool was die Matlab-Daten in den DB der SPS schiebt.  Händisch per Copy/Paste wär ja erstmal die einfachste Variante...


Genau das will ich ja erstmal nur machen, mehr erstmal nicht! Wie wuerde das mit der 'CopyPaste' Variante funktionieren? 

Spaeter findet eine Regelung statt, wofuer ich dann auch definitiv die SPS brauche.
Mein ASM wird dann an einen doppeltgespeisten ASM gekuppelt, welcher ueber einen seperaten Frequenzumrichter gesteuert wird. Die Drehzahl des Generators wird an meinen PC/SPS zurueckgegeben, worauf dieser dann reagiert. Das soll also am Ende echtzeitfaehig ablaufen!


----------



## zako (7 Januar 2013)

Hallo Yvone,

hier erstmal die Verbindung Matlab --> SPS (WinAC):

http://support.automation.siemens.com/WW/view/de/56969417

Die Daten an den Antrieb zu senden ist dann auch nicht mehr das große Thema. 
Hierzu gibt es dann auch Applikationsbeispiele.


----------



## ducati (8 Januar 2013)

zako schrieb:


> Hallo Yvone,
> 
> hier erstmal die Verbindung Matlab --> SPS (WinAC):
> 
> ...



er will doch nicht das Simulink-Modell auf der SPS laufen lassen... Er will nur ne Tabelle (Zeit/Moment) welche Simulink offline erzeugt, in der SPS dann abfahren. oder seh ich das falsch? 

Dazu einfach offline das Simulink Array in nen textfile oder Excelfile schieben, daruas dann in Step7 das ganze in den DB kopieren und den DB dann in die SPS laden...

Gruß.


----------



## yone (17 April 2013)

Ich melde mich nochmal wieder, da erst jetzt der Antrieb soweit vorbereitet ist. Mich interessiert jetzt nur noch das Einlesen des Excelfiles bzw des Arrays. Nehmen wir mal an, alles ist soweit eingebunden, in Step7 projektiert etc und ich will jetzt mein Programm schreiben:
Was muss ich tun, um das umzusetzen, was *ducati* im Post über mir geschrieben hat. Nochmal: Ich hab von Step7 so gut wie keine Ahnung und bin froh, wenn ich das ganze fertig projektiert und konfiguriert habe .

Danke schonmal!


----------

