BasicGSM - aplikacja do sterowania pompą wody deszczowej

Zaczęty przez mwolf, Październik 21, 2022, 13:50:15

Poprzedni wątek - Następny wątek

mwolf

Dzień dobry
Męczę się już dość długo ale ile bym nie "symulował" działania aplikacji i tak nie spełnia ona swojej funkcjonalności - może ktoś podpowie jak wykonać ją poprawnie.
Założeniem jest sterowanie pompą deszczową w zależności od stanu pływaka - sucho bieg w określonych godzinach pracy z opóźnieniem wyłączenia 30 sekundowym.
Legenda do skryptu:
- I1 - pływak
- O2 - wyjście załączające pompę
- tk2 - timer z zakresem godzinowym w którym pompa ma pracować
Skrypt który załączą i wyłączą pompę ale od razu po osiągnięciu stanu I1=0

int I1;
int O1;
int tk2;
main(){
gbenv();
O1=geto(1);
while(1){
gbenv();
I1=geti(1);
O1=geto(1);
if(I1>=1){
O1=I1&tk2;
};
seto(1,O1);
};
};   

Ma ktoś pomysł żeby opóźnić wyłączenie pompy po osiągnięciu stanu I1=0 o 30 sekund?
Nadmienię że próbowałem do całości dorzucić funkcję przekaźnika czasowego tofd ale w symulacji nie jest to funkcjonalne.
Przykład jaki stosuje w funkcji przekaźnika:

int I1;
int M1;
int O2;
int tk2;
main(){
gbenv();
O1=geto(1);
while(1){
gbenv();
I1=geti(1);
O2=geto(2);
if(I1>=1){
M1=I1&tk2;
};
O2=tofd(0,M1,I1,30);
seto(2,O2);
};
};
   
Prośba o pomoc jeśli ktoś potrafi.
Z góry Dziękuję.