BasicGSM 2 Liczniki i zbocza

Zaczęty przez Elektroinstalacje, Listopad 14, 2017, 15:58:58

Poprzedni wątek - Następny wątek

Elektroinstalacje

Witam!

Dziś zacząłem przygodę z BasicGSM 2. Mam problem z funkcjami. Brakuje mi zboczy narastających oraz opadających w funkcjach.
Proszę opisać mi jak zrobić by np przy wyłączaniu I1 (1->0) móc wyzwolić Trigger markerem M1 innej funkcji.
Poza tym szukam rozwiązania następującego problemu:
Klient ma przycisk chwilowy do zapalania światła przed wejściem. Naciska go, otwiera drzwi, wchodzi do pomieszczenia, zamyka drzwi. Następnie otwiera ponownie drzwi i i wtedy światło gaśnie. Przekaźnik od światła podłączony pod O1. Kontaktron w drzwiach pod I4, przycisk otwierający pod I1.
Próbowałem użyć funkcji licznikowej by liczyć naruszenia kontaktronu do dwóch i wtedy zatrzymać funkcję czasową ale bezskutecznie.
Proszę o prosty przykład funkcji licznikowej zliczającej poszczególne naruszenia wejścia.

Pozdrawiam!

robertm

Zbocza narastające i opadające na grafice w załączniku.

Co do punktu 2 proszę opisać jak ma działać logika.

L1÷L8 liczniki wartości całkowitych, 8 niezależnych liczników

Przykład użycia liczników w nocie aplikacyjnej:
an_optimagsm_licznik_wejsc_wyjsc.pdf
Aplikacja pozwala na zliczanie impulsów na wejściach..
Licznik jest zwiększany o 1  w przypadku naruszenia wejścia I1 oraz zmniejszany o 1 w przypadku naruszenia wejścia I2.
Stan licznika wysyłany jest (raz dziennie o 18:00) na 1-szy numer powiadomienia a następnie jest zerowany

Noty aplikacyjne są dostępne na naszej stronie po zalogowaniu się jako instalator. https://www.ropam.com.pl/pl/aplikacjeo.html


Elektroinstalacje

Dziękuję!
Trochę ciężko się przestawić na ten rodzaj programowania z poprzedniego, jednak powoli się udaje...
Zauważyłem również, że dzięki temu rodzajowi oprogramowania sterownika, jego możliwości wzrosły o co najmniej 200%.

Nurtuje mnie jeszcze kilka spraw...
1. W kreatorze logiki dodając kolejne punkty programu (te z lewej strony z możliwością dodania komentarza) zdarzyło mi się stracić/wyzerować poprzedni punkt...

2. Odnośnie poniższego kodu.. Zauważyłem, że w kreatorze chcąc zmienić przekaźnik czasowy na SET RESET, symulator wyrzuca błąd i zakańcza wykonywanie skryptu.

3. W programie chciałbym użyć zboczy opadających wyjść O2 i O3 do wygenerowania 3 sekundowego impulsu na O4. W symulatorze, gdy uaktywnię ręcznie (zaznaczając ptaszkiem) dane wyjście to działa. Gdy wyjścia same się wyłączają na skutek programu (I1 i I4 dwukrotnie) to już nie chce zadziałać...

int I1;
int I1p;
int I2;
int I3;
int I4;
int I4p;
int L2;
int L4;
int M1;
int M10;
int M2;
int M3;
int M4;
int M5;
int M6;
int M7;
int M7p;
int M8;
int M8p;
int M9;
int O1;
int O2;
int O3;
int O4;
main(){
gbenv();
I1p=geti(1);
I4p=geti(4);
M7p=M7;M8p=M8;O1=geto(1);
O2=geto(2);
O3=geto(3);
O4=geto(4);
L2=2;
L4=0;
M3=0;
O3=0;
while(1){
gbenv();
I1=geti(1);
I2=geti(2);
I3=geti(3);
I4=geti(4);
O1=geto(1);
O2=geto(2);
O3=geto(3);
O4=geto(4);
if((I4p==0&&I4==1)){
L4=L4+1;
};
if(L2==L4){
M1=1;
L4=0;
} else {
M1=0;
};
M4=I4;
M7=O3;
M8=O2;
M3=M9|M10;
if((M8p==1&&M8==0)){
M9=1;
} else {
M9=0;
};
M5=I2|I3|M6;
if((I1p==0&&I1==1)){
L4=0;
};
if((M7p==1&&M7==0)){
M10=1;
} else {
M10=0;
};
M2=pons(0,M1,I1,1);
O2=pons(1,I1,M4,60);
O3=pons(2,O2,M2,960);
M6=tond(3,O3,M4,20);
O4=pons(4,M3,0,3);
O1=pons(5,M5,M1,999);
I1p=I1;I4p=I4;M7p=M7;M8p=M8;
seto(1,O1);
seto(2,O2);
seto(3,O3);
seto(4,O4);
};
};



Z góry dziękuję za sugestie.
Pozdrawiam!

robertm

Być może nie ma Pan zaznaczonej opcji sterowania wyjściem poprzez Logicprocessor

Ewentualnie bardzo prosze o przesłanie całej konfiguracji na e-mail: serwis@ropam.com.pl w celu analizy.


Elektroinstalacje

Opcja sterowania wyjść przez LogicProcessor była zaznaczona.
Wysyłam plik do sprawdzenia...
Pozdrawiam!

robertm

Witam,
Przyczyną jest niedoskonałość kreatora przy generowaniu wykrywania zbocz - pracujemy nad tym.
Na chwilę obecną rozwiązaniem jest zmienienie w skrypcie ręcznie kolejności.
W załącznikach szczegóły

Elektroinstalacje

#6
Witam ponownie.
Dziękuję za pomoc, faktycznie pomogło. Obecnie walczę z NeoGSM IP. Coraz więcej udaje się wycisnąć z LogicProcessora.
Przyszedł mi do głowy kolejny pomysł...

1. Czy jest możliwość zmiany wartości licznika np. L1 za pomocą komendy SMS?
2. Czy jest możliwość odtwarzania dźwięków za pomocą zewnętrznego głośnika za pomocą modułu VSR-2 lub VAR-1. Chodzi o odtworzenie kilku komunikatów w pomieszczeniu po wyzwoleniu odpowiednich wyjść.

Pozdrawiam i z góry dziękuję za odpowiedź.

robertm

Ad 1 -  nie ma takiej możliwości
Ad.2 - Ma Pan do dyspozycji wyjście audio na złączu VSR .
Zewnętrznych syntezerów mowy nie potrzeba ponieważ do NeoGSM-IP można wgrać do 8 komunikatów głosowych.
pliki wav lub amr
Zakładka Ustawienia karty SIM -> Ustawienia połączeń głosowych

Elektroinstalacje

Dziękuję. Kolejne pytania:

1. W przypadku NEOGSM IP czy jest możliwość wykorzystania tego modułu jako routera, który będzie siał wifi z internetem z karty SIM umieszczonej w module?

2. Czy jest możliwość pisania komentarzy w skrypcie logiki? Jeśli tak to jaka jest składnia.

Pozdrawiam

robertm

Ad.1 - nie ma takiej możliwości w NeoGSM-IP

Ad.2. można wstawiać komentarze po użyciu //