# Antriebs-Freigabe programmieren



## yone (14 Juni 2013)

Hey,
ich bin gerade dabei meinen Antrieb (Frequenzumrichter + Asynchronservomotor) über meine SPS zu steuern. Ich möchte eine Drehzahlsteuerung über die SPS vornehmen. Dazu möchte ich zunächst einmal eine Antriebsfreigabe programmieren. 
In der Main möchte ich ein Netzwerk (in KOP) dazu erstellen, welches bei Betätigung eines Schalters (also beispielsweise dem Setzen von E0.0 auf 1) die nötigen Steuerparameter für meinen Antrieb setzt.

Als Problem stellt sich aber heraus, dass die Eingänge wohl noch adressiert werden müssen. Füge ich im Netzwerk einen Schließer beispielsweise hinzu, kann ich nichts auswählen. 

Beispielsweise wie hier: http://www.brix.de/elektrik/sps/_images/flankenauswertung_manuell.png 
Dort ist "Aktualwert E0.1" für das AND Gatter ausgewählt. Ich möchte aber den tatsächlichen Zustand meines SPS Eingangs E0.1 auswählen ("Aktualwert E0.1" scheint mir ja eine Variable zu sein, die vorher definiert und im Programm gesetzt wurde). Das einzige was ich machen kann ist in der Variablentabelle Variablen hinzuzufügen. Diese stehen dann natürlich zur Auswahl, aber bringen mich nicht weiter. Muss ich meine Eingänge zunächst einmal adressieren? Wenn ja, wie mach ich das?

Anschließend würde mich noch interessieren, inwiefern ich die Steuerwörter übergeben kann? Zwischen SPS und FU ist eine Profinetverbindung aufgebaut, über die ich diese übermitteln möchte.

Vielen Dank für die Hilfe

P.S: Ich bin absoluter Step7 Neuling, bräuchte aus diesem Grund einen Einstieg in dieses Programm. Dazu habe ich mir bereits das Buch "Automatisieren mit SPS - Theorie und Praxis" ausgeliehen. Hat jemand ähnliche Empfehlungen, die vielleicht auch Schritt für Schritt in das Thema einführen und von Anfang an kleinere Beispiele zum Verständnis enthalten?


----------



## dentech (14 Juni 2013)

Ausbildungsunterlagen von Siemens

Als Einstieg ganz gut
http://www.automation.siemens.com/m...oad_ausbildungsunterlagen/seiten/default.aspx

Tschö dentech


----------



## yone (14 Juni 2013)

Okay, danke! Das erste Problem mit der Adresszuweisung ist damit geklaert, verstehe ich soweit jetzt! Habe schon ein kleines Testnetzwerk erstellt und den Ausgang in Abhaengigkeit der Eingaenge mit der Beobachtungsfunktion ueberprueft. Soweit bin ich schonmal schlauer!

Mir fehlt jetzt noch das Setzen der noetigen Steuerwoerter, um den Antrieb freizugeben. Soweit ich das recherchiert habe, muss ich nun die Steuerwoerter in einem DB abspeichern und diesen dann an den FU uebergeben, korrekt? 
Als Telegramm habe ich das SIEMENS Telegramm 390, PZD-2/2 gewaehlt. Mein FU erwartet also ein 2 Byte Datenpaket und sendet ein 2 Byte Datenpaket zurueck nach meinem Verstaendnis. 

1) Welchen Datentyp muss mein DB haben? 
2) Wo kann ich eine Uebersicht ueber den Aufbau (an welcher Stelle welches Steuerwort) der verschiedenen Telegramme finden und reicht dieses Telegramm aus um eine Drehzahlsteuerung durchfuehren zu koennen oder welches sollte ich stattdessen verwenden?
3) Wie uebergebe ich letztlich den DB an den FU? Wenn ich unter Netzwerk als Ausgang meines AND Gatters den Datenbaustein auswaehle, meldet er "Unerwartetes Eingabeende". 

Vielen Dank


----------



## ducati (14 Juni 2013)

yone schrieb:


> Zwischen SPS und FU ist eine Profinetverbindung aufgebaut, über die ich diese übermitteln möchte.



Kannst Du den FU nicht in der HW-Konfig projektieren, so dass Du die Status und Steuerworte im Prozessabbild hast?

Gruß.

PS: welche Hardwarekomponenten (FU und SPS) verwendest Du überhaupt?


----------



## yone (14 Juni 2013)

FU: Sinamics S120 CU310 PN
SPS: Simatic S7-300 CPU314C-2

Den FU hab ich projektiert, allerdings weiss ich trotzdem nicht wie ich auf die Status- und Steuerworte zugreifen kann. STW1.0 bis STW1.3 (Aus1-3 und Freigabesteuerwort) muessen zu 0 bzw zu 1 gesetzt werden fuer die vollstaendige Freigabe, korrekt?


----------



## ducati (14 Juni 2013)

https://www.automation.siemens.com/...vernetzte_antriebstechnik/Seiten/Default.aspx

H2 ist doch eigentlich ne Schritt für Schritt Anleitung...


----------



## yone (20 Juni 2013)

Das bringt mich einerseits weiter, aber das eigentliche Problem hab ich trotzdem noch nicht gelöst. Kann mir da jemand kurz erklären, wie ich Steuerwörter übergebe?


----------



## Verpolt (22 Juni 2013)

> *ducati*
> 
> 
> 
> ...



*ACK*

Da steht alles Erforderliche drininne

Anhang anzeigen 21007


@*yone    *Geb dir mal Mühe


----------



## yone (24 Juni 2013)

Werd ich morgen mal ausprobieren, danke 

P.S: Das tu ich, ich recherchier nicht umsonst stundenlang im Internet und komm nicht weiter . Wenn man damit noch nie gearbeitet hat und keinerlei Ansprechpartner hat, versteht man halt zunächst einfach nur Bahnhof, obwohl's im nachhinein vielleicht garnicht so schwer sein mag.

Gruß


----------



## yone (25 Juni 2013)

Habe nun meine Zustands- und Steuer-DBs erstellt und das Setzen des EIN_AUS1 Steuerworts in mein Netzwerk eingefuegt:





Habe das Standardtelegramm 2 (PZD 4/4) ausgewaehlt. Habe mich nebenbei mit STARTER verbunden, um die Steuerwoerter beobachten zu koennen (kann ich das ueberhaupt dazu nutzen oder kommt es dann zum Konflikt beider Programme?) Dort trat aber keine Veraenderung auf, was irgendwie logisch ist. Ich muss doch diesen DB irgendwie an den Sinamics senden. Bisher aendere ich ja nur den Zustand einer Variable meines DBs. Wie sende und empfange ich die DBs als Zustand- und Antworttelegramm?

Gruss!


----------



## ducati (25 Juni 2013)

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

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

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


----------



## yone (25 Juni 2013)

Ich hab das Schreiben der Steuerwoerter jetzt mit Hilfe von SFC14 und SFC15 (DPWR_DAT bzw DPRD_DAT) hingekriegt! 

Danke *ducati*, werd mir das dann als naechstes mal zur Brust nehmen. Grad ging mir auf jeden Fall hier und da mal ein kleines Licht auf!


----------



## yone (26 Juni 2013)

Es klappt doch noch nicht ganz so, wie gedacht:

Anhang anzeigen 21043


Anhang anzeigen 21044


Wenn ich beispielsweise ueber den DB20 AUS1 auf 0 oder 1 setze, muesste sich im DB21 ja die Variable KeinAUS2 veraendern. In der Doku von ducati werden auch die Bausteine SFC14 und 15 genutzt, um Prozessdaten schreiben und lesen zu koennen. Da tut sich aber scheinbar nichts: Gehe davon aus, dass weder das Schreiben, noch das Lesen funktioniert:
Anhang anzeigen 21045

-32591 an RET_VAL bedeutet was? Der blaue Kasten ist doch auch ein Indiz dafuer, dass die Funktion nicht aufgerufen wird, oder?

Kann ich eigentlich mit STARTER meine Zustaende sehen oder kommt es zum Konflikt beider Programme? D.h. wenn ich einen Parameter setze muesste das auch in STARTER sichtbar sein, richtig?


----------



## volker (26 Juni 2013)

also ich verstehe nicht warum du dir nicht die beispielbausteine ansiehst bzw benutzt.

drück mal f1 auf dem baustein dann bekommst du eine hilfe inklusive fehlerliste. der fehler am retval ist hex also 80b1.
80B1	Die Länge des angegebenen Zielbereichs ist ungleich der mit STEP 7 projektierten Nutzdatenlänge.

die sfc14/15 erwartet die in der hardware projektierte länge.
also nicht nur das steuerwort sondern auch den sollwert usw 
um nur das steuerwort zu übertragen machst du am einfachsten
L db21.dbw0
T PAW256

und es reicht auch nicht NUR den aus1 zu beschreiben. auch die bit 1.1-1.6 müssen beschrieben werden.

und ja, du kannst problemlos s7 und starter parallel benutzen. in der statusanzeige siehst du die steuerbits.


----------



## yone (30 September 2013)

Hey,
konnte lange Zeit nicht mehr weiterarbeiten, aber habe mich jetzt mal an dieses Beispiel gesetzt: http://cache.automation.siemens.com...INAMICS_G120_at_S7-300400-PN_DOKU_V1d1_de.pdf
Soweit versteh ich die Funktion der Bausteine auch und das ganze hat mich schon enorm weitergebracht...

Ich habe nun alles soweit programmiert, dass die Prozessdaten ueber die DPRD_DAT und DPWR_DAT Bausteine an den Frequenzumrichter zyklisch uebertragen werden. Ab Seite 40 wird dann auf den FB20 eingegangen, der fuer die azyklische Prozessdatenuebertragung zustaendig ist. Zunaechst einmal kann ich mit den Eintraegen aus den DB 100,101 und 103 (Inhalt ab Seite 40 des Dokuments aufgelistet) so nahezu garnichts anfangen. Kann mir da jemand helfen? 

 siehe http://support.automation.siemens.c...lib.csinfo&lang=de&objid=60140921&caller=view


----------



## charly2599 (30 September 2013)

Umrichter Parameter schau mal im "Drive ES - Starter" da ist p1120 Hochlaufgeber Hochlaufzeit und p1121 Hochlaufgeber Rücklaufzeit da sind die zwei rot markierten auf Seite 40.  z.B. Parameter Nummer: 1120 Parameter Index: 0 Parameter Format  Byte (oder word,INT,REAL,usw) .....


----------



## yone (1 Oktober 2013)

Okay, dann lass ich das einfach erstmal weg, weil ich nicht unbedingt Parameter schreiben muss! Darum kann ich mich dann später vielleicht nochmal kümmern!

Ich würde mein Programm gerne auf Funktion testen, allerdings blicke ich noch nicht wirklich dahinter, wie ich in der Simulation überprüfen kann, dass z.B. das Schreiben und Lesen der Prozessdaten funktioniert! Gibt es dazu eine gute Einführung, bei der man sich etwas schlauer lesen kann? Bin noch nicht fündig geworden, schaue mal weiter, aber Empfehlungen nehm ich gerne an 
Die Hilfe bringt mich da nicht wirklich weiter und das "Simulieren mit Variablentabelle" ist bei mir grau hinterlegt. Ich verwende die Version TIA Portal V11!

EDIT: Habe unter Step7 das freie Telegramm PZD 6/6 ausgewählt, ist das genauso aufgebaut wie das Siemens 352 PZD6/6? Kann letzteres nämlich nicht - wie im Beispiel gewählt - auswählen! In STARTER sollte ich doch auch nähere Informationen über den jeweiligen Telegrammaufbau auslesen können?! Bin gerade nicht am Prüfstandsrechner, das werd ich morgen dann mal ausprobieren!


----------



## yone (16 Oktober 2013)

Ich komme nicht wirklich weiter bei der Simulation. 
Ich moechte mit den Eingaengen I3.0 bis I3.7 die Steuerwoerter fuer die Antriebsfreigabe setzen und den Drehzahlsollwert erhoehen, erniedrigen und auf 0 zuruecksetzen koennen.
Meine Variablentabelle sieht wie folgt aus:



> start    Bool    %I3.0        Ein-/Ausschalten des Antriebs
> aus2    Bool    %I3.1        Antrieb trudelt aus (0)
> aus3    Bool    %I3.2        Antrieb wird abgebremst (0)
> ack    Bool    %I3.3        Quittierung anstehender Fehler durch steigende Flanke
> ...



Als Telegramm hab ich in STARTER fuer den Antrieb das Standardtelegramm 1 PZD2/2 und fuer die CU das Siemens Telegramm 390 PZD 2/2 ausgewaehlt. 

Der Aufbau des Telegramms fuer Steuerung/Zustand sieht ja wie folgt aus:



> PZD1 : Steuerwort 1 / Zustandswort 1
> PZD2 : N_SOLLA / N_ISTA



Mittels eines FBs + DBs schreib ich dann an Adresse 256 das Steuerwort und den Sollwert! Die Programmierung sollte im Prinzip jetzt vollstaendig sein und wuerde das Ganze gerne testen.

Nun wuerde ich gerne den Inhalt von IW256, IW258 sowie QW256 und QW258 beobachten, damit ich sehen kann, ob die I/0 Adresse des Umrichters auch korrekt beschrieben wird!
Ich habe dazu die Simulation gestartet und unter "Einfuegen -> Eingaenge" IW256 eingegeben, allerdings funktioniert das nicht wirklich (wird grau hinterlegt). Desweiteren muss ich ja danach meine Symboltabelle zuordnen. Wenn ich mein S7-Projekt auswaehle, finde ich aber keine Symboltabelle, die ich hinzufuegen koennte. Wo ist diese als Datei zu finden?
Vielleicht koennt ihr mir erklaeren, wie ich unter PLCSIM vorgehen muss, um das oben beschriebene testen zu koennen.

Vielen Dank schon einmal!


----------



## ChristophD (16 Oktober 2013)

unter PLCSIM wirst du das vermutlich gar nicht simulieren können.
PLCSIM simuliert dir den Antrieb und sein Steuerwerk überhaupt nicht!


----------



## yone (16 Oktober 2013)

Was habe ich denn fuer eine andere Moeglichkeit mein Programm auf Funktion zu testen? Ich weiss noch nicht, wann ich wieder Zugang zum Antrieb hab und wenn es soweit ist wuerde ich gerne sicher sein, dass mein Programm auch funktioniert...

EDIT:
Mit PQB 256 und PIB 256 konnte ich das ganze jetzt doch einfuegen. Allerdings kann ich meine Symboltabelle unter PLCSIM unter "Symbole zuordnen" nicht finden. Wo ist die denn genau abgespeichert?
Ansonsten funktioniert das Programm scheinbar  Werde noch die ein oder anderen Dinge testen muessen, aber jetzt waere es halt von Vorteil, wenn ich auch die zugehoerigen Symbolbezeichnungen an meinen Ein/Ausgaengen zur Verfuegung haette, sprich die Variablentabelle zuordnen koennte!


----------



## yone (22 Oktober 2013)

Programm funktioniert soweit!

Ich wuerde jetzt gerne Messwerte (Drehzahlen) aus einer Exceltabelle einlesen und dem Antrieb uebermitteln. Gibts da eine Moeglichkeit?
Die andere Idee, Messwerte in einen DB abzuspeichern und auszulesen ist womoeglich deutlich einfacher, allerdings sind die DBs ja in ihrer Groesse auch beschraenkt und das Erstellen von mehreren DBs ist dann auch etwas umstaendlich.

Bis hierhin auf jeden Fall schonmal danke fuer die Hilfe


----------



## charly2599 (24 Oktober 2013)

normaler weise sendest du eine Solldrehzahl zum antrieb. (weil der kann sich ja nur aktuell mit einer drehen)
Excel in step7 öhm ??? 
ein S120 kann viele tolle Sachen z.B. Festsolldrehzahlen zwischen den du umschalten kannst oder motorpoti auf/ab usw. (und auch eine schöne Sache CFC pläne)

nochmal ganz langsam was für Messwerte (Sollwertquelle) sind die fest?

möchtest du vielleicht eine bestimmte Zeit mit einer bestimmten Drehzahl oder einen bestimmten weg mit einer bestimmten Drehzahl oder ....

mir ist nicht klar was du möchtest wenn ich ehrlich bin. 

(ps ich wäre erstaunt wenn du an die max größe eines DB's stößt ist mir noch nie passiert)


----------

