Sinamics S110 CU305 PN Control Unit Positionsvorgabe

Roland15

Level-1
Beiträge
61
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ist mein erstes Projekt mit Sinamics 110

Power Module PM240‑2
Sinamics S110 CU305 PN Control Unit
SIMATIC S7-1200 CPU 1215C
Basic Panel KTP-700
Kommunikation über Profinet

Einrichten (Tippbetrieb) & Hand (Positionswert Vorgabe) funktioniert soweit.
Das Problem ist ich weiß nicht wie ich die Eingabe vom SP".Position realisiere wenn ich verschiedene Positionen habe.
Da ich diese nicht mehrmals verwenden kann.


Ich bin für jeden Vorschlag Dankbar.
Evtl. hat jemand ein Vorlage Projekt, bei Siemens gibt es nichts bzw.(Support)


VG Roland
 
FB284 Position

Fürs Verständnis


Mit SP".Position (7000) meine ich den FB284 SINA_POS Positions Sollwert,
dem ich im Automatikbetrieb in verschiedene Schritten mehrere Positionen vorgeben möchte


VG Roland
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,
ich verstehe deine Frage nicht so ganz. An den FB_SinaPos.Position schreibst du einfach eine Variable, in der die gewünschte Position drin steht.
 
Guten Morgen Howard,


Sorry, ich versuche es mal etwas verständlicher zu machen.
Bei mir gibt es 3 Betriebsarten
Einrichten ModePos 8 = Tippbetrieb, Antrieb verfährt so lange man auf der Taste bleibt mit langsamer Geschwindigkeit.
Handbetrieb ModePos 2 = fährt auf die eingestellte Position
Automatik ModePos 2 = Dauerbetrieb mit einer vorgegebenen Stückzahl.
Dem FB284 habe ich den DB30 zugewiesen.
Wenn ich es richtig verstanden habe muss ich am FB284 bei Position z.B. den Wert (7000) vorgeben um auf die gewünschte Position zu fahren.
D.h. z.B. im Handbetrieb schreibe ich einen Wert auf Position, im Auto-Betrieb einen Wert klemmen, zweiter Wert öffnen.
Es wird im Programm der Reihe nach abgearbeitet und immer den letzten Wert der Anweisung, d.h. es steht immer der letzte Wert drin.
Das ist mein Problem, ich weiß nich wie ich das genau realisieren soll.
Ich habe das auch schon mit den Verfahrsätzen gelesen, aber die 16 Sätze werden in Zukunft nicht ausreichen weil es mehrere Anwendungen gibt für den Antrieb.


VG Roland
FB284 Position.JPG
 
also grundsätzlich schreibst du an den Parameter Position deine Sollposition in LU-Einheiten (außer halt in der Betriebsart 6).
Siemens Hilfe:
Positionssollwert in [LU] für Betriebsart Sollwertdirektvorgabe/MDI ODER Verfahrsatznummer für Betriebsart Verfahrsatz
So, und deine Aufgabe ist es jetzt, dass jedes mal, wenn der Antrieb eine neue Position anfahren soll, auch eine neue Position in deinen DB30_ST5_2G_SP.Position geschrieben wird.
Das könnte man ganz klassisch mit einer Schrittkette machen. Nach dem Motto:
1. Schritt - Lade Sollposition für Klemmen
2. Schritt - Warte auf Klemmposition erreicht
3. Schritt - Lade Sollposition für öffnen
4. Schritt - Warte auf Öffnenposition erreicht
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Roland

Sag mal, wenn ich klemmen lese, willst du das motorisch mit Moment klemmen oder ist das nur eine Position, in der dann z.B. pneumatiwch geklemmt wird?
 
Hallo Howard

Danke für den Tipp, mit der Schrittkette habe ich schon angefangen, für jede Position mit Move den Wert in die "SP .Position zu schreiben.
Geht dies auch einfacher, nach jedem Schritt muss der ExecuteMode eine pos. Flanke bekommen.
Hat jemand evtl. ein Beispiel das ich mir dies besser vorstellen kann.

VG Roland
 
@Roland

Was meinst du mit einfacher?

1. Variante
Du schreibnst Position, Vel und Acc in die entsprechenden Variabken und startest denn Servo.
Wenn er angekommen ist, dann meldet er dir das und du kannst die nächste Aktion starten.
Das ganze handelst du in einer Schrittkette ab.

2. Variante
Du kannst auch Statteiner Position eine Satznummer übergeben (Mode 6).
Dann kannst du im Servo Verfahrsätze anlegen und diese mit Satzweiterschaltung verketten.
Damit kannst du eine ganze Abfolge von Bewegungen starten, bist aber nicht ganz so flexibel mit der Übergabe der Positionen.
Willst du die in den Verfahrsätzen von der SPS aus ändern können, mußt das das dann extra z.B. per Parametertransfer machen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Geht dies auch einfacher, nach jedem Schritt muss der ExecuteMode eine pos. Flanke bekommen.
Hat jemand evtl. ein Beispiel das ich mir dies besser vorstellen kann.
Um die Flanke die der Baustein braucht kommt man leider nicht herum. Aber optimieren kann man natürlich immer.
Wenn man bei diesem Beispiel bleibt kann man es so beispielsweise erweitern:
1. Schritt - Lade Sollposition für Klemmen UND setze ExecuteMode auf True
2. Schritt - Warte auf Klemmposition erreicht UND setze ExecuteMode auf False
3. Schritt - Lade Sollposition für öffnen UND setze ExecuteMode auf True
4. Schritt - Warte auf Öffnenposition erreicht UND setze ExecuteMode auf False
so wäre bei gleicher Anzahl Schritten auch das Execute berücksichtigt.
Je nachdem wie man seine Schrittkette ausführt, gibt es auch unterschiedliche Möglichkeiten und Optimierungen - man sollte aber nicht aus Faulheit auf die Lesbarkeit des Codes verzichten.
;)
 
Hallo Ralle,

ich stehe total auf dem Schlauch, dies ist mein erster Antrieb.
Was meinst Du mit Vel & Acc?

VG Roland
 
Geschwindigkeit und Beschleunigung, bzw. bei MDI und Sina-Pos-Baustein Override Beschleunigung in 0-100 %
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Roland

Sag mal, wenn ich klemmen lese, willst du das motorisch mit Moment klemmen oder ist das nur eine Position, in der dann z.B. pneumatiwch geklemmt wird?

Hallo Ralle,

ja es wird motorisch geklemmt, ich klemme mit kleinen Schritten und messe die Kraft mit einem Messumformer bis ich die gewünschte Kraft habe, die Position nehme ich als Bezugspunkt.
ich hatte mit dem Siemens Support Kontakt, es geht angeblich mit Drehmoment nur über die Verfahrsätze?
VG Roland
 
:confused:
es klappt einfach nicht

hat evtl. jemand ein Projekt mit dem Antrieb der verschiedene Positionen anfährt, am liebsten mit Schrittketten.
Damit ich dies verstehen kann.
VG Roland
 
was klappt denn genau nicht? Poste doch mal deinen Code und dann schauen wir mal drauf. Fehler in deinem Programm zu finden und erklärt zu bekommen wird dir mehr helfen, als etwas fertiges abzutippen ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
was klappt denn genau nicht? Poste doch mal deinen Code und dann schauen wir mal drauf. Fehler in deinem Programm zu finden und erklärt zu bekommen wird dir mehr helfen, als etwas fertiges abzutippen ;)

Hallo Howard,


wenn man keinen schimmer hat ist es sehr schwierig es verständlich vernünftig hinzubekommen.
Heute hat es zum ersten mal geklappt, mehr schlecht als recht, ich kann die Pos. abgefragten Flanken nicht sehen ob diese vernünftig kmmen.
Es bleibt auch ständig hängen, einmal in Offener Position Netzwerk 3.
Und in geklemmter Position öffnet es manchmal nicht NW5.
Wenn ich den "DB30 ST5 2G_SP".ExecuteMode auf eins steuere läuft es wieder weiter.


VG Roland
Offen klemmt nicht.jpg
geklemmt, öffnet nicht.png
Starten der mit ModePos gewählten Betriebsart.png
 
wenn man keinen schimmer hat ist es sehr schwierig es verständlich vernünftig hinzubekommen.
das ging uns allen mal so ;)

Heute hat es zum ersten mal geklappt, mehr schlecht als recht, ich kann die Pos. abgefragten Flanken nicht sehen ob diese vernünftig kommen.
Es bleibt auch ständig hängen, einmal in Offener Position Netzwerk 3.
Du könntest dafür ein Trace anlegen, mit dem kann man alle global verfügbaren Variablen zyklusgenau aufzeichnen. Das hilf oft ungemein um Abläufe besser nachzuvollziehen:
Links im Projektbaum -> Traces -> neues Trace anlegen -> Konfigurieren und in die Steuerung laden -> Aufzeichnung starten

Und in geklemmter Position öffnet es manchmal nicht NW5.
Wenn ich den "DB30 ST5 2G_SP".ExecuteMode auf eins steuere läuft es wieder weiter.

Grundsätzlich sieht das vom Konzept her erstmal ganz ordentlich aus. Deine Probleme hören sich danach an, dass du entweder nicht im richtigen Schritt bist, oder aber bei den Flanken was falsch gemacht hast. Versuche mal den Trick mit dem Trace, dass sollte dir genau zeigen, wann du in welchem Schritt bist und ob die Schrittwechsel sowie die Flanken richtig kommen.

Ich kann dir zudem auch noch Graph als Erstellsprache empfehlen, die ist genau für Schrittketten gemacht, allerdings muss man sich da mal kurz einarbeiten.
 
zu deinen Bildern: Ist es gewollt das in Netzwerk 5 "Auto Schritt 4 öffnen", am SR-Glied etwas von "Auto Schritt 5 WST" steht, oder ist das ein Tippfehler?

außerdem nutzt du zwei unterschiedliche Konzepte in deinen Netzwerken, um dir die Flanken zu generieren. Einmal entsteht die Flanke hinter dem SR-Glied, das andere mal hinter dem UND/vor dem SR-Glied?! :confused:
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Howard,


ja das mit dem SR-Glied etwas von "Auto Schritt 5 WST" ist gewollt, es fährt nur eine min Pos auf Wartestellung.
Am Anfang waren die Konzepte gleich die Flanken zu generieren. war nur ein Versuch ob es ein Unterschied macht.
Aber trotzdem bleibt es beim klemmen manchmal beim öffnen stehen???
Was ich auch nicht verstehe, das klemmen nicht zurückgesetzt wird, obwohl dies mit der Flanke P.IMP Schritt 2 geklemmt geschehen sollte.
Aber diese sind so kurz dass mann diese nicht erkennt?


VG Roland
Offen klemmt nicht 2.png
 
naja, eine Flanke ist genau einen einzigen Zyklus da - das ist ja der Sinn einer Flanke :p
Wenn die Flanke zum Rücksetzen nicht reicht, dann heißt das eigentlich, dass deine Flanke den Schritt möglicherweise einen Zyklus lang zurücksetzt und im folgenden Zyklus der Schritt wohl wieder direkt erneut gesetzt wird.
So wie es aussieht wird in deinem Beispiel nach dem Rücksetzen ja das UND zum setzen wieder wahr.
 
Ich kann dir zudem auch noch Graph als Erstellsprache empfehlen, die ist genau für Schrittketten gemacht, allerdings muss man sich da mal kurz einarbeiten.[/QUOTE]

nach meiner Info geht das mit der 1200 nicht nur mit der 1500

wenn ich kann nur nicht verstehen dass es 15 mal durchläuft klemmt und öffnet klemmt.... dann bleibt es stehen.

daher wäre es als Neuling ganz nützlich so einen Schrittkette zu sehen
 
Zurück
Oben