OSCAT Forum

oscat.lib => Bestehende Module / Existing Modules => Thema gestartet von: hugo am 31. Dezember 2006, 13:31:50

Titel: Brennersteuerung
Beitrag von: hugo am 31. Dezember 2006, 13:31:50
FUNCTION_BLOCK Burner
VAR_INPUT
   in : BOOL;
   over_temp : BOOL;
   oil_temp : BOOL := TRUE;
   Flame : BOOL;
   rst : BOOL;
   rst_timer : BOOL;
END_VAR
VAR_INPUT CONSTANT
   vorheizzeit : TIME := t#5s;
   vorbelueftungszeit : TIME := t#15s;
   vorzuendzeit : TIME := t#5s;
   nachzuendzeit : TIME := t#25s;
   sicherheitszeit : TIME := t#5s;
   sperrzeit : TIME := t#10s;
   mehrfachzuendung : BOOL := TRUE;
   KW : REAL;
END_VAR
VAR_OUTPUT
   motor : BOOL;
   oel_ventil : BOOL;
   pre_heat: BOOL;
   zuendung : BOOL;
   betriebsstunden : REAL;
   KWh : REAL;
   fail : BYTE;
END_VAR
VAR
   state : BYTE;
   last : TIME;
   tx: TIME;
   last_change: TIME;
   timer : ontime;
   oil_temp_last: BOOL;
END_VAR

(*
version 1.3   31 dec 2006
programmer    oscat
tested by      tobias

burner ist eine Oel-Brenner_steuerung fuer nichtmodulierende Oelbrenner
die steuerung kann ueber setup werte programmiert werden und entsprechenden brennern angepasst werden.
die vorheizzeit ist die zeit die eine oelvorwaermung aufgeheizt wird bevor der motor gestartet wird.
der eingang oil_temp gibt an ob die oil_temp erreicht wurde, er ist default auf true und kann auch offen gelassen werden.
die vorbelueftungszeit ist die zeit die der luefter laeuft bevor die oelzufuhr freigegeben wird.
die vorzuendzeit iust diejenige zeit die die zuendung vor offnen des oelventiel gestartet wird.
nachzuendzeit ist die zeit die nach entzuendung der flamme noch gezuendet wird.
die sicherheitszeit ist die zeit nach der die oelzufuhr gesperrt wird wenn keine flamme entsteht.
nach ablauf der sicherheitszeit wird ein fehler flag gesetzt und kann erst nach der sperrzeit wieder durch einen reset geloescht werden.
waehrend der sperrzeit ist keine weitere zuendung oder einschalten moeglich.
das flag mehrfachzuendung gibt an ob eine erloschene flamme in betrieb automatisch wieder gezuendet werden soll.
der flammwaechster liegt auf eingang flamme, ein uebertemperaturschutz auf dem eingang over_temp
der betriebsstundenzaehler gibt die brennerstunden in stunden als real ausgabewer an.
der ausgang motor steuert den luefter / pumpenmotor, oil_ventil schaltet das oil ventil und zuendung schaltet die zuendung ein.

if output fail > 0 an error happened and the output has an error code:
0 :   no error
1 :   pre heating time expired and oil temp input is not true
2 :   flame monitor is active during preheating time
3 :   flame monitor active during pre_ventilation_time
4 :   no ignoition during safety time
5 :   no flame during operation
9 :   overtemp input is true

*)

tx := TIME();

(* check rst input and rst if true *)
IF rst OR over_temp OR state = 0 THEN
   IF fail > 0 AND tx - last >= sperrzeit AND rst THEN
      fail := 0;
   ELSE
      (* normaler reset *)
      motor := FALSE;
      oel_ventil := FALSE;
      zuendung := FALSE;
      pre_heat := FALSE;
      IF over_temp THEN fail := 9; END_IF;
      last_change := tx;
      last := tx;
      state := 1;
   END_IF;
END_IF;

(* check for timer rst and rst timer if true *)
IF rst_timer THEN
   timer( rst := TRUE);
   timer.rst := FALSE;
END_IF;

CASE state OF

1:   (* in signal starts oil pre heating *)
   IF in AND NOT flame THEN
      pre_heat := TRUE;
      state := 2;
      last_change := tx;
   END_IF;

2:   (* after pre_heating time start motor *)
   IF (tx- last_change >= vorheizzeit AND oil_temp) OR (oil_temp AND NOT oil_temp_last) THEN
      motor := TRUE;
      state := 3;
      last_change := tx;
   (* vorheizzeit ist abgelaufen und oil_temp ist nicht aktiv *)
   ELSIF tx - last_change >= vorheizzeit AND NOT oil_temp THEN
      state := 7;
      pre_heat := FALSE;
      fail := 1;
      last_change := tx;
   (* flame monitor cannot be active at this time *)
   ELSIF flame THEN
      state := 7;
      pre_heat := FALSE;
      fail := 2;
      last_change := tx;
   END_IF;

3:   (* abwarten bis zündung eingeschaltet werden kann *)
   IF tx - last_change >= vorbelueftungszeit - vorzuendzeit THEN
      zuendung := TRUE;
      state := 4;
      last_change := tx;
   (* flame monitor cannot be active at this time *)
   ELSIF flame THEN
      state := 7;
      pre_heat := FALSE;
      motor := FALSE;
      fail := 3;
      last_change := tx;
   END_IF;

4:   (* warten bis oelzufuhr geoeffnet werden darf *)
   IF tx - last_change >= vorzuendzeit THEN
      oel_ventil := TRUE;
      state := 5;
      last_change := tx;
   END_IF;

5:   (* warten auf flammwaechter und falls noetig abschalten *)
   IF tx - last_change >= sicherheitszeit OR flame THEN
      IF NOT flame THEN
         (* notabschaltung da flammwaechster nicht angesprochen hat *)
         state := 7;
         motor := FALSE;
         oel_ventil := FALSE;
         pre_heat := FALSE;
         zuendung := FALSE;
         fail := 4;
         last_change := tx;
      ELSE
         state := 6;
         last_change := tx;
      END_IF;
   END_IF;

6:   (* brenner läuft, flammueberwachung und nach ablauf der nachzuendungszeit zuendung abschalten *)
   IF NOT flame AND NOT mehrfachzuendung THEN
      (* notabschaltung da flammwaechster keine flamme meldet *)
      state := 7;
      motor := FALSE;
      oel_ventil := FALSE;
      pre_heat := FALSE;
      zuendung := FALSE;
      fail := 5;
      last_change := tx;
   ELSIF NOT flame AND mehrfachzuendung THEN
      zuendung := TRUE;
      state := 5;
      last_change := tx;
   ELSIF tx - last_change >= nachzuendzeit THEN
      (* nachzuendzeit abgelaufen, zuendung abschalten *)
      zuendung := FALSE;
   END_IF;

END_CASE;

(* abschaltung wenn kein eingangssignal *)
IF NOT in AND state > 1 THEN
   state := 1;
   motor := FALSE;
   oel_ventil := FALSE;
   zuendung := FALSE;
   pre_heat := FALSE;
   last_change := tx;
END_IF;

(* betriebsstundenzähler *)
timer(in := flame AND in AND motor AND oel_ventil);
betriebsstunden := timer.ontime;
KWH := betriebsstunden * KW;

(* zeit fuer naechsten aufruf merken *)
last := tx;


(*
31.12.2006   hm      rev 1.1
   added pre_heat timing and output
   flame monitor bofe ignition will generate failure output
   added output for KWh

31.12.2006   hm      rev 1.2
   added oil_temp_input

31.12.2006   hm      rev 1.3
   changed fail output to be byte instead of bool

*)
Titel: Re: Brennersteuerung
Beitrag von: swmggs am 31. Dezember 2006, 13:42:21
Hallo Hugo,

ob das gut geht ?.

Wenn ich das richtig verstehe müsste ich ja das Steuergerät des Brenners abbauen und auf die SPS drauflegen.
Denke das würde noch gehen, aber wie verarbeitest du das Signal vom Flammwächter ?

mfg swmggs
Titel: Re: Brennersteuerung
Beitrag von: hugo am 31. Dezember 2006, 13:46:54
ganz einfach ueber einen eingang an der sps
das modul hat eingaenge für in (steuerbefehl), flamme (flammwaechster), over_temp (temp_schutz des kessels)
sowie rst (reset puls nach fehler) und betriebsstunden rst fuer den betriebsstundenzaehler.

natuerlich macht das ganze nur dann sinn wenn du mit den funktionen deines vorhandenen steuergeraetes nicht zufrieden bist oder wenn wie in meinem fall erst gar keines vorhaden ist.
Titel: Re: Brennersteuerung
Beitrag von: swmggs am 31. Dezember 2006, 13:54:15
welches SPS-Modul benützt du denn dafür, speziell der Eingang Flammwächter würde mich interessieren.
Es gibt ja doch verschiedene Flammwächterfabrikate, und welche für Gelbbrenner und Blaubrenner.

swmggs
Titel: Re: Brennersteuerung
Beitrag von: swmggs am 31. Dezember 2006, 14:03:37
und ich glaube es fehlt vor Ablauf Motor an , Zündung usw. der Befehl Ölvorwärmer an, und erst nach Rückmeldung Ölvorwärmer Temperatur ok sollte das ablaufen.

und eine Hysterese eingeben, das zu Betriebsbeginn des Brenners nicht eine Abschaltung durch den Ölvorwärmer kommt

swmggs
Titel: Re: Brennersteuerung
Beitrag von: swmggs am 31. Dezember 2006, 14:06:29
 ;D ;D

und noch ganz wichtig!!

Funktion Fehlbeleuchtung, also wenn die Flamme vor Öffnung Magnetventil kommt
Titel: Re: Brennersteuerung
Beitrag von: hugo am 31. Dezember 2006, 14:12:28
ich habe das modul soeben geschrieben und simuliert, aber noch nicht im einsatz.
ich gehe davon aus das der flammwaechster ein simples ein / aus signal also kontakt liefert.
zum einsatz soll es erstamals kommen an einem buderus 85KW kessel mit wolf brenner.
Titel: Re: Brennersteuerung
Beitrag von: hugo am 31. Dezember 2006, 14:14:43
danke fuer deine inputs, die machen sinn, habe es momentan nach vorgaben von wolf und hoval gemacht, die kennen keine vorwaermung, werde es aber einbauen.

werde das modul auch auf eine 2te brennerstufe erweitern
Titel: Re: Brennersteuerung
Beitrag von: swmggs am 31. Dezember 2006, 14:22:00
Der Flammwächter bei einem Gelbbrenner ist eine Fotozelle, ich glaube die bringt Millivolt oder sowas (bin halt nur ein Heizi), Blaubrenner ist
Infrarot, weiss garnicht ob es so ne Klemme gibt, und es wird auch wohl ein Problem sein die Werte von-bis zu ermitteln wann die Flamme ok ist.
Titel: Re: Brennersteuerung
Beitrag von: swmggs am 31. Dezember 2006, 14:30:39
 ;D ;D

zweite Brennerstufe:

musst du aufpassen das das 2. Magnetventil vor Öffnen der Luftklappe 2. Stufe aufmacht, sonst kanns in die Hose gehen (Flamme reisst ab)

swmggs
Titel: Re: Brennersteuerung
Beitrag von: hugo am 31. Dezember 2006, 14:45:23
hier der neue code aber noch ohne 2te stufe, denke ich mache einen weiteres modul fuer die 2 stufigen brenner, möchte aber erst das jetzige ausgetestet haben

das mit dem flammwaechster schaue ich mir anfang des neuen jahres an wenn ich den brenner vor mir habe, in jedem fall sollte das signal aber ausserhalb dieses moduls verarbeitet werden.
entweder schalteingang oder analogeingang mit analogverarbeitung in software.

wenn du mir testen helfen kannst waere das super.

viele gruesse und guten rutsch ins neue jahr


Titel: Re: Brennersteuerung
Beitrag von: swmggs am 31. Dezember 2006, 14:58:14
gerne Helfe ich testen.

aber um ganz ehrlich zu sein finde das Ding ist eine heisse Kiste.

Was sagt der Hersteller, Garantie usw, was ist wenn das mal aus irgendwelchen Gründen die Sicherheitsfunktionen nicht klappen und der Kessel dicke Backen macht oä,

und meistens hat jeder Brennerhersteller seine eigene Strategie mit den Endschalter usw, da gäbe es auch noch viel zu beachten,

und wir armen Heizungsbauer ...Ersatzteile ? . Ein Steuergerät einfach kostet ca 50 Teuros, und Wartungen nur mit dem Schlepptop ?

aber wie gesagt nur meine Meinung, und helfen tue ich trotzdem gerne ;D ;D ;D

ebenfalls guten Rutsch

swmggs
Titel: Re: Brennersteuerung
Beitrag von: swmggs am 31. Dezember 2006, 15:32:15
auf wie oft steht die Mehrfachzündung ?

Darf nur einmal sein !

swmggs
Titel: Re: Brennersteuerung
Beitrag von: hugo am 31. Dezember 2006, 16:03:16
beliebig, es gilt nur fuer den fall das die flamme im betrieb abbricht, nicht für den start, dort gilt nur einmal,
wenn die flamme im betrieb abreisst wird einmal versucht wieder zu zuenden, geht dies nicht kommt sofort stoerung.
Titel: Re: Brennersteuerung
Beitrag von: swmggs am 01. Januar 2007, 16:45:09
Hallo Hugo,

als Anhang Beschreibung eines Steuergerätes Kleinbrenner, steht alles drin von wegen Fotozelle und Spannung usw.

Das Fabrikat ist ein ziemlich gebräuchliches Teil.

mfg swmggs
Titel: Re: Brennersteuerung
Beitrag von: swmggs am 29. Januar 2007, 14:57:10
Hallo,

etwas grösserer, 2.stfg. Brenner
Titel: Re: Brennersteuerung
Beitrag von: hugo am 30. Januar 2007, 02:28:38
danke, genau diese funktionen sind mittlerweile realisiert, und in der naechsten lib rev 1.4 ist auch ein 2 stufiger brenner unterstützt.
Titel: Re: Brennersteuerung
Beitrag von: swmggs am 30. Januar 2007, 07:41:04
und wie hast Du das mit der Flammüberwachung realisiert ?

Meine welche Fotozelle und Relais man benötigt .

swmggs
Titel: Re: Brennersteuerung
Beitrag von: hugo am 31. Januar 2007, 11:19:03
die frage mit der fotozelle verstehe ich nicht.
ich benutzte für meine versuche ein std steuergerät dem ich alle ausgänge abklemme und dann zwischen den klemmen 3 und 8 einen schaltausgang mit der flamminformation habe.
dieses gerät ist bei praktisch allen brennern dabei. ich benutzte die alte steuereinheit also als verstärker für die fotozelle.
ist kein setuergerät vorhanden kann ganz simple der strom durch die fotozelle gemessen werden.
eine weitere möglichkeit ist es einen flammwächter ird1010 von koerting einzusetzen dieser flammwaechter hat einen verstärker integriert und im prinzip einen schaltausgang
den widerstandsverlauf eines std fotowidersantds sieht wie folgt aus.
http://www.umnicom.de/Elektronik/Schaltungssammlung/Licht/LichtMessung/LDR/LDR.html
umni's Homepage - Elektronik - Schaltungssammlung - Lichtmessung LDRs

beim einsatz eine ird1010 satronic (ist bei hoval, weißhaput, viessmann usw im einsatz) benötigst du nicht mal einen verstärker, der hat praktisch einen schaltausgang.
Titel: Re: Brennersteuerung
Beitrag von: swmggs am 02. Februar 2007, 12:21:43
vielleicht habe ich mich falsch ausgedrückt.War immer der Meinung Du würdest das kpl. Steuergerät demontieren.

Wenn dem so wäre :
- welche Eingangsklemme (zb. von Wago ) müsste man benützen
- und ab welchen Wiederstandswert würde die Zelle einen stabile Flamme melden

swmggs
Titel: Re: Brennersteuerung
Beitrag von: swmggs am 02. Februar 2007, 12:32:01
die Fotozelle IRD ist scheinbar ne Infrarot ?

geht nur beim Blaubrenner, hast Du sowas auch für die Gelbbrenner gefunden?

swmggs
Titel: Re: Brennersteuerung
Beitrag von: hugo am 02. Februar 2007, 14:43:30
die ird gibts in verschiedenen ausführungen, sowahol als geld oder balu und auch axial und seitlich.

den widerstandsverlauf kannst du folgendem diagramm entnehmen:
http://www.umnicom.de/Elektronik/Schaltungssammlung/Licht/LichtMessung/LDR/LDR.html

eine direkte widerstandsmessung bis zu MOhm wie das für Flammwächter nötig wäre gibt es meines wissens nicht.
aber man kann das einfach mit einer externen stromquelle lösen und dann auf einen 0-10V eingang gehen.
aber vorsicht mit kabellänge, unbedingt geschrmtes kabel und nicht mehr als 1-2 meter länge.

einfacher ist sicher die variante den vorhandenen verstärker im mechanischen steuergerät verwenden.