Step 7 S7-300 Windsensor steuern

Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
mal in Microwin ein Stück Kot:
//Zeitmessung eine Minute, einlaufende Impulse zählen

LDN IMPdurchT_Temp_B
TON T39_100ms, 600

LD Windmessgerät
UN T39_100ms
LD IMPdurchT_Temp_B
ZV Z1_V, 32000

LD T39_100ms
UW<> Z1_V, IMPdurchT
MOVW Z1_V, IMPdurchT

LD T39_100ms
UW= Z1_V, IMPdurchT
= IMPdurchT_Temp_B

//und dann daraus die Windgeschwindigkeit

LD IMPdurchT_Temp_B
ITD IMPdurchT, LD0
DTR LD0, LD4
/R 60.0, LD4
//hier stehen jetzt Impulse pro Sekunde in LD4 (also Hz)
*R 0.4, LD4
//und jetzt sind es m/s
MOVD LD4, V_avg_mps

Ich habe da noch eine andere Berechnung drin, eine Zeitmessung über mehrere Impulse, aber ein wenig Eigenkreativität soll schon noch sein:ROFLMAO:.

Gruß
Mario
 
Zuviel Werbung?
-> Hier kostenlos registrieren
sps programmierung mit codesys aber da ist vieles anders als bei der s7

So groß sind Unterschiede eigentlich auch nicht.
Du kannst von 2 Seiten das Thema angehen:
  • Impulse über einen bestimmten Zeitraum zählen
  • zeitlichen Abstand zwischen 2 Impulsen messen

Bei hohen Windgeschwindigkeiten wird Variante 1 besser sein.
Bei neidrigen Geschwindigkeiten Variante 2.

Du kannst ja mal beide Varianten mal probieren.
Sind jeweils nur ein paar Netzwerke.

Gruß
Dieter
 
Duh!

Erstens steht bei deinem Screenshot am Ausgang Dual mwo (wie Oskar) und nicht mw0 (wie Null).
Zweitens, vergleichbar gibts für den Binärausgang des Timers auf hier einen Ausgang Q. Du brauchst nur eine Zuweisung ("="-Symbol oder F7-Taste) dranhängen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Auch bei Codesys muss man sich an Datentypen halten,
ein WORD-Ausgang braucht ein WORD, ein BOOL ein BOOL.
Vorteil von Step7 hier: du merkst das sofort, bei Codesys erst beim Übersetzen, aber das nur am Rande ...

P.S.
Wenn du schon Codesys als Basis nimmst:
Es seien dir folgende SFBs empfohlen, dürfte für dich leichter verständlich sein, ggü. den ollen S5-Timern:
SFB0 CTU
SFB1 CTD
SFB2 CTUD
SFB3 TP
SFB4 TON
SFB5 TOF

Mfg
Manuel
 
Hi,
natürlich ist jede Sprache verschieden, es ging hier um eines der zwei Prinzipien als Codebeispiel, zugegeben, ist nicht schön war damals ganz schnell gestrickt, da die originale Steuerung ausgefallen war. Und das ist auch kein richtiges Step7, das ist Microwin. Im richtigen Step7 sähe das nochmal gravierend anders aus.
Nebenbei, Codesys ist wahrscheinlich trotzdem genialer, ich versuche da hoffentlich demnächst auch etwas Staub zu wischen...

Gruß
Mario
 
Zuviel Werbung?
-> Hier kostenlos registrieren
meine (dumme) Frage warum sind 100Hz 40m/s ist dieser Wert nicht auch vom Durchmesser des Messrades abhängig

ich verwende einen Windmesser mit Analogausgang

Im Beitrag #3 kannst du das Datenblatt anschauen.
Was für einen Windmesser (Hersteller, Typ) hast du?
So was fehlt mir auch noch ...

Gruß
Dieter
 
Unbenannt.jpgich habe jetzt diesen Ansatz E0.6 ist mein Impuls aber ich komme nicht dahinter wie ich die Netzwerke richtig verknüpfe also Zeit läuft - Zähler läuft - Zeit Stop - Zähler Stop - Vergleich - kurze Wartezeit - und dann wieder von vorne.
 
Schau dir mal die Taktmerker an ...
Da gibt es einen schönen Merker mit 1Hz.

Code:
U "Takt_1Hz"
U E0.6
ZV Z1

Gruß
Dieter
 
@suvaemente:
Hattest du nicht geschrieben, dass du Kenntnisse in Codesys hast?
So weit kann es damit aber nicht her sein ...

Dein A5.0 ist unnötig wie ein Kropf.
Zur Lösung des Problems ist der Zählerstand nach 0,5s Sekunden interessant.
Dieser ist proportional zur Windgeschwindigkeit.
Resete (R) deinen Zähler mit
Code:
UN M100.5
Schreib mal das MW200 an den Parameter Dual und beobachte das im Status.

Ansonsten schau mal hier:
http://www.sps-programm.info/die-zahler-in-der-simatic-s7-300400

Gruß
Dieter
 
Zurück
Oben