3-Pkt. Regelung mit FB42

loriculus

Level-1
Beiträge
19
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen

stehe vor einer neuen Herausvorderung:
Sollte eine einfache Temperaturregelung realisieren mit einem Heiz und einem Kühlkreislauf.
Dazu hab ich für beide Kreisläufe ein digitales Magnetventil ohne Stellungsrückmeldung da nur auf zu Ventil. Weiter ein Sollwert und ein Istwert.
Dazu soll die durch die min. Pulslänge und Pause ein zu häufiges auf zu schalten verhindern werden.

Zur Zeit sieht der FB42 wie in Bildanlage ausfb42.jpg

Problem:
Leider zeigt der ER Ausgang null an
Wenn das Ventil schaltet was es zur Zeit auch nicht mehr macht warum auch immer, dann stimmt die min. Pulslänge nicht und die Pause auch nicht.

Vielleicht hat mir jemand einen Rat?

Danke und Grüsse

Loriculus
 
Wo rufst du den FB auf (in einem Zeit-OB? z.B. OB35)?
Wird der FB beim Neustart mit COM_RST mit 1 beschaltet und anschliessen mit 0?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
PVPER_ON muss 0 sein, ist das bei dir so?
Cycle sollte der Aufrufzeit deines OB3x entsprechen. Oder falls du ihn vom OB1 aus aufrufst, solltest du da evtl. deine
letzte Zykluszeit dran setzen. In welchem Format sind deine Ein- und Ausgänge (Real, DINT ...)
[EDIT]
Zeige doch auch mal den Inhalt von deinem Instanz-DB DB6
[\EDIT]
 
Zuletzt bearbeitet:
Hallo,

ich glaube das Problem liegt hier.

Prüfe mal bitte das Format:
Der Sollwert wird am Eingang SP_INT im Gleitpunktformat eingegeben.
Das gleiche gilt für den Ausgang.

Hast du schon mal die F1 Taste gedrückt, gibt eine super Beschreibung für den Baustein.

Grüße,
 
hallo marlob

hab pv_per jetzt mit vorgabe W#16#0 gestzt, sollte zwar so gewesen sein.

der fb ist in ob35.

der com_rst war nicht richtig, ist korrigiert und geht somit auch.

nun verhält sich der ausgang noch immer nicht den pulse und break zeiten entsprechend.

db6.jpg

hallo marlob

nein ich denke die stimmen so!

danke beiden.

gruss loriculus
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In deinem DB sind der Setpoint und Prozesswert ja beide Null. Dann kann auch nichts regeln.
Irgendwie stimmen deine Werte aus dem DB auch nicht mehr mit den Werten aus deinem ersten Anhang überein.
Wie ist die Aufrufzeit deines OB35. Denselben Wert musst du auch an CYCLE schreiben.
Wenn du Screenshots machst, dann bitte so das man alles lesen kann ;-)
 
Zuletzt bearbeitet:
also ich hab nochmals nachgesehen, irgendwie waren die werte beim screenshot derzeitig wirklich null. dies ist aber nicht so, habs nochmals kontrolliert.

nun verhält sich der ausgang noch immer nicht den pulse und break zeiten entsprechend.

was ich nicht ganz verstehe ist das thema mit cycle.
der ob35 wird laut cpu eigenschaften weckalarm alle 100ms aufgerufen.
Nun sollte der cycle mit der selben zeit versehen werden? welchen hintergrund hat dies, ich rufe ja den ob35 alle 100ms auf....da fehlt mir background wissen:)

hab's nun mal gemacht wie ich es annehme:[/ATTACH]

danke / nun scheint's irgendwie besser auszusehen.
 

Anhänge

  • db6.jpg
    db6.jpg
    126,2 KB · Aufrufe: 29
  • fb42.jpg
    fb42.jpg
    46,3 KB · Aufrufe: 30
Also hat sich dein Problem gelöst :)
Oder?
Noch mal der Hinweis zu deinen Screenshots. Ziehe die Spalten doch so weit das man alles lesen kann ;-)
 
Zurück
Oben