Störenfriedhelm
Level-1
- Beiträge
- 11
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo Menschen,
Es geht wie der Titel schon sagt um Dekodierung es PWM Signals. Es müssen Zeiten zwischen den LH - Flanken des Signals gemessen werden.
Ich muss eine CPU 1512 F-1 Verwenden und arbeite in Tia V15.1 dazu habe das TM Count 1x24V Zählermodul Aus dem Datenblatt heraus sollten die Anforderungen kein Problem für das Zählermodul sein.
Beim lesen der entsprechenden Manuals ist immer die Rede von einer "mittlere Periodendauer" die aus einem Technologiemodul rauszuholen ist, aber die nützt mir nichts. Ich muss die Periodendauer von jeder LH Flanke zur nächsten messen.
Die Routine muss von einem uC auf SPS umgesetzt werden (warum auch immer). In dem Programm wird mittels Interrupt zur LH Flanke ein Zeitstempel eines Timers genommen und vom letzten Zeitstempel abgezogen = Periodendauer. Die Periodendauer wird dann tabellarisch codiert und mit ein paar switch case, maskier und Bit shift Anweisungen kommt am Schluss ein 16Bit Integer raus den ich im Programm benötige (nur so grob, weil's nicht um die Routine geht)
Ich dachte ich mach das auf der SPS auch so, also mit Prozessalarm bei jeder LH Flanke die Periodendauer von der letzten LH Flanke bis zur Alarmauslösenden Flanke hernehmen und entsprechend der Routine dekodieren. die kleine Zeitspanne zwischen den Impulsen die ich auswerten muss ist 256us bis 960us alles darunter und darüber schmeiß ich weg. Jetzt habe ich aber noch nie mit Technologiemodulen gearbeitet und weis nicht ob die SPS überhaupt so schnell aufeinanderfolgende Prozessalarme verarbeiten kann.
Also Option, um die Prozessalarm Routine so kurz wie möglich zu halten könnte man auch die ermittelten Periodendauer"n" in ein Array schreiben und im Standard Programm dekodieren
Kann mir jemand sagen ob das überhaupt möglich ist? hat jemand schonmal sowas gemacht? Gibt es ein anderen weg so ein Problem zu lösen(im Rahmen von SPS und Tia natürlich)
Ich kann auch gerne mal einen Code Schnipsel vom uC hier rein schmeißen, wenn gewünscht.
Es geht wie der Titel schon sagt um Dekodierung es PWM Signals. Es müssen Zeiten zwischen den LH - Flanken des Signals gemessen werden.
Ich muss eine CPU 1512 F-1 Verwenden und arbeite in Tia V15.1 dazu habe das TM Count 1x24V Zählermodul Aus dem Datenblatt heraus sollten die Anforderungen kein Problem für das Zählermodul sein.
Beim lesen der entsprechenden Manuals ist immer die Rede von einer "mittlere Periodendauer" die aus einem Technologiemodul rauszuholen ist, aber die nützt mir nichts. Ich muss die Periodendauer von jeder LH Flanke zur nächsten messen.
Die Routine muss von einem uC auf SPS umgesetzt werden (warum auch immer). In dem Programm wird mittels Interrupt zur LH Flanke ein Zeitstempel eines Timers genommen und vom letzten Zeitstempel abgezogen = Periodendauer. Die Periodendauer wird dann tabellarisch codiert und mit ein paar switch case, maskier und Bit shift Anweisungen kommt am Schluss ein 16Bit Integer raus den ich im Programm benötige (nur so grob, weil's nicht um die Routine geht)
Ich dachte ich mach das auf der SPS auch so, also mit Prozessalarm bei jeder LH Flanke die Periodendauer von der letzten LH Flanke bis zur Alarmauslösenden Flanke hernehmen und entsprechend der Routine dekodieren. die kleine Zeitspanne zwischen den Impulsen die ich auswerten muss ist 256us bis 960us alles darunter und darüber schmeiß ich weg. Jetzt habe ich aber noch nie mit Technologiemodulen gearbeitet und weis nicht ob die SPS überhaupt so schnell aufeinanderfolgende Prozessalarme verarbeiten kann.
Also Option, um die Prozessalarm Routine so kurz wie möglich zu halten könnte man auch die ermittelten Periodendauer"n" in ein Array schreiben und im Standard Programm dekodieren
Kann mir jemand sagen ob das überhaupt möglich ist? hat jemand schonmal sowas gemacht? Gibt es ein anderen weg so ein Problem zu lösen(im Rahmen von SPS und Tia natürlich)
Ich kann auch gerne mal einen Code Schnipsel vom uC hier rein schmeißen, wenn gewünscht.