'Inteligenty' dom ze sterownikiem PLC

 Language:
Szukanie zaawansowane  

Aktualności:

Powrót do strony głównej: www.edom-plc.pl

Strony: 1 [2] 3 4 ... 6   Do dołu

Autor Wątek: Integracja PLC z systemem alarmowym SATEL INTEGRA  (Przeczytany 45170 razy)

admin

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 294
    • Zobacz profil
Odp: Integracja PLC z systemem alarmowym SATEL INTEGRA
« Odpowiedź #15 dnia: Wrzesień 14, 2013, 12:49:52 pm »

Cześć,

cenowo wygląda bardzo atrakcyjnie, bo można znaleźć za 410 PLN przy INT-RS kosztującym 250 PLN.  Co do działania - trzeba potestować...

Co do pytania Witka - skontaktuj się z Satelem.  Gdy pisałem kod ich centrum techniczne było bardzo pomocne.  Jeśli się uda rozwiązać problem, daj znać.

Pozdrawiam,
Zapisane

kamiKAC

  • Jr. Member
  • **
  • Wiadomości: 66
    • Zobacz profil
Odp: Integracja PLC z systemem alarmowym SATEL INTEGRA
« Odpowiedź #16 dnia: Październik 20, 2013, 09:42:05 pm »

Hej,

Nie wiem czy już było ale moduł ETHM-1 ma opcję integracji (od wersji 1.06) po sieci ethernet.
Jest to opisane w tym samym dokumencie co opis komunikacji dla INT-RS.

Raczej nie było. Montowałem ostatnio Integrę u siebie na budowie i się zdziwiłem, bo kupiłem INT-RS (do integracji) i ETHM-1 (do podglądu stanu przez sieć) i po lekturze instrukcji okazało się, że oba dają możliwość integracji. Jak oprogramuję komunikację z Satelem przez Ethernet to moduł RS do WAGO nie będzie mi już potrzebny, podobnie jak INT-RS.
Zapisane

hexal

  • Newbie
  • *
  • Wiadomości: 9
    • Zobacz profil
Odp: Integracja PLC z systemem alarmowym SATEL INTEGRA
« Odpowiedź #17 dnia: Luty 23, 2014, 01:54:10 am »

Jak oprogramuję komunikację z Satelem przez Ethernet to moduł RS do WAGO nie będzie mi już potrzebny, podobnie jak INT-RS.

Witam. Zastanawiałem się nad zakupem INT-RS + moduł RS232 (cenowa masakra kompletu) ale z tego co widzę po wpisach ETHM-1 załatwił by mi komunikację Satel <-> 750-841. Udało się oprogramować komunikację? Słyszałem że Wago czasem bywa oporne jeżeli chodzi o komunikację IP i połączenie RS232 jest stabilniejsze. Jakieś wnioski po przejściu z RS232 na Etherner? Będę wdzięczny.

Pozdrawiam.
Zapisane

kamiKAC

  • Jr. Member
  • **
  • Wiadomości: 66
    • Zobacz profil
Odp: Integracja PLC z systemem alarmowym SATEL INTEGRA
« Odpowiedź #18 dnia: Luty 25, 2014, 11:49:25 pm »

Witam

Ja już mam problem integracji rozwiązany przez ETHM-1, działa całkiem sprawnie. Mój blok funkcyjny zwraca stany czujek i stan uzbrojenia stref, ale łatwo można go rozbudować o inne dane. Jak tylko uporządkuję kod umieszczę go na forum, ale nie mam za wiele czasu, bo finiszujemy z budową - właśnie robimy zabudowę kominka ;-)

Pozdrawiam
Zapisane

kamiKAC

  • Jr. Member
  • **
  • Wiadomości: 66
    • Zobacz profil
Odp: Integracja PLC z systemem alarmowym SATEL INTEGRA
« Odpowiedź #19 dnia: Luty 28, 2014, 09:35:50 pm »

W delegacji miałem chwilę czasu i poprawiłem i uporządkowałem kod.

Blok komunikacji SatelEthernet oparłem o notę dotycząca biblioteki Ethernet.lib (stąd angielskie komentarze) i uzupełniłem o 2 funkcje: SatelCRC obliczającą CRC dla wybranego fragmentu ramki (nie mogłem rozkminić kodu Admina, więc napisałem funkcję po swojemu ;) )oraz IP_ADDRESS "pożyczoną" z noty serwisowej, która zamienia adres IP w znanej nam notacji na postać 32-bitową, której oczekuje biblioteka Ethernet.lib

SatelEthernet (FB)
FUNCTION_BLOCK SatelEthernet
VAR_INPUT
xOpen_Client: BOOL; (* uaktywnij polaczenie do modulu ETHM-1 *)
IP: STRING; (* adres IP  modulu ETHM-1 *)
Port: WORD; (* port integracji modulu ETHM-1 *)
END_VAR
VAR_OUTPUT
czujki: ARRAY [1..128] OF BOOL; (* tablica zawierajaca stany czujek od 1 do 128, TRUE - czujka aktywna *)
strefy: ARRAY [1..32] OF BOOL; (* tablica zawierajaca stany stref od 1 do 32, TRUE - strefa uzbrojona *)
xCLIENT_OPEN: BOOL; (* polaczenie do modulu ETHM-1 aktywne *)
wSOCKET: WORD; (* numer wtyczki *)
END_VAR
VAR
Protocol : SEL_PROTOCOL := IPPROTO_TCP; (* wybrany protokol transmisji - TCP *)
ProtocolType : SEL_TYPE := SOCK_STREAM; (* wybrany typ trasmisji - stream *)
MyEthernetOpen : ETHERNET_CLIENT_OPEN;
MyEthernetClose : ETHERNET_CLIENT_CLOSE;
MyEthernetWrite : ETHERNET_WRITE;
MyEthernetRead : ETHERNET_READ;
Read00 : BOOL := TRUE; (* zadanie wyslania polecenia 00 - odczyt stanu czujek*)
Read0A : BOOL := TRUE; (*zadanie wyslania polecenia 0A - odczyt stanu uzbrojenia alarmu *)
fi: INT; (* pierwszy  indeks ramki *)
fin: INT; (* drugi indeks ramki *)
buf_len: WORD; (* dlugosc danych w buforze *)
znacznik: BYTE := 1; (* znacznik uzywany do operacji bitowych *)
pt: POINTER TO ARRAY [1..1500] OF BYTE; (* wskaznik do tablicy - uzywany przy przkazywaniu tablicy do funkcji *)
frame_rcv: ARRAY [1..1500] OF BYTE; (* tablica danych odebranych *)
frame_snd: ARRAY [1..1500] OF BYTE; (* tablica danych wysylanych *)
Status: WORD := 0; (* status transmisji: 0 - inicjalizacja, 1 - sprawdzenie stosu TCP/IP 4 - inicjalizacja otwarcia polaczenia, 5 - oczekiwanie na otwarcie polaczenia, 10 -wyslanie danych do serwera, 20 - oczekiwanie na odbior danych, 30 - interpretacja otrzymanych danych, 40 - zamykanie polaczenia *)
GetConfig: ETHERNET_GET_NETWORK_CONFIG;
utERROR: ETH_ERROR;
closeState: INT; (* status zamykania polaczenia *)
Timeout: TOF_1 := (PT:=T#2s, IN:=TRUE, RST:= FALSE); (* maksymalny czas oczekiwania na odpowiedz ze sterownika *)

END_VAR


IF xOpen_Client THEN

CASE Status OF
0:(*Initialize functionblocks*)
GetConfig(EN:=FALSE );
GetConfig(EN:=TRUE );
status:=1;
utERROR:=0;
wSocket:=0;
closeState:=0;
xCLIENT_OPEN:=FALSE;


1:(*check ethernet stack*)
GetConfig(EN:=TRUE );
IF GetConfig.ENO THEN
IF GetConfig.IP_ADR<>0 THEN
status:=4;(*stack initialized*)
ELSE
status:=0;(*try again*)
END_IF
END_IF


4:(*open connection*)
MyEthernetRead( EN:= 0, SOCKET:=0 ,  DATA:=frame_rcv );
MyEthernetClose(EN:= 0);
MyEthernetOpen(EN:=0);

MyEthernetOpen(EN:=1 , TYP:=ProtocolType , PROTO:=Protocol , IP_ADR:= IP_ADDRESS(IP), PORT:=Port );
status:=5;

5:(*wait for server response according to client  request to open the connection*)

MyEthernetOpen(EN:=1, TYP:=ProtocolType, PROTO:=Protocol, IP_ADR:= IP_ADDRESS(IP), PORT:=Port );
IF  MyEthernetOpen.ENO = 1 THEN
IF MyEthernetOpen.ERROR = 0 THEN
Status  := 10; (*socket available*)
xCLIENT_OPEN:=TRUE;
wSOCKET :=MyEthernetOpen.socket;
MyEthernetWrite( EN:= 0 , DATA:=frame_snd );
ELSE
Status := 0; (*no socket available, try it again *)
END_IF;
utERROR:=MyEthernetOpen.ERROR;
END_IF


10:(* Write data to server*)

frame_snd[1]:=16#FE;
frame_snd[2]:=16#FE;
IF Read00 THEN
frame_snd[3]:=16#00; (* zapytanie o stan czujek *)
ELSIF Read0A THEN
frame_snd[3]:=16#0A; (* zapytanie o stan uzbrojenia alarmu *)
ELSE
frame_snd[3]:=16#7F; (* zapytanie o zmiane stanu *)
END_IF
pt:=ADR(frame_snd);
frame_snd[4]:=WORD_TO_BYTE(SHR(SatelCRC(pt,3,3),8)); (* obliczenie CRC.H *)
frame_snd[5]:=WORD_TO_BYTE(SatelCRC(pt,3,3)); (* obliczenie CRC.L *)
frame_snd[6]:=16#FE;
frame_snd[7]:=16#0D;
MyEthernetWrite(EN:= 1,SOCKET:= MyEthernetOpen.SOCKET, LEN_IN:=7,DATA:=frame_snd); (* wyslanie ramki *)
IF MyEthernetWrite.eno THEN
IF(MyEthernetWrite.ERROR <>0) THEN
Status:=40; (* Error writing to the socket, close it *)
ELSE
Status:=20; (* Write complete, read data *)
END_IF;
utERROR:=MyEthernetWrite.ERROR;
END_IF
Timeout (IN := FALSE);


20: (* Read data*)

MyEthernetRead( EN:= 1, SOCKET:=MyEthernetOpen.SOCKET ,  DATA:=frame_rcv );
MyEthernetRead( EN:= 0, SOCKET:=0 ,  DATA:=frame_rcv );

Timeout (IN := FALSE);
utERROR:=MyEthernetREAD.ERROR;
IF(MyEthernetRead.ERROR<>0) THEN (* Error reading the socket, close it *)
Status:=40;
ELSIF (MyEthernetRead.LEN_OUT <> 0) THEN  (* Process the data received via the ethernet port *)
Timeout(IN := TRUE);
Status:=30;
ELSIF NOT Timeout.Q THEN
Timeout(IN := TRUE);
Status:=10; (* uplynal czas oczeiwania na odpowiedz, zerowanie licznika i ponowne wyslanie zapytania *)
END_IF

30: (* Process received data *)

buf_len:=MyEthernetRead.LEN_OUT;
FOR fi:=3 TO buf_len-4 DO (* sprawdzenie, czy bajt odebranej ramki nie zawiera kombinacji FE F0; w takim przypadku wyrzuc F0 i skroc odebrane dane *)
IF frame_rcv[fi]=16#FE THEN
IF frame_rcv [fi+1]=16#F0 THEN
FOR fin:=fi+1 TO buf_len-2 DO
frame_rcv[fin]:= frame_rcv[fin+1];
END_FOR
buf_len:=buf_len-1;
END_IF;
END_IF;
END_FOR;
pt:=ADR(frame_rcv); (* przekazanie adresu znacznika danych odebranych - potrzebne do przekazania danych do obliczenia CRC *)
IF frame_rcv[buf_len-3]=WORD_TO_BYTE(SHR(SatelCRC(pt,3,buf_len-4),8)) AND frame_rcv[buf_len-2]=WORD_TO_BYTE(SatelCRC(pt,3,buf_len-4)) THEN (* sprawdzenie poprawnosci CRC otrzymanych danych *)
IF frame_rcv[3]=16#7F THEN (* jesli otrzymano ramke zapytania o zmiane stanu *)
(*Com7FReceived:=Com7FReceived+1;*)
IF (frame_rcv[4] AND znacznik) >0 THEN (* sprawdzenie czy bit 0 pierwszego bajtu danych jest 1, czyli stan czujek ulegl zmianie *)
Read00:=TRUE; (* jesli tak, nastepnym razem zapytaj o stan czujek *)
END_IF;
IF (frame_rcv[5] AND ROL(znacznik,2)) >0 THEN (* sprawdzenie czy bit 2 drugiego bajtu danych jest 1, czyli stan stref ulegl zmianie *)
Read0A:=TRUE; (* jesli tak, nastepnym razem zapytaj o stan stref*)
END_IF;
ELSIF frame_rcv[3] = 16#00 THEN (* jesli otrzymano ramke stanu czujek *)
(*Com00Received:=Com00Received+1;*)
znacznik:=1;
FOR fi:=4 TO buf_len-5 DO (* dla kazdego bajtu danych *)
FOR fin:=0 TO 7 DO (* dla kazdego bitu *)
IF (SHL(znacznik,fin) AND frame_rcv[fi]) >0 THEN (* sprawdz czy bit jest 1 *)
czujki[(fi-4)*8+fin+1]:=TRUE; (* jesli tak stan czujki = TRUE - aktywna *)
ELSE
czujki[(fi-4)*8+fin+1]:=FALSE; (* jesli nie = FALSE - nieaktywna *)
END_IF;
END_FOR;
END_FOR;
(*AktCzujek := TRUE;*)
Read00 := FALSE;; (* nastepnym razem nie pytaj o czujki *)
ELSIF frame_rcv[3] = 16#0A THEN
FOR fi:=4 TO buf_len-5 DO (* dla kazdego bajtu danych *)
FOR fin:=0 TO 7 DO (* dla kazdego bitu *)
IF (SHL(znacznik,fin) AND frame_rcv[fi]) >0 THEN (* sprawdz czy bit jest 1 *)
strefy[(fi-4)*8+fin+1]:=TRUE; (* jesli tak stan strefy = TRUE - uzbrojona *)
ELSE
strefy[(fi-4)*8+fin+1]:=FALSE; (* jesli nie = FALSE - rozbrojona *)
END_IF;
END_FOR;
END_FOR;
Read0A := FALSE; (* nastepnym razem nie pyatj o strefy *)
END_IF;
END_IF;
Status:=10; (* przejdz do wysylania danych *)
MyEthernetWrite( EN:= 0 , DATA:=frame_snd ); (* przygotuj nadajnik do nadawania *)

40: (* Close the client *)

MyEthernetClose(EN:= 1, SOCKET:= MyEthernetOpen.SOCKET);
IF MyEthernetClose.eno THEN
MyEthernetClose(EN:= 0);
xCLIENT_OPEN:=FALSE;
Status := 0; (* Try to open the server again *)
END_IF

END_CASE;
ELSE
CASE CloseState OF
0:
MyEthernetClose(EN:= 0);
MyEthernetClose(EN:= 1, SOCKET:= MyEthernetOpen.SOCKET);
CloseState:=1;
1:
MyEthernetClose(EN:= 1, SOCKET:= MyEthernetOpen.SOCKET);
IF MyEthernetClose.eno THEN
MyEthernetClose(EN:= 0);
CloseState:=2;
END_IF
2:
Status := 0;
utERROR:=0;
xCLIENT_OPEN:=FALSE;
END_CASE
END_IF

SatelCRC (FUN)

FUNCTION SatelCRC : WORD
VAR_INPUT
pt: POINTER TO ARRAY [1..1500] OF BYTE;
start_pos: INT;
end_pos: INT;
END_VAR
VAR
i: INT :=0;
END_VAR


SatelCRC:= 16#147A;
FOR i:=start_pos TO end_pos DO
SatelCRC:= ROL(SatelCRC,1);
SatelCRC:= SatelCRC XOR 16#FFFF;
SatelCRC:= SatelCRC + SHR(SatelCRC,8) + pt^[i];
END_FOR

IP_ADDRESS (FUN) (by WAGO)

FUNCTION IP_ADDRESS : DWORD
VAR_INPUT
IP_ADR : STRING;
END_VAR
VAR
Address : DWORD;
Value : WORD;
DecimalPos : INT;
Rest : STRING;
END_VAR


Address := STRING_TO_WORD(IP_ADR);
IF (Address <= 255) AND (Address >= 0) THEN
DecimalPos := FIND(IP_ADR,'.');
IF DecimalPos <> 0 THEN
Rest := RIGHT(IP_ADR,LEN(IP_ADR) - DecimalPos);
Value := STRING_TO_WORD(Rest);
IF (Value <= 255) AND (Value >= 0) THEN
Address := (Address * 16#0100) + Value;

DecimalPos := FIND(Rest,'.');
IF DecimalPos <> 0 THEN
Rest := RIGHT(IP_ADR,LEN(Rest) - DecimalPos);
Value := STRING_TO_WORD(Rest);
IF (Value <= 255) AND (Value >= 0) THEN
Address := (Address * 16#0100) + Value;

DecimalPos := FIND(Rest,'.');
IF DecimalPos <> 0 THEN
Rest := RIGHT(IP_ADR,LEN(Rest) - DecimalPos);
Value := STRING_TO_WORD(Rest);
IF (Value <= 255) AND (Value >= 0) THEN
Address := (Address * 16#0100) + Value;
ELSE
Address := 0;
END_IF
ELSE
Address := 0;
END_IF
ELSE
Address := 0;
END_IF
ELSE
Address := 0;
END_IF
ELSE
Address := 0;
END_IF
ELSE
Address := 0;
END_IF
ELSE
Address := 0;
END_IF
IP_ADDRESS := Address;


W załączniku "sposób użycia".
Zapisane

Horhe

  • Newbie
  • *
  • Wiadomości: 16
    • Zobacz profil
Odp: Integracja PLC z systemem alarmowym SATEL INTEGRA
« Odpowiedź #20 dnia: Marzec 22, 2014, 02:09:23 pm »

Witam serdecznie.
Jestem tu całkiem nowy, aczkolwiek stronę i forum przeczytałem już kilka razy ;). Jestem pełen uznania dla Admina po pierwsze za dobrą robotę, ale przede wszystkim za udostępnienie tego światu. To dzięki tej stronie podjąłem decyzję o rozpoczęciu przygody z automatyką domową. Dziękuję wszystkim chcącym się dzielić wiedzą.

Tyle słowem wstępu. Bardzo interesuje mnie temat tego wątku, a szczególnie ostatnie rozwiązanie podane przez kolegę @kamiKAC. Niestety podany kod nie działa. Błąd znajduje się w bloku funkcyjnym SatelEthernet (FB) w części deklaracji zmiennych, a dokładnie w ostatniej linijce :

"Timeout:   TOF_1 := (PT:=T#2s, IN:=TRUE, RST:= FALSE); (* maksymalny czas oczekiwania na odpowiedz ze sterownika *)"

Myślę, że raczej powinno być tak:

"Timeout:   TOF := (PT:=T#2s, IN:=TRUE); (* maksymalny czas oczekiwania na odpowiedz ze sterownika *)"

Po tej zmianie nie ma już błędów kompilacji, natomiast komunikacja z Satelem  nie zachodzi. Jest połączenie z centralą, ale zmienna Status zatrzymuje się na wartości 20 - oczekiwanie na odbiór danych. Wychodzi na to, że Satel nic nie wysyła. Walczę od wczoraj ale nie udaje mi się znaleźć rozwiązania.

« Ostatnia zmiana: Marzec 22, 2014, 02:11:30 pm wysłana przez Horhe »
Zapisane

admin

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 294
    • Zobacz profil
Odp: Integracja PLC z systemem alarmowym SATEL INTEGRA
« Odpowiedź #21 dnia: Marzec 22, 2014, 03:53:41 pm »

Cześć,

dzięki za dobre słowa :)  TOF_1 pachnie mi funkcją z biblioteki OSCAT i... zamiana jej na TOF nie może działać :)  Tak więc chyba trzeba przymierzyć się do dodania oscat_basic_xxx.lib do programu. 

Pozdrawiam,

Zapisane

Horhe

  • Newbie
  • *
  • Wiadomości: 16
    • Zobacz profil
Odp: Integracja PLC z systemem alarmowym SATEL INTEGRA
« Odpowiedź #22 dnia: Marzec 22, 2014, 06:40:15 pm »

Oczywiście masz rację ;). Po dodaniu biblioteki oscat_basic_333.lib, program kompiluje się już bezbłędnie, jednak różnicy w działaniu nie widzę. Co dwie sekundy zgodnie z Timeoutem zmienna Status zmienia się przez jeden cykl na  10 - "wysyłanie danych do serwera", po czym przez dwie sekundy przyjmuje wartość 20 - "oczekiwanie na odbiór danych". I tak w kółko.
Widać, że Satel nie odpowiada. Adres IP i port jest ustawiony poprawnie, zresztą zmienna xCLIENT_OPEN jest True czyli połączenie poprawne. Nie mam pomysłów co z tym zrobić.
« Ostatnia zmiana: Marzec 26, 2014, 03:06:27 pm wysłana przez admin »
Zapisane

kamiKAC

  • Jr. Member
  • **
  • Wiadomości: 66
    • Zobacz profil
Odp: Integracja PLC z systemem alarmowym SATEL INTEGRA
« Odpowiedź #23 dnia: Marzec 28, 2014, 10:40:04 pm »

Oczywiście masz rację ;). Po dodaniu biblioteki oscat_basic_333.lib, program kompiluje się już bezbłędnie, jednak różnicy w działaniu nie widzę. Co dwie sekundy zgodnie z Timeoutem zmienna Status zmienia się przez jeden cykl na  10 - "wysyłanie danych do serwera", po czym przez dwie sekundy przyjmuje wartość 20 - "oczekiwanie na odbiór danych". I tak w kółko.
Widać, że Satel nie odpowiada. Adres IP i port jest ustawiony poprawnie, zresztą zmienna xCLIENT_OPEN jest True czyli połączenie poprawne. Nie mam pomysłów co z tym zrobić.

A nie masz czasem włączonego kodowania integracji w module ETHM-1?

Może nie ten nr portu? Na pewno włączyłeś integrację i łączysz się na port integracji?

U mnie w sterowniku działa poprawnie, więc mogłem tylko strzelićü byka przy kopiowaniu kodu na forum.

Jeśli się łączy to jest otwarty port, ale jak nie ma odpowiedzi to albo nie ten port albo błędna ramka.  A właściwie jaki masz sterownik?

Pozdrawiam
Zapisane

Horhe

  • Newbie
  • *
  • Wiadomości: 16
    • Zobacz profil
Odp: Integracja PLC z systemem alarmowym SATEL INTEGRA
« Odpowiedź #24 dnia: Marzec 31, 2014, 08:23:54 am »

Mój sterownik to 750-880.

Cytuj
A nie masz czasem włączonego kodowania integracji w module ETHM-1?
Nie jestem tego pewien, wieczorem to sprawdzę. Mam nadzieję że to jest to, bo innych pomysłów brak.

Integracja w ETHM-1 jest włączona na 100% i port też jest poprawny.
Zapisane

Horhe

  • Newbie
  • *
  • Wiadomości: 16
    • Zobacz profil
Odp: Integracja PLC z systemem alarmowym SATEL INTEGRA
« Odpowiedź #25 dnia: Marzec 31, 2014, 06:16:23 pm »

DZIAŁA!!! :D:D:D

Miałeś rację, miałem włączone kodowanie integracji w ETHM-1, po wyłączeniu śmiga aż miło :). Stokrotne dzięki :).

A przy okazji, Waszym zdaniem komunikacja przez Ethernet jest w miarę bezpieczna? Od razu zaznaczam, że nie mam nic konkretnego na myśli ;), i chodzi mi ogólnie o możliwość wejścia z zewnątrz i poprzełączania światełek. Jaka jest szansa na takie włamanie, ewentualnie co zrobić żeby się przed tym zabezpieczyć? Wybaczcie mi lamerskie pytanie :).
Zapisane

kamiKAC

  • Jr. Member
  • **
  • Wiadomości: 66
    • Zobacz profil
Odp: Integracja PLC z systemem alarmowym SATEL INTEGRA
« Odpowiedź #26 dnia: Kwiecień 01, 2014, 09:26:49 pm »

Nie znam algorytmu kodowania Satela, trzebaby napisać do Satela, może udostępnią algorytm.

Co do zabezpieczenia, to sam się nad tym zastanawiam. Nie wiem, czy sterownik posiada jakiekolwiek zabezpieczenia (typu zabezpieczenie hasłem, czy kodowanie). Myślę, że można wrzucić wifi w domu do oddzielnej podsieci, a dostęp do sieci przewodowej, gdzie podłączony sterownik zrobić przez VPN (PPtP lub OpenVPN). Rozwiązałoby to 2 kwestie bezpieczeństwa: dostęp z wifi i z internetu do sterownika.

Co do alarmu, to dopóki nie będzie dostępu do portu integracji z wifi lub nie damy możliwości uzbrojenia/rozbrojenia z poziomu integracji to jesteśmy bezpieczni.

Może doradzi ktoś, kto już temat przerabiał?

Pozdrawiam
Zapisane

gojac

  • Newbie
  • *
  • Wiadomości: 16
    • Zobacz profil
Odp: Integracja PLC z systemem alarmowym SATEL INTEGRA
« Odpowiedź #27 dnia: Kwiecień 02, 2014, 07:29:06 am »

Zapisane

kamiKAC

  • Jr. Member
  • **
  • Wiadomości: 66
    • Zobacz profil
Odp: Integracja PLC z systemem alarmowym SATEL INTEGRA
« Odpowiedź #28 dnia: Kwiecień 06, 2014, 03:54:29 pm »

Implementacja AES na sterowniku? Brzmi ciekawie, niestety nie mam aktualnie na to czasu, ale w przyszłości - kto wie?

Co do zabezpieczenia dostępu do sterownika. Przypuszczam, że obsługa sterowania przez edomApp działa przez Modbus/TCP, który nie posiada żadnych mechanizmów zabezpieczających przed niepowołanym dostępem. Włączanie sterownika do tej samej podsieci, w której mamy WiFi jest potencjalnie bardzo niebezpieczne i może się skończyć przejęciem kontroli nad naszym sterownikiem przez osoby niepowołane.
Najlepszym wyjściem byłby VPN lub przekierowanie portu na żądanie po wcześniejszym uwierzytelnieniu użytkownika np w routerze.

Co do portu integracji w Satelu, to jestem nieco spokojniejszy, bo operacje uzbrojenia/rozbrojenia wymagają podania kodu.

Pozdrawiam
Zapisane

krwi

  • Newbie
  • *
  • Wiadomości: 38
    • Zobacz profil
Odp: Integracja PLC z systemem alarmowym SATEL INTEGRA
« Odpowiedź #29 dnia: Wrzesień 14, 2014, 09:21:32 am »

kamiKAC dzięki za zamieszczenie kodu, u mnie działa bardzo dobrze. Natomiast mam pytanie czy wiesz jak rozbudować go o pobieranie informacji o aktywnym alarmie?

Pozdrawiam.
Zapisane
Strony: 1 [2] 3 4 ... 6   Do góry