ster, przycisk-panel-czujka pir czas i timer pomocy

Zaczęty przez marek1979, Grudzień 31, 2019, 12:39:35

Poprzedni wątek - Następny wątek

marek1979

Witam
Mam neo64 od ponad trzech dni próbuje sklecić sterowanie światłem na przekaźniku bistabilnym wyjście O4
ma sterować za pomocą przycisku dzwonkowego, panelu/aplikacji oraz po załączeniu pir wejście I2 na określony czas w określonym tk1, kontrola stanu za pomocą modułu obecności faz na wejściu I20.
Doszedłem do momentu gdzie przycisk działa prawidłowo, pir czasowe działa prawidłowo ale aplikacja/panel trzeba 3 razy przycisnąć abo powrócić do prawidłowego stanu wyłączenia, poniżej skrypt oraz diagram najbardziej zbliżony

int I2;
int I20;
int M1 ;
int M2;
int M3 ;
int M4;
int R1;
int R2;
int R3;
int tk1;
main()
{
while(1){
tk1=getenv("tk1");
I2=geti(2);
I20=geti(20);
M4=!I20;
M1=tk1&I2&M4;
M3=M1;
M2=M3|R1;
R2=pons(1,M3,0,8,1);
R1=tond(0,R2,0,7,1);
R3=pons(2,M2,0,1,1);
seto(4,R3);
};
};

marek1979

tak dla jasności przekaźnik bistabilny znajdujący się w puszce za włącznikiem, z tego co widzę problem jest z tym ze LP omija ustawienia i chyba stad to kilkukrotne klikanie wiec jak ustawić go w tryb mono z użyciem LP ??????

robertm

Konieczne jest jeszcze wykrycie sterowania z Paneli lub aplikacji, najlepiej proszę rozważyć wykorzystanie funkcji "lsw".
Drugim wyjściem jest wykrywanie zbocza narastającego na wyjściu którym sterujemy i dodanie tego jako kolejny warunek sterowania.

marek1979