TIA S7-1200 Impulsdauer über HSC ermitteln

S7Benny

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

ich habe eine S7-1215 DC/DC/DC und suche nach einer Möglichkeit ein PWM-Signal auszuwerten.
Das PWM-Signal hat ein Frequenz von ungefähr 5 kHz und Pegel für logisch 1 liegt bei 24V.

Ich weiß, dass die S7-1200 schnelle Zähler (HSC) hat, mit denen man die Frequenz und die Periodendauer ermitteln kann.
Ich müsste aber in diesem Fall ja die Impulsdauer (also den Zeitanteil wie lange das Signal logisch 1 ist) ermitteln können.

Ist das mit den HSC überhaupt möglich und wenn ja, weiß einer wie der HSC hierzu eingestellt werden muss?
Die Beispiele die ich bisher gefunden habe zählen entweder nur die Impulse oder ermitteln die Frequenz/Periodendauer.

Ich bin für jeden Tipp dankbar.
 
Moin S7Benny,

wie genau muss die Information sein und wofür brauchst du sie?

Wenn es sich um ein symmetrisches Rechtecksignal handelt (Tastverhältnis = 50%), dann braucht man ja nichts auszuwerten.
Ich vermute mal, Du will das Tastverhältnis herausbekommen?
Eigentlich wird das PWM-Signal ja ausgegeben und nicht eingelesen und ausgewertet. Wie und wo wird das PWM-Signal denn erzeugt?

VG

MFreiberger
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Signal ist nicht symmetrisch. Die Frequenz liegt ungefähr bei 5 kHz.
Ich möchte die Zeit bzw. letztendlich das Verhältnis zwischen An- und Aus-Zeit ermitteln.

Das Signal wird von einem LED-Netzteil abgegriffen und gibt somit die Helligkeit (für die daran angeschlossene Beleuchtung) zurück. Und diese möchte ich auswerten.

Eine Genauigkeit von einem Prozent brauche ich jetzt nicht unbedingt. Aber 5% Genauigkeit wäre schon ganz nett.
 
Moin S7Benny,

du könntest vielleicht mit einem Analogeingang den Effektivwert des PWM-Signals aufnehmen. Damit könntest Du ggf. was anfangen.

Was möchtest Du denn mit den ausgewerteten Informationen anfangen?
 
Einen analogen Eingang möchte ich dafür eigentlich nicht verschwenden. Ein PWM-Signal ist ja ein reines digitales Signal (nur eben mit einem Puls/Pause-Verhältnis einer bestimmten Frequenz).

Daher nochmal konkret die Frage: Kann man bei der S7-1200 mit einem HSC die Impulsdauer eines PWM-Signals ermitteln oder geht das nicht?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also vielleicht verstehe ich was Falsch? Ich würde einfach mal das Signal an den HSC anhängen und schauen ob die S7 1200 das Signal sauber bekommt. Bei 5 KHz solltest du ja 5000 pulse pro Sekunde bekommen.
Die Ermittlung wäre jetzt über die Zeit und die Impulse schon möglich.
 
Wäre das nicht eher was für Interrupts auf steigende und fallende Flanke und dann die Zeitdifferenzen anhand der Systemzeit berechnen?
Dann hättest du nach 2 positiven und einer negativen Flanke alles zusammen.
Hab sowas mal gemacht um die Impulse eines Durchflussmessers zu zählen. Auch mit einer 12xxC irgendwas. hat super funktioniert.

HSC Siemens
 
Zuletzt bearbeitet:
@Eckenhart Die Frage ist aber wie muss der HSC eingestellt und über CTRL_HSC/CTRL_HSC_EXT vom Programm aus verwaltet werden?
Die 5000 Impulse pro Sekunde habe ich ja immer (außer natürlich bei 0% Impulsdauer). Nur die Impulsdauer unterscheidet sich.

@Oje An Interrupts hatte ich auch schon gedacht. Ich dachte nur, dass das mit dem HSC evtl. auch zu lösen sei.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mit HSC musst du viel rechnen. Mit jedem Zählen die Systemzeit schreiben und dann immer die Abstände zwischen 2 Werten berechnen. Problem. Der HSC wird ja nur auf die positiven Flanken reagieren. Dann fehlt dir aber die "Dunkelzeit".
 
Unabhängig von der Lösbarkeit auf der gewählten CPU hatte ich vor Jahren mal so als Gedankenmodell:
1. Freilaufendes Rechtecksignal mit bekannter Frequenz, vielfaches der Pwm frequenz an hsc input
2. Pwm signal an gate input

Hsc signale während gate aktiv = direktes mass des dutycycle
 
@Plan_B Diese Idee ist mir beim Durchschauen der Hilfe von Siemens auch schon gekommen. Aber ich finde es schon etwas merkwürdig, was man für "Tricks" anwenden muss, um die Impulsdauer eines PWM-Signals zu erhalten. Klar könnte ich jetzt über das PWM-Modul der SPS z. B. ein 50 kHz Signal erzeugen, dieses wieder auf den HSC-Eingang zurückführen und dann an das HW-Gate das "ursprüngliche" PWM-Signal anschließen, aber so "toll" finde ich das irgendwie auch nicht. :unsure:

Also wenn ich das richtig sehe, gibt es eigentlich nur 2 vernünftige Ansätze:
1.) kein HSC verwenden, sondern beiden Flanken über Interrupts triggern
2.) HSC mit fest definiertem Rechteck-Signal verwenden und PWM-Signal als HW-Gate nutzen

Oder hat noch jemand eine andere Idee, wie man das lösen könnte?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also wenn ich das richtig sehe, gibt es eigentlich nur 2 vernünftige Ansätze:
1.) kein HSC verwenden, sondern beiden Flanken über Interrupts triggern
2.) HSC mit fest definiertem Rechteck-Signal verwenden und PWM-Signal als HW-Gate nutzen
Für 1) wie hoch aufgelöst geht denn die Zeitmessung zwischen den Interrupts?
2) macht man, wenn die Zeitmessung nicht genug Auflösung hat. Mit 50 kHz Zählfrequenz kommt man bei 5 kHz PWM auch nicht weit. Da erhältst Du im günstigsten Fall 1 bis 9 Impulse. Grob geschätzt 10..20% Messfehler.

Harald
 
@PN/DP Das mit den Interrupts müsste ich wohl mal testen, wie genau die Zeitmessung hier wirklich wird (außer jemand anderes hat hier bereits Erfahrung). Das Problem bei dem zweiten Ansatz mit dem HSC und dem 50 kHz PWM-Signal ist mir auch klar. Ich könnte natürlich auf 100 kHz erhöhen (mehr kann die S7-1200 ja nicht), aber ideal ist das natürlich trotzdem nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bin mir bei der 1200er nicht sicher, aber bei den 300er konnte man doch die Systemzeit im OB1 in ms auslesen. Die würde ich dann in den Interrupts in eine Variable kopieren und im "normalen" Ablauf verrechnen. Also keine Zeiten benuten. Und nur je ein Move im Interrupt.
 
Die ms helfen nichts wenn eine Periode 0.2ms lang ist. Wenn der Zähler das nicht von Haus aus kann, bleibt nur die Variante mit dem Analogeingang oder aber ein ganz anderes Konzept (z. B. DMX)
 
Ich werde das ganze nun über einen HSC mit einem zusätzlichen Rechtecksignal (generiert über einen PWM-Ausgang der S7-1200) und dem zu messenden PWM-Signal als Toreingang (HW-Gate) realisieren. Ich habe das gestern mal so getestet und bin mit dem Ergebnis recht zufrieden.

Danke für eure Vorschläge. (y)
 
Zurück
Oben