Step 7 Höchsten Wert beibehalten

Michakron

Level-1
Beiträge
39
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich möchte die Umdrehungen/minute einer Maschine messen. Habe dazu eine Nocke, die immer eine Umdrehung anzeigt und einen Impulsgeber (1min).
Nun möchte ich den höchsten Wert beibehalten. Hat da einer eine Idee?
 
Moin Michakron,

also zählst du die Pulse, die in einer Minute erfasst werden?
bei 3000 1/min hättest du 50 1/s => alle 20ms einen Impuls.
Je nach CPU und Auslastung könnte es hier zu Fehlern kommen, wenn Du einen "normalen" Eingang verwendest. Ggf. brauchst Du hier eine schnelle Zählerkarte.

Den höchsten Wert einfach mit einem Vergleicher und einer Flanke speichern:

bei Start -> Istwert (0) speichern.
Danach bei jedem SPS-Zyklus den Istwert mit dem gespeicherten Wert vergleichen.
Istwert > gespeicherter Wert? -> Flanke speichert (größeren) Istwert.

Dann brauchst du ggf. noch die Möglichkeit den gespeicherten Wert wieder zu löschen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hätte ich vielleicht dazu schreiben sollen. Ich bewege mich im Bereich von 0 bis 6 U/min. So schnell dreht sich das ganze also nicht.
Den gleichen Ansatzb hatte ich auch schon mal überlegt, jedoch scheitert es irgendwie ander Umsetzung.
 
Ups, hatte Michakrons Antwort missverstanden
jedoch scheitert es irgendwie ander Umsetzung.

Wo genau bei der Umsetzng hapert es denn? Poste uns doch mal einen Fetzen Code.
Beim Erfassen von Maximalwerten musst du dir auch noch gedanken machen ob ein Wert gültig ist und für wie lange.
Nur weil vor 3 Jahren mal eine Fehlmessung mit 90000 U/min war, bekommst du keinen neuen MAX-Wert mehr.

Wir hatten hier im Forum erst vorgestern eine ausführliche Diskussion über das Thema Impuls-Leistungsmessung/umrechnung. Siehe HIER
 
Zuletzt bearbeitet:
Hier mal ein Programmfetzen.
Also der Zählwert steht in DB101.DBW0. Ist der größer als DB101.DBW88 soll er in DB101. DBW88 geschoben werden.
Der Taster DB100.DBX1.7 ist de Starttaster der den Wert von DB101.DBW88 auf 0 setzen soll bei jedem Start. Macht er aber leider nicht.
1.JPG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hier mal ein Programmfetzen.
Der Taster DB100.DBX1.7 ist de Starttaster der den Wert von DB101.DBW88 auf 0 setzen soll bei jedem Start. Macht er aber leider nicht.
Nun ja, eigentlich kann ich hier keinen Grund erkennen warum DB101.DBW88 nicht auf Null gesetzt werden sollte (sofern DB100.DBX1.7 auf 1 geht). 7
Es ist halt nur, dass wenn du den Wert im oberen Netzwert auf Null setzt und dann noch ein Wert > 0 in DB101.DBW0 steht, überschreibst du DB101.DBW88 gleich wieder.

Das heißt, dass du beim Beobachten des Bausteins nie sehen wirst dass DB101.DBW88 auf 0 geht. Wenn aber beim Start in DB101.DBW88 z.B. der Wert 6 steht und in
DB101.DBW0 z.B. der Wert 3, dann sollte nach dem Start in DB101.DBW88 auch 3 stehen.
 
Das stimmt. Das wäre ja auch nicht so schlimm. Nur habe ich da mitlerweile einen Wert von 28 stehen und 6 ist das maximale, was überhaupt geht von der Anlage aus.
Habe schon mit der Verwendungsliste gearbeitet und nachgeschaut ob der Wert nich woanders vielleicht benutzt wird, ist aber auch nicht der Fall.
 
Habe schon mit der Verwendungsliste gearbeitet und nachgeschaut ob der Wert nich woanders vielleicht benutzt wird, ist aber auch nicht der Fall.
Sicher? Schon mal DB101.DBW88 mit der Maus markiert, dann STRG+ALT+Q und dann das Häkchen bei "Überlappender Zugriff auf Speicherbereiche"
angemacht?

Das stimmt. Das wäre ja auch nicht so schlimm. Nur habe ich da mitlerweile einen Wert von 28 stehen und 6 ist das maximale, was überhaupt geht von der Anlage aus.
Sicher? Zeig uns doch mal deine Drehzahlauswertung.
 
Zurück
Oben