-> Hier kostenlos registrieren
Hallo zusammen,
ich habe ein Probelm mit einer Heizungsregelung. Die Heizung soll mittels PWM geregelt werden. Ein von mir selbstgeschriebener FB1, welcher die Pulsweite berechnet, wird alle 10 Sekunden im OB35 aufgerufen. Im FB1 wird die Pulsweite als TIME und eine Bool-Variable Fertig als IN_OUT im DB1 abgelegt. Fertig wird immer am Ende der Berechnung auf High gesetzt.
Nun meine erste Frage: Wie kann ich den berechnet Wert nun einem Timer übergeben?
Mein Vorgehen war, die Pulsweite als TIME-Variable und die Bool-Variable Fertig aus dem DB1 einem FB2 zu übergeben. Dieser FB2 wird im OB1 aufgerufen.
FB2
CALL #TOF
IN:=#Fertig
PT:=#Pulsweite
Q :=#Heizen
ET:=
U #Heizen
R #Fertig
Da der Timer als Startbedingung eine fallende Flanke benötigt, wird er direkt nachdem der Ausgang Heizen High ist zurückgesetzt. Dadurch erhalte ich eine PWM mit der Periode 10s und entsprechender Pulsweite.
In der Simulation funktioniert das alles super, wenn ich das Ganze dann auf die SPS übertrage, wird der Puls nicht jede 10 Sekunden gestartet sondern setzt immer mal wieder sporadisch aus.
Daher meine zweite Frage: Kann mir jemand sagen, warum das so ist? Oder ob es eine einfachere Lösung gibt, wie das realisiert werden kann? Schon allein daran, wie schwer es mir fällt das ganze einigermaßen verständlich rüber zu bringen denk ich mir, dass ich hier viel zu kompliziert denke...
Vielen Dank vorab.
ich habe ein Probelm mit einer Heizungsregelung. Die Heizung soll mittels PWM geregelt werden. Ein von mir selbstgeschriebener FB1, welcher die Pulsweite berechnet, wird alle 10 Sekunden im OB35 aufgerufen. Im FB1 wird die Pulsweite als TIME und eine Bool-Variable Fertig als IN_OUT im DB1 abgelegt. Fertig wird immer am Ende der Berechnung auf High gesetzt.
Nun meine erste Frage: Wie kann ich den berechnet Wert nun einem Timer übergeben?
Mein Vorgehen war, die Pulsweite als TIME-Variable und die Bool-Variable Fertig aus dem DB1 einem FB2 zu übergeben. Dieser FB2 wird im OB1 aufgerufen.
FB2
CALL #TOF
IN:=#Fertig
PT:=#Pulsweite
Q :=#Heizen
ET:=
U #Heizen
R #Fertig
Da der Timer als Startbedingung eine fallende Flanke benötigt, wird er direkt nachdem der Ausgang Heizen High ist zurückgesetzt. Dadurch erhalte ich eine PWM mit der Periode 10s und entsprechender Pulsweite.
In der Simulation funktioniert das alles super, wenn ich das Ganze dann auf die SPS übertrage, wird der Puls nicht jede 10 Sekunden gestartet sondern setzt immer mal wieder sporadisch aus.
Daher meine zweite Frage: Kann mir jemand sagen, warum das so ist? Oder ob es eine einfachere Lösung gibt, wie das realisiert werden kann? Schon allein daran, wie schwer es mir fällt das ganze einigermaßen verständlich rüber zu bringen denk ich mir, dass ich hier viel zu kompliziert denke...
Vielen Dank vorab.