Cześć,
1. Na pytanie o sterowanie roletą odpowiedzi są w 8. odcinku tutoriala
2. Rozwiązaniem jest zdefiniowanie zmiennej typu BOOL, która wartość zależy od bloku Fb_ShortLong sterowanego przyciskiem. Ową zmienną BOOL podłączasz do wejść IN bloków BLIND_INPUT wszystkich rolet, które powinny na długie/krótkie przyciśnięcie reagować.
(def)
Switch_IN1 : Fb_ShortLong;
Cien_P1 : BOOL;
Roleta_P1_1_Input, Roleta_P1_2_Input, Roleta_P1_3_Input : BLIND_INPUT;
(prog)
Switch_IN1(xSwitch := IN1);
Cien_P1 := Switch_IN1.xLong;
Roleta_P1_1_Input(S1 := ..... , S2 :=, IN := Cien_P1, POS := ...)
Roleta_P1_2_Input(S1 := ..... , S2 :=, IN := Cien_P1, POS := ...)
Roleta_P1_3_Input(S1 := ..... , S2 :=, IN := Cien_P1, POS := ...)
3. Podobnie, jw. trzeba zdefiniować zmienną typu Bool, uzależnić jej wartość od wyjścia bloku krótki/długi, i ową nową zmienną podłączyć do wszystkich bloków, które mają na nią reagować, np:
(def)
Switch_IN1 : Fb_ShortLong;
ZamknijDom : BOOL;
Roleta_P1_1_Input : BLIND_INPUT;
Swiatlo_P1_1 : Fb_LatchingRelay;
(prog)
Switch_IN1(xSwitch := IN1);
ZamknijDom := Switch_IN1.xLong;
Roleta_P1_1_Input(S1 := ..... , S2 := ..... OR ZamknijDom, IN := ..., POS := ...); (*tu przypisana do wejścia opuszczającego roletę*)
Swiatlo_P1_1(xSwitch := ..., xCentON := ...., xCentOFF := .... OR ZamknijDom); (*tu przypisana do wejścia wyłączającego światło*)
4. Tu trzeba sumować warunki. Wg mnie zacienianie ma sens tylko latem, bo zimną każda kropla słońca to pieniądz. U siebie zdefiniowałem zmienną Zacieniaj : BOOL i sumuję w niej warunki biorąc pod uwagę temperaturę w pomieszczeniu (nie na dworze), ilość światła itd.
Zacieniaj := (NOT Zima AND ReczneZacienianie AND (OdczytCzujnikaSwiatla > MinimalnaIloscSwiatla) AND (TemperaturaWPokoju > MaksymalnaTemperaturaWPokoju))
Później podłączam tę zmienną do bloku BLIND_SHADE_S
Roleta_P1_1_Shade(UP := ...., DN := ..., S_IN := ......, pi := ....., ENABLE := Zacieniaj, SUN := ...., CX := ....)
5. to kombinacja powyższych...
Pozdrawiam,