Which controller do you have?

We'll show what works with it on every page.

My smart home

Help me choose

KB-104 - Z-Wave Parametry urządzenia - szesnastkowe, dziesiętne, binarne, bity, bajty... co?!?!

Podczas lektury instrukcji obsługi urządzeń lub naszych przewodników mogą Państwo napotkać mniej znane pojęcia, takie jak system dwójkowy (binarny), szesnastkowy (heksadecymalny), bit, bajt itp.

Oto krótki przewodnik po najczęściej stosowanych terminach, który ułatwi precyzyjną komunikację.

Wprowadzenie do liczb binarnych, dziesiętnych i szesnastkowych

Choć na początku może to brzmieć skomplikowanie, systemy dwójkowy, dziesiętny i szesnastkowy to w istocie po prostu różne sposoby zapisu wartości liczbowych.

Poniżej przedstawiono krótkie podsumowanie różnic między nimi.

System dziesiętny (decymalny)

System dziesiętny jest obecnie standardem powszechnie stosowanym na co dzień.

Określa się go mianem systemu o „podstawie 10”, ponieważ wykorzystuje 10 symboli: od 0 do 9.

Po osiągnięciu cyfry 9 pula symboli zostaje wyczerpana, dlatego dodaje się 1 cyfrę po lewej stronie i ponownie rozpoczyna liczenie od 0.

System dwójkowy (binarny)

Liczba binarna składa się wyłącznie z cyfr 0 i 1. Z tego względu jest to system o „podstawie 2”.

Oznacza to, że pojedyncza cyfra binarna może reprezentować zaledwie 2 różne wartości zamiast standardowych 10 cyfr.

Ogólna zasada liczenia w systemie binarnym jest taka sama jak w systemie dziesiętnym: zlicza się wartości do wartości tuż przed osiągnięciem „podstawy”, po czym następuje powrót do 0, z uprzednim dodaniem 1 do pozycji po lewej stronie.


Binarny: 0 1 10 11 100 101 110 111 1000 1001 1010
Dziesiętny: 0 1 2 3 4 5 6 7 8 9 10

System szesnastkowy (heksadecymalny)

Liczby szesnastkowe stanowią interesujące rozwiązanie, ponieważ opierają się na systemie o „podstawie 16”.

Do wartości 9 zapis jest identyczny jak w systemie dziesiętnym, natomiast liczby dziesiętne od 10 do 15 zastąpiono literami („A”, „B”, „C”, „D”, „E”, „F”).

Pojedyncza cyfra szesnastkowa może reprezentować 16 różnych wartości, zamiast tradycyjnych 10 cyfr.

Podobnie jak wcześniej, po wyczerpaniu dostępnych symboli (po osiągnięciu litery F) liczenie zaczyna się ponownie od 0, z dopisaniem 1 na kolejnej pozycji po lewej stronie.


Szesnastkowy: 0 1 2 3 4 5 6 7 8 9 A B C D E F
Dziesiętny: 0 1 2 3 4 5 6 7 8 910 11 12 13 14 15

Zobacz to w praktyce

Wybierz jeden z poniższych systemów i zobacz, jak liczy:

Konwersja między systemami

Jeśli pasjonuje Cię matematyka, możesz dowiedzieć się, jak konwertować liczby między różnymi systemami liczbowymi.

Najprostszym sposobem jest jednak skorzystanie z internetowego narzędzia Number Converter.

Bity a bajty

Bity i bajty są często mylone, lecz w rzeczywistości istnieje między nimi znacząca różnica.

Bit to najmniejsza jednostka informacji, którą można zapisać lub przetwarzać w komputerze. Zapisany w postaci liczbowej bit może przyjmować wartość „1” (jeden) lub „0” (zero).

Z kolei bajt jest znacznie większy – zawiera osiem bitów. Z matematycznego punktu widzenia n bitów daje 2 ^ n kombinacji, więc bajt może pomieścić liczbę z zakresu od 0 do 255.


bit 0 1 2 3 4 5 6 7
  2 ^ 0 2 ^ 1 2 ^ 2 2 ^ 3 2 ^ 4 2 ^ 5 2 ^ 6 2 ^ 7
wartość 0 2 4 8 16 32 64 128

Warto pamiętać, że skrót dla bajtów zapisuje się wielką literą B, natomiast dla bitów – małą literą b. Z tego względu Mbps oznacza megabity na sekundę, a MBps – megabajty na sekundę.

Podsumowanie

Możesz się zastanawiać, dlaczego omawialiśmy bity, bajty i te wszystkie różne systemy liczbowe.

Podczas dodawania parametru urządzenia należy wybrać jego rozmiar danych (Data Size). Uwzględniając 1, 2 lub 4 bajty oraz format Hex lub Dec, do wyboru jest 6 opcji.

Kuszące może być wybranie pierwszej dostępnej opcji i przejście dalej, jednak nieprawidłowy parametr Data Size nie zadziała w ogóle, a w niektórych przypadkach może uniemożliwić prawidłowe funkcjonowanie samego urządzenia.

Rozmiar danych

Pierwszą rzeczą, o której należy wiedzieć, jest to, że o ile nie określono inaczej, wszystkie parametry mają format 1 byte decimal (1-bajtowy dziesiętny).

Istnieją jednak urządzenia wymagające innych rozmiarów danych. Z tego względu niezwykle ważne jest dokładne zapoznanie się z instrukcją obsługi urządzenia przed wprowadzeniem jakichkolwiek zmian.

Dokładamy wszelkich starań, aby na wszystkich stronach produktów znajdowały się aktualne instrukcje.

W rzadkich przypadkach, gdy brakuje instrukcji lub zawarte w niej informacje nie są wystarczająco jasne, sugerujemy wyszukanie urządzenia w bazie danych pepper1 Z-wave lub na stronie Z-Wave Alliance.

Wartości ujemne

Powszechną praktyką jest używanie znaku minus do oznaczania ujemnych liczb całkowitych. Komputery mogą jednak przechowywać informacje wyłącznie w postaci bitów, które – jak wiemy – mogą przyjmować jedynie wartości zero lub jeden. Dlatego zapis ujemnych liczb całkowitych w parametrze wymaga innego podejścia.

Nie wchodząc w szczegóły, jednym ze sposobów przechowywania wartości ujemnych jest zastosowanie konwencji kodu uzupełnień do dwóch (U2), w której wartości ujemne są reprezentowane przez uzupełnienie do dwóch ich własnej wartości. Oznacza to zasadniczo, że liczby posiadające „1” na najbardziej znaczącym bicie (po lewej stronie) są ujemne.

Aby ustawić wartości ujemne w parametrze, należy wziąć wartość maksymalną (w zależności od rozmiaru parametru, tj. 1, 2 lub 4 bajty) i odjąć pożądaną wartość.

Przykłady

Wszystko łatwiej zrozumieć na przykładzie, przyjrzyjmy się więc kilku popularnym urządzeniom, które wymagają wykonania prostych operacji bitowych przed ustawieniem parametrów.

Philio Multisensor GEN5

Wystarczy rzut oka na instrukcję Philio Multisensor, aby natychmiast zauważyć, że większość wartości parametrów nie jest standardowym formatem 1 byte decimal.

Weźmy jako przykład Parametr 7. Uwaga: w tym przykładzie użyjemy parametrów PST02-1A.

Musimy włączyć Binary Sensor Report Command Class i sprawić, aby urządzenie zgłaszało stan „clear” po wykryciu ruchu, co pozwoli na poprawną pracę czujników ruchu i kontaktronowych w większości kontrolerów Z-Wave.

Aby to zrobić, należy aktywować bit 1 oraz bit 4 i dodać je do aktywowanego już domyślnie bitu 2.

Przekłada się to na działanie: (2 ^ 1) + (2 ^ 2) + (2 ^ 4) = 22

Nasz parametr 1 byte decimal powinien zatem zostać ustawiony na wartość 22.

Aeon Clamp Meter

Parametry w formacie 4 byte decimal stosowane w urządzeniu Aeon Clamp Meter mogą być bardziej złożone w porównaniu z parametrami 1-bajtowymi.

Jako przykład załóżmy, że chcemy skonfigurować to urządzenie w wersji jednoklamrowej (Single Clamp). Jak opisano tutaj, Parametr 103 powinien mieć wartość 2304 – dlaczego akurat tyle?

Zaglądając do instrukcji, na stronie 7 znajdziemy tabelę przedstawiającą wszystkie możliwe opcje dla wartości od Value 1 do 4.

Wynika z niej również, że Value 1 to MSB (najbardziej znaczący bit / bajt), a Value 4 to LSB (najmniej znaczący bit / bajt).

Mając tę wiedzę, możemy zastosować tę samą logikę, co poprzednio, zaczynając od bitu LSB (Value 4). Wygląda to następująco:


Value 1 (MSB)
Bit7 6 5 4 3 2 1 0
Wartość 2147483648 1073741824 536870912 268435456 134217728 67108864 33554432 16777216
Wartość 2
Bit 7 6 5 4 3 2 1 0
Wartość 8388608 4194304 2097152 1048576 524288 262144 131072 65536
Wartość 3
Bit 7 6 5 4 3 2 1 0
Wartość 32768 16384 8192 4096 2048 1024 512 256
Wartość 4 (LSB)
Bit 7 6 5 4 3 2 1 0
Wartość 128 64 32 16 8 4 2 1

Aby otrzymywać raporty dotyczące Watt oraz kWh, musimy włączyć bit 0 i bit 3 w Value 3.

Daje nam to: 2048 + 256 = 2304

Zatem nasz 4-bajtowy parametr dziesiętny powinien być ustawiony na 2304.

Aeon Siren GEN5

2-bajtowy dziesiętny Parameter 37 w urządzeniu Aeon Siren GEN5 może, jak wiemy, przechowywać dwa bajty lub 16 bitów.

Pozwala to na ustawienie różnych dźwięków oraz regulację głośności w ramach jednego parametru.

Patrząc do instrukcji, widzimy, że Value 1 ma 6 możliwych ustawień, natomiast Value 2 ma 4. Przekłada się to na:

Value 1 (MSB)
Sound 5 Sound 4 Sound 3 Sound 2 Sound 1
Bit 4 3 2 1 0
Value 4096 2048 1024 512 256
Value 2 (LSB)
Volume 3 Volume 2 Volume 1
Bit 2 1 0
Value 4 2 1

Firma Aeon zastosowała jednak w tym parametrze inną logikę, co może nieco utrudnić zrozumienie zagadnienia. Zgodnie z instrukcją mamy:

  • Value 1
    • 0 – brak zmiany bieżącego dźwięku syreny
    • 1 – wybrany dźwięk syreny 1
    • 2 – wybrany dźwięk syreny 2
    • 3 – wybrany dźwięk syreny 3
    • 4 – wybrany dźwięk syreny 4
    • 5 – wybrany dźwięk syreny 5
  • Value 2
    • 0 – brak zmiany bieżącej głośności
    • 1 – ustawienie głośności na 88 dB
    • 2 – ustawienie głośności na 100 dB
    • 3 – ustawienie głośności na 105 dB

Są to wartości dziesiętne, lecz są one stosowane z uwzględnieniem ich rozmieszczenia w ramach wartości 2-bajtowej.

Ponieważ wartości dźwięku i głośności są wprowadzane jako pojedynczy parametr 2-bajtowy, musimy odpowiednio przekonwertować układy bitów.

Najłatwiej to zrozumieć na przykładzie:

  • Spójrzmy na dźwięk syreny Sound 4; według instrukcji jego wartość wynosi 4
  • Teraz spójrz na powyższy wzorzec wartości 8-bitowej – który „bit” należy zaznaczyć, aby uzyskać wartość 4? Odpowiedź to bit 2
  • A jaką wartość ma bit 2 w drugim bajcie wartości 2-bajtowej? Odpowiedź to 1024

Jeśli brzmi to skomplikowanie – rzeczywiście może takie być :-)

Przyjrzyjmy się drugiemu przykładowi:

  • Spójrz na Sound 3 syreny o wartości 3
  • Który „bit” należy zaznaczyć, aby uzyskać wartość 3? Należy aktywować bit 0 i 1 (1 + 2)
  • Jaka jest suma wartości bitu 0 i 1 w standardowym wzorcu wartości 8-bitowej? Odpowiedź to 768 (512 + 256)

Uwaga: pełną listę wartości dziesiętnych do zastosowania z Aeon Siren zawiera ten przewodnik

Fibaro Swipe

Parametry 31-36 umożliwiają użytkownikowi tworzenie sekwencji dwóch lub trzech gestów w celu rozszerzenia liczby dostępnych akcji.

Są to 2-bajtowe parametry dziesiętne, w których każdy gest zajmuje 4 bity.

Każdy gest można zidentyfikować następująco:

Wartość 4 bity Gest
0 0000 pusty
1 0001 ^
2 0010 v
3 0011 <
4 0100 >

Wzorzec bitowy sekwencji można zinterpretować następująco:

Wartość 1 (MSB) – zarezerwowane
Bit 3 2 1 0
Wartość 32768 16384 8192 4096
Wartość 2 – pierwszy gest
Bit 3 2 1 0
Wartość 20481024 512 256
Wartość 3 – drugi gest
Bit 3 2 1 0
Wartość 128 64 32 16
Wartość 4 (LSB) – trzeci gest
Bit 3 2 1 0
Wartość 8 4 2 1

Aby utworzyć sekwencję ^ (w górę) > (w prawo) < (w lewo):

  • Wartość 1 jest zarezerwowana, więc jej wartość wynosi 0
  • Wartość 2 to „w górę”, dlatego należy aktywować bit 0 (0001) = 256
  • Wartość 3 to „w prawo”, dlatego należy aktywować bit 2 (0100) = 64
  • Wartość 4 to „w lewo”, dlatego należy aktywować bity 0 i 1 (0011) = 2 + 1

Po zsumowaniu wszystkich wartości otrzymujemy 323.

Fibaro Motion Sensor GEN5

2-bajtowy dziesiętny Parametr 66 urządzenia Fibaro Motion Sensor GEN5 może przechowywać dwa bajty lub 16 bitów, co umożliwia ustawienie przesunięcia temperatury od -100 do 100 ºC z krokiem co 0.1ºC.

Aby ustawić przesunięcie temperatury równe -2.0 ºC, należy odjąć pożądaną wartość bezwzględną (20) od maksymalnej wartości, jaką może przyjąć Parametr (2^16).

Przekłada się to na (2^16) – 20 = 65516.

Zatem nasz 2-bajtowy dziesiętny Parametr powinien zostać ustawiony na 65516.

Powiązane informacje


Copyright Vesternet 2017

Zaktualizowano: 07/11/2017

Your quote

Loading your cart…

Edit cart