PEW / PAW während Zykluszeit aktualisieren

thorsten

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

Erstmal frohe Weihnachten und a gutes neues an euch alle,
jetzt zum Thema:

Ich habe hier ein kleines Problem wegen einer möglichst genauen Positionierung zu lösen:

Hab einen Umrichter welcher über Profibus angesteuert wird die Mittlere Zykluszeit am Bus T tr ist 1,8 ms.
Um mit diesem nun möglichst genau positionieren zu können habe ich mir überlegt zur Laufzeit das Prozessabbild zu aktualisieren, den momentanen Positionsistwert einzulesen, anhand der eingestellten Bremsrampe die Restzeit bis zur Bremsung (konstante Geschwindigkeit) und dazu die benötigte Zeit für den Bremsweg zu berechnen und dann mit Hilfe des OB20 einen Interrupt zu erzeugen. Im OB 20 möchte ich nun die Bremsrampe am Umrichter auslösen.
Um nun die Zykluszeiten der SPS zu umgehen müsste ich das Prozessabbild während der Laufzeit aktualisieren und zwar,

1x um die Position während des Programmablaufs erneut einzulesen,
und ein 2. mal im OB 20 um die Bremsbefehle während der Laufzeit direkt auf den Bus und damit an den Umrichter zu senden.

Wie mache ich das? Langt es etwa schon schtat den Eingangsworten bzw. Ausgangsworten die PEW und PAW zu beschreiben (SFC 14 / SFC 15)?
Oder muss ich da noch etwas anderes beachten.

Die Buslaufzeiten müssten mit 1,8ms ja schnell genug sein?

Vielen Dank schonmal, Thorsten
 
Mit PEW und PAW kannst du auf jeden Fall deine aktuellen Werte
lesen/schreiben. Wenn du nur 4 Byte liest/schreibst reicht auch L PEW bzw.
T PAW und du brauchst die SFCs nicht. (Mehr Infos dazu hier im Forum)
Du solltest aber auch die Zykluszeit deines Programmes beachten und das
lesen/schreiben in einem OB3x machen.

Was für einen Umrichter hast du denn? Kann der den Bremszeitpunkt nicht
selber berechnen, wenn du ihm einen Sollwert vorgibst?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke,

Umrichter is ein SEW, der könnte das zwar, aber mein Wegmessystem hat nur ne Profibus Schnittstelle zur S7 Steuerung.

Ztat: "Du solltest aber auch die Zykluszeit deines Programmes beachten und das lesen/schreiben in einem OB3x machen."

Um dieses Zykluszeitproblem zu umgehen, möchte ich die Werte ja während des Programmablaufs nachladen, und nicht auf die nächste Prozessabbildaktualisierung am ende des Zyklusses warten. Verstehe ich das richtig, dass dies durch Verwendung der SFC 14 und 15 bzw PEW PAW funktioniert? Das sind also die aktuellen Eingänge, und nicht die von der letzten Prozessabbildaktualisierung vor dem laden des OB1?
Wenn ich mit SFC15 arbeite werden die Werte also auch sofort auf den Bus geschrieben und auch nicht erst am ende des Programmzykluses, also nicht erst nach der kompletten Abarbeitung des OB1?
 
Sollten digitale E/A im "Spiel" sein, z.B. Positionssschalter oder Freigaben an FU als DO:
L PEW 0
T EW0
L AW 4
T PAW4
Damit sind deine E/A an der Stelle im Zyklus immer "up to date".
Gruß
Sailor
 
Hi
Wir hatten auch mal nen ähnliches Problem und da hab ich den bremspunkt errechnet.
Hab also die geschwindigkeitsverringerung früher ausgeführt wenn der Antrieb einen größeren vorschub hatte.
Wenn ich mich recht entsinne hab ich da einfach nur gerechnet
geschwindigkeit/restweg -X
und wenn da dann null rauskommt hab ich die geschwindigkeit verringert auf 10% gedrosselt. Dadurch kannst du recht genau auf den Sollwert kommen
 
Zurück
Oben