Styra CTC-panna och Värmegolv med PC.......hmmm? * KLART *

Berätta om dina pågående projekt.
Mackan
Inlägg: 210
Blev medlem: 1 mars 2006, 21:20:39
Ort: Fjärdhundra/Enköping
Kontakt:

Styra CTC-panna och Värmegolv med PC.......hmmm? * KLART *

Inlägg av Mackan »

Givetvis så rasade min gamla styrning till kombipannan i källaren(shuntmekaniken)........och som en beställning på posten så så gick styrningen till värmegolvet i halllen oxå sönder(det var nån gammal relälösning :? )
Vad göra..........ringde CTC och kollade med dom vad dom tog för ett nytt system........tjohoooo.....endast dryga 5000:- ........nej tack.......speciellt med tanke på att vi funderar på att byta pann nästa år eller året efter det.
Hmmmm :?:

Gammal 400Mhz labbdator..........med en parallellport....... :humm:
JAVIST..........jag fixar det själv.......... :vissla:

Beställde.........följande:

Serieportsvarianten av
http://www.elfa.se/elfa-bin/setpage.pl? ... k=9990.htm

4st
http://www.elfa.se/elfa-bin/setpage.pl? ... 227425.htm

samt 3st
http://www.elfa.se/elfa-bin/setpage.pl? ... k=2017.htm

Och en ny shuntmekanik........som skall ställa värmen på framledningen till elementen.

Jag har börjat att hacka mjukvaran i Borland C++ builder och kommit en bit på vägen.
Golvvärmeregleringen är färdig och fungerar klockrent.......jag ställer börvärde med en dragregel och om börvärdet är mindre än riktiga temperaturen slår jag av golvet och sedan givetvis tvärt om när börvärdet är högre än riktiga tempen slår jag på golvet via en "bit" på den avklippta kabeln på parallellporten

Temperaturena(Ute, Framledning, Pann och golvtemp) tar jag in via seriesnöret från utvecklingskortet och ritar ut dessa i 4st grafer.

Nu till en fundering...........jag öppnar serieporten med följande rad

Kod: Markera allt

handle = open("COM1", O_RDONLY | O_TEXT);
Nu till kruxet............porten öppnas med rätt baudrate men körs med fel konfigurering......... hanskakning osv.........är det någon som har en liten kodsnutt som visar hur man ställer in konfigureringen :?: . I dagsläget så kör jag ZOC-före mitt program för att det skall bli rätt konfig......hjälp :!:

Jag har även lagt in signalhanteringen för shuntningen av pannan...........230V......på en signal = varmare..........230V.....på den andra signalen = kallare.
Nu är det reglerkurvan kvar som skall in.........utetemp kontra framledningstemperatur.

Kablarna till pannan är färdigdragna så det blir till att mecka ihop ett litet kappslat kort med 230V......samt signalerna ifrån printerporten.

Mycket text och inga bilder tänker ni nu..........det kommer bilder under helgen :)
Senast redigerad av Mackan 13 december 2006, 08:57:05, redigerad totalt 1 gång.
Användarvisningsbild
Icecap
Inlägg: 26620
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Ladda hem komponenten "Tpapro", det är en serieportsinterface-komponent som är mycket enkel att använda. Jag använder själv BCB6 med TPAPRO till väldig mycket.

TPAPRO = TurboPower Async PRO, ett paket som blev gratis (på riktigt) då TurboPower stängde.
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Exempel:

Kod: Markera allt

void __fastcall CSerialCom::SetupComm(void)
{
   DCB dcb;
   BOOL fSuccess;

   hCom = CreateFile(ComPort.c_str(),
                     GENERIC_READ | GENERIC_WRITE,
                     0, /* exclusive access */
                     NULL, /* no security attrs */
                     OPEN_EXISTING,
                     FILE_FLAG_OVERLAPPED,
                     NULL
                     );

   if (hCom == INVALID_HANDLE_VALUE)
      {
    /* Deal with the error. */
      }

/*
 * Get the current configuration.
 */

   fSuccess = GetCommState(hCom, &dcb);

   if (!fSuccess)
      {
    /* Handle the error. */
      }

/* Fill in the DCB: baud=9600, 8 data bits, no parity, 1 stop bit. */

   dcb.BaudRate = BaudRate;
   dcb.ByteSize = 8;
   dcb.Parity = NOPARITY;
   dcb.StopBits = ONESTOPBIT;
   dcb.EvtChar = END_OF_MESSAGE;
   dcb.fOutX = FALSE;
   dcb.fInX = FALSE;
   fSuccess = SetCommState(hCom, &dcb);

   if (!fSuccess)
      {
    /* Handle the error. */
      }
/* Set the event mask. */

   fSuccess = SetCommMask(hCom, EV_ERR | EV_RXFLAG);

   if (!fSuccess)
      {
    /* deal with error */
      }

   if (!fSuccess)
      {
    /* deal with error */
      }
}
Mackan
Inlägg: 210
Blev medlem: 1 mars 2006, 21:20:39
Ort: Fjärdhundra/Enköping
Kontakt:

Inlägg av Mackan »

Tackar för så extremt snabba svar :shock:

Lekte runt lite med hanteringen som "vfr" gav exempel på........och det fungerar klockrent........stort TACK! :tumupp:

Här kommer några skärmdumpar på hur det ser ut just nu.............
Bild

Bild

Bild
Jag lägger upp lite mer bilder på spektaklet när jag närmar mig slutet :)

Tack igen..........
/Markus
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Skojigt!!


PS. 1f u c4n r34d th1s u r34lly n33d t0 g37 l41d... ---- Y3s, pr0b4bly! DS
Användarvisningsbild
chille
Inlägg: 2469
Blev medlem: 25 juni 2003, 20:54:41
Ort: Stockholm
Kontakt:

Inlägg av chille »

Första intrycket när jag kollade vilka komponenter var... WTF!??! Du verkar ha fläskat på med dyra komponenter. Du hade nog kunnat spara ett par hundralappat till. Fast du kanske prioriterar utvecklingstiden nu när du ändå lyckats spara in så många tusenlappar?

I övrigt var det ett bra projekt. Jag blir lika glad varje gång jag ser någon som fått spader på att en produkt är dyr och istället byggt en likvärdig själv. Bättre/sämre, snyggare/fulare... bara den uppfyller sin funktion. Snygga grafer har du fått till också. Ska du inte flumma till det så de visar dom på hemsidan? Helt meningslöst, men coolt 8)

Även kul med lite källkod till serieporten. Jag håller på pilla rätt mycket med den, men har aldrig gjort det i windows. Kanske skulle få tummen ur och porta något program till Windows. Det till bromsbänken vore ju en bra början, för alla har ju inte Unix i garaget. 8)
Användarvisningsbild
Jeppsson
EF Sponsor
Inlägg: 810
Blev medlem: 3 oktober 2005, 18:00:43
Ort: Karlskrona

Inlägg av Jeppsson »

Trevligt bygge... :)

Saknar dock tid på X-axeln, så man kan få uppfattning på hur ofta värmen är till...
Mackan
Inlägg: 210
Blev medlem: 1 mars 2006, 21:20:39
Ort: Fjärdhundra/Enköping
Kontakt:

Inlägg av Mackan »

->vfr
:lol:

->chille
Tidsbrist är faktorn som bestämde komponenterna.........familj med 2 småttingar(samt frugan) sätter sina käppar i hjulet för hur mycket tid som man får tillbringa i labbet :D
Coolt hade det varit om man hade haft tid att lära sig hur man får ut saker i realtid på nätet..........blir nog kanske nån gång i framtiden.

->Jeppsson
Skall se om jag får till tiderna på X-axeln.......borde ju inte vara så svårt

Jag tänkte även addera en tidtagning på exakt hur mycket tid som värmegolvet står på.........så man får det svart på vitt hur många kronor det kostar att ha det skönt under fötterna.

Jag stötte på lite patrull när jag funderade på vad som händer om strömmen går och datorn startar om............hmmmm :humm:
Så klart så sattes båda bitarna för styrningen av shunten.......när jag ryckte ur 230 till datorn och jackade tillbaka den...........detta skulle vid ett eventuellt strömavbrott resulterat i att jag körde shuntmotorn med båda signalerna på...........ville inte testa om shunten klarade av detta så jag konstaterase snabbt att jag måste in med lite logikkretsar mellan pporten och styrsignalerna till pannan.........som håller koll på att signalerna inte är på samtidigt.......innan mitt programm startas.
Logikkretsar........det har man ju alltid liggande........... :( ...........NOT!!!
Suck!

Jaja........jag grottade igenom några sampleslådor och hittade en gammal HC908QY4................denna 8pinnars-kontroller får agera "skydd" istället för logikkretsarna som jag inte hade.
Koden för 908'an blev faktiskt det kortaste som jag gjort på riktigt länge.....vet föresten inte om jag någonsin gjort det.....kolla in detta :shock:

Kod: Markera allt

void main(void) 
{
  byte temp;

  EnableInterrupts; /* enable interrupts */

  PTA = 0x0;
  DDRA = 0x3;
  for(;;) {
  
    temp = PTA & 0xC;
  
    if(temp == 0xC) {
      PTA = 0;
    
    } else{
      PTA = temp >> 2;  
    }
    __RESET_WATCHDOG(); /* feeds the dog */
  }
}
:D

Nä nu blir det ner i labbet igen..........och löda på 230 styrningen till shunten.

Man får passa på nu när barnen sover och frugan inte är hemma :)

/Markus
Abstract
Inlägg: 11
Blev medlem: 27 augusti 2006, 11:38:09
Ort: Planeten Jorden

Inlägg av Abstract »

Sååå intresant tråd. :)

Väntar på fortsättning och börjar fundera på att göra något liknande med den gammla pannan som man har nere i källaren.. :humm:

Keep up the good work!
Mackan
Inlägg: 210
Blev medlem: 1 mars 2006, 21:20:39
Ort: Fjärdhundra/Enköping
Kontakt:

Inlägg av Mackan »

Nu är projektet klart...............och funkar gör det oxå :D

Här kommer några bilder till på hur allt blev..............

Pannan med nya shuntmekaniken ansluten
Bild

Boxen för styrningen av golvvärmen........AV/PÅ med 5V-styrningen från PC'n
Bild

Boxen som styr shunten(230V) som antingen skruvar Varmare/Kallare på framledningen
Bild

Värmegolvsstyrningen........dock utan tid på axeln.........jag lade dock till total tid som golvet är på samt antal KWh så att man får en hum om vad det kostar att köra en vinter tex.
Bild

Framledningstemperatur kontra börvärde i övre grafen samt 2st olika reglerkurvor i nedre grafen som man kan testa beroende på hur systemet beter sig under vintern
Bild

Till sist en förminskad bild på hur hela programmet ser ut........
Bild

Nu är det bara sätta tänderna i nästa projekt och hålla tummarna hårt att pannstyrningen snurrar klockrent resten av vintern :pray:

Blir det någon tid över efter jul så adderar jag ett GSM-modem som jag har liggande hemma............så att man kan får larm om panntemperaturen sjunker för mycket(typ jordfelsbrytaren till pannan löser ut eller nåt).......samt även larm på om panntempen stiger för mycket när man eldar med ved..............

/Markus
Användarvisningsbild
Zyxel615
EF Sponsor
Inlägg: 1839
Blev medlem: 9 november 2005, 21:20:43
Ort: Kiruna

Inlägg av Zyxel615 »

Kanon :tumupp:
Radiohead
Inlägg: 450
Blev medlem: 18 mars 2006, 17:11:02

Inlägg av Radiohead »

Dett projekt är ju som gjutet för lite PID-reglering! Om du hanterar utetemperaturen på rätt sätt kan du dessutom korrigerar temperaturen i förväg vid väderomslag så att det t ex inte blir snorkallt innne när vinterns första kyla kommer och sådär.
Användarvisningsbild
GeekJoan
Admin
Inlägg: 11114
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Inlägg av GeekJoan »

:tumupp:
Mackan
Inlägg: 210
Blev medlem: 1 mars 2006, 21:20:39
Ort: Fjärdhundra/Enköping
Kontakt:

Inlägg av Mackan »

Tackar så mycket för positiv respons på bygget...........
Jag vill även passa på att tacka ALLA som gör elektronikforumet till det ställe där man kan få svar på så gott som allt inom elektronik/teknik + lite annat :bravo:

-> Radiohead

Som du skriver så skulle detta projekt vara klockrent att köra lite PID-reglering på........man skulle då oxå kunna hålla koll på panntemperaturen och korrigera så att man inte får "overshoots" då man får snabba ändringar vid vedeldning........synd bara att man inte har tid för detta just nu.

Man få väl vid tillfälle kanske ta och damma av reglerböckerna som man inte har öppnat sedan sista reglertenten :)
Mackan
Inlägg: 210
Blev medlem: 1 mars 2006, 21:20:39
Ort: Fjärdhundra/Enköping
Kontakt:

Re: Styra CTC-panna och Värmegolv med PC.......hmmm? * KLART

Inlägg av Mackan »

Jag väcker upp denna väldigt gamla tråd med en uppdatering :)

Pannprojektet har snurrat på kalas fram till för ca en månad sedan då hårddisken krashade i min gamla 400Mhz-dator. Jag har givetvis inte någon backup på projektet heller.........hahaha.

Så nu handshuntas värmen i huset.

Styrningen till golvvärmen i hallen använder jag inte då en täljstenskammin blivit installerad där.

Det var ju kul i alla fall att det höll i så många år som det gjorde :D

Mvh,
/Markus
Skriv svar