Taktzyklus für schnelle Anwendung

sirbarny

Level-2
Beiträge
170
Reaktionspunkte
26
Zuviel Werbung?
-> Hier kostenlos registrieren
CPU315-2 PN/DP
Zykluszeit Programm 20ms

Zum Eintakten für eine Maschine benötige ich eine kurze Taktzeit.
Nachdem ein INI ein Signal bringt, öffne ich ein Ventil mit 100ms
Verzögerung, welches nach 300ms wieder schließt. Das Ganze bis
zu 4000 mal pro Stunde. Ich habe dies mit eine S_SEVERZ und einer
S_AVERZ gelöst, wobei ich mir nicht sicher bin ob der Takt wirklich
immer gleich kommt.

U INI_B2106"
L T65
SS T 65
U T 64
R T 65
NOP 0
NOP 0
U T 65
)
L T64
SA T 64
NOP 0
NOP 0
NOP 0
U T 64
)
= Ventil

Zuerst hatte ich eine 315-2 DP im Einsatz, aber hier war die Zykluszeit
bereits 80ms.

Wie löst ihr so schnelle Takte? Interupt mit OB35?
Kann man diese Abläufe mit Bordmitteln analysieren?

Danke
Sir
 
Interrupt-OB ist sicher der richtigere Weg, da die Ausgänge der Timer immer noch zuzüglich der aktuellen Zykluszeit ihren Ausgang Q ausgeben.

Ich würde es mit einem OB35 Aufruf aller 20ms versuchen und hier einen Zähler (INT) benutzen der bei 5 (5*20ms = 100ms) das Ventil einschaltet und bei 20 (100ms + 300ms = 400ms) wieder ausschaltet und den Zähler zurücksetzt.

Gruß MK
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie genau muss denn Deine Anwendung sein? Wie variabel ist die Anwendung?

Also OB1, Dein SPS-Zyklus startet mit dem Einlesen der Eingänge, irgenwann ist auch Dein Ini-Signal dabei und Du startest den Timer, der OB1 ist zu Ende --> 20ms Laufzeit verbraucht

x - Zyklen wo der Timer läuft ...

OB1-Zyklus in dem Dein Timer den Ausgang schaltet (am Ende des Zyklus) --> +20ms Laufzeit verbraucht

Beim OB1 hast Du eine zykluszeitabhängige Toleranz von min. 40ms.

ABER:

Du kannst z. B. Deinen Ini über das PEB unabhängig vom Zyklus lesen und genauso Dein Ventil mit dem PAB schreiben, allerdings geht das nur mit einem Byte / Wort oder DW Zugriff! D. h. Du liest / schreibst auch die anderen Eingänge bzw. Ausgänge. Ist das Ok für Dich? Mit dieser Möglichkeit könntest Du die Reaktionszeit unter 20ms bekommen.
 
Interrupt-OB ist sicher der richtigere Weg, da die Ausgänge der Timer immer noch zuzüglich der aktuellen Zykluszeit ihren Ausgang Q ausgeben.

Ich würde es mit einem OB35 Aufruf aller 20ms versuchen und hier einen Zähler (INT) benutzen der bei 5 (5*20ms = 100ms) das Ventil einschaltet und bei 20 (100ms + 300ms = 400ms) wieder ausschaltet und den Zähler zurücksetzt.

Gruß MK

auch keine schlechte Idee, als Zähler würde ich hier vielleicht sogar den SFC 64 "TIME_TCK" auslesen und vergleichen. Mitr diesem SFC zählt die CPU in 1ms-Schritten einen 2 hoch 31 - Wert hoch. Du musst nur den Überlauf von 2 hoch 31 nach 0 abfangen!
 
Achtung Werbung:

Oder Du nimmst eine VIPA-Steuerung (mit S7-Manager programmierbar) und den S-BUS für schnelle Ein- und Ausgänge oder das SILO-System. Da geht alles noch ein bissel schneller.

Hallo Herr Wylitek, wir müssen uns mal über eine Pramie unterhalten :p
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mit OB35 sollte das kein Problem auf der Softwareseite sein, aber sieh Dir auch mal die Verzögerungszeiten durch die Eingangs- und Ausgangskarten an, vielleicht auch noch Buslaufzeiten, die Frage ist immer: Wie genau soll's denn sein?
Gruß
Erich
 
auch keine schlechte Idee, als Zähler würde ich hier vielleicht sogar den SFC 64 "TIME_TCK" auslesen und vergleichen. Mitr diesem SFC zählt die CPU in 1ms-Schritten einen 2 hoch 31 - Wert hoch. Du musst nur den Überlauf von 2 hoch 31 nach 0 abfangen!


Ebenfalls gute Idee!
 
Danke erst mal für die schnelle Info. Werde mich in einer ruhigen Stunde genauer damit beschäftigen, bin nämlich nicht der große SPS-Guru.

Hintergrund:
Eine Getränkekiste muss von einem Transporteur in eine rotierende Spirale eingebracht werden. Die Spirale nimmt bei einer Umdrehung 8 Kästen auf.
Auf dem Dach befindet sich eine Sensor. Jedesmal wenn das Signal kommt öffne ich die Freigabe nach 100ms und schließe wieder nach 300ms. Diese Zeit hat sich als passend erwiesen. Manchmal ist nun eine Kiste zu schnell und manchmal zu langsam. D. h. Kiste vorne oder hinten eingezwickt = Kiste kaputt. Kunde sauer. Programmierer enttäuscht ;-)

Dadurch, dass dieses Eintackten bis zu 4000 mal pro Stunde erfolgt, ist es durch beobachten nicht festzustellen ob es am Taktzyklus oder an der Trägheit der Kästen (zurückfedern am Eintakter usw.) liegt.

Am besten wäre es die Signale mit einem Analyzer aufzuzeichnen, aber so gut ausgestattet bin ich leider nicht. Gibt es brauchbare Analyzer für wenig Geld? So schnelle Anwendungen werden bei uns normalerweise nicht benötigt.

Wenn ich wieder vor Ort bin bringe ich ein Foto mit.

Sir
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hintergrund:
Eine Getränkekiste muss von einem Transporteur in eine rotierende Spirale eingebracht werden. Die Spirale nimmt bei einer Umdrehung 8 Kästen auf.
Auf dem Dach befindet sich eine Sensor. Jedesmal wenn das Signal kommt öffne ich die Freigabe nach 100ms und schließe wieder nach 300ms. Diese Zeit hat sich als passend erwiesen. Manchmal ist nun eine Kiste zu schnell und manchmal zu langsam. D. h. Kiste vorne oder hinten eingezwickt = Kiste kaputt. Kunde sauer. Programmierer enttäuscht ;-)

Hört sich so an als wolltest du etwas Wegabhängiges Zeitabhängig machen. Ich vermute das Ventil steuert einen Zylinder der die Getränkekiste verschiebt, oder?

Gruß MK
 
Die Kästen stehen auf einem Transporteur mit einer Scharnierbandkette der mit einer bestimmten Drehzahl läuft.
Durch eine Lichtschranke wird sichergestellt, dass 4-5 Kästen anstehen (Staudruck) bevor der Eintakter (Ventil) öffnet.
Dann wird die erste Kiste in die Spirale geschoben und die nächste gestoppt. Beim nächsten Signal von der Spirale, wenn ausreichend Kästen vorhanden, wiederholt sich das ganze.
Ich habe es so programmiert, dass der Auf-Zu-Takt in jedem Fall ausgeführt und abgeschlossen wird, auch wenn die Freigabe durch die Lichtschranke voher weg ist.
Ich möchte nur sicher gehen, dass mein Takt stimmt, und immer gleich kommt. Wie oben bereits erwähnt war es mit der 315-2DP nicht möglich alle Takte zu bewältigen. (Zykluszeit 80ms)
 
Die Kästen stehen auf einem Transporteur mit einer Scharnierbandkette der mit einer bestimmten Drehzahl läuft.
Durch eine Lichtschranke wird sichergestellt, dass 4-5 Kästen anstehen (Staudruck) bevor der Eintakter (Ventil) öffnet.
Dann wird die erste Kiste in die Spirale geschoben und die nächste gestoppt. Beim nächsten Signal von der Spirale, wenn ausreichend Kästen vorhanden, wiederholt sich das ganze.
Ich habe es so programmiert, dass der Auf-Zu-Takt in jedem Fall ausgeführt und abgeschlossen wird, auch wenn die Freigabe durch die Lichtschranke voher weg ist.
Ich möchte nur sicher gehen, dass mein Takt stimmt, und immer gleich kommt. Wie oben bereits erwähnt war es mit der 315-2DP nicht möglich alle Takte zu bewältigen. (Zykluszeit 80ms)

Du kannst dann natürlich mit dem OB35 arbeiten, aber du mußt auch direkt aus dem OB35 heraus auf die Peripheriausgänge und -eingänge zugreifen, nicht über das Prozeßabbild, das ja nur am Zyklusende bzw. Zyklusanfang ein- und ausgelesen wird. Dann bekommst du trotz OB35 nur alle 80 ms eine Signaländerung mit bzw. gibst nur alle 80ms eine evtl. Signaländerung für deinen Ausgang heraus. Das wäre sicher zu langsam.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
PS: Ehrlich 80ms, die SPS hätte ich schon längst durch eine schnellere ersetzt, damit handelt man sich doch nur Probleme ein, schon gar, wenn auch andere Teile der Anlage möglichst flott sein sollen. Und 80ms deuten auf eine ganze Menge Programm oder auf sehr ungünstig geschriebenen Code hin. Habt ihr schon die Neueste 315, die ist doch inzwischen ganz schon fix.
 
Die CPU hatt ich schon getauscht. Inzwischen ist eine 315-2 PNDP im Einsatz. Soweit mir bekannt ist ist dies eine 317-CPU mit weniger Arbeitsspeicher. (Zykluszeit 10-20 ms.)
Mit wa kann man die Eingänge und Ausgänge zeitlich aufzeichnen und analysieren?
 
...Mit wa kann man die Eingänge und Ausgänge zeitlich aufzeichnen und analysieren?

Wie wäre es mit nem Oszilloskop? Hiermit kannst Du auf jeden Fall das Echtzeitverhalten genau sehen. Es gibt natürlich auch gewisse Analyseprogramme. Denke aber das bei so schnellen Anwendungen das Oszi besser ist.
 
Wie oft kommt denn eine zu schnelle oder zu langsame Kiste vor?

Um äußere Einflüsse auszuschließen wäre auch mal die Aufnahme des Prozesses mit einer schnellen Kamera zu überlegen.
 
@Blockmove
Ich habe ie CPU schon getauscht, jetzt nur noch 10- max 20 ms Zyklus.

@Mäuseklavier
Das ist unterschiedlich, mal läuft es eine halbe Stunde ohne Mängel, dann zerdepperts 3 Kästen in 5 Minuten. Auf jeden Fall wird dem Operator nicht langweilig ;-)
 
Auch der Vollständigkeit halber, was wird da mit den Kisten gemacht?

Werden diese gewaschen, gehe ich da richtig in der Annahme?

Wenn ich richtig rechne sind das ja 4000 mal 20 Flaschen pro
Träger, dann sind das ja 80000 Flaschen pro Stunde.
Da bist aber schon im sehr hohen Leistungsbereich.

Ist eine einwandfreie Funktion der Lichtschranke (Wasser ...)
gewährleistet?
Welche Pneumatik macht das lange Zeit, das schnelle Takten?
Wie lange sind die Luftschläuche vom Ventil zum Zylinder?
Ist die Mechanik für lange Zeit auch leichtgängig?

Läuft der Transporteur kontinuierlich, oder startet er jedesmal?

Ist der Tranporteur naß (Bandschmierung) oder Wasser
von der Reinigungsanlage?

Wie kontinuierlich ist der Staudruck, gibt es eventuell
Schläge von hinten die sich über die angestauten Kisten
bis zur ersten übertragen?
Ist eventuell ein Kistenwender unmittelbar vorher?

Ich denke dass die mechanischen und sonstigen
Umgebungsvoraussetzungen da erst mal wichtiger
sind als die Programmtechnischen.

Gruß
Bernhard
 
Viele Fragen:

Die Kästen werden gewaschen. Es handelt sich um eine 60000er Anlage, aber zum Kompensieren von Störungen müsssen wir schneller sein.
Der Spiralwascher ist kein Produkt von uns, wir mussten ihn nur integrieren und auch steuern. (Kundenwunsch).
Lichtschranke funzt. Der Hersteller vom Spiralwascher sagte, sie hätten diese Pneumatik-Komponente immer im Einsatz.
Der Transporteurläuft kontinuierlich und ist naß Wasser, Lauge.
Ein Kistenwender ist nicht davor. Durch die Lichtschranke wird gewährleistet dass mindestens 4 Kisten schieben.
Wie schon erwähnt haben wir einen zweibahnigen Transporteur nachgerüstet (jetzt 3 Ketten) und nun funzt es auch.
Das war mir ganz recht, weil ich im Moment für programmtechnische Spielereien keine Zeit habe.
(Neue Projekte, viel unterwegs) ;-)
 
Zurück
Oben