Używamy plików cookies (tzw. ciasteczka) by spersonalizować treść i ogłoszenia oraz by analizować ruch na stronie.  W sposób automatyczny dzielimy się informacjami o Twoim użyciu tego portalu z dostawcami ogłoszeń, którzy mogą połączyć te informacje z informacjami, które im udzieliłaś/łeś lub, które sami zebrali. Korzystanie z witryny bez zmiany ustawień dotyczących cookies oznacza, że będą one zamieszczane w Państwa urządzeniu końcowym.  Możecie Państwo dokonać w każdym czasie zmiany ustawień dotyczących cookies zmieniając opcje przeglądarki.

Sterowanie ogrzewaniem

Gdy działało już sterowanie wszystkimi obwodami oświetlenia, zająłem się kontrolą temperatury w pomieszczeniach i rozdziałem wody z kotła c.o.

Od początku projektowania chciałem, by system sterował ogrzewaniem osobno w każdym z pomieszczeń.  W rozdzielni wody z pieca, z której rozchodzą się rurki zasilające każdy z kaloryferów, zamontowane zostały termozawory działające na 24 VDC.  Dodanie zaworów zwiększyło koszt rozdzielni o 500 złotych.  Gdy odjąłem od tej kwoty koszt zaworów, które zazwyczaj umieszcza się na grzejnikach, różnica nie przerażała.

Pozostał problem pomiaru temperatury w pokojach.  Długie godziny poszukiwania czujników opartych o element PT1000 nie przyniosły zadawalających rezultatów.  Dostępne są czujniki Moellera i Siemensa, kosztują ponad 100 złotych.  Czujniki firmy PIAST, choć tańsze, wyglądają wg mnie nieestetycznie.  Na pewno nie chciałbym ich umieszczać na ścianach salonu i pokoi.  Znalazłem jeszcze ofertę firmy Sensit z Czech, jednakże koszt czujników wraz z przesyłką przekraczał znacznie mój budżet.

Udało mi się jednak kupić na allegro jeden używany czujnik Siemensa za skromne 20 PLN.  Gdy znalazł się na moim biurku wyjąłem śrubokręt i rozłożyłem go na części pierwsze.  W środku luksusowej, arystokratycznej obudowy firmowanej logo Siemensa, które tłumaczy koszt na poziomie 150 PLN, znalazłem małą miedzianą blaszkę i… mikroskopijnych rozmiarów czujnik. W sklepie www.tme.eu znalazłem podobne za 7 PLN/sztuka, złożyłem zamówienie i tydzień później miałem ich 5 sztuk w cenie dużej pizzy.  (dodatkowo w www.tme.eu kupiłem kilka brakujących elementów – wtyczki RJ45, zaciski na kable… wszystko w super cenie, szybko i sprawnie).

Wystarczyło następnie kupić w Castoramie lutownicę za 20 PLN, przeczytać instrukcję i przystąpić do pracy. Po 20 próbach i 1 przypaleniu palca pierwszy czujnik przymocowany do żył skrętki był gotowy do montażu.  Po wpięciu go do modułu wejść analogowych w systemie bez problemu odczytałem temperaturę!

 

Przygotowanie do pracy Czujnik PT-1000 Gotowy czujnik

Myślałem długo nad znalezieniem odpowiedniej obudowy, jednakże ostatecznie zdecydowałem się umieścić czujniki w ramkach łączników ściennych.  Specjaliści być może skrzywią się, że to niezgodnie ze sztuką, że nie ma przepływu powietrza… Pewnie gdybym miał więcej wiedzy i pieniędzy, zrobiłbym coś lepszego.  Tymczasem jednak czujniki wystawiają główki przez małe dziurki w ramkach, są niewidoczne i… doskonale mierzą temperaturę.  W kilka minut po tym, jak dzieci zaczynają skakać w swoim pokoju, na wykresie system rejestruje wzrost temperatury o 4 dziesiętne stopnia ;)

Łącznik FIORENA POLO ...widoczny czujnik temperatury

Przed zimą muszę jeszcze podłączyć termozawory w rozdzielni wody c.o. do systemu i oprogramować ich dzialanie.  O ile to pierwszse powinno być proste, o tyle programowanie zachowania siłowników jest jeszcze wielką niewiadomą.   W bibliotekach CoDeSys są bloki funkcyjne pozwalające ustawić poziomy brzegowe temperatur, określić bezwladność... czeka mnie jednak sporo testów i prób by wyważyć częstotliwość otwierania zaworów i komfort użytkowników.

Rozdzielnia c.o.

(Aktualizacja 05.01.2013)

Zajęło mi 3 lata by 'dostroić' sterowanie ogrzewaniem tak, by nie sprawiało kłopotów. Ostatecznie:

1. Doborem temperatury wody zajmuje się automatyka pogodowa pieca. Doświadczalnie ustawilem pochylenie i poziom krzywej i nic więcej nie ruszam. Piec pilnuje się sam.

2. Sterowanie poszczególnymi obwodami odbywa się przez blok funkcyjny dostarczony przez WAGO w building_common.lib; Fb_Weather. Działanie najlepiej opisuje poniższy rysunek:

Fb Weather

Źródło: Opis biblioteki building_common.lib firmy WAGO

Aby blok funkcyjny działał wystarczy określić wymaganą temperaturę w danym pomieszczeniu.

W moim przypadku Najlepiej sprawdza się ustalenie parametru wHyst1 = 4, czyli opóźnienie włączenia/wyłączenia obwodu ogrzewania, gdy temperatura będzie o +/- 0.2 stopnia różna od zadanej. Gdy początkowo testowałem z większymi wartościami, użytkownich narzekali, że bywa zbyt ciepło lub zbyt zimno.

 

Jeśli chodzi o program: w częsci definicji zmiennych:

VAR RETAIN PERSISTENT
	HEATER_0PL : Fb_Weather:=(dwTon_10tel_s:=10, dwToff_10tel_s:=3000, wHyst1:=4);
	TEMP_H0PL: INT;
	WINTER : BOOL;
END_VAR;

Gdzie:

  • dwTon_10tel_s - definiuje opóźnienie w 0,1s wyłączenia grzania po przekroczeniu zadanej temperatury (tu: 1 sekunda),
  • dwToff_10tel_s - określa opoźnienie w 0,1s włączenia grzania po osiągnięciu zadanej temperatury minimalnej (tu: 5min aby wykluczyć włączanie ogrzewania przy np. otwarciu okna lub bramy garażowej)
  • TEMP_H0PL - przechowuje docelową temperaturę; zmieniana przez wizualizację,
  • WINTER - wykorzystywana w całym programie - określa, czy jest zima.
HEATER_0PL(iInput_Signal:=SensorReader.TEMPERATURE_4, iLimit1:=TEMP_H0PL*10, dwTon_10tel_s:=10, dwToff_10tel_s:=3000);
OUT86:= WINTER AND (NOT HEATER_0PL.xActorLimit1);

Gdzie: 

  • SensorReader.TEMPERATURE_4 to odczyt czujnika temperatury dokonywany w procesie SensorReader,
  • OUT86 - wyjście sterujące termozaworem; ze względu na sposób działania funkcji Fb_Weather, zmienna wyjściowa xActorLimit1 jest odwórcona (stąd też użycie w definicji parametrów dwTon_10tel_s jako opóźnienie wYłączania).