Step 7 PWM-Signal einlesen und verarbeiten

Manoel

Level-1
Beiträge
14
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen!

Ich bin neu im Forum, und hoffe auf Eure Hilfe.
Ich habe ein Messgerät (Datenlogger), das auch einen Ausgang zur Steuerung eines Lüfters hat. Darüber wird über ein PWM-Signal ein tragbarer Lüfter gesteuert. Dieses Signal schicke ich an meine S7-313C (über einen Optokoppler 5V/24V an einen Eingang zum Auszählen vom PWM-Signalen). Ich bekomme es aber leider nicht hin, das Signal einzulesen, geschweige es in einen S7-Analogwert zu wandeln, sodass ich es wieder an meine Umrichter (dann 4-20mA) ausgeben kann, um damit eine bestehende Anlage zu steuern.

Vielleicht hat einer von Euch eine Idee, ob und wie des möglich ist.

Ich bräuchte Hilfe beim Einstellen meiner Hardware, bei der Auswahl des richtigen SFB,s 47 oder 49 ect. und der Parametrierung des entsprechenden Bausteins in
Step 7 V5.5

Danke schon mal für eure wertvolle Zeit und Ratschläge.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
@escride1
Hardware ist eine S7-313C mit den schnellen Zähler-Eingängen.
Handbuch S7-300 CPU 31xC Technologische Funktionen

Dieses Signal schicke ich an meine S7-313C (über einen Optokoppler 5V/24V an einen Eingang zum Auszählen vom PWM-Signalen).
Ich glaube, das wird mit dieser SPS nicht gehen. Es wird vermutlich einfacher, wenn Du eine PWM zu 0-10V Konverter Platine für ein paar EUR dazwischen schaltest. Brauchst Du die Lösung für ein Bastelprojekt oder eine industrielle Anwendung?

Wieviel Hz hat das PWM-Signal?
Bitte genauen Typ des Messgerätes angeben.

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Um ein PWM-Signal zu dekodieren muß man das Puls/Pause-Verhältnis des Signals messen. Also die Länge des Pulses und die Länge der Pause. Mit sehr schnellen CPU könnte man bei steigender Flanke und bei fallender Flanke einen Interrupt (Prozessalarm) auslösen und die Zeiten dazwischen messen. Ob die CPU das kann hängt davon ab, wie langsam die PWM-Frequenz ist und wie schnell der Digitaleingang Interrupts auslösen und die CPU die Interrupts verarbeiten kann. Und wie hoch aufgelöst (µs) eine Zeitmessung zur Verfügung steht. Oder man gibt das elektrische Signal auf einen Integrator (z.B. Kondensator).

Harald
 
Also ca: 75 Hz = 13.3 ms Periodendauer --> in der Zeit müsste zweimal ein Interrupt verarbeitet werden, im ungünstigen Fall werden der Puls oder die Pause (Interrupt-Abstand) kleiner als 1 ms sein. Das geht nur mit Hardware, die selbständig die Zeitmessungen vornimmt. Oder ein externer Konverter von PWM zu Analogsignal.
Oder wenn die Genauigkeit nicht groß sein muß, dann müsste das Signal deutlich schneller als jede Millisekunde abgetastet werden. Das schafft die 313C aber auch nicht.

Harald
 
1x Elko, 2x Widerstand:

vom PWM Ausgang über Widerstand auf Elko, zum Eko noch einen Widerstand um den auch wieder zu entladen.
Dann einfach mit AI die Spannung am Elko messen -> Fertig
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei PWM steckt die Information nicht in der Frequenz, sondern im Puls/Pause-Verhältnis (siehe meine Erklärung in #6). Die Frequenz bleibt von 0..100% gleich. Es macht keinen Sinn die Frequenz zu messen. Das Puls/Pause-Verhältnis kann die 313C nicht messen (es gibt keine Hardware-gestützte Funktion dafür). Du brauchst einen industriellen PWM zu Analogsignal Konverter (*). Oder eine andere Wertübertragung vom Messgerät zur 313C, z.B. 0-10V, 0/4-20mA, Profibus, Profinet, Ethernet, Modbus, seriell, ...

(*) beachte die niedrige PWM-Frequenz von 73 Hz. Viele Konverter benötigen mindestens 100 Hz.

Nochmal: Wie heißt das Messgerät genau?
Kann die PWM-Frequenz geringer eingestellt werden?
Kann für die Wertübergabe nicht eine andere Schnittstelle oder ein anderes Messgerät verwendet werden?

Harald
 
Um ein PWM-Signal zu dekodieren muß man das Puls/Pause-Verhältnis des Signals messen. Also die Länge des Pulses und die Länge der Pause.
Ja genau... die Frage ist nur, muss ich das mit dem SFB47 machen...

1660420687769.png
1660420838657.png

oder mit dem SFB49 ?

1660420907059.png

1660420941433.png

Quelle:
s7300_cpu_31xc_technological_functions_operating_instructions_de-DE_de-DE.pdf
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja genau... die Frage ist nur, muss ich das mit dem SFB47 machen...
(...)
oder mit dem SFB49 ?
Weder noch.
SFB 47 COUNT nützt nichts, weil die Zählung immer 73 Impulse je Sekunde ergibt, egal welches PWM-Verhältnis.
SFB 49 PULSE ist für die PWM-Ansteuerung eines Digitalausgangs. Damit kannst Du Dein Signal nicht auswerten.

Harald
 
Zurück
Oben