Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Satel INTERGA 128 Plus - pełna dokumentacja Techniczna protokołu ETHM-1 PLUS

naiilo 29 Jan 2018 09:29 1137 9
Optex
  • #1
    naiilo
    Level 2  
    Czy ma ktoś dostępną pełną dokumentację techniczną do protokołu ETHM ? Na stronie Satela, dostępna jest tylko wersja "short technical description", co niestety jest niewystarczające na nasze potrzeby.

    Potrzebuje się poprzez protokół dobrać do konkretnej czujki/kontaktronu i móc odpytać o jego stan itp, całą strefa mnie nie satysfakcjonuje.
  • Optex
  • Helpful post
    #2
    dariusz.bembenek
    Stationary Alarms specialist
    Przecież to co zostało podane to pełna dokumentacja - nie ma innej. Tzn. jest tylko dostępne na życzenie opis szyfrowania. Natomiast nie należy sugerować się tym, że jest tam napisane "short". W tym protokole (https://www.satel.pl/pl/download/instrukcje/ethm1_plus_op_int_2015-03-19.pdf) jest możliwość odpytania o stan wejścia.
    Przypuszczam, że pewnie tłumaczenie wprowadziło kolegę w błąd, bo:
    "Zone" w protokole w rzeczywistości oznacza wejście (a nie strefę)
    "Partition" w protokole w rzeczywistości oznacza strefę (a nie partycję).
  • #3
    naiilo
    Level 2  
    Hmmm a mógłby mi Pan powiedzieć jak to zrobić? Z tego co rozumiem do tego służą ramki z Zones w nazwie, tylko jak bym nie wysyłał do urządzenia za każdym razem mi zwraca pustą ramkę, tzn:
    0xFE, 0xFE, bit odpowiedzi - kod ramki, tutaj są zera, CRC (2 bajty), 0xFE, 0x0D.
    Ramka ma 16 bajtów danych, zakładam, że każdy bit jest odpowiedzialny za jedną czujkę. W obecnym czasie mam podpiętą jedną czujkę i jeden kontaktron.
  • Optex
  • #5
    naiilo
    Level 2  
    C#. Ogólnie do pobierania statusu wyjść/czujek służy ramka 0x17 Outputs State. Jednak zawsze dostaje ramkę zwrotną z kodem odpowiedzi 0x08 Other error, co niestety nie jest za bardzo pomocne przy rozwiązaniu problemu.
  • Helpful post
    #6
    montersi.pl

    Level 16  
    naiilo wrote:
    0xFE, 0xFE, bit odpowiedzi - kod ramki, tutaj są zera, CRC (2 bajty), 0xFE, 0x0D.

    Bit a w zasadzie bajt odpowiedzi czyli konkretnie? Nie podał kolega jaki to bajt, a na dole pisze, że:
    naiilo wrote:
    Ogólnie do pobierania statusu wyjść/czujek służy ramka 0x17 Outputs State

    .. z tym, że to już nie dotyczy czujek (wejść), a tylko samych wyjść.

    Ogólnie, wg protokołu:
    Komenda do odpytania o naruszone wejścia to: 0x00. Taką więc komendę należy wysłać, jeżeli chcemy w odpowiedzi otrzymać info, które wejścia są aktualnie naruszone.
    Komendę należy opatrzeć w bajty początku i na końcu sumę kontrolną i bajty kończące, czyli ramka pytająca o stan wejść musi mieć postać:

    Stan wejść:
    Code: text
    Log in, to see the code

    gdzie:
    D7 E2 oznacza sumę kontrolną.


    Odpytanie o stan wyjść centrali wygląda następująco.
    Stan wyjść:
    Code: text
    Log in, to see the code


    W konsekwencji wysłania takich ramek, należy spodziewać się odpowiedzi, która może mieć ogólną postać:
    (dla wejść), np.:
    Code: text
    Log in, to see the code

    co należy czytać jako:
    fefe - początek ramki
    00 - komenda
    01 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - właściwa odpowiedź
    32 B6 - suma kontrolna CRC
    FE 0D - koniec ramki

    Teraz, zaglądając do naszej "właściwej odpowiedzi" ( 01 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ), rozbijamy to na bity:

    01 40 w zapisie szesnastkowym to:
    0000 0001 0100 0000 w zapisie binarnym.

    Każdy bajt (każde 8 bitów) reprezentuje 8 wejść (lub 8 wyjść, jeżeli będzie to komenda 0x17). Najmłodszy bit z prawej, czyli z tej ramki można wywnioskować, że naruszone są wejścia:
    1 i 15, bo
    8 7 6 5 4 3 2 1 | 16 15 14 13 12 11 10 9

    Myślę, że to powinno wiele wyjaśnić. Analogicznie postępuje się z wyjściami.
  • #7
    naiilo
    Level 2  
    Bardzo dziękuję, na prawdę pomocne !
  • #8
    alex2c
    Level 13  
    Witajcie
    W mojej integracji Integry64+ETHM-1 z PLC brakuje możliwości wyzwalania wejścia lub wyjścia w centralce. Pomóżcie proszę ponieważ nie potrafię znaleźć stosownych materiałów. Jaki jest kod rozkazu i reszta ramki?
    Z góry bardzo dziękuję za pomoc

    pozdrawiam!
  • #9
    montersi.pl

    Level 16  
    Pełna dokumentacja dostępna jest na stronie producenta po zalogowaniu, ale też wielokrotnie była wstawiana na forum a także w innych miejscach w sieci. Jeżeli chodzi o protokół i kwestię naruszania wejść, to nie ma takiej bezpośredniej możliwości. Można sprawdzać stan wejść, ale nie je aktywować.
    Natomiast co do wyjść, to oczywiście taka możliwość już istnieje (ich włączanie, wyłączanie, przełączanie oraz sprawdzanie stanu).

    Komenda włączająca wyjście to 0x88, a wyłączająca to 0x89. Do tego tradycyjnie należy podać pozostałe parametry, tj. początek i koniec ramki, dane oraz to co najtrudniejsze - sumę kontrolną (2 bajty).
    Poniżej wrzucam link do miejsca, w którym jest załączony opis protokołu oraz program, który generuje przykładowe ramki dla protokołu integracji:
    https://www.montersi.pl/wsparcie/porada/integ...tor-sumy-kontrolnej-dla-protokolu-integracji/
  • #10
    alex2c
    Level 13  
    Witam
    Bardzo dziękuję za informację i za pdf'a z opisem protokołu. Prefix i sufix + crc to nie problem ;)

    pozdrawiam!