Forum: Mikrocontroller und Digitale Elektronik Proportionalventil 24V mit Arduino Mega ansteuern


von Max M. (sysadmin4444)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich möchte folgendes Proportionalventil mittels eines Arduino Mega 
ansteuern. 
(https://www.burkert.com/en/Media/plm/DTS/DS/DS2871-Standard-DE-DE.pdf)

Die Eckdaten aus dem Datenblatt:
-24V Betriebsspannung
-max 200 mA Spulenstrom bei 5W und 24V
-PWM 1500Hz
Nach einiger Zeit Recherche und Überlegen habe ich mich zu diesem 
Schaltplan
durchgerungen (siehe Anhang).

Ist der Schaltplan in euren Augen so plausibel? Die softwareseitige PWM 
Ansteuerung für 1500Hz habe ich hinbekommen.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Max M. schrieb:
> Die Eckdaten aus dem Datenblatt:
> -24V Betriebsspannung
> -max 200 mA Spulenstrom bei 5W und 24V
> -PWM 1500Hz
> Nach einiger Zeit Recherche und Überlegen habe ich mich zu diesem
> Schaltplan
> durchgerungen (siehe Anhang).

Einmal reicht.

Wozu ein Optokoppler? Der ist so überflüssig wie ein Kropf. Und wenn du 
kein Huhn bist, brauchst du den nicht. Für 200mA reicht ein einfacher 
Transistor, siehe

Relais mit Logik ansteuern.

Die Schaltungen machen auch 1500Hz PWM mit.

von Der Da (Gast)


Lesenswert?

Max M. schrieb:
> Hallo zusammen,
>
> ich möchte folgendes Proportionalventil mittels eines Arduino Mega
> ansteuern.
> (https://www.burkert.com/en/Media/plm/DTS/DS/DS2871-Standard-DE-DE.pdf)
>
> Die Eckdaten aus dem Datenblatt:
> -24V Betriebsspannung
> -max 200 mA Spulenstrom bei 5W und 24V
> -PWM 1500Hz
> Nach einiger Zeit Recherche und Überlegen habe ich mich zu diesem
> Schaltplan
> durchgerungen (siehe Anhang).
>
> Ist der Schaltplan in euren Augen so plausibel? Die softwareseitige PWM
> Ansteuerung für 1500Hz habe ich hinbekommen.

Servus, wenn ich es auf die Schnelle richtig sehe, hängt der Opokoppler 
zwischen Ventil und Masse, nur etwas ungewöhnlich gezeichnet.
Die Funktion von R2 erschliesst sich mir nicht wirklich.
Ich würde statt eines Optokopplers einen normalen NPN-Transistor (oder 
N-FET) verwenden. Für 1,5 kHz und 200mA ist einen "Wald- und Wiesen" 
Optokoppler grenzwertig. Zudem gibt es hier keine galvanische Trennung. 
==> Optokoppler bringt nichts sondern schafft nur Probleme.


Was mir fehlt ist die Möglichkeit den Spulenstrom zu messen/regeln.
Ich würde zwischen Transistor und GND noch einen (z.B. 1 Ohm) Shunt 
einfügen, und den dann auf einen A/D Eingang führen. Dann kann man 
zumindest bei PWM-on den Strom messen. Oder man spendiert noch ein 
RC-Glied und verrechnet den A/D-Wert mit dem Duty-Cycle. Damit kann man 
z.B. den Temperaturabhänigen Spulenwiderstand "austrixen".

Aber: Da es vermutlich Dein erstes HW-Projekt ist: nicht entmutigen 
lassen. Es sieht nicht schlecht aus, und die Grundüberlegung passen.

Gruß

von Einer K. (Gast)


Lesenswert?

Der Da schrieb:
> Was mir fehlt ist die Möglichkeit den Spulenstrom zu messen/regeln.
> Ich würde zwischen Transistor und GND noch einen (z.B. 1 Ohm) Shunt
> einfügen, und den dann auf einen A/D Eingang führen.

Warum sollte man das tun?
Das ist doch kein DC-Motor, welcher blockieren kann


Nimm doch lieber den Widerstand, oder einen etwas größeren, und setze 
ihn in Reihe zur Freilaufdiode, damit die in der Spule gespeicherte 
Arbeit schneller abgebaut wird.

von Falk B. (falk)


Lesenswert?

Arduino Fanboy D. schrieb:
>> Was mir fehlt ist die Möglichkeit den Spulenstrom zu messen/regeln.
>> Ich würde zwischen Transistor und GND noch einen (z.B. 1 Ohm) Shunt
>> einfügen, und den dann auf einen A/D Eingang führen.
>
> Warum sollte man das tun?

Weil man ggf. den STROM genau einstellen will. Die PWM mit ihrem 
Tastverhältnis gibt nur die SPANNUNG vor.

> Das ist doch ein DC-Motor

Nö. Das ist ein Art von Hubmagnet, bei welchem der Öffnungsgrad 
proportional zum Spulenstrom ist. Also sollte man diesen möglichst genau 
vorgeben können. Stellbetrieb mit PWM an Konstantspannung macht das 
nicht, wenn die Spule warm wird und damit der ohmsche Widerstand steigt. 
Für einige Anwendungen mag das reichen, für die besseren nicht.

von Falk B. (falk)


Lesenswert?

Arduino Fanboy D. schrieb:
> Nimm doch lieber den Widerstand, oder einen etwas größeren, und setze
> ihn in Reihe zur Freilaufdiode, damit die in der Spule gespeicherte
> Arbeit schneller abgebaut wird.

Nö. Siehe oben. Warum glaubst du, liegt die PWM-Frequenz bei 1500 Hz?

von Einer K. (Gast)


Lesenswert?

Falk B. schrieb:
> Also sollte man diesen möglichst genau
> vorgeben können.

Naja....

Der Stößel muss zucken, dafür sind Stromwechsel und auch die 1500Hz 
nötig.
Denn ein gleich bleibender Strom bringt die Haftreibung, mit ihrem 
Losbrechmoment, ins Spiel.
Ein gleich bleibender Strom ist also eher kontraproduktiv.

von Max M. (sysadmin4444)


Lesenswert?

Falk B. schrieb:
> Weil man ggf. den STROM genau einstellen will. Die PWM mit ihrem
> Tastverhältnis gibt nur die SPANNUNG vor.

Also steuert nicht das Tastverhältnis der PWM das Ventil, sondern der 
Ankerstrom?

von Einer K. (Gast)


Lesenswert?

Max M. schrieb:
> Also steuert nicht das Tastverhältnis der PWM das Ventil, sondern der
> Ankerstrom?

Natürlich der Ankerstrom, dessen Mittelwert.
Denn er ist es, welche die Kraft, zum Öffnen, letztendlich ausübt
Aber der Strom darf nicht gleich sein, sondern muss mit hoher Frequenz 
pulsieren, damit das Ventil summt.

von Falk B. (falk)


Lesenswert?

Max M. schrieb:
>> Weil man ggf. den STROM genau einstellen will. Die PWM mit ihrem
>> Tastverhältnis gibt nur die SPANNUNG vor.
>
> Also steuert nicht das Tastverhältnis der PWM das Ventil, sondern der
> Ankerstrom?

U_Mittel = U-Versorgung * Tastverhältnis
I_Mittel = U_Mittel / R_Spule
Öffnungsgrad = I_Mittel * Proportionalitätsfaktor

von Max M. (sysadmin4444)


Lesenswert?

Arduino Fanboy D. schrieb:
> Natürlich der Ankerstrom, dessen Mittelwert.
> Denn er ist es, welche die Kraft, zum Öffnen, letztendlich ausübt
> Aber der Strom darf nicht gleich sein, sondern muss mit hoher Frequenz
> pulsieren, damit das Ventil summt.


Okay ja klar, durch das schnelle Ein- und Ausschalten des PWM Signal 
passiert ja genau das mit dem Strom.
Also war die Frage vorher von mir quasi quatsch, weil das Tastverhältnis 
die Spannung und damit das "brummen" des Strom beinflusst. (Spannung ein 
--> Strom steigt, Spannung aus --> Strom fällt)

: Bearbeitet durch User
von Max M. (sysadmin4444)


Lesenswert?

Der Da schrieb:
> Was mir fehlt ist die Möglichkeit den Spulenstrom zu messen/regeln.
> Ich würde zwischen Transistor und GND noch einen (z.B. 1 Ohm) Shunt
> einfügen, und den dann auf einen A/D Eingang führen. Dann kann man
> zumindest bei PWM-on den Strom messen. Oder man spendiert noch ein
> RC-Glied und verrechnet den A/D-Wert mit dem Duty-Cycle. Damit kann man
> z.B. den Temperaturabhänigen Spulenwiderstand "austrixen".

Ja das stimmt, mein Ziel ist es das Ventil später als Stellglied in 
einem Regelkreis mit Drucksensor zu nutzen. Dazu muss ich dann also den 
Ankerstrom genau bestimmen können und diesen abhängig von den 
Sensordaten anpassen. (Regelkreis)

Wie genau würde ich den Ankerstrom denn messen bzw beeinflussen können?

von MaWin (Gast)


Lesenswert?

Max M. schrieb:
> habe ich mich zu diesem Schaltplan
> durchgerungen

Unsinn.
 Dein Optokoppler trennt nichts, deine Anschsltung arbeitet 
unsymmetrisch.

Wenn wir mal davon aus gehen, dass du nicht deren hübsch einfach zu 
verwendende Ansteuerelektroniken mit PWM verwenden möchtest, sondern du 
deine Schwierigkeiten daher hast, weil du aus Sprsamkeit eigene 
Elektronik konstruieren willst, nimm einen L293D, der kann gleich 2 
Ventile steuern.

von Einer K. (Gast)


Lesenswert?

Max M. schrieb:
> (Spannung ein
> --> Strom steigt, Spannung aus --> Strom fällt)
Richtig!
Die Anstiegsgeschwndigkeit wird maßgeblich von der Induktivität der 
Spule bestimmt.

Die abfallende Flanke vom Ohmschen Widerstand und von der Induktivität. 
Das einzige Rädchen welches man da drehen kann ist der evtl. vorhandene 
Widerstand im Freilaufkreis

von Einer K. (Gast)


Lesenswert?

Max M. schrieb:
> Ja das stimmt, mein Ziel ist es das Ventil später als Stellglied in
> einem Regelkreis mit Drucksensor zu nutzen. Dazu muss ich dann also den
> Ankerstrom genau bestimmen können und diesen abhängig von den
> Sensordaten anpassen. (Regelkreis)
>
> Wie genau würde ich den Ankerstrom denn messen bzw beeinflussen können?

Das sehe ich nicht so.

Das ist meistens unnötig...
Denn der mittlere Spulenstrom ergibt sich zwangsläufig aus der Pulsweite 
und den Schaltungseigenschaften.

Es kommen ja auch noch ein paar Störgrößen ins Spiel.
Der Spulenwiderstand und auch die Viskosität des Mediums ändern sich mit 
der Temperatur.

Willst du die auch alle mit in die Regelung übernehmen?

von Max M. (sysadmin4444)


Lesenswert?

Ich hatte mir das eigentlich so vorgestellt, dass ich meine Regelung 
habe (Stellglied und Sensor) und nur abhängig vom Sensorwert das PWM 
Signal anpasse und sich der gewünschte Durchfluss im Ventil einstellt 
(PID Regler evtl an dieser Stelle).
Das PWM Signal steuert also einen Transistor oder ähnliches, welcher die 
24V Betriebsspannung vom Ventil schaltet.
Aber die Regelung möchte ich erstmal aussen vor lassen und erstmal "nur" 
das Ventil über PWM des Arduino ansteuern.

>Willst du die auch alle mit in die Regelung übernehmen?

Die Temperatur und die Viskosität (Druckluft) können auf jeden Fall 
vernachlässigt werden.

von Einer K. (Gast)


Lesenswert?

Max M. schrieb:
> Ich hatte mir das eigentlich so vorgestellt, dass ich meine Regelung
> habe (Stellglied und Sensor) und nur abhängig vom Sensorwert das PWM
> Signal anpasse und sich der gewünschte Durchfluss im Ventil einstellt
> (PID Regler evtl an dieser Stelle).

Richtig!
Vollkommen ausreichend.

von Max M. (sysadmin4444)


Lesenswert?

MaWin schrieb:
> Max M. schrieb:
>> habe ich mich zu diesem Schaltplan
>> durchgerungen
>
> Unsinn.
>  Dein Optokoppler trennt nichts, deine Anschsltung arbeitet
> unsymmetrisch.
>

Ja der war unnötig

> Wenn wir mal davon aus gehen, dass du nicht deren hübsch einfach zu
> verwendende Ansteuerelektroniken mit PWM verwenden möchtest, sondern du
> deine Schwierigkeiten daher hast, weil du aus Sprsamkeit eigene
> Elektronik konstruieren willst, nimm einen L293D, der kann gleich 2
> Ventile steuern.

Die Ansteuerelektronik vom Hersteller kostet schon einiges, daher würde 
ich diese gerne selbst übernehmen

Der L293D hört sich gut an. Das heißt einfach einen über den PWM Ausgang 
vom Arduino ansteuern und ich habe eigentlich alles was ich erreichen 
will?

von Einer K. (Gast)


Lesenswert?

Ja.

von MaWin (Gast)


Lesenswert?

Max M. schrieb:
> Das heißt einfach einen über den PWM Ausgang vom Arduino ansteuern und
> ich habe eigentlich alles was ich erreichen will?

Ja.
Der Strom kann nicht über 220mA steigen, die Spannung am Ventil pendelt 
sich auf 24V*PWM ein weil symmetrisch angesteuert und der Strom auf 
Spannung/109.

von Max M. (sysadmin4444)


Lesenswert?

Arduino Fanboy D. schrieb:
> Max M. schrieb:
>> Ich hatte mir das eigentlich so vorgestellt, dass ich meine Regelung
>> habe (Stellglied und Sensor) und nur abhängig vom Sensorwert das PWM
>> Signal anpasse und sich der gewünschte Durchfluss im Ventil einstellt
>> (PID Regler evtl an dieser Stelle).
>
> Richtig!
> Vollkommen ausreichend.

Das heißt meine ursprüngliche Schaltung mit einem geeigneten Transistor 
anstatt dem Opto-Koppler und ohne R2 sollte für mein vorhaben 
ausreichen?

von Max M. (sysadmin4444)


Lesenswert?

MaWin schrieb:
> Max M. schrieb:
>> Das heißt einfach einen über den PWM Ausgang vom Arduino ansteuern und
>> ich habe eigentlich alles was ich erreichen will?
>
> Ja.
> Der Strom kann nicht über 220mA steigen, die Spannung am Ventil pendelt
> sich auf 24V*PWM ein weil symmetrisch angesteuert und der Strom auf
> Spannung/109.

Ok vielen Dank, ich versuche das dann mal. Alternativ würde ich trotzdem 
gerne eine "eigene" Schaltung zu Lernzwecken entwerfen.

von Einer K. (Gast)


Lesenswert?

MaWin schrieb:
> die Spannung am Ventil pendelt

Da pendelt sich keine Spannung ein.
und ein L293D ist an der Stelle 4 fach übertrieben, und hat keine 
Freilaufdioden im Körper.

Arduino Fanboy D. schrieb:
> Ja.
War also falsch, es fehlt der Freilauf.

von Max M. (sysadmin4444)


Lesenswert?

Arduino Fanboy D. schrieb:
> MaWin schrieb:
>> die Spannung am Ventil pendelt
>
> Da pendelt sich keine Spannung ein.
> und ein L293D ist an der Stelle 4 fach übertrieben, und hat keine
> Freilaufdioden im Körper.
>
> Arduino Fanboy D. schrieb:
>> Ja.
> War also falsch, es fehlt der Freilauf.

Ja der Freilauf fehlt, das stimmt. Den kann ich ja aber ganz einfach 
selbst hinzufügen mittels einer Diode, wie in dem ursprünglichen 
Schaltplan. Oder soll ich lieber ganz die Finger von dem L293 lassen und 
es so versuchen?


>Das heißt meine ursprüngliche Schaltung mit einem geeigneten Transistor
>anstatt dem Opto-Koppler und ohne R2 sollte für mein vorhaben
>ausreichen?

von Einer K. (Gast)


Lesenswert?

Max M. schrieb:
> Oder soll ich lieber ganz die Finger von dem L293 lassen und
> es so versuchen?

Es spielt keine Rolle, ob du einen Transistor oder den L293 verwendest.
Nimm was du hast.

Leitsatz:
Die einfachere Lösung, von zwei funktional gleichwertigen, ist die 
Bessere.

von Falk B. (falk)


Lesenswert?

Arduino Fanboy D. schrieb:
> Max M. schrieb:
>> Ich hatte mir das eigentlich so vorgestellt, dass ich meine Regelung
>> habe (Stellglied und Sensor) und nur abhängig vom Sensorwert das PWM
>> Signal anpasse und sich der gewünschte Durchfluss im Ventil einstellt
>> (PID Regler evtl an dieser Stelle).
>
> Richtig!
> Vollkommen ausreichend.

Hier stimmt das, aber das war bisher nicht bekannt.

von Falk B. (falk)


Lesenswert?

Arduino Fanboy D. schrieb:
> und ein L293D ist an der Stelle 4 fach übertrieben, und hat keine
> Freilaufdioden im Körper.

Doch, die D-Version hat interne Freilaufdioden. Aber ein uralter L293 
hat ~2V Spannungsabfall über jeder Schaltstufe, d.h. in Brückenschaltung 
würden ~4V weniger am Ventil ankommen.

Ein einfacher Transistor + Freilaufdiode reicht und hat <0,5V 
SPannungsabfall.

von Falk B. (falk)


Lesenswert?

Max M. schrieb:
> Oder soll ich lieber ganz die Finger von dem L293 lassen und
> es so versuchen?

JA! Es ist ja wohl kein Hexenwerk, einen einfachen Transistor digital 
anzusteuern.

von MaWin (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Da pendelt sich keine Spannung ein.

Selbstverständlich. Simuliere doch einfach mal 50% PWM an einer 
Induktivität

> und ein L293D ist an der Stelle 4 fach übertrieben, und hat keine
> Freilaufdioden im Körper

Natürlich doch, schau doch einfach mal in ein Datenblatt und wundere 
dich, warum ich D hintendran hing.

Das 4-fach-übertrieben passt nicht ganz zu deinem Gemeckere über den 
Spannungsaufall, der ist nämlich auch geringer bei weniger als 
Maximalstrom. Das ist alles schon durchüberlegt.

Immer so ein hanebüchener Stuss, den du in deiner Ahnungslosigkeit hier 
postest.

von Einer K. (Gast)


Lesenswert?

MaWin schrieb:
> Das 4-fach-übertrieben passt nicht ganz zu deinem Gemeckere über den
> Spannungsaufall, der ist nämlich auch geringer bei weniger als
> Maximalstrom. Das ist alles schon durchüberlegt.
>
> Immer so ein hanebüchener Stuss, den du in deiner Ahnungslosigkeit hier
> postest.

Ok, das D welche allerdings hier nicht auftaucht:
Max M. schrieb:
> Oder soll ich lieber ganz die Finger von dem L293 lassen und
> es so versuchen?

Dann habe ich keinerlei Worte über irgendeinen Spannungsabfall 
verlautbaren lassen.
Du siehst Geister
Tipp:
Zuviel Schaum vorm Mund behindert die Sicht.

MaWin schrieb:
> Arduino Fanboy D. schrieb:
>> Da pendelt sich keine Spannung ein.
>
> Selbstverständlich. Simuliere doch einfach mal 50% PWM an einer
> Induktivität
Bla bla bla...

Es ist nicht sinnvoll, dass sich an einem Proportionalventil eine 
Spannung einpendelt.
Darum muss das vermieden werden.
Begründung gabs schon vorher.

Also: Du doof, ich schlau!
Oder?

von chefkoch (Gast)


Lesenswert?

MaWin schrieb:
> Arduino Fanboy D. schrieb:
>> Da pendelt sich keine Spannung ein.
>
> Selbstverständlich. Simuliere doch einfach mal 50% PWM an einer
> Induktivität

Hör Du mal bitte lieber auf zu simulieren und schau dir die Resultate 
eines realen Aufbaus an. Ähnliches hatten wir hier schon mal...

Permanent erregter Gleichstrommotor (Scheibenwischermotor) sollte 
angeblich bei PWM-Ansteuerung die gleiche Kraft bei niedriger Drehzahl 
entwickeln können, wie beim betrieb an gesteuerter Gleichspannung. Weil 
ja während der PWM Lücken der Strom über die Freilaufdiode weiter 
fließt...

Nix da, Pustekuchen! Ich habs seinerzeit mit Kofferwaage am Achsschenkel 
nachgemessen. Bei gleicher Leerlaufdrehzahl, deutlich weniger Drehmoment 
mit PWM. Egal wie man an deren Frequenz kurbelt...

von Falk B. (falk)


Lesenswert?

chefkoch schrieb:
> Permanent erregter Gleichstrommotor (Scheibenwischermotor) sollte
> angeblich bei PWM-Ansteuerung die gleiche Kraft bei niedriger Drehzahl
> entwickeln können, wie beim betrieb an gesteuerter Gleichspannung. Weil
> ja während der PWM Lücken der Strom über die Freilaufdiode weiter
> fließt...

Das ist auch so, wenn man es richtig macht.

> Nix da, Pustekuchen! Ich habs seinerzeit mit Kofferwaage am Achsschenkel
> nachgemessen. Bei gleicher Leerlaufdrehzahl, deutlich weniger Drehmoment
> mit PWM. Egal wie man an deren Frequenz kurbelt...

Dann war da was faul, vermutlich war dein PWM-Schalter zu hochohmig. 
Oder die PWM-Frequenz falsch. Oder eine RC-Entstörschaltung im Motor, 
welche die PWM ausgebremst hat. Auch das hatten wir hier schon.

https://www.mikrocontroller.net/articles/Motoransteuerung_mit_PWM#Wahl_der_PWM-Frequenz

von Wolfgang (Gast)


Lesenswert?

Max M. schrieb:
> Ja das stimmt, mein Ziel ist es das Ventil später als Stellglied in
> einem Regelkreis mit Drucksensor zu nutzen. Dazu muss ich dann also den
> Ankerstrom genau bestimmen können und diesen abhängig von den
> Sensordaten anpassen. (Regelkreis)

Warum möchtest du den Spulenstrom genau messen, wenn du den Druck regeln 
willst?
Du kannst dich doch sicher ziemlich gut drauf verlassen, dass der 
Spulenstrom steigt und sich der Druck in eine Richtung ändert, wenn du 
das Tastverhältnis vom PWM-Signal vergrößerst.

von Harald A. (embedded)


Lesenswert?

Max, falls Du noch Hilfe benötigst würde ich Dir per PN helfen. Die 
Stimmung ist mir hier zu aufgeheizt.

von MaWin (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Also: Du doof, ich schlau!

Sicher nicht.

Es ist für eine Regelstrecke immer gut, wenn das Ansprechverhalten 
symmetrisch und linear ist.

In Regelungstechnikvorlesung nicht aufgepasst ? Uups, wohl nie dran 
teilgenommen.

von Einer K. (Gast)


Lesenswert?

MaWin schrieb:
> Es ist für eine Regelstrecke immer gut, wenn das Ansprechverhalten
> symmetrisch und linear ist.

Und genau das wirst du nicht erreichen, wenn sich die Spannung am Ventil 
auf einen Wert einpendelt.
Da beißt keine Maus einen Faden von ab.
Egal, wie du versuchst mich zu beleidigen oder abzuwerten.

Dein Versuch fehlende Fachkompetenz mit Beleidigungen auszugleichen, 
wird dir nicht gelingen.

Es tut mir auch etwas leid, wenn du in Physik und Regelungstechnik nicht 
aufgepasst hast, kann es aber nicht ändern.

von Max M. (sysadmin4444)


Lesenswert?

Harald A. schrieb:
> Max, falls Du noch Hilfe benötigst würde ich Dir per PN helfen. Die
> Stimmung ist mir hier zu aufgeheizt.

Vielen Dank für das Angebot, ich baue die schaltung morgen mal zusammen 
und melde mich dann gegebenenfalls.

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.