Forum: Analoge Elektronik und Schaltungstechnik PWM in Analogsignal umwandeln


von Daniel K. (daniel_k382)


Lesenswert?

Hallo Zusammen!
Ich bin auf der Suche nach einer Lösung um mit ein paar wenigen 
Komponenten ein 5kHz PWM Signal welches mittels open Collector Signals 
erzeugt wird in ein 0-10V DC Signal zu wandeln.

Das PWM Signal kommt aus einer CNC Steuerung und das "Gegenstück" zum 
Open Collector Ausgang ist eine 24V Spannung.

Das DC Ausgangssignal sollte einen Frequenzumrichter ansteuern. Zum 
Eingang des Frequenzumrichters habe ich leider keine zusätzlichen Infos 
wie Stromverbrauch oder ähnliches. Es handelt sich um einen Klinger Born 
PI8100 mit 2.2kW. Ein Datenblatt habe ich falls erwünscht. Aber der FU 
würde ein Versorgung von 10V für eine solche Steurung bieten (damit man 
die ansonsten zur Verfügung stehenden 24V nicht mit Spannungsteiler oder 
etc. begrenzen müsste).

Kurzum habe ich schon einiges versucht (wer will kann gerne unten 
weiterlesen) aber ich möchte meine "Versuchsschaltungen" gar nicht erst 
hochladen, da ich denke, dass ich grundsätzlich auf dem Holzweg bin... 
Ich suche also eher nach einer "Best Practice" Lösung die mit wenigen 
einfachen Bauteilen zu schaffen sein müsste, als nach 
Verbesserungsvorschlägen für meinen Murks :)

Für alle die am Werdegang interessiert sind:

Ich habe es bereit mit Optokoppler und dahinter geschaltetem RC Tiefpass 
versucht. Dabei habe ich von einem 2 bis 47µF Kondensator schon einiges 
probiert und mit einem 100kOhm Poti "stufenlos" verschiedene Werte 
versucht. 5kOhm waren mein erster Versuch. Ich habe aber nach langem 
Probieren festgestellt dass der Optokoppler nicht das passende 
"Ansprechverhalten" hat, denn er schaltet zu träge ab und liefert zum 
einen über den gesamten PWM Verlauf einen höheren Ausgang (zB 30% Duty 
Cycle aber 50% Spannung am Ausgang). Gleichzeitig schafft aber meine 
Schaltung es nicht ansatzweise bei 100% Duty Cycle die 10V zu liefern. 
Bei etwa 7V ist stets Schluss.

Ich habe es dann mit einem Arduino der mir ein vergleichbares PWM Signal 
bei ~4kHz und einem NPN Transistor (muss später natürlich ein PNP werden 
mit meinem open Collector Ausgang an der CNC Platine) aber ich wollte es 
einmal einfach halten. Der hat natürlich ein viel besseres 
Ansprechverhalten als der Optokoppler. Mein Problem ist nun aber, da der 
Eingang am FU keine "Last" hat, sich der Kondensator bis zur 
Versorgungsspannung auflädt. Nun habe ich einen 47kOhm Widerstand vom 
Tiefpass als Pull-Down auf Masse gelegt, aber da fließt natürlich 
dauerhaft Strom weg und ich erreiche nicht mehr die vollen 5V 
Versorgungspannung meiner Arduino Schaltung.

Ich würde mich sehr über Hilfe freuen. Ich denke ich habe etwas an 
Grundverständnis, aber da hört es dann schon auf. Danke schon mal vorab!

von Monk (Gast)


Lesenswert?

Erstmal brauchst du dein PWM Signal von einer Push-Pull Stufe. Also 
schaltest du hinter deinen Open-Kollektor Ausgang einen Pull-Up 
Widerstand und einen digitalen Buffer.

Dahinter kommt ein Tiefpass mit einer Grenzfrequenz weit unterhalb von 5 
kHz. 10kΩ und 1µF wären ein guter Anfang.

Dahinter kommt ein Operationsverstärker, damit die Spannung unabhängig 
vom Laststrom ist. Der kann die Spannung auch gleich von 5V auf 10V 
verdoppeln.

Bedenke, dass nicht alle Operationsverstärker rail-2-rail Eingänge und 
Ausgänge haben. Eine Versorgungsspannung von +/- 15V  macht die Sache 
einfacher.

von Daniel K. (daniel_k382)


Angehängte Dateien:

Lesenswert?

Hallo Steve!
Danke schon mal für die Antwort! Leider ist mir das stellenweise etwas 
zu schnell. Ich hab mal ein Schaltbild gezeichnet und hier meine Fragen/ 
Antworten:

Steve van de Grens schrieb:
> Erstmal brauchst du dein PWM Signal von einer Push-Pull Stufe. Also
> schaltest du hinter deinen Open-Kollektor Ausgang einen Pull-Up
> Widerstand und einen digitalen Buffer.

Das mit Push-Pull ist mir noch klar. Hier ist mir noch eingefallen dass 
ich da max 100mA schalten darf. Sollte kein Problem sein, aber der 
vollständigkeit halber...
Aber das mit dem Puffer ist mir noch nicht klar. Ich kannte das bis dato 
nicht aber ich denke mal der sollte das Signal dann "wideraufbereiten"? 
Kannst du mir einen passenden Chip sagen damit ich mir das Datenblatt 
ansehen kann und das mal in die Schaltung einbinde?

Steve van de Grens schrieb:
> Dahinter kommt ein Tiefpass mit einer Grenzfrequenz weit unterhalb von 5
> kHz. 10kΩ und 1µF wären ein guter Anfang.

Das ist mir denke ich klar (siehe Bild).

Steve van de Grens schrieb:
> Dahinter kommt ein Operationsverstärker, damit die Spannung unabhängig
> vom Laststrom ist. Der kann die Spannung auch gleich von 5V auf 10V
> verdoppeln.
>
> Bedenke, dass nicht alle Operationsverstärker rail-2-rail Eingänge und
> Ausgänge haben. Eine Versorgungsspannung von +/- 15V  macht die Sache
> einfacher.

Das mit dem OPV ist mir grundsätzlich klar, aber auch hier wäre eine 
Type hilfreich, dann kann ich mich in das Datenblatt einlesen.

Am liebsten wäre es mir gewesen die beiden Seiten galvanisch getrennt zu 
haben (Optokoppler) und auf einer Seite mit den 10V vom FU zu arbeiten. 
Die 24V von der CNC Steuerung zu nehmen und die beiden GND zu verbinden 
geht auch noch, aber +-15V möchte ich ehrlich gesagt nicht generieren 
müssen.

von Gerhard H. (Gast)


Lesenswert?


von Michael B. (laberkopp)


Lesenswert?

Daniel K. schrieb:
> Am liebsten wäre es mir gewesen die beiden Seiten galvanisch getrennt zu
> haben (Optokoppler)

Dann solltest du das Digitalsignal, gleich aus den open collector 
Ausgang, per Optokoppler trennen.

Der hat dann wieder einen open collector Ausgang :-)
1
          +10V  +10V
2
   +24V     |     |
3
     |     4k7    |
4
    2k2:    |     |                LMC6482
5
    _|_     +----|+\   +--100k--+----|+\
6
    \_/     |    |  >--+        |    |  >--+-- 0-10V
7
     |     |<  +-|-/   |       1uF +-|-/   |
8
OC --+      |E |       |        |  |       |
9
           GND +-------+       GND +-------+

von Andi Y. (andiy)


Lesenswert?

Zuerst würde ich sowas einfaches versuchen, bevor ich gleich eine 
Schaltung mit Buffer und OPAMP aufbaue:
1
             .-----------------------< 10V Speisung
2
             |
3
            | |4.7k
4
             |
5
SPS PWM >----+-----[100k]---+--------> FU AnalogIn
6
                            |
7
SPS GND >--.               === 1uF
8
           |                |
9
           '----------------+--------< FU GND
Wenn der FU Eingang genügend hochohmig ist sollte das doch auch 
funktionieren.

von Günter L. (Firma: Privat) (guenter_l)


Lesenswert?

von Daniel K. schrieb:
>schafft aber meine
>Schaltung es nicht ansatzweise bei 100% Duty Cycle die 10V zu liefern.
>Bei etwa 7V ist stets Schluss.

100% Duty Cycle ist ja reine Gleichspannung, wenn bei 10V
Betriebsspannung dann nur 7V rauskommt, bedeutet daß dann,
daß die Quelle kein idealer Schalter ist.

Ein OPV kann bei 10V Betriebsspannung keine 10V am Ausgang
ausgeben. Das schaft kein OPV, bis an die Betriebsspannung
herann auszugeben, da ist die 7V ganz normal. Erhöhe
die Betriebsspannung des OPV.

von Vanye R. (vanye_rijan)


Lesenswert?

Du hast eine PWM von 5khz und willst die mit potentialtrennen. Wie du 
schon gemerkt hat gibt es da schnell ungenauigkeiten durch den 
Optokoppler.

Wir wissen jetzt leider nicht welche Ansprueche du an die Aufloesung 
deiner
Analogspannung stellst, also wieviel Bit hat deine PWM?

Generell sollte du aber davon ausgehen das du mindestens 50khz durch 
deinen Optokoppler bekommen musst. Vielleicht sogar 500khz damit die 
Flanken und ihre Position stimmt. Damit bist du in Bereichen wo es viel 
klueger ist digitale Koppler zu verwenden. z.B Analog: Adum

Denn wenn du nur eine schlappe Flanke hast und die mit einem Gatter 
aufbereitest dann kann es dir passieren das am Ausgang deine 
Ausgangspannung einen boesen Temperaturfehler bekommst.

Es ist wichtig zu wissen welche Aufloesung du brauchst und auch wie 
schnell sich die Analogspannung aendern muss. Ein einfacher RC-Filter 
ist da ziemlich schlecht. Da du sowieso noch einen OPV am Ausgang 
brauchst empfiehlt es sich da mit Filtern hoeherer Ordnung zu arbeiten.

Wie schon bemerkt wurde brauchst du am Ausgang einen R2R OPV. Denkbar 
waere da vielleicht TLV2231. Das ist jetzt der einzige der mir so 
eingefallen ist. R2R und mindestens 10V Betriebsspannung ist eher 
exotisch weil moderne OPVs auch in modernen Prozessen gefertigt werden 
und die koennen dann keine hohen Spannungen mehr.

Vanye

von Clemens L. (c_l)


Lesenswert?

Vanye R. schrieb:
> R2R und mindestens 10V Betriebsspannung ist eher exotisch weil moderne
> OPVs auch in modernen Prozessen gefertigt werden und die koennen dann
> keine hohen Spannungen mehr.

Auch in modernen Prozessen kann man gröbere Strukturen ätzen, und so 
viel teurer sind z.B. die OPA990/OPA991/OPA992 mit 40 V dann auch nicht.

von Monk (Gast)


Angehängte Dateien:

Lesenswert?

Daniel K. schrieb:
> Ich hab mal ein Schaltbild gezeichnet

Ja genau so hatte ich das gemeint.

Bei deinem Verstärker fehlt die Gegenkoppelung zur Einstellung des 
Verstärkungsfaktors. Ich nehme an, das kommt daher, dass du den 
Verstärker vereinfacht darstellen wolltest.

> Aber das mit dem Puffer ist mir noch nicht klar. Ich kannte das bis dato
> nicht aber ich denke mal der sollte das Signal dann "wideraufbereiten"?
> Kannst du mir einen passenden Chip sagen.

Dazu taugt eigentlich jedes Logikgatter, das dein Signal 1:1 durch 
reicht. Zum Beispiel zwei Inverter hintereinander, oder ein 
nicht-inverter (buffer genannt). Ein Klassiker wäre der CD4050B.

> Das mit dem OPV ist mir grundsätzlich klar, aber auch hier wäre eine
> Type hilfreich, dann kann ich mich in das Datenblatt einlesen.

Zum Beispiel kannst du den TS912 nehmen, der kann Rail-to-Rail, braucht 
also keine negative Versorgungsspannung.

> Am liebsten wäre es mir gewesen die beiden Seiten galvanisch getrennt zu
> haben (Optokoppler)

Das kannst du ganz vorne vor dem Buffer machen.

Tipp: Der TS912 enthält zwei Operationsverstärker. Einen davon kannst du 
als Buffer verwenden.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Man kann den OpAmp auch gleich integrieren lassen. Ist dann ein aktiver 
Tiefpass. Dazu legt man in den Gegenkopplungszweig einen C und R 
parallel. Mit ein wenig rumprobieren und/oder simulieren kommt man 
schnell auf einen kompakten Entwurf, der auch gleich die Verstärkung 
übernimmt. Speisung holste dir am besten aus der SPS (oder aus dem FU, 
wenn der sowas zur Verfügung stellt).

: Bearbeitet durch User
von Alexander S. (alesi)


Lesenswert?

Das Thema D/A-Wandlung mittels PWM wird auch hier 
https://www.mikrocontroller.net/articles/Pulsweitenmodulation#DA-Wandlung_mit_PWM 
kurz beschrieben. Der dort als integrierte Lösung genannte LTC2644 wurde 
weiter oben auch schon genannt. Siehe dazu auch die AN 
https://www.analog.com/media/en/reference-design-documentation/design-notes/dn538f.pdf

Wie hoch der Ripple mit einfachem Tiefpass sein kann zeigt z.B. die AN 
https://ww1.microchip.com/downloads/en/Appnotes/90003250A.pdf

: Bearbeitet durch User
von Gerhard H. (Gast)


Lesenswert?

Alexander S. schrieb:
> Der dort als integrierte Lösung genannte LTC2644 wurde weiter oben auch
> schon genannt

Vor allem adressiert der passgenau die Aufgabenstellung

Daniel K. schrieb:
> mit ein paar wenigen
> Komponenten ein 5kHz PWM Signal welches mittels open Collector Signals
> erzeugt wird in ein 0-10V DC Signal zu wandeln.

in bestmöglicher Qualität und gerade nicht mit den Verlusten und Makeln 
einer primitiven R/C PWM Konvertierung.

von Daniel K. (daniel_k382)


Lesenswert?

Hallo zusammen!
Erstmals frohe Weihnachten miteinander!

Mit so vielen fachlichen Antworten hab ich nicht gerechnet!

Bezüglich der Anforderung an die Auflösung der Schaltung: Die ist 
relativ gering. Ich möchte lediglich die Drehzahl der Spindel steuern. 
Ich denke das PWM Signal wird schon seine 9 oder 10 bit haben aber das 
ist überflüssig. Die Spindel ist auf 22.000 U/min begrenzt und mit dem 
Override des Handrads kann ich in 1% Schritten höher und niedriger 
drehen und das ist völlig ausreichend. Also +- 200 U/min sind mir 
komplett egal. Realistisch gesehen gibt es da 20 andere Paramater mit 
denen man mehr rausholen kann als dass es an der Genauigkeit der 
Drehzahl scheitert. Falls das Kennfeld nicht perfekt linear ist ist mir 
das auch noch relativ egal da ich mittels Lookup Table den PWM Verlauf 
an gemessene Werte anpassen kann. Aber eine hohe Ungenauigkeit wegen 
Temperaturschwankungen, wie es angemerkt wurde, will ich eher nicht 
haben.

Mir ist auch noch aufgefallen dass ich am FU ohnehin auch 24V hätte. 
Also schließt sich die höhere Versorgungsspannung und galv. Trennung 
nicht aus, aber Optokoppler hat eher nicht funktioniert, kann aber auch 
an der Type oder mir liegen... war ein PC817 den ich rumliegen hatte.

Grundsätzlich hatte ich nach einer einfachen Schaltung wie der von Andiy 
gesucht, aber es wird ja dann immer doch etwas komplexer als anfangs 
gedacht :) Hier sehe ich schon das erste Problem dass mit steigendem PWM 
Duty Cycle die Ausgangsspannung sinkt - keine Ahnung ob ich das in der 
CNC oder FU Steuerung invertieren kann.

Ich werde mich mal hinsetzen und eine Schaltung aufzeichnen und würde 
mich freuen wenn ich nochmals Feedback bekomme. Dann würde ich die 
Komponenten bestellen und hoffe dann "Im Tun" auch noch auf 
Unterstützung :D

von Enrico E. (pussy_brauser)


Angehängte Dateien:

Lesenswert?

Daniel K. schrieb:
> Mir ist auch noch aufgefallen dass ich am FU ohnehin auch 24V hätte.

Dann klappt es evtl. auch mit zwei Transistoren. Der erste Transistor 
BC327 (PNP) arbeitet als Inverter, damit das Signal phasenrichtig an den 
FU weitergegeben wird und der zweite Transistor BC337 (NPN) arbeitet als 
Impedanzwandler. Bei einer Versorgungsspannung von 24V muss am Ausgang 
sogar noch ein Spannungsteiler vorgesehen werden um auf 0 bis ca. 10V zu 
kommen.

von Jörg (lixtop)


Lesenswert?

Schau mal hier:
Beitrag "LM358 Verstärkung PWM"

Frohe Weihnacht allen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.