Ausgang auf 10ms genau schalten!

thorsten

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

Möchte eine Anwendung realisieren bei der ich aus sicherheitsgründen einen Ausgang mit 10ms genauigkeit ansteuern muss.

Habe vor im S7 Programm dafür einen Zeit OB (OB10) alle 10 ms aufzurufen, und in diesem die zeitkritischen Verknüpfungen zu programmieren. (Dazu am Anfang vom OB 10 das Prozessabbild mit L PEW ... aktualisieren um Eingänge zu aktualisieren, sowie an dessen Ende (t PAW ...) erneut um die Ausgänge anzusteuern.
Ist das soweit in Ordnung?

Muss ich bei der verwendung der Hardwarebaugruppen noch zusätzliches beachten? (also zb. HF Ein Ausgangsbaugruppen /darf Profinet oder ein anderes Bussystem zwischen SPS und der Baugruppe bestehen, oder muss ich die Ein Ausgänge direkt auf dem SPS Rack stecken um zusätzliche Buslaufzeiten zu vermeiden?

Vielen Dank schonmal,
mfg Thorsten
 
Habe vor im S7 Programm dafür einen Zeit OB (OB10) alle 10 ms aufzurufen, und in diesem die zeitkritischen Verknüpfungen zu programmieren.
Hallo Thorsten,
ich würde jetzt mal auf die schnelle sagen:
Das ist der falsche OB, ich würde die OB's 30 - 38 nehmen, ansonsten passt alles.
Aber vielleicht geht es ja auch mit dem OB10, habe ich allerdings noch nie genommen, aber das will nichts heißen. ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Möchte eine Anwendung realisieren bei der ich aus sicherheitsgründen einen Ausgang mit 10ms genauigkeit ansteuern muss.


Vielen Dank schonmal,
mfg Thorsten

Welche Sicherheitsgründe? Wenn davon eine Gefahr ausgeht dann nicht mit normalen SPS-Baugruppen oder nur mit zusätzlicher Sicherheitstechnik drumherum.

Thomas
 
eventuell ist das Stichwort "Interrupt" die Lösung Deines Problems. Bei Siemens auch "Alarm" genannt. Aus dem Stegreif kenne ich solche alarmfähigen Baugruppen aber nur im Zentralrack.

Vorsorglich möchte ich bei der Thematik Alarm, Zeit-OB und dergleichen immer angemerkt haben, dass da besondere Sorgfalt bei der Betrachtung des Datenaustauschs zwischen zueinander asynchron ablaufenden Prozessen (OB1<-->OBxx) angezeigt ist (Stichwort Datenkonsistenz).
 
eventuell ist das Stichwort "Interrupt" die Lösung Deines Problems. Bei Siemens auch "Alarm" genannt.
Interessante Lösung:
Einen Aktions-OB als Zeit-OB zu verwenden.
Hast Du dazu auch ein Beispiel?
Möchte eine Anwendung realisieren bei der ich aus sicherheitsgründen einen Ausgang mit 10ms genauigkeit ansteuern muss.

Habe vor im S7 Programm dafür einen Zeit OB (OB10) alle 10 ms aufzurufen, und in diesem die zeitkritischen Verknüpfungen zu programmieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dazu am Anfang vom OB 10 das Prozessabbild mit L PEW ... aktualisieren um Eingänge zu aktualisieren, sowie an dessen Ende (t PAW ...) erneut um die Ausgänge anzusteuern

Ich bin der Meinung, dass das nicht geht - jedenfalls nicht mit 10 ms Genauigkeit. Wenn du auf der dezentralen Peripherie arbeitest kommt noch der Buszyklus dazu. Auch auf dem Rückwandbus kommt noch etwas Zeit hinzu. Weiterhin haben Eingangs- und Ausgangskarten auch noch eine Ansprechverzögerung. Hinzu kommt noch alles was draußen so passiert. Z.B. dein Kontakt der was auslösen soll hat eine kleine Schltverzögerung und dann willst du ja wahrscheinlich ein Relais ansteuern. Das hat auch noch Schaltzeiten.
Ich glaube wenn du das direkt ohne SPS aufbaust hast du eine Chance. Und die SPS würde ich nur zum Signalisieren nehmen.

Gruß Dirk
 
Habe vor im S7 Programm dafür einen Zeit OB (OB10) alle 10 ms aufzurufen, und in diesem die zeitkritischen Verknüpfungen zu programmieren. (Dazu am Anfang vom OB 10 das Prozessabbild mit L PEW ... aktualisieren um Eingänge zu aktualisieren, sowie an dessen Ende (t PAW ...) erneut um die Ausgänge anzusteuern.
Ist das soweit in Ordnung?
fast, die zeitgesteueruten OBs liegen (etwas CPU abhängig) bei OB3x, aber sonst passt es.
Vor drei Wochen habe ich so was gemacht, Takt 4ms, mit einer CPU 317-2DP ergab sich ein Jitter von maximal 400 Mikrosekunden.
Muss ich bei der verwendung der Hardwarebaugruppen noch zusätzliches beachten? (also zb. HF Ein Ausgangsbaugruppen /darf Profinet oder ein anderes Bussystem zwischen SPS und der Baugruppe bestehen, oder muss ich die Ein Ausgänge direkt auf dem SPS Rack stecken um zusätzliche Buslaufzeiten zu vermeiden?
Du musst natürlich aufpassen, dass die E/A Baugruppen die externen Signale auch mit der erforderlichen Geschwindigkeit verarbeiten. Wenn Du die E/A Baugruppen zentral betreibst, funktioniert es dann.
Wenn Du die Peripherie dezentral betreiben willst, lautet das Stichwort "Taktsynchrone Verarbeitung", da wird es dann "etwas aufwändiger", weil Du dann nur bestimmte Komponenten einsetzen kannst.
Gruß
Erich
 
Hallo,

Erstmal danke für eure Antworten,

Ja ihr habt natürlich Recht, meine die Zeit OB´s ab OB 3x..

Relaiansprechzeiten wären berücksichtigt und würden sich dann aufaddieren.

Da es sich um eine Sicherheitsfunktion handelt, koennte ich den ganzen Abblauf natürlich auch ins Sicherheitsprogramm (F-CPU) aufnehmen, welches ich über den OB35 dann alle 10ms aufrufe, dazu dann Sichere Ein und Ausgänge am Zentralrack stecken, das Sicherheitsprogramm aktualisiert sein Prozessabbild ja automatisch am Anfang und Ende jedes seiner Zyklen, somit dürfte das die beste Lösung sein, oder was meint ihr?

Alternativ aber auch Interruptfähige Baugruppen, dies können dann aber denke ich nur ausserhalb des Sicherheitsprogramms verwendet werden, oder gibt es da auch Sichere Ein bzw. Ausgänge (waeren solche dann überhaupt Sinnvoll bei einer Prozessabbildaktualisierung vor und nach Durchlauf des Sicherheitsprogramms?)

Ich habe mal gehört es gäabe von Siemens ein Freewaretool mit dessen Hilfe mann die Reaktionszeit eines Sicherheitselements auf ein Eingangssignal berechnen kann, kennt das jemand, bzw. hat einen link dazu?


@ Paule
(wegen dem Ereignisgesteuerten Zeit - OB : Alternativ könnte mann, denke ich, mit der SFC 32 Ereigneisabhängig den OB20 mit einer delayzeit von 10ms aufrufen, und in diesem dann wiederum Ereignisabhängig den SFC 32 zum Aufruf des OB20 weitere 10ms später, somit koennte ich erreichen dass die Funktion nicht ständig, sondern Ereignisabhängig ausgeführt wird.)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Interessante Lösung:
Einen Aktions-OB als Zeit-OB zu verwenden.
Hast Du dazu auch ein Beispiel?
Nö, ich hatte lediglich den Eindruck gewonnen, dass es dem TE weniger um den Bau eines Taktgenerators denn um definierte Reaktionszeiten (<10ms) auf Prozesssignale ging.

Was auch immer "Genauigkeit" heissen mag, mir fiel vor allem:
... und in diesem die zeitkritischen Verknüpfungen zu programmieren.
ins Auge ;)
 
@Perfektionist:

Ja, du hast recht, ist auch ein sehr interessanter Ansatz, auf den ich noch gar nicht gekommen bin.

Leider gibt es nur keine Alarmfähigen sicheren Eingänge, mit denen ich das Sicherheitsprogramm zusätzlich per Interrupt aufrufen könnte.
Da es sich bei meiner Anwendung aber um eine Sicherheitsabschaltung handelt, denke ich mitlerweile, dass ich die Abschaltbedingungen auch dort programmieren sollte.

Ansonsten hast du aber recht, die schnellste Abschaltung waere wohl über einen Interrupt ausgelöst von einem Alarmeingang realisierbar!

Danke!
 
Zurück
Oben