Sterowanie oświetleniem schodów w LogicProcesor

Zaczęty przez sarnas, Kwiecień 11, 2016, 07:03:40

Poprzedni wątek - Następny wątek

sarnas

Witam,

Po rozbudowie systemu o moduł wyjść okazało się, że mam w zapasie 2 wyjścia i chciałbym wykorzystać je do sekwencyjnego zapalania oswietlenia na schodach.
Światła na schodach zgrupowane w 2 obwodach podłączone do O13 i O14.
Chiałbym aby światła zapalały się kolejno od czujek z I10 lub I11
Chiałbym aby po sygnale z I10 zapaliły się światła O13 następnie po 2 seundach O14 i oba obwody zostały wyłączone po 10 minutach.
Po sygnale z I11 powinny zapalić się O14 potem po 2 sek O13 i oba zgasnąć po 10 minutach - czyli w odwrotnej kolejności.
Wprzypadku zadziałania jednej z czujek I10 lub I11 - druga nie jest brana pod uwagę.

Sama logika nie jest skomplikowana - jednak mam kłopot z jej zapiem w LP.

Proszę o pomoc - z góry dziękuję.
Pozdrawiam,
Arek.


sarnas

#1
Czy możliwe jest, że dany typ timera można użyć w skrypcie tylko raz?

RobertH

Każdy  przekaźnik czasowy może być wykorzystany wielokrotnie przy czym każdy przekaźnik musi mieć inne wyjście i ewentualnie suma logiczna w skrypcie (or).
Proszę przesłać plik konfiguracyjny lub umieścić na forum.

sarnas

Witam,
Temat na chwilę zamarł, bo nie miałem dostępu do centralki by zgrać konfigurację.
Problem tkwił nie w zapisie, czy powolnym działaniu winXP, tylko w błędzie logiki.
Ustawiałem wyjście jednym timerem po czym w kolejnej linii programu wyjście to kasowało się nieaktywnym drugim timerem.

Czasem chwila przerwy jest potrzebna - wczoraj niemal od razu znalazłem problem!

Timery ustawiają markery, a ich suma dopiero załącza wyjście - proste jednak człowiek potrafi się czasem zawiesić :D

Dla dwóch czujek i dwóch wyjść skrypt wygląda, jak poniżej:

int I10;
int I16;
int M2;
int M3;
int M4;
int M5;
int O13;
int O14;
main(){
gbenv();
O13=geto(13);
O14=geto(14);
while(1){
gbenv();
I10=geti(10);
I16=geti(16);
O13=geto(13);
O14=geto(14);
O13=M2|M5;
O14=M3|M4;
M2=pons(0,I10,0,600);
M3=tond(1,M2,0,2);
M4=pons(2,I16,0,600);
M5=tond(3,M4,0,2);
seto(13,O13);
seto(14,O14);
};
};

Dokładając kolejne timery tond i markery do sum możemy zapalać kolejno więcej wyjść.

Dla schodów podświetlanych kolejno zapalającymi się 4 obwodami wygląda to naprawdę fajnie - choć czas zwłoki równy 1 sek jest bardziej efektowny.

Temat do zamknięcia.
Pozdrawiam.

zimar

Witam
Dziś podłączyłem czujki Satel Aqua Luna na schodach góra i dół oraz w 2 łazienkach.
Proszę o wskazówki, w jaki sposób skonfigurować wyjścia, aby podświetlanie działało np. 20 sekund po wykryciu ruchu, w czasie, gdy alarm nie jest uzbrojony oraz w porze nocnej???

robertm

Odeślę Pana do not aplikacyjnych na naszym serwerze:
https://www.ropam.com.pl/pl/aplikacjeo.html

plik: an_optimagsm_zalaczanie_oswietlenia.pdf

birkoff

Witam Wszystkich,

Rozpoczynam przygodę z programowaniem OptimaGSM-PS o chciałbym zapytać, jak w praktyce wykonują się opisane w niniejszym wątku instrukcje?
U siebie utworzyłem dużo prostsze skrypty na wzór tych opisanych w manualu do sterowania oświetleniem i przenoszenia stanu wejść na wyjścia.
Mam w obwody z oświetleniem przypodłogowym i każdy z nich chciałbym załączać np. na 5 minut osobnymi czujkami ruchu (Satel Gray Plus w konfiguracji 2EOL/NC).

Moje pytania do działania opisywanego skryptu w praktyce:
1. Czy załączenie przekaźnika na wyjściu na podstawie wyzwolenia wejścia jest 'natychmiastowe'? U mnie po alarmie na czujce ruchu, przekaźnik aktywowany jest mniej więcej z 3 sekundowym opóźnieniem (wykonuje się program pons). Jak robiłem testy z wejściem NC, z podpiętym mikrostykiem sabotażowym, to przerwanie obwodu praktycznie od razu aktywowało wyjście.
2. Czy da się jakoś resetować czas/przedłużać go w programie pons? Chciałbym, aby po wyzwoleniu wejścia i aktywacji wyjścia np. na 5 minut, kolejne wyzwolenia wejścia przez czujkę ruchu ponownie ustawiały czas w przekaźniku czasowym (w pons) na 5 minut lub wydłużały go o 'x' minut.
Obecnie jak pons ma zadane 5 minut i zostanie aktywowany wejściem, to dochodzi do sytuacji, że oświetlenie jest załączone i mimo zgłaszania alarmu na czujce (ktoś chodzi po korytarzu), gaśnie z racji upływu czasu żeby ponownie się aktywować. Chciałbym ten efekt wyeliminować zważywszy że dochodzi do tego opisywane w pkt. 1 3 sekundowe opóźnienie załączenia...

Z góry dziękuję za pomoc.

grzes75

ad.1 U mnie opóźnienie jest ale może 0,3 sek
Myślę, że tyle potrzebuje centralka na obrobienie logiki (a dużo tego mam)

ad.2 Do końca nie jestem pewien czy o coś takiego Ci chodziło (w załączniku).

Oczywiście dostosuj do swoich potrzeb  :)
OptimaGSM-PS v2.3
TPR x2 1.4
EXP-I8
EXP-I8-RN-1
EXP-O8T-RN
RF-4
AP-IP 1.5

birkoff

Wielkie dzięki za szybką odpowiedź i pomoc!
O to mi chodziło. Pozornie proste rozwiązanie, gorzej ze zrozumieniem tej logiki... Przy okazji dostosowywania rozwiązania do własnych potrzeb udało się rozwiązać problem z pkt.1 - opóźnione załączanie, tylko dlatego, że zaproponowany skrypt nie chciał działać w mojej konfiguracji. Okazało się, że wejście brane do sterowania było źle skonfigurowane - 2EOL/NO zamiast 2EOL/NC. Nie było przy tym fałszywych alarmów :)