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.

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.

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:
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).
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.:
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.
Dodaj komentarz
Możliwość komentowania dostępna jest dla zalogowanych użytkowników