Externes PWM Signal verabreiten...bzw. glätten

TomTom01

Level-2
Beiträge
126
Reaktionspunkte
6
Zuviel Werbung?
-> Hier kostenlos registrieren
Servus zusammen,

ich werde demnächst eine Achse von Gleichstrommotor auf Servoantrieb umrüsten.

Die Momentane Leistungskarte des Gleichstrommotors bekommt zu den üblichen Freigaben ein PWM Signal (Speed Sollwert) über eine übergeordneten Steuerung.
Die Frequenz der PWM beträgt 6.2Khz. Das High Signal beträgt 17,5V.

Die eingesetzte Hardware zur Skalierung etc. wird eine kleine CX9020 werden.

Mein Problem ist die Auswertung des PWM Sollwert Signals an einer Steuerung. Der Rest ist machbar...
Gibt es eine Möglichkeit das PWM Signal sauber zu Glätten und es zum Beispiel einfach an einer EL3062-0030 auszuwerten?
Habt ihr Erfahrungen oder Ideen?

Vielen Dank!

Grüße
Tom
 
a) Wie willst denn du ein 17,5V-Signal mit einer 0-10V-Klemme auswerten? -- hat sich erledigt, hab die doku zu schnell überblättert. Klemme ist für 30V
b) Das glätten sollte doch der Filter in der Klemme erledigen können, oder hab ich da ein fundamental falsches Verständnis?
 
die Höhe des PWM Signals spielt keine Rolle, da die zu übertragende Information in
der Pulsweite enthalten ist. Da darf man auch nix wegbügeln sondern braucht einen PWM nach DC Wandler.
Der macht aus dann aus 0% ti/T 0V und aus 100% ti/T 10V.
Wenn du mit Elektronik umgehen kannst kann ich dir den LTC2644 von Linear empfehlen: http://www.linear.com/product/LTC2644


Gruß
Jürgen
 
die Höhe des PWM Signals spielt keine Rolle, da die zu übertragende Information in
der Pulsweite enthalten ist. Da darf man auch nix wegbügeln sondern braucht einen PWM nach DC Wandler.
Der macht aus dann aus 0% ti/T 0V und aus 100% ti/T 10V.

...oder eine genau angepasste Filterkonstante in der DC-Klemme. Da sehe ich allerdings ein Problem.

@Thomas_v2.1 hat hier aber schonmal ein theoretisch eingängiges Verfahren beschrieben für eine hinreichend genaue Wandlung.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Lösung von Thomas_v2.1 kling wirklich sehr interessant.
Ich denke diese werde ich mir mal genauer anschauen und ggf. sogar mit der passenden Hardware nachbilden und testen...:rolleyes:
 
Servus,

ich will mich einfach mal kurz zurückmelden und mein Ergebnis zum Lösungsansatz vom Thomas_v2.1 veröffentlichen :-D
Momentan besteht nur eine Simulation aber zwischen den Feiertagen wird die Steuerung umgebaut.
Vielleicht kann die Lösung ja dem einem oder anderem in Zukunft auch weiterhelfen....

Meine eingesetzte Hardware: S7 1215C + Signalboard (2DO 2DI 200Khz).....auch wenn die Hardware nicht ins Forum von Codesys und IEC...passt;)

STEP 1:

Das PWM Signal, das später den Sollwert ausgibt, habe ich mit einem PWM Ausgang simuliert und auf ein schnellen Zähler gelegt.
Diese PWM Zyklusdauer ist 160 [FONT=arial, sans-serif]µs, die "echte" an der Anlage auch. Dies habe ich vorab mit einem Oszilloskop gemessen. Die Zyklusdauer kann man relativ einfach in der Hardware deklarieren.[/FONT]

[FONT=arial, sans-serif]Das Tastverhältnis der PWM kann ich dynamisch über eine Variable die ich im Programm zum passen AW schicke definieren.[/FONT]

[FONT=arial, sans-serif]-------Somit wäre das simulierte PWM Sollwert Signal fertig.

[/FONT]STEP 2:

Nun brauche ich schnellen Takt den ich auf einen 2. Eingang lege. In meinem Testaufbau habe ich wiederum ein PWM Signal erzeugt, in der Zykluszeit 20[FONT=arial, sans-serif]µS dauert. Tastverhältnis ist auf feste 50% definiert

STEP 3:

Jetzt lege ich die 2 Signale an den Eingängen übereinander und zähle alle Impulse von meinem Takt die gleichzeitig zum Zeitpunkt des PMW Sollwert HIGH Signal erscheinen .
[/FONT]Dies kann man relativ einfach in der Hardware realisieren. Die schnellen Zähler haben ein TOR Eingang. Das heißt es wird nur gezählt wenn auch am TOR Eingang ein HIGH Signal ansteht.

Zählereingang: Takt
Toreingang: PWM Sollwert.

STEP3:

Um nun nicht endlos zu zählen und auch irgendwann ein Verhältnis zu haben, rufe ich nun ein Weckalarm OB mit der Zykluszeit von 5ms auf.
Innerhalb diesem OB wird nun gerechnet. Die Voraussetzung hierbei ist natürlich das alle Zykluszeiten klar definiert und korrekt sind.
Die PWM Zykluszeit des Sollwertes wie auch die Zykluszeit des generierten Taktes. Um es zu vereinfachen gehen wir nun auch von einem Tastverhältnis bei dem PWM Sollwert von 50% aus.

PWM Sollwert = 160[FONT=arial, sans-serif]µS, generierter Takt = 20[/FONT]µS, Tastverhältnis PWM Sollwert = 50%, Zykluszeit OB = 5ms.

160 / 20 = 8 /// Insgesamt 8 Takte im PWM Sollwert. Bei 50% Tastverhältnis ergibt das 4 HIGH und 4 LOW Signale.

5ms / 160
µS = 31,25 //Wenn der OB augerufen wird, habe wir ca. 31 Zyklen des PWM Signal aufgenommen.

[FONT=arial, sans-serif]31Zyklen * 4HIGH= 124 //// Bei 50% Tastverhältnis haben wir dann dementsprechend ungefähr 124 Signale am Zähler erfasst.

[/FONT]Nach den Berechnungen setzen wir den Zähler im Weckalarm wieder auf 0.
Fertig!

Bei Tasverhältnis 0% = 0 Zählersignale
Bei Tastverhältnis 50% = 124 Zählersignale
Bei Tastverhältnis 100% = 248 Zählersignale.

Natürlich schwanken die Zählerwerte im Bereich von ca. +15 - -15, um das auch noch etwas zu kompensierten habe ich mir ein FC gebastelt indem ich immer den Arithmetischen Mittelwert von 3 Zählerwerten berechne. Somit bekommt man das ganze etwas stabiler.

...jetzt noch die Skalierung auf die gewünschte Analogausgabe und das war es.

An dem Testaufbau funktioniert es ziemlich gut.

Grüße TomTom











 
Zuletzt bearbeitet:
Zurück
Oben