Porady

Własna aplikacja do INTEGRY – odbieramy dane z centrali (część 3)

Artykuł: Własna aplikacja do INTEGRY – odbieramy dane z centrali (część 3)
Montersi.pl - sklep internetowy dla Instalatora

Kontakt

Do tej pory zajmowaliśmy się nadawaniem danych do centrali, korzystając ze złącza PIN5 w LCD. I to zadziałało (patrz część 2 serii). Jednak RS-232 to nie tylko nadawanie, ale też odbieranie danych. W ramach złącza PIN5 również zostało to uwzględnione.

Trzecia część tej serii artykułów ma za zadanie wyjaśnić, co oznaczają poszczególne bajty odbierane z centrali. Nie będziemy jednak analizować całości, a tylko ramki odpowiedzialne za załączenia i wyłączenia wyjść centrali oraz ramki dotyczące informacji o czuwających strefach.

Przygotujmy oprogramowanie.

Krok 1: Konfiguracja programu Terminal do odbierania danych z portu RS-232 manipulatora

Wstępna konfiguracja programu jest identyczna jak w poprzednim artykule. Tzn. ta sama prędkość 4800, bity itd. Czyli, w zapisie skróconym:

  • 4800/8-N-1

Dodatkowo, należy włączyć sygnał RTS (Request To Send) w terminalu. Jest to tzw. „żądanie wysyłania„. Tym sposobem mówimy do manipulatora, że może wysyłać dane.

rts terminal satel rs-232
Włączenie sygnału RTS – po zaznaczeniu przycisk powinien być podświetlony na zielono.

Krok 2: Przegląd ramek, które manipulator jest w stanie wysyłać

W dokumentacji protokołu (patrz część 1) widzimy tabelę, w której dostępny jest spis wszystkich informacji, które jest w stanie wysyłać manipulator. Poniżej fragment tej tabeli.

rs-232 satel int-klcd
Fragment tabeli z protokołu integracji RS-232 INT-KLCD.

Zgodnie z dokumentacją, manipulator jest w stanie m.in. przesyłać stan wejść, stan stref, stan wyjść itp. W ramach przykładu, nas będzie interesował stan wyjść. Będziemy mogli dowiedzieć się, które z 64 wyjść centrali (Integra 64) są załączone.

Komenda informująca o stanie wyjść, dla INTEGRY 64 ma postać: 0x1C. Dokładając początek (zgodnie z dokumentacją) i całą resztę za komendą, potencjalna ramka ma wzór:

Wzór ramki zawierającej stan wyjść:
FE 1C 00 | 00 00 00 00    00 00 00 00 | CRC

Z powyższego wynika, że z ciągu danych, które odbieramy z manipulatora, zawsze dane dotyczące wyjść będą zaczynać się od sekwencji FE 1C 00. Następnie będzie 8 bajtów danych (tutaj zapisane jako „00”), na których będziemy mogli odczytać stan wyjść centrali (8 bajtów, czyli 64 bity = każde wyjście widoczne jako jeden bit). Na koniec suma kontrolna, która polega na dodaniu wszystkich danych (od FE..) i po sumowaniu uwzględnienie tylko najmłodszego bajta (z prawej).

CRC = byte(FE + komenda + dane);

Wiemy już, jakiej ramki poszukujemy w gąszczu informacji, jakie wysyła do nas manipulator. W kolejnym kroku pokażę, jak można „manualnie” odszukać ramkę.

Krok 3: Nasłuchujemy transmisję RS-232 w poszukiwaniu stanu wyjść centrali

Pokazywanie na zrzutach jest mało efektywne, dlatego po raz kolejny zapraszam na krótki seans filmowy.

Na zakończenie: jak jest liczona suma kontrolna dla odbieranych ramek?

Nasza ramka z danymi o wyjściach to np.:

FE 1C 00 0C C0 00 00 00 00 00 00 E6

Suma kontrolna wynosi 0xE6 (widoczna w ramce). Jak centrala ją oblicza? Wystarczy zsumować wszystkie dane zaczynając od początku, tj. „FE”. Sumowanie możemy przeprowadzić np. w kalkulatorze Windows (przełączony do trybu: programista). Jeżeli wynik wyjdzie większy niż 1 bajt, to należy „obciąć” go do najmłodszego bajta. Pokażemy to na przykładzie powyższej ramki:

FE + 1C + 00 + 0C + C0 + 00 + 00 + 00 + 00 + 00 + 00 = 1E6

Wynik „1E6” wykracza poza jeden bajt, dlatego bierzemy tylko jeden bajt od prawej, tj „E6”. I to się zgadza. W otrzymanej ramce faktycznie widnieje suma kontrolna o wartości E6.

Po co jest ta suma kontrolna?

  • dla sprawdzenia, czy transmisja przebiegła poprawnie
  • dla odróżnienia naszej ramki od innych ramek, które mogą zawierać podobne dane, a nie są ramką zawierającą stan wyjść

W docelowej aplikacji, programista może napisać kod, który weryfikuje ramkę na podstawie jej sumy kontrolnej.

Tym akcentem kończymy trzecią część serii artykułów na temat protokołu integracji, który dostępny jest w manipulatorach LCD INTEGRA, posiadających złącze PIN5. W miarę możliwości, powstaną kolejne części pokazujące przykładowe zastosowania tego protokołu. Jeżeli będzie taka potrzeba, przygotujemy opracowanie kolejnego protokołu integracji, który dostępny jest m.in. w module ETHM-1 oraz INT-RS. Z tego protokołu korzysta m.in. automatyka Fibaro i kontrola dostępu Roger.

Jeśli ten artykuł: „Jak niestandardowo wykorzystać RS-232 w manipulatorze INT-KLCD” był dla Ciebie pomocny udostępnij go innym użytkownikom.

Oceń poradę:

Powiązane produkty

Manipulator INT-KLCD-BL

INT-KLCD-BL Manipulator LCD

  • Rodzaj manipulatora: LCD
  • Kolor podświetlenia: niebieski
  • Współpraca z centralami: INTEGRA
  • Ilość wejść: 2
  • Klasa środowiskowa: II
  • Temperatura pracy: -10…+55 °C
  • Certyfikat EN50131: Grade 3
  • Napięcie zasilania (± 15%): 12 V
  • Pobór prądu (gotowość): 17 mA
  • Max pobór prądu: 101 mA
  • Wymiary: 140 x 126 x 26 mm
Zobacz w sklepie

Powiązane porady

Własna aplikacja do INTEGRY – analiza protokołu RS-232 w LCD (część 1)

Jak niestandardowo wykorzystać RS-232 w manipulatorze INT-KLCD?
Ocena:

Ta seria artykułów będzie dotyczyć budowy aplikacji (Windows), która ma za zadanie zarządzać pracą centrali Integra. Wspólnie zajrzymy do uproszczonego protokołu integracji, który dostępny jest w złączu PIN5 manipulatorów INT-KLCD. Artykuł ma tylko zasygnalizować możliwość integracji i stanowi bazę do dalszych, własnych działań. Znajomość zagadnień prezentowanych w artykule wykracza poza zakres, który instalator znać powinien. … Czytaj więcej »

Własna aplikacja do INTEGRY – liczymy sumę kontrolną CRC i testujemy (część 2)

Jak niestandardowo wykorzystać RS-232 w manipulatorze INT-KLCD?
Ocena:

Zgodnie z wcześniejszą zapowiedzią, w tej części będziemy wysyłać testowe ramki do manipulatora i będziemy sprawdzać, czy to działa. Zanim jednak to przetestujemy, musimy nauczyć się obliczać sumę kontrolną CRC. Jaki jest wzór na obliczenie sumy kontrolnej dla INT-KLCD? W dokumentacji protokołu można znaleźć opis, jak należy tego dokonać. Obliczenie sprowadza się do wykonania następujących … Czytaj więcej »

Integracja centrali INTEGRA z zewnętrznym programem – protokół integracji ETHM-1

Integracja centrali INTEGRA z zewnętrznym programem
Ocena:

Moduł ethernetowy ETHM-1 Plus oprócz standardowych funkcji i możliwości, udostępnia specjalny protokół integracyjny. W naszych zasobach dostępny jest również artykuł, który zawiera program do liczenia sumy kontrolnej. Polecamy to narzędzie jako pomocnik przy pisaniu własnej aplikacji. Link do wspomnianego programu dostępny jest na dole tego artykułu. ETHM-1 plus – ethernetowy moduł komunikacyjny Protokół integracyjny został stworzony … Czytaj więcej »