Porady

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

Jak niestandardowo wykorzystać RS-232 w manipulatorze INT-KLCD?
Znajdź nas na facebooku

Kontakt

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 czynności:

  • pomiędzy bajtami ramki d1…dn, wykonaj funkcję (XOR) (alternatywa wykluczająca), wynik wpisz do CRC1
  • pomiędzy bajtami ramki d1…crc1, wykonaj dodawanie, wpisz wynik do CRC2 (uwzględnij najmłodszy bajt)

Z powyższego wynika, że dla naszych ustalonych bajtów przeprowadzamy dwie operacje. Wynik pierwszej traktujemy jako jedną ze zmiennych, którą wkładamy do drugiej operacji (dlatego d1…crc1).

Pseudo kod:

CRC1 =  (d1   xor   d2   xor   d3   xor   d4   xor …  dn)

CRC2 =  (d1  +   d2  +  d3  +   d4   + … dn   +   CRC1)   AND   0x00FF

Początek ramki i koniec ramki nie biorą udziału w obliczaniu CRC. Na poniższym filmie pokazano, w jaki sposób można obliczyć CRC korzystając z kalkulatora wbudowanego w system Windows.

Jak obliczyć sumę kontrolną, korzystając z kalkulatora Windows?

 

Inne sposoby na obliczenie sumy kontrolnej

W rzeczywistych projektach, każdorazowe liczenie sumy kontrolnej w kalkulatorze Windows jest zdecydowanie niewygodne. Programista dąży do tego, aby ten proces zautomatyzować. Na potrzeby testów, przygotowałem małą aplikację (Windows) do obliczania sumy kontrolnej. Aplikacja jest dostępna poniżej:

CRC-for-INT-KLCD

Na poniższym filmie pokazano, w jaki sposób należy korzystać z programu do liczenia CRC. Dodam, że podawane bajty w postaci szesnastkowej można podawać jako: FF lub 0xFF lub -FF. Program radzi sobie z białymi znakami. Jeżeli ramka będzie podana w ekstremalnie zły sposób, to program wyrzuci odpowiedni komunikat.

W powyższym filmie pokazano „półautomatyczne” obliczanie ramki, ale w docelowej wersji aplikacji, program posiada wbudowany generator i sam oblicza pełną ramkę. Aplikacja pozwala na obliczenie 2-bajtowej sumy kontrolnej i przedstawia pełną ramkę, którą należy wysłać do portu RS-232 w manipulatorze INT-KLCD. Dodatkowo, program pokazuje ramkę zapisaną w formacie, który jest akceptowany przez program „Terminal”, z którego będziemy zaraz korzystać.

integra crc lcd
Program do szybkiego obliczania sumy kontrolnej CRC dla INT-KLCD. Nowsza wersja dodatkowo posiada wbudowany generator ramek. Wystarczy wybrać funkcję i podać parametry, a program sam zaprojektuje pełną ramkę.

Ok, skoro już wiemy, jak pozyskać 2 bajtową sumę kontrolną dla naszej ramki, to czas na testy.

Czas na TESTY

Narzędzia do przeprowadzenia testów

Do naszych eksperymentów, należy mieć ze sobą następujące komponenty:

  • centrala Integra
  • manipulator INT-KLCD (lub inny do Integry, posiadający złączkę PIN5 z RS-232)
  • konwerter USB-RS
  • kalkulator Windows lub powyższy program (liczenie CRC)
  • program do obsługi portu RS-232, np. Bray Terminal

Program można ściągnąć ze strony:

Terminal  RS-232

Po pobraniu, warto program uruchamiać jako administrator.

Krok 1: Ustalenie ramek do testowania

W ramach ćwiczeń, proponuję następujące ramki: załączenie czuwania strefy 1, wyłączenie czuwania, załączenie wyjście OUT1 i wyłączenie tego wyjścia. Mamy więc do zaprojektowania 4 ramki i wszystkie te ramki już pokazaliśmy w filmie wyżej.

Pod poniższym linkiem można ściągnąć plik tekstowy, a w nim opisywane ramki.

Przykładowe ramki do int-klcd

Powyższe ramki przed każdym bajtem zawierają znak dolara, który jest wymagany do programu „Terminal” (jeżeli chcemy wysyłać ciągi znaków szesnastkowych).

Krok 2: Konfiguracja programu Terminal (baudrate  itp.).

Port RS-232 w INT-KLCD pracuje na następujących parametrach:

  • prędkość 4800
  • 8 bitów danych
  • 1 bit stopu

Są to popularne ustawienia i większość programów bez problemu przyjmie takie parametry. Na poniższym zrzucie widać zaznaczenie właściwych opcji w programie Terminal.

terminal baudrade 4800
W programie należy ustawić właściwe parametry dla portu RS-232 (COM).

Jeszcze jedna ważna sprawa. Aby Integra mogła przyjmować ramki po RS-232 manipulatora, to należy upewnić się, że taka możliwość jest włączona.

lcd rs integraDomyślnie port RS-232 w manipulatorze INT-KLCD jest włączony (opcja: Komunikacja RS). Jeżeli jednak opcja zostanie wyłączona, to nie będzie możliwości skorzystania z tego protokołu integracji jak również z programu GuardX. Dla naszych potrzeb, opcja musi pozostać włączona.

Krok 3: Podłączenie konwertera USB-RS do manipulatora i komputera

W ramach eksperymentu korzystamy z konwertera USB-RS, ale w docelowym projekcie integrator może użyć przewodu skonstruowanego specjalnie na tą okoliczność.

satel int-klcd rs-232 schemat
Alternatywny sposób podłączenia portu RS-232 manipulatora do komputera (zamiast konwertera USB-RS). Źródło: www.satel.pl

Krok 4: Testujemy!

Doszedłem do wniosku, że pokazywanie na screenach takich testów jest mało efektywne, dlatego zapraszam na kolejny seans. Film poniżej.

Wiemy już, w jaki sposób można wysyłać ramki do centrali i jaką mają postać. Teraz czas na integratora. W zależności od rodzaju projektu, integrator może z zewnętrznych systemów lub urządzeń wpuszczać do centrali odpowiednie ramki.

W tej części to wszystko. Mam nadzieję, że powyższe treści pozwoliły rozeznać się w możliwości sterowania pracą centrali Integra. W kolejnej części pokażę sposób na odbieranie danych z centrali Integra.

Centrala w sposób ciągły rozgłasza swój stan na porcie RS-232. Możemy przechwycić ramki zawierające m.in. informacje o czuwaniu stref, informacje o załączonych wyjściach itd. Analiza odbieranych danych w kolejnej części tego cyklu artykułów.

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 – odbieramy dane z centrali (część 3)

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

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 … 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 »