Umwandlung Frequenz -> Umdrehungen/s

ms25

Level-1
Beiträge
11
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!
Ich möchte einen Windmesser an die S7-300 anschließen.
Der Windmesser gibt pro Umdrehung 2 Impulse aus. Maximal 100Hz.
Zur Wandlung habe ich mal folgende Methode ausprobiert:

NW1: Impulszähler
U E 11.1 //Zähleingang
ZV Z 10
U(
L MW 200 //
L 999 //
==I //Rücksetzen bei '999'
) //
R Z 10 //
L Z 10
T MW 200

NW2: Impuls mit 1s //Blinkimpuls mit t_ein 1s und t_aus 1 Zykluszeit
U(
UN T 10
R M 199.5
U E 11.1
S M 199.5
U M 199.5
)
L S5T#1S
SI T 10

NW3: Zeit pos. //liest den Zählwert bei pos. Flanke des Blinkers ein
U T 10
FP M 199.6
L MW 200
ITD
T MD 202

NW4: Zeit neg. //liest den Zählwert bei neg. Flanke des Blinkers ein
U T 10
FN M 199.7
L MW 200
ITD
T MD 206

NW5: delta t //Anzahl der Impulse während 1s
L MD 206
L MD 202
-D
T MD 210

NW6: Transfer Double-Integer -> Real
L MD 210
DTR
T MD 214

NW7: Skalierung //Frequenz/2,5=Windgeschwindigkeit in m/s
L MD 214
L 2.500000e+000
/R
T MD 218
NW8: Betragsbildung //Verhindert negative Werte bei Zählerüberlauf
L MD 218
ABS
T MD 222
NW9: Transfer auf Analoganzeiger
L MD 222
T PAW316

Leider funktioniert das Ganze nicht so, wie ich will.
Es werden öfter mal negative Werte ausgegeben.

Ist meine Lösung prinzipiell mal richtig oder lieg ich komplett falsch, und es geht viel einfacher?

Vielen Dank im voraus,

Gruß
Manuel
 
Hallo,

vorab folgende Fragen:

Wie groß ist die Zykluszeit ?
ist das Impuls / Pausen- Verhältnis 1 : 1 ?
wenn nicht wieviel ms steht der Impuls bei 100Hz an ?

Gruß Wilfried
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

bei 100Hz erhälts Du alle 10ms einen Impuls, wenn Deine Zykluszeit länger ist, übersieht die SPS die Impulse.

Ansonsten in der Hardwarekonfiguration der S7-300 findest Du einen Taktmerker den Du mit einem Merkerbyte verknüpfen kannst. Du hast dann einen 1s-Takt mit M1.5 oder 2s-Takt mit M1.7

Ich würde mit dem 2s-takt einen Zählereingang über ein Und-Glied freigeben und in der 1. Sekunde die Impulse zählen. (Mit der positiven Flanke den Zähler zurücksetzen.)
In der zweiten Sekunde kannst Du dann den Wert auswerten oder nur Anzeigen lassen. Auf diesem Prinzip funktionieren übrigens auch Frequenzzähler.

MfG Micha
 
Das Impuls-Pause-Verhältnis ist : t_ein: 1s; t_aus: 1 Zykluszeit.
Somit wird die Auflösung recht genau, da ich dann annähernd jede Sekunde einen Messwert erhalte.
Sonst würde ich ja immer nur 1s lang messen und 1s lang hätte ich dann keinen Wert,
Das mit dem Taktmerker hab ich am Anfang auch ausprobiert. Allerdings ist die Frequenz nicht unbedingt genau. Sie hängt von der Zykluszeit der CPU ab.

Aber das mit dem Rücksetzen des Zählers bei Blinkerflanke ist ne gute Idee. Dann hab ich mir den Zählerüberlauf gespart. Muss ich halt am Schluss des FCs einfügen.

Oder meinst du das Impuls-Pausen Verhältnis des Taktgebers?
Das ist ca.: t_ein / t_aus = 1/4. d.h. bei 100Hz t_ein = ca. 2ms und t_aus = ca. 8ms.
 
Hallo

wichtig ist, dass deine Zykluszeit < 10ms ist.

Zuerst einen Taktgeber über den 500ms Weckalarm erzeugen oder mit den internen Taktgebern.

OB33 (500ms Weckalarm)

UN M 10.0
= M 10.0

Ergibt eine positive Flanke jede Sekunde

OB1

NW 1

U M 10.0
FP M 10.1
= M 10.2
U M 10.2
SPBNB _003
L MW 12
T MW 14
_003: NOP 0

NW 2

U E 11.1
ZV Z 1
NOP 0
NOP 0
NOP 0
U M 10.2
R Z 1
NOP 0
LC Z 1
T MW 12
NOP 0

Netzwerk 1 und 2 in der Reihenfolge.
Am MW14 liegt der Messwert Impulse / Sekunde an.

Gruß Wilfried
 
Ich hab ne CPU 315-2DP allerdings erste Ausgabe ...2AF00, der Windmesser ist momentan an einer ET200L angeschlossen. Wenn nachher nur definitiv Müll rauskommt, könnte ich auch ein ET200S Zählmodul verwenden, aber das ist im Moment mit Kanonen auf Spatzen geschossen, denke ich. Wobei man natürlich auch beachten muss, dass die 100Hz = 2ms = 40m/s in Mitteleuropa mit Sicherheit sehr selten auftreten werden. Der Messunsicherheitsfaktor wäre in dem Fall zu ertragen :).
Zur CPU: Die kennt leider nur den OB35. Wird am Alter liegen.
Kann gerade leider nicht weiter experimentieren. Bei mir stürzt Step 7 V5.3SP1 laufend ab. Ich lade gerade das SP2 runter. Mal schaun obs dann klappt.

Eine Andere Alternative wäre zur Not noch eine TTL-Kombination vorzuschalten, und den Wert dan parallel einzulesen.
 
Hallo,
das mit der ET ist neu. Programmiere auf der ET einen Ausgang

UN A X.Y
= A X.Y

Der Ausgang blinkt nun mit der Mindest- Reaktionszeit.
Schnellere Impulse gehen nicht.
Wird wohl Hardware oder Zählerkarte die Lösung werden.

Gruß Wilfried
 
Zurück
Oben