Temperaturabhaengige Ansteuerung eines Servomotors

Begonnen von wero, 13. Mai 2009, 10:16:04

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 2 Gäste betrachten dieses Thema.

wero

Hallo Hugo,

habe schon die halbe Oscat Lib durchprobiert, aber keinen brauchbaren Ansatz gefunden. Ich muss einen Servomotor, der ein Warmwasserventil oeffnet temperaturabhaengig ansteuern.
Das Problem ist das der Motor nich modular ansteuerbar ist. Es gibt drei Punkte. Oeffnen, Schliessen und Neutral.
Im Moment probiere ich mit Impulsen das Ventil zu oeffnen oder zu Schliessen, was aber nicht leicht ist weil der Motor bei schnellen Temperaturwechseln anders reagieren muesste, als bei langsamen.
Haenge einen Denkanstoss an.
Wie koennte man so ein Problem loesen?
Viele Gruesse
wero

FUNCTION Impuls : TIME
VAR_INPUT
IN: INT;
END_VAR
VAR
END_VAR

CASE IN OF

80,79,78,77,76,75,74,73,72,71:
Impuls:=T#5000ms;
70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,50:
Impuls:=T#6000ms;
49,48,47,46,45,44,43,42,41,40:
Impuls:=T#7000ms;
39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21:
Impuls:=T#8000ms;
20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0:
Impuls:=T#10000ms;
END_CASE
END_FUNCTION


gravieren

Hi

Versuche doch mal dem "PID-Regler" mit dem Modul "Actuator_3P"


Damit läuft "die Sache".

peewit

hi wero

nur ein kleiner tip am rande, das kann man auch so formulieren

CASE IN OF

71..80:
Impuls:=T#5000ms;
50..70:
Impuls:=T#6000ms;
40..49:
Impuls:=T#7000ms;
21..39:
Impuls:=T#8000ms;
0..20:
Impuls:=T#10000ms;
END_CASE

wero

Hallo,

mit dem Actuator_3P habe ich nichts hinbekommen. Entweder ist er zu langsam oder bei veraenderung on/offtime zu ungenau.
Habe aber mit dem PID-Regler einige Versuche gemacht, und dann hinten selbst was drangehaengt. Funktioniert aber es koennte besser sein.

Danke Peewit fuer den Tipp.

Viele Gruesse,
wero