Aby pompa ciepła nieposiadająca bufora funkcjonowała poprawnie, jedna z pętli ogrzewania musi być zawsze otwarta. W niniejszym artykule zaprezentowano, w jaki sposób przygotować logikę, aby osiągnąć wspomniany efekt.
1. Dla każdej pętli ogrzewania utwórz obiekt wirtualny Termostat
. Jeśli potrzebujesz pomocy z ich utworzeniem, sprawdź nasz artykuł.
W naszym przykładzie utworzono termostaty: Termostat_Salon
, Termostat_Sypialnia
, Termostat_Kuchnia
odpowiadające pętlom grzewczym w salonie, sypialni oraz kuchni.
Termostaty będą sterowały siłownikami za pomocą wyjść przekaźnikowych: Petla_Salon
, Petla_Sypialnia
, Petla_Kuchnia
.
2. Zdefiniuj pętlę dyżurną, która zostanie otwarta, gdy pozostałe zostaną zamknięte. W naszym przypadku będzie to Pętla_Salon
.
3. Utwórz skrypt, który sprawdzi stany wszystkich siłowników poza pętlą dyżurną. Jeżeli ich iloczyn logiczny będzie równy zero, algorytm wyłączy termostat zarządzający pętlą dyżurną, a następnie wysteruje jej siłownik. Jeżeli warunek nie będzie spełniony, algorytm na nowo uruchomi termostat pętli dyżurnej.
Przykładowy skrypt (
SCR_Petla_Dyzurna
) wygląda następująco:if (CLU->Petla_Sypialnia->Value==0 and CLU->Petla_Kuchnia->Value==0) then
CLU->Termostat_Salon->Stop()
SYSTEM.Wait(1000)
CLU->Petla_Salon->SwitchOn(0)
else
CLU->Termostat_Salon->Start()
end
gdzie:
Termostat_Salon
to obiekt wirtualnyTermostat
(z wyjściemPetla_salon
), który został dedykowany do bezwarunkowego załączenia podczas, gdy pozostałe siłowniki przyjmują status0
,Petla_Sypialnia
,Petla_Kuchnia
- wszystkie siłowniki w instalacji poza siłownikiem dyżurnym (w tym przypadku bez siłownikaPetla_salon
).
Skrypt należy przypisać do zdarzeń OnValueChange
wszystkich siłowników poza siłownikiem dedykowanym.
4. W ostatnim kroku prześlij konfigurację do CLU.