TIA Schneller Zähler Impulse pro Sekunde

Keeper

Level-2
Beiträge
70
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
1761583844365.png

Hallo zusammen,

ich habe zu einem schnellen Zähler eine Frage.

Ich möchte mit diesem die Impulse in einem Intervall von 1 Sekunde messen und dieses ausgeben.

Die Zählwerte bekomme ich auch, aber der ED1000 fängt immer wieder bei 0 an und Zählt dann hoch.

Ich bekomme, meines wissen nach, auch keine Signal aus dem Baustein, wann der schnelle Zähler beendet wurde, bzw. wann dieser neu gestartet wurde.

Wie bekomme ich das hin, das ich nach jeder Sekunde den Wert der Impulse an das HMI ausgeben kann?

Habe schon Versucht den aktuellen Wert immer in einem Speicherwert zu speichern.
Wenn der Wert dann 0 wir, diesen Speicherwert dann auszugeben und dann von vorne Anzufangen.

Währe das der richtige Weg?

Gibt es eine elegantere Lösung?

Der Zähler wurde in der SPS wie folgt parametriert.

Da ich eine CPU der Version 3 Verwende habe ich dort nur die folgenden Optionen.
1761583949894.png
1761584003295.png
1761584029453.png

Ich könnte als Messung auch noch Frequenz wählen, aber Intervall usw gbt es in dieser Firmware version nicht
 
@PN/DP hat für ähnlich gelagerte Problem gelegentlich die fortlaufende Unendlichzählung vorgeschlagen. Dann braucht man nur im gewünschten Zeitintervall die Differenz zwischen dem zuvor gemerkten und dem aktuellen Zählerstand bilden, was in Deinem Fall schon der gesuchte Wert wäre.

So spart man sich Rücksetzorgien mit u.U. bedingtem Impulsverlust.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Zählwerte bekomme ich auch, aber der ED1000 fängt immer wieder bei 0 an und Zählt dann hoch.
... nachdem er vorher bis 4.294.967.295 gezählt hat - das ist der ganz normale 32Bit-Zähler-Überlauf.

Wie bekomme ich das hin, das ich nach jeder Sekunde den Wert der Impulse an das HMI ausgeben kann?
indem man den Zählerstand liest und speichert und eine Sekunde später wieder liest und die Differenz zum gespeicherten Wert bildet

Deklariere den ED1000 als vorzeichenbehafteten DInt anstatt UDInt, dann ist die Differenz Zählerstand_Jetzt - Zählerstand_Vorher (normalerweise *) immer positiv (>= 0) und der Zähler-Überlauf muss (dank Zweierkomplement) nicht besonders behandelt werden (dann wechselt der Zählerstand von +2.147.483.647 nach –2.147.483.648).
(*) wenn man schneller ausliest als der Zähler bis zum halben Zählumfang zählen kann

Wenn du den Zählerstand in einem anderen OB als OB1 liest (z.B. Weckalarm-OB OB3x zB. alle 1s oder 100ms, dann musst du höchstwahrscheinlich den aktuellen Zählerstand direkt aus der Peripherieadresse %ED1000:P lesen.

Wieviele Impulse erwartest du je Sekunde?
Welche Auflösung benötigst du (Nachkommastellen)?
 
Danke euch für die Hilfe.

Den Ansatz von Larry Laffer hatten wir auch am Anfang. Dieses hat auch gut funktioniert. Dei langsamen Impulsen (10 bis 20 Hz) Aber bei einer Messung an der Getriebewelle von 8 Impulsen bei 450 Umdrehungen hat die Messung nicht 50-60 Hz angezeigt, sondern 6500 Hz. An der SPS Eingangsled kann man mit dem Auge das Pulsen sehen.

@ Larry Laffer
Kann es sein, das das Programm i.O. ist und ich mir eher um den Messeaufbau Gedanken machen muss? Auswahl Sensor ....

Danke euch
 
Gefräste Nockenscheibe, ggf. Aus zwei Halbringen?
Das mit den Schrauben passiert ja nur, wenn die radial in einer Welle stecken. Dadurch muss der ind. Ini auf den Abstand an der Schraubenkopfkante eingestellt werden. In Schraubenkopfmitte droht dann Erkennungsverlust, je nach Sensor.
 
Ich würde den fehler auch im Umfeld suchen. Der HSC kann ja bedeutend höhere Frequenzen als deine 50 bis 60 Hz. Das Pulsen auf der Karte würde ich nicht als sauberes Indiz für irgendetwas hernehmen. Ggf. ist ja auch einfach noch ein Brummen (vielleicht von einem FU) auf deiner Sensor-Leitung oder ähnlich.
 
Hallo zusammen,

hier ein Bild von dem Versuchsaufbau.

Der Sensor soll die Segmente der Klauen überwachen, getrennt durch die Kunststoffelemente der Kupplung.

1761635865672.png



Wir verwenden den folgenden Sensor für die Auswertung

Pepperl und Fuchs
NCB4-12GM40-N0-V1
Dieser hat eine Schaltfrequenz von 0-1500 Hz

Der Antrieb wir mit einem Umrichter betrieben, aber die Leitungen liegen komplett getrennt voneinander.

Der Sensor geht direkt auf die Karte.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wir bekommen dann Frequenzwerte von 6500Hz .... ?
Sorry ... das hattest du ja schon geschrieben und ich habe es überlesen ...
Ich würde dann auch mal auf einen anderen Sensor setzen - als Step 1 (also keinen 2-Draht - das kann ja wirklich schon das Problem sein)
 
Kann es sein, das das Programm i.O. ist und ich mir eher um den Messeaufbau Gedanken machen muss? Auswahl Sensor ....
naja, das Programm tut ja eigentlich gar nichts? Ich vermute, dass du den Aufruf des CTRL_HSC gar nicht brauchst, solange du nicht zur Laufzeit was eingreifen willst. Nur Betriebsart des HSC konfigurieren sollte reichen.
Ich würde auch mal über einen anderen Sensor nachdenken und ausprobieren.
 
Danke euch allen für die Hinweise.
Der Fehler wurde gefunden. Es wurde ein nicht bündiger Sensor eingesetzt. Dieser wurde durch einen bündig einzubauenden Sensor getauscht und siehe da es funktioniert.
 
Zurück
Oben