Henielma's geautomatiseerde weckketel installatie

Gestart door Henielma, 11-02-2007 14:24 u

Vorige topic - Volgende topic

0 leden en 1 gast bekijken dit topic.

Henielma

Na een jaar brouwen met een paar weckketels en het gasfornuis in de keuken ben ik bezig om mijn brouwinstallatie te automatiseren. Aangezien ik een elektronica achtergrond heb is dit bijna niet te voorkomen. Het automatiseren gaat in een paar stappen. Nog niet alles is klaar maar het is wel zover dat een goede indruk gekregen kan worden van wat ik aan het maken ben.
Het is mijn bedoeling dat andere brouwers hierdoor weer op ideeen komen voor hun eigen installatie. Het is niet mijn illusie dat dit 1 op 1 gemakkelijk na te bouwen is maar het kan natuurlijk wel.

Omdat ik al 10 weken wacht op een paar componenten van Maxim  :echtboos: heb ik met name de PID regeling van de gasklep en de sturing van de roermotor nog niet kunnen testen.

De gedachte achter deze brouwinstallatie van mij is dat ik kleine hoeveelheden goed reproduceerbaar wil kunnen brouwen. Hiervoor is het gewenst dat de temperaturen van de maischstappen goed constant blijven. Verder is het idee dat als de maischstappen automatisch uitgevoerd worden het aantal stappen en de staptijd geen probleem zijn omdat je er niet continue bij hoeft te blijven en de PID regeling ervoor zorgt dat alles zo verloopt zoals het ingesteld is.

Hieronder allereerst het blokschema van mijn installatie.


Op de afzonderlijke blokken zal ik verder ingaan in volgende berichten in dit onderwerp.
De bediening en de PID regeling vindt plaats met behulp van een oude laptop. Deze is met de parallele poort (printerpoort) verbonden met een handbedade interfaceprint. Deze print communiceert met I2C met de computer. Op de computer daait een eigen gemaakte LabView applicatie 'Beer PID' die voor de gebruikersinterface de I2C protocol afhandeling en de besturing zorgt.
De interfaceprint bevat een aantal eenvoudige I2C circuits voor het uitlezen van de temperatuursensor in de ketel en het aansturen van de gasklep en de roermotor.


Jos Groen

Ik ben voor!
En hoe meer oplossingen des te beter,
Welke onderdelen ga je gebruiken van maxim ?

Henielma

Roerwerk

Van een standaard weckketel is de deksel voorzien van een motor met roerwerk zodat het wort een gelijkmatige temperatuursverdeling heeft. Het toerental van het roerwerk is 1 omwenteling per 4 seconden. Tijdens opwarming is het de bedoeling om het toerental wat te verhogen naar bijvoorbeeld 2 seconden per omwenteling. De draairichting is zodanig dat het wort vanuit het midden van de ketel via de bodem en dan langs de zijkant wordt geleid.

Ketel met 24 Vdc roermotor met haakse wormwiel overbrenging.


Roerwerk en de temperatuursensor.

De temperatuursensor is een I2C component (LM92 in SO8 uitvoering) die ik in een kabel gemonteerd heb. Zie hiervoor onderstaande foto.


 Daarna heb ik het uiteinde van de kabel wat uitgerekt en met een gasaansteker gesmolten en daarna met een spitsbektang dichtgeknepen. Op deze manier zit de sensor helemaal vloeistofdicht in de kabel. Hierna de sensor kabel 10 minuten gekookt om verontreinigingen aan de buitenzijde van de kabel te verwijderen. Op de onderstaande foto is de kabel te zien na het dichtsmelten. Het sensor IC'tje zit dus in dit stukje kabel.

Jos Groen

Prachtig roerwerk, ergens gekocht of zelf gemaakt?

Welke onderdelen heeft dit roersel ?


Lenx

Dat ziet er allemaal heel mooi uit. Ik stel me wel vragen bij de voedingsgeschiktheid van de kabel. Het ziet er een gewone kabel uit voor elektrische leidingen, kan dat geen kwaad? Eventueel zou je gewoon een paar draden kunnen trekken door een siliconen slang en daarvan het uiteinde dichtsmelten of dichtklemmen met iets.

Henielma

Het roerwerk is van RVS (Inox) en aan de hand van een schets van mij gelast door een kennis die handig is in RVS bewerking. Dus zoek iemand die RVS kan bewerken. De onderdelen van het roerwerk zijn motor, wormwielvertraging en RVS roerder. Waarschijnlijk zal een ruitenwissermotor ook voldoen.

De sensorkabel is wel geschikt voor olie maar niet geschikt voor voedingsmiddelen. Mede daarvoor heb ik de kabel een tijd uitgekookt maar je idee om er een siliconenslang omheen te doen is natuurlijk prima. Ik weet niet of siliconenslang ook zo aan elkaar te smelten is.


Henielma

Mamuth brander met ontsteking en vlambewaking

Mijn Mamuth brander wordt aangestuurd door een Honeywell gasblok type VR8705m. Dit blok heeft twee 24 Vac kleppen en een modulerende klep voor 0 tot 22 V gelijkspanning. Wanneer vanuit de PC via de interfaceprint de modulerende klep ingeschakelt wordt dan worden de twee aan/uit kleppen van 24 Vac voorzien. Tevens wordt de elektrische ontsteking ingeschakeld. Deze ontsteking blijft ontsteken tot de vlambewaking vuur ziet. Als gedurende 15 seconden ontstoken wordt terwijl er geen vlam waargenomen wordt door de ionisatiesensor dan wordt in verband met de veiligheid de voeding naar de drie gaskleppen onderbroken en stopt de gastoevoer.
Als de vlam uitwaait dan start de ontsteking vanzelf.
De onsteking met vlambewaking en de aansturing daarvan komt van een Valliant CV ketel type VCW NL 182E. Deze besturing is zodanig omgebouwd dat de ontsteking start als er een relaiscontact gemaakt wordt door de interfaceprint. Als er interesse is in de ombouw van deze Valliant ketelbesturing dan wil ik daar nog wel wat meer van beschrijven.

De modulerende klep wordt door de interfaceprint aangestuurt met behulp van het I2C component DS1050-005 van Dallas Semiconductor (Maxim). Hierna zorgt een FET voor de benodigde stroom voor de modulerende klep. Het I2C component zorgt voor de PWM (puls breedte modulatie) aansturing van de klep. De klep kan hiermee in 32 stapjes een spanning krijgen tussen 0 en 24 Vdc. Van dit Dallas component heb ik begin december 2006 samples aangevraagd maar ik heb deze helaas na 10 weken nog niet mogen ontvangen. Dit deel moet ik dus nog testen.

Hieronder een foto van de brander met gasklep en ontsteking met vlambewaking.


Hieronder een foto van de ontsteking met ionisatiesensor voor de vlambewaking.



Henielma

I2C interfaceprint

De interfaceprint is opgebouwd op een gaatjesprint zodat ik wijzigingen of uitbreidingen gemakkelijk kan doorvoeren. Het schema voorziet in een galvanische scheiding tussen de printerpoort signalen van de PC en de overige spanningen op de interfaceprint. Dit om te voorkomen dat de PC defect raakt bij problemen in de motor- en klepsturing.
Het schema van de belangrijkste delen is hieronder te zien.


De sensor zoals rechtsonder in het schema zit in de sensorkabel in de maischketel. Door het adres van een tweede sensor in 1 te veranderen kan je twee sensoren uitlezen.
Rechtboven in het schema is het I2C puls breedte modulatie component getekend met daarachter de FET voor de stroomversterking. De FET kan ruim voldoende stroom leveren voor de gasklep. Een tweede puls breedte modulatie component is geplaatst voor de aansturing van de roermotor. Deze motor kan dan ook in 32 stapjes tussen 0 en 24 V aangestuurd worden.

Hierna de huidige opbouw van de print. Helaas zijn de twee voetjes voor de I2C PWM componenten nog leeg.

Henielma

Software BeerPID

Op de computer draait een zelfgemaakte LabView applicatie. LabView is een programmeertaal die onder andere gebruikt wordt voor meet- en testapplicaties. Programmeren gaat door grafische programmabouwstenen aan elkaar te knopen en deze bouwstenen te configureren. Als er een functie goed werkt dan kan je hier weer een nieuw blokje van maken die je dan weer gebruikt.

Hieronder een indruk van het scherm tijdens het programmeren van het programma. Wat je ziet is het programma zelf, het is geen tekst georiënteerde programmeertaal maar alles is grafisch. Als elektronicus spreekt me deze manier van programmeren aan omdat het lijkt op tekenen van elektronische schema's.


Een screenshot van het BeerPID applicatie scherm is hieronder te zien.


Het programma verzorgt de volgende taken:
1. I2C communicatie met de interfaceprint
2. Inlezen van de maischtemperatuur
3. Volgen van het maischschema voor wat betreft de temperatuur en de tijd per stap
4. Tijdens het maken van een temperatuurstap wordt aan de hand van de instelling van het aantal  ºC/min iedere seconde de nieuwe temperatuursetpoint bepaald.
5. Tijdens het opwarmen knippert de LED naast de temperatuurstap en als de temperatuur bereikt is dan blijft de LED continue aan.
6. Na het maischen kan het koken gestart worden door op de knop 'Start' te drukken.
7. Als het tijdstip voor hopgift is aangebroken kan je iedere seconde een piep laten klinken zodat je eraan herinnert wordt.

De PID regeling wordt gevoed met het temperatuursetpoint en berekent hiermee de PWM Cal.(culated). Deze waarde wordt begrenst door PWM min en PWM max. Door de knop op 'Hand' te schakelen kan je de uitsturing van de modulerende gasklep met de hand instellen. Afhankelijk van de aansturing van de brander wordt de roermotor anders aangestuurt. Dus brander flink aan dan gaat de roermotor wat sneller draaien. Dit varieert zo tussen de 4 en 2 seconden per omwenteling. Ook deze sturing is op 'Hand' zelf in te stellen.

Linksonder in het scherm is het temperatuursverloop in de tijd te zien. Tevens wordt iedere seconde een meetwaarde opgeslagen in de logfile die je later met behulp van Excel kan bekijken.
Hieronder is een grafiek te zien van het temperatuursverloop van het brouwen van mijn pils. Omdat ik de componenten voor de aansturing van de gasklep nog niet binnen heb zie je duidelijk de momenten tijdens de maischstappen dat er verwarmt is.





Emile

Henielma,

Ik heb e.e.a. al bij je mogen bewonderen en vooral dat Labview verhaal ziet er erg fraai uit! Verder zien een aantal schema's en componenten er erg vertrouwd uit  ;D. Vooral die LM92 is een goede keuze, er is volgens mij geen nauwkeuriger temperatuursensor te vinden. Ook is deze goedkoper dan zijn 1-Wire variant.

Wel ben ik benieuwd naar de maximale regelsnelheid die je zo kunt halen. Want Labview heeft natuurlijk wel flink wat rekentijd nodig. Gaat dit geen probleem opleveren?

Het PWM signaal wek jij op met een IC, ik doe dat analoog met een LM339 op-amp (3-hoekgenerator) met open-drain output. Dat kan nog een alternatief zijn voor je ICtjes.

Maxim sample service is erg goed, ik heb 2 weken terug nog een aantal ICs besteld en die zijn inmiddels al binnen.

Nog een paar kanttekeningen:
- Die sensor kun je maar beter wel ingieten in giethars, anders krijg je problemen met condensatie, waardoor je I2C uitvalt.
- Die vonkontsteking gaat je I2C interface flink in de war sturen! Zorg er dus voor dat je een goede aardleiding hebt, en houd die zoveel mogelijk uit de buurt van je elektronica!

Verder geweldig om te zien dat er minstens nog een brouwer is, die serieus bezig is met de automatisering van het geheel!  :groots:   :hoera:

Henielma

Emile,

Bedankt voor je reactie. Die LM92 heb ik gekozen naar aanleiding van jou site.  :groots: Volgens mij is het inderdaad een prima keuze. Ik heb met deze sensor al een aantal sessies gebrouwen en dat gaat prima. De absolute nauwkeurigheid rond de 60  ºC is plus minus 0,5  ºC. Het mooie is dat je geen extra onnauwkeurigheid krijgt door analoge ingangscircuits of iets dergelijks omdat de sensor zelf de temperatuur omzet naar een digitale waarde.

De sampletijd van de LabView applicatie BeerPID heb ik gekozen op 1 seconde. Dit is ook ongeveer het maximum wat die LM92 temperatuursensor aan kan. Het draait zonder snelheidsproblemen op een 800 MHz labtop met Windows XP.

Het probleem met de levertijd van die componenten zit hem in het feit dat ze bij Maxim op zijn en pas voor 27 jan gepland stonden in de productie bij Dallas Semiconductors. Ik verwacht ze ieder moment binnen te krijgen. Ik heb je oplossing met die driehoekgenerator gezien maar de oplossing met deze 5-bit PWM componenten is volgens mij eenvoudiger en geeft minder warmteontwikkeling in de eindtrap.

Je waarschuwing voor de storing van de vonkonsteking op de I2C bus is terecht. Dit is een punt van aandacht. In de grafiek aan het eind van mijn bericht over BeerPID zie je na ongeveer 8000 seconden bij de start van het opwarmen naar het kookpunt een lijn naar 0  ºC. Dit is de ontsteking van de brander. Hier moet ik nog wat aandacht aan besteden.

Eduard

Dat ziet er veelbelovend uit! Als je nog vragen hebt: de mikrobrouwerij is ook op een soortgelijke manier gestuurd en ook gemaakt door een slimme amateur (computerprogrammeur). Misschien kan ik je nog hints/tips geven.

Emile

Aha, interessant hoor die PWM generator!

Bij de zelfbouw PID regelaar speelt dit helemaal niet meer, omdat daar de signalen direct door de timer-counter module van de microcontroller opgewekt worden. Maar bij mijn "gewone" brouwinstallatie kan dit ook nog interessant zijn. Ik houd het in gedachten en volg met belangstelling jouw ervaringen hiermee.


Eduard

Overigens, bij de thuisbrouwvereniging gebruiken we een PID voor de temperatuurregeling bij het RIMS-en, terwijl er bij de microbrouwerij alleen sprake is van een PID voor de temperatuurregeling van het koelwater. Andere temperaturen worden middels temperatuursensoren, tellersensoren, capaciteitssensoren (maltsilo/HLT leeg of niet) geregeld, in combinatie met stappenplannen voor het brouwen. Maar eh, als je toch al zo technisch bezig gaat, waarom dan niet meteen een strakke 100 liter-opstelling? :P

Jos Groen

Had ik ook maar wat meer verstand van electronica, die automatische ontsteking is echt super cool.

Emile

Jos,

Volgens mij is die automatische ontsteking niet het moeilijkste. Dat is een kwestie van spanning op die trafo zetten en dan vonkt die al. Wat Henielma in Labview aan het doen is, dat is al een stuk lastiger.

Adrianus Tripel

Hoi Henielma,

Even over je roerwerk. Hoe hou je het deksel op zijn plaats als het roerwerk bijstaat? Als de roerbladen in de bostel staan lijk mij dat het deksel met roermotor en al gaat draaien. De reactiekrachten moeten ergens door opgevangen worden. Hoe doe jij dat?

Groeten
Ad

Jos Groen

Als  ik vanaf de bank kan maischen, dan word ik gelukkig van te voren instellen en gaan, en ook die onstekking is daarvoor handig.

-> Zit je op de bank met een paar andere brouwers, he hallo , ik ben aan het brouwen.
Echt ? 
ja zeker kijk maar op mijn laptop :D
en dan gewoon een super lekker biertje maken terwijl je zit te 'proeven' :D

tot welke hoeveelheden zou dit werken ?

Emile, Jouw project heeft tot nu toe de voorkeur :D



Hopmans


Vet coole interface!
Toch wel leuk die elektronica.
Het laatste wat ik ooit maakte was een simpele am-radio ergens in de 80's, maar dit is andere koek.

 :degroeten:


Emile

Wat Henielma doet is in feite een andere benadering. Ruwweg heb ik nu de volgende implementaties gezien:
- "Mijn" PC programma met "domme" elektronica, die vanuit de PC aangestuurd wordt. Alle intelligentie zit in het PC programma (in C++ geschreven, met C voor de low-level routines).
- De Henielma variant. Ook hij maakt "domme" elektronica, die niet vanuit een PC programma aangestuurd wordt, maar middels Labview. Voordeel hiervan is het makkelijk kunnen aanpassen van je programma en de gelikte grafische interface.
- Onze zelfbouw PID regelaar, waarbij aan de PC kant geen programma draait, maar alle intelligentie zit in de elektronica (met een krachtige microcontroller).

Henielma heeft tot nu toe geen mooie printjes gemaakt, maar als die dat wel doet, heeft die een erg mooi systeem. Als nadeel zie ik toch die Labiew omgeving, die een leercurve kent en niet gratis is! Maar ja, ook C++ is niet echt makkelijk  ;D

Complimenten voor de opzet tot nu toe!  :groots: Vooral het gebruik van andere ICs (dan die ik gebruik) heeft mijn warme interesse.

Henielma

Alvast bedankt voor al jullie reacties. Ik kom binnenkort met reactie op jullie vragen en opmerkingen.

Gisteren zijn de componenten binnengekomen waar ik al 10 weken op zat te wachten. Dus je begrijpt dat ik nu aan het testen ben. Het stukje LabView dat die componenten aanstuurt getest en dat werkte direct. Alleen een slecht contact aan een surface mount component was even zoeken. Gisteren de roermotoraansturing getest en die werkte prima.

Vanavond met de brander begonnen en dat werkt ook. Nu met labtop en brander buiten bij 6 ºC bezig met het kiezen van de PID factoren behorende bij een ketel met 25 liter water. Het is nog even zoeken naar de juiste instelling. Het ontsteken en uitschakelen van de vlam werkt al goed.

Lenx

Citaat van: Henielma op 13-02-2007  22:18 uVanavond met de brander begonnen en dat werkt ook. Nu met labtop en brander buiten bij 6  ºC bezig met het kiezen van de PID factoren behorende bij een ketel met 25 liter water. Het is nog even zoeken naar de juiste instelling. Het ontsteken en uitschakelen van de vlam werkt al goed.

Je zou dat eventueel ook kunnen simuleren als je een goede schatting kunt maken van de tijdsconstante van de ketel.

Henielma

@Emile,
Als je dat I2C puls breedte modulatie component wil toepassen kies dan de DS1050Z-025 in plaats van de -005. Die ik nu heb werkt op 5 kHz en de motor geeft een piep van 5 kHz. Dit irriteert na een tijdje. De motor draait nu prima daar gaat het niet om maar bij de 25 kHz versie heb je geen last meer van het geluid. De componentjes werken precies zoals verwacht dus zijn een aanrader wat mij betreft. Ik heb overigens monsters aangevraagd van de -025 zodat ik over een paar weken van de piep verlost zal zijn.

Of ik hier nog een keer een printlayout van ga maken weet ik nog niet. Als er veel interesse is zou het kunnen maar voor mezelf vind ik het niet nodig. Zo'n handbedrade print is niet zo netjes maar wel flexibel. Zeker als je er maar 1 nodig hebt. Eerst maar eens wachten wat het uiteindelijke schema wordt.

LabView is snel te leren als je er je even in verdiept. Een nadeel is zeker dat LabView niet gratis is. Ik gebruik versie 7.1. Die is alweer wat ouder maar werkt prima. Als mensen met mijn applicatie BeerPID willen stoeien dan kan dat. Een .exe kan ik klaarzetten ter download. Verder moet je dan nog de Run Time Engine downloaden die wel gratis is en dan kan je het programma draaien.
Ik heb in het programma een simulatiemode opgenomen zodat je niets hoeft aan te sluiten en gewoon in een veldje de sensortemperatuur invult. Tevens wordt de wachttijd bij het maischen 60 maal korter zodat je erop kan wachten. Je kan dan mooi zien hoe het werkt. Op deze manier heb ik het ook getest.

@Eduard,
Een 100 liter installatie, wie moet dat allemaal opdrinken? Het is volgens mij best mogelijk deze hoeveelheden te brouwen met deze oplossing. Ik heb er in ieder geval rekening mee gehouden dat ik met die 40 liter gamellen op deze manier kan gaan werken. Het roerwerk is namelijk uitschuifbaar en zou daardoor in de hogere gamellen moeten passen. Voorlopig houd ik het bij die 20 liter, kan ik ook wat vaker brouwen.

@Adrianus,
De deksel met het roerwerk ligt gewoon op de pan. Ik heb alleen nog niet met wort gewerkt met het roerwerk dus misschien moet ik de deksel nog vastleggen maar dat verwacht ik niet.

@Jos Groen,
Hoezo op de bank tijdens het brouwen? LabView heeft standaard de mogelijkheid om via een ingebouwde webserver het scherm op afstand te zien. Dus je kan overal ter wereld naar je huidige brouwsessie (laten) kijken. Dit heb ik met mijn Huisbesturing al jaren in gebruik en werkt probleemloos.
Overigens denk ik dat ik tijdens het brouwen er wel bij wil blijven omdat ik het leuk vindt om het te zien gebeuren maar het voordeel is dat je even wat spullen kan klaarzetten voor de volgende fase van het brouwproces zonder dat je maisch stappen de fout in gaan.

 

Henielma

Gisteravond buiten de brander met PC aansturing getest. Vier uur lang bij 6  ºC met de labtop in de tuin  :(. Maar gelukkig werkt de interface goed. Bij het bepalen van de PID factoren blijkt waar ik al bang voor was. De Mammuth brander is eigenlijk te groot voor 25 liter. De gasklep moet tijdens ontsteken flink open staan anders slaat soms de vlam in de brander en voor het opwarmen moet de vlam minimaal staan.
Ik heb het nu zo geprogrammeerd dat de eerste twee seconden na inschakelen de aansturing 75 % is en daarna gaat deze terug naar 20 %. Als de vlam groter wordt dan gaat de vlam vooral naast de pan en daar schiet ik niet zoveel mee op. Misschien nog een keer op zoek naar een eenvoudige 5 kW brander die op flessengas en aardgas werkt.

Na wat geëxperimenteerd te hebben met de PID factoren ben ik een aan/uit sturing gaan programmeren voor de brander. Deze aan/uit sturing houd rekening met het doorlopen van de temperatuur nadat de brander al uit is. Deze overshoot correctie moet ik nog wat verder verbeteren maar de eerste resultaten zien er goed uit.

In de onderstaande grafiek is het opwarmen aangestuurd door de PC van 25 liter water te zien.


Tot de 32  ºC heb ik geëxperimenteerd met de PID factoren en daarna heb ik de aan/uit regeling gemaakt. Je ziet dat bij 50  ºC de over- en undershoot al heel acceptabel is. De temperatuur bleef bij die stap tussen de 50,25  ºC en de 49,69  ºC. Dit is ongeveer plus en min 0,3  ºC. Door de aan/uit regeling nog wat verder te optimaliseren moet binnen plus en min 0,2  ºC haalbaar zijn.

Emile

Aha, ik zie bekende grafiekjes verschijnen! Alleen heb je nog teveel overshoot  ;D Die 0.3 graden kan echt nog beter  >:D

Citaat van: Henielma op 14-02-2007  16:51 uAls de vlam groter wordt dan gaat de vlam vooral naast de pan en daar schiet ik niet zoveel mee op. Misschien nog een keer op zoek naar een eenvoudige 5 kW brander die op flessengas en aardgas werkt.
Je zoekt de oplossing in de verkeerde richting, je moet een grotere ketel hebben! Niet een kleinere brander. Dan zal vervolgens weer blijken dat de brander te klein is voor de nieuwe ketel. Dus schaf je een nieuwe brander aan, waardoor de ketel weer te klein is...


Zoeken met Google op deze site.
Brouwspullen zijn ook te koop via Bol.com.
Als je iets bestelt bij Bol.com (ook andere zaken dan brouwspullen) via deze link steun je het forum.


Het boek van de beheerder van deze site.