Step 7 Anfängerfrage: Bewegungsgeschwindigkeit von 4-20mA als Referenz für Analogausgang

Kistecola

Level-2
Beiträge
70
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

als Vorabinformation: ich bin noch Anfänger in der Step7-Programmierung, deswegen bitte nicht über meine Fragestellung wundern. :)

Ich habe hier ein Projekt, welches ich mal selbst umsetzen soll.

Die SPS soll in einer Maschine eingesetzt werden, von der über einen Frequenzumrichter ein Teil der Maschine nach oben bzw. unten verfahren werden kann, abhängig von der Höhe einer anderen Maschine.

Über zwei Seilzugsensoren werden die aktuellen Höhen der Maschinenteile in 4-20mA eingelesen (0-2m)

Hubbereich Maschinenteil A: 1200mm
Hubbereich Maschinenteil B: 1000mm

Maschinenteil A fährt aus, Maschinenteil B soll über SPS auch ausfahren und dabei abhängig von der Geschwindigkeit von Maschinenteil A geregelt werden.

Wie bekomme ich eine "Drehzahlvorgabe" aus der Bewegungsgeschwindigkeit von Maschinenteil A, welche ich dann als Drehzahlvorgabe an den FU für die Bewegungsgeschwindigkeit von Maschinenteil B weitergeben kann?

Maschinenteil B soll sich auch noch automatisch ausrichten wenn der Automatikbetrieb gestartet wird, d.h. Maschinenteil B muss sich immer innerhalb eines gewissen Fensters befinden.

Über eine Hilfe würde ich mich sehr freuen!

Lg
 
ich bin noch Anfänger in der Step7-Programmierung

Was sagen denn Deine erfahrenen Kollegen zu dem Problem? Bzw. was stellst Du Dir vor, wie sowas gehen könnte? Es ist erstmal je keine Frage der Programmierkünste, sondern des physikalischen Verständnisses der Maschine.

Das Ganze ist nicht ganz trivial, und wenn es ordentlich werden soll, sind schon mal erweiterte Kenntnisse der Regelungstechnik von nöten. Wie schnell fahren denn die Teile? Evtl. stellt sich schon die Frage, ob ne SPS schnell genug ist, das ganze zu regeln.

Also meiner Meinung nach, keine Anfängeraufgabe.

Gruß.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Ducati,

erstmal danke für deine Antwort.

Problem ist: es gibt keinen Kollegen, den ich fragen kann. Entweder ich oder externer Programmierer, der aber nicht unbedingt Zeit hat, mir 10 Stunden das Programmieren beizubringen ;).

Ich würde es von der Überlegung so machen, dass ich über einen Zeitintervall die Bewegungsgeschwindigkeit von Maschine A aufnehme und das dann relativ als Geschwindigkeit für Maschine B nehme.
Aber wie? :
 
Jo, Istgeschwindigkeit von Maschine A wird zur Sollgeschwindigkeit von Maschine B. Dazu brauchst Du dann nen Regler für die Geschwingigkeit, evtl. geht's auch, den Sollwert etwas umskaliert direkt auf den Umrichter zu geben. Weiterhin brauchst Du noch nen Lageregler, bei dem die Position der Maschine A der Sollwert für Teil B wird. Stellsignal von Geschwindigkeitsregler und Lageregler muss addieren. So in etwa könnte es gehen.

Gruß.
 
Die ganze Aufgabe hängt stark von zwei Faktoren ab:

- Wie schnell muss die Differenz ausgeregelt werden?
- Wie genau muss die Differenz ausgeregelt werden?

Wenn das nicht schnell bzw. nicht genau geht, kannst du ja die beiden Lage-Istwerte subtrahieren und den wenig skaliert als Drehzahlsollwert für deinen Antrieb nehmen. Wenn das ganze aber eine Syncronfahrt werden soll wird das einen Anfänger schnell überfordern.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich kenne es so:

An Band A wird ein Drehgeber installiert, welcher auf einen Gebereingang des Frequenzumrichters gegeben wird.
Im Umrichter kann ich einstellen, dass dieser Gebereingang mein Master ist.
Fertig.

Grüße

Marcel
 
Die ganze Aufgabe hängt stark von zwei Faktoren ab:

- Wie schnell muss die Differenz ausgeregelt werden?
- Wie genau muss die Differenz ausgeregelt werden?

Wenn das nicht schnell bzw. nicht genau geht, kannst du ja die beiden Lage-Istwerte subtrahieren und den wenig skaliert als Drehzahlsollwert für deinen Antrieb nehmen. Wenn das ganze aber eine Syncronfahrt werden soll wird das einen Anfänger schnell überfordern.

Danke für deine Antwort.

Eine Synchronfahrt soll das bei weitem nicht werden. Wenn da unterschiede von +- 30mm sind geht das allemal.

Gibt es für eine solche Regelung nicht evtl. schon einen fertigen Baustein von Siemens? Klar ist das was anderes als selbst gemacht, aber warum das Rad neu erfinden.

Ansonsten meine überlegung:

- PEW von beiden signalen zyklisch in Real-wert schreiben
- die Real-werte voneinander abziehen = zurückgelegte Strecke
- vergleichen, wer schneller war
- solldrehzahl entweder kleiner oder größer

Problem: Hier müsste man noch eine Hysterese integrieren, dass nicht ständig nachgeregelt wird. Ansonsten würde ja irgendwann Maschine B Maschine A überholen, runterregeln, wieder überholt werden, hochregeln usw.



Die Drehrichtung würde ich über ein Hysteresefenster definieren, unabhängig von der Geschwindigkeit.

Denkt ihr das geht so von der Systematik? Wie man das programmiert muss ich mal schauen, das bekomm ich aber irgendwie hin ;).

Schonmal vielen Dank für eure Unterstützung!


edit: zur Drehgeberinstallation: fällt hier flach, da Maschine A ein Zylinder ist. Montage eines Drehgebers zu teuer und zu aufwendig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mal eine andere Überlegung: Woher kommt denn der Sollwert für die Geschwindigkeit von Maschinenteil A? Kann man den nicht direkt auch an Maschinenteil B geben, evtl. mit einem Korrekturfaktor verrechnen?? Das wäre ja denke ich der einfachste und wahrscheinlich auch sicherste weg wenn die Geschwindigkeiten wirklich wie beschrieben nicht zu 100% gleich sein sollen.
Oder hab ich jetzt den Aufbau der Maschine nicht ganz überrissen? :roll:
Oder sind es zwei Maschinen mit zwei Steuerungen??
Je öfter ich das lese desto mehr zweifel ich daran was ich gerade geschrieben habe. :confused:
 
Mal eine andere Überlegung: Woher kommt denn der Sollwert für die Geschwindigkeit von Maschinenteil A? Kann man den nicht direkt auch an Maschinenteil B geben, evtl. mit einem Korrekturfaktor verrechnen?? Das wäre ja denke ich der einfachste und wahrscheinlich auch sicherste weg wenn die Geschwindigkeiten wirklich wie beschrieben nicht zu 100% gleich sein sollen.
Oder hab ich jetzt den Aufbau der Maschine nicht ganz überrissen? :roll:
Oder sind es zwei Maschinen mit zwei Steuerungen??
Je öfter ich das lese desto mehr zweifel ich daran was ich gerade geschrieben habe. :confused:

Lumpi, sehr gute idee. Leider sind die steuerungen getrennt und das maschinenteil a ist über einen Hydraulikzylinder angetrieben, bei dem es in diesem Sinne keine Drehzahlvorgabe oder Geschwindigkeitsvorgage über einen Analogwert gibt.
Sonst hätte ich das natürlich so gemacht :)

War schon gut was du geschrieben hast :)
 
Ah OK, soweit hab ich da nicht gedacht. :ROFLMAO:
Dann ziehe ich die Antwort zurück und behaupte das Gegenteil.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo nochmal,

bin über die Simatic-Ausbildungsunterlagen auf folgende Idee gekommen:

kann man nicht auch den SFB41 dafür nehmen?

so beschalten:

SP_int:Analogwert von Maschinenteil A
PV_PER: Analogwert von Maschinenteil B (das zu regelnde)
LMN_PER: Merker

mit dem FC106 dann den Merker von LMN_PER auf 0-100 skalieren und an PQW Ausgeben?

Oder soll man das ohne Merker machen?

Merker deswegen, weil es einen hand- und automatikbetrieb gibt und ich den Regler ja nur im Automatikbetrieb benutze. Ohne merker müsste ich den Regler im Handbetrieb irgendwie deaktivieren...


Was denkt ihr?
 
Aventis hatte Dir nen P-Regler vorgeschlagen, der SFB41 ist nen PID-Regler. Kannst also auch den nehmen. Musst Dich aber mit Einstellregeln auseinandersetzen...

Gruß.
 
Hallo,

ja wenn du von der Hardware nichts kaputt machen kannst wenn die Differenz zwischen den zwei Höhen zu groß wird würde ich es auch mal mit einem PID Regler versuchen.
Dann kannst du dich einfach mal mit den Parametern ein wenig Spielen.
Als erstes brauchst du nur den P-Anteil vorgeben. Kannst ja mit 1 beginnen. Den I und D Anteil auf 0 setzen.
Damit solltest du schon recht gute Ergebnisse zusammenbekommen, weil deine Strecke sowieso schon Integrierend ist.
Aber wenn deine gewünschte Position nicht erreicht wird bzw die Differenz zu groß ist dann musst du einen I Anteil mit dazu nehmen.
Willst du auch noch schnelle Änderungen deiner Soll-Position mitmachen dann musst du auch noch den D Anteil einschalten.

Wie gesagt, wenn du nichts kaputt machen kannst dann kannst du da einfach mal rumprobieren und du wirst dann schon was brauchbares erreichen.
Weiters gibt es noch Einstellregeln zb nach Ziegler-Nichols. Naja aber da musst du schon ein paar physikalische Parameter von deinem System kennen, bzw Aufzeichnen und in Programmen wie zb Matlab auswerten.
Aber in deinem Fall glaube ich dass es genügt ein wenig herumzuprobieren.

lg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo nochmal,

zunächst möchte ich mich für die Beteiligung zur Problemlösung bedanken - alleine wäre ich nicht so gut auf meine derzeitige Lösung gekommen!

Ich habe die Woche mir mal die CPU geschnappt (6ES7314-1AF11-0AB0) und versucht, den von mir genannten SFB41 reinzuprügeln. Hat mit einer Fehlermeldung nicht geklappt (sitze gerade zuhause, deswegen habe ich die nicht mehr im Kopf).

Ich mach es jetzt einfach so:

Ich errechne die Distanz der beiden Maschinenteile abhängig davon, wer gerade "höher" ist und rechne diese in % der Wegstrecke um und gebe das am Analogwert für die Geschwindigkeit aus.

Die Bewegungsrichtung von Maschinenteil B setze ich über eine Hysterese um den Sollwert von Maschinenteil A (A +30 = umschaltpunkt zum senken, A-30 = Umschaltpunkt zum heben).

Wenn ich eine IBN mache kann ich ja nochmal schreiben, ob es so funktioniert hat, falls mal ein anderer Anfänger vor einem ähnlichen Problem steht :)

lg und ein schönes Wochenende.
 
Ich habe die Woche mir mal die CPU geschnappt (6ES7314-1AF11-0AB0) und versucht, den von mir genannten SFB41 reinzuprügeln. Hat mit einer Fehlermeldung nicht geklappt (sitze gerade zuhause, deswegen habe ich die nicht mehr im Kopf).

Ich mach es jetzt einfach so:

Ich errechne die Distanz der beiden Maschinenteile abhängig davon, wer gerade "höher" ist und rechne diese in % der Wegstrecke um und gebe das am Analogwert für die Geschwindigkeit aus.

Die Bewegungsrichtung von Maschinenteil B setze ich über eine Hysterese um den Sollwert von Maschinenteil A (A +30 = umschaltpunkt zum senken, A-30 = Umschaltpunkt zum heben).

Hallo,

ja deine CPU kann den SFB41 nicht. Du musst den FB41 aus der Bibliothek verwenden.

Ja das was du da jetzt versuchst zu machen ist so etwas wie ein P-Regler.
Du kannst ja beides versuchen. Den FB41 und deine Lösung. Dann kannst du den Unterschied herausfinden. :)

godi
 
Zurück
Oben