Step 7 Geschwindigkeit berechnen mit Zaehleingang

paulo78

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


Ich habe folgende Situation. Eine ältere Flaschenfüller-Maschine mit S5 Programm. Daran soll ich aber nichts ändern, sondern es kommen 2 neue Bänder am Flaschenausgang mit einer S7-300 hinzu. Die Geschwindigkeit um die Flaschen zu übernehmen muss nun synchron mit dem Füller laufen.
Dafür ist am alten Füller ein Sensor der auf eine Nocke schaut und somit ein Zählimpuls ausgibt. Jetzt soll ich das in meiner S7-300 auswerten und somit die Geschwindigkeit für meine neuen Bänder ermitteln.



Nun meine Frage, gibt es dafür irgendwo fertige FB’s oder so? die ich dann nur beschalten muss?

Oder muss ich mir das was selber bauen ? wenn ja wie ?

Vielen Dank schonmal fuer eure Hilfe.

Paulo
 
Was gibt es für einen Zusammenhang zwischen der Zeit zwischen den Impulsen und deiner gesuchten Geschwindigkeit? In welcher Größenordnung liegt diese Zeit? Und was denkst du denn, was ein "fertiger Baustein" machen soll?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo OD,

Sorry habe deine Frage nicht ganz verstanden.

Also der Impuls wird mal schneller oder mal langsamer je nachdem wie schnell der Füller läuft.

Denke der Eingang wird da im 500ms Bereich sein Status wechseln. Vielleicht aber auch langsamer ich weiß es nicht. Ich weiß nur dass der Eingang momentan auf ein S5 Eingangskarte geht.

Ich will mir diesen Signal an der S5 Eingangskarten abzweigen und auf meine S7-300 legen dann muss ich mit diesem Digital Impuls die Geschwindigkeit des Füllers raus finden und dann das ganz an meinen Analog Ausgang übergeben der dann 4…20mA an einen FU für meine neuen Bänder gibt.

Mit fertigen Baustein meinte ich ob es sowas schon gibt, denke mal das dies ja nicht das erstmals ist das sowas gebraucht wird. War in der Hoffnung dass es vielleicht sowas schon fertig von Siemens gibt.
 
Wenn du gar nichts selbst basteln willst, sind für Geschwindigkeitsmessungen 'Zählbaugruppen' geeignet.

SIMATIC ET 200SP, TM count 1x 24V Zählerbaugruppe

Hier ist dann für die Eingangsfunktion 'messen' einzustellen und der Ausgang für die S7-300 liefert dir einen Frequenzwert. Denn musst du nur noch in Geschwindigkeit umrechnen.

Ob es ein entsprechendes Modul direkt für die S7-300 gibt, ist mir nicht bekannt.
 
Ich würde die Zeiten zwischen aufeinanderfolgenden positiven Flanken des NockenSignals "messen".
Zusätzlich evtl. dasgleiche mit aufeinanderfolgenden negativen Flanken.
Ob die Ermittlung im OB1-Zyklus genau genug ist oder ein "AlarmEingang" sinnvoller wäre ... keine Ahnung.
Der Kehrwert der Zeit ist proportional zur Geschwindigkeit, also noch entsprechend skalieren.

Die Werte werden wahrscheinlich "springen" und zu einem unruhigen Lauf führen.

Was ist für Deine Anwendung wichtig? Schnelles Reagieren auf Änderung? Oder "beschauliches" Reagieren bei Änderungen, um weniger "nervös" zu reagieren?

Anm.:
Ein "ruhiger" Wert ist sicherlich schöner, insofern das Band nicht dauernd be- und entschleunigt wird.
Aber ein schnelles Reagieren dürfte ebenso wünschenswert sein.
Leider widersprechen sich diese Anforderungen.
Ein schnelles Reagieren reagiert allerdings auch schnell auf vermeintliche GeschwindigkeitsÄnderungen, die trotz eines gleichmässigen NockenSignals durch Schwankungen der erzielbaren Messgenauigkeit dazu "gezaubert" werden.
Glättung ("TP1" oder Rampen) bzw. gleitende MittelwertBildung können das Springen verringern, aber sie basieren darauf, dass über einen längeren Zeitraum die Messwerte "beobachtet" werden, so dass ein schnelles Reagieren nicht mehr gegeben ist.

Wenn das NockenSignal nicht aus kurzen Impulsen mit langen Pausen zwischen den Impulsen besteht (wenn das TastVerhältnis ca. 1:1 ist), dann würde ich tatsächlich das anfangs angedeutete tun:
Bei positiver Flanke und bei negativer Flanke den Mittelwert bilden aus der Zeit zwischen 2 pos. Flanken und der Zeit zwischen 2 neg. Flanken.

Als PseudoCode:
Code:
IF NOT ( NockenSignalZuvor XOR NockenSignal ) THEN // keine Flanke
    ;
ELSIF NOT NockenSignalZuvor AND NockenSignal THEN // pos. Flanke
    ZeitPos := ZeitStempelAtktuell - ZeitStempelPosZuvor ;
    ZeitStempelPosZuvor := ZeitStempelAtktuell ;
    ZeitMittel := ( ZeitPos + ZeitNeg ) / 2 ;
ELSE // neg. Flanke
    ZeitNeg := ZeitStempelAtktuell - ZeitStempelNegZuvor ;
    ZeitStempelNegZuvor := ZeitStempelAtktuell ;
    ZeitMittel := ( ZeitPos + ZeitNeg ) / 2 ;
END_IF ;
NockenSignalZuvor := NockenSignal ;
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ein schnelles Reagieren reagiert allerdings auch schnell auf vermeintliche GeschwindigkeitsÄnderungen, die trotz eines gleichmässigen NockenSignals durch Schwankungen der erzielbaren Messgenauigkeit dazu "gezaubert" werden.

Genau das wird sicherlich passieren. Daher mal alternativ gedacht 2 Fragen:

An die S5-Freunde im Forum: Kann man die ausgewertete Geschwindigkeit der S5 nicht auslesen (z.B. über einen GET-Befehl o.Ä.), ohne das S5-Programm zu verändern?
Alternativ: Kann man den Soll- oder Istwert ggf. aus dem von der S5 angesteuerten Antrieb auslesen?

Damit wären denke ich beide Steuerungen deutlich synchroner, als wenn man in zwei Anlagen jeweils versucht mit unterschiedlichen Methoden die Geschwindigkeit zu ermitteln.
 
Ich nehme mal an, an der S5 hängt ein Frequenzumformer.
Wird der über einen Analogausgang der S5 gesteuert?
Dann hast Du deine Geschwindigkeit. Die kannst Du dann als Sollwert für die zusätzlichen Antriebe nehmen.
Ggf. noch skalieren und die Rampen passend einstellen.
Ansonsten könnte man auch noch schauen, ob der FU einen Analogausgang hat, auf den man die Istgeschwindigkeit ausgeben kann.
 
Hallo

es gibt ein S5 auf Ethernet Adapter für die PG Schnittstelle.

Damit kann man die Daten der S5 lesen.
 
Zurück
Oben