Actions

Moduł Modbus 16 Relays (PL): Difference between revisions

From Modig.pl Wiki

 
(34 intermediate revisions by the same user not shown)
Line 1: Line 1:
<b>Modig Modbus 16 Relays</b></br>
<b>Moduł Modbus 16 Relays</b></br>
Karta 16 przekaźników sterowanych poprzez RS485 i Modbus
Karta 16 przekaźników sterowanych poprzez RS485 i Modbus
==== Opis ====
==== Opis ====
Moduł Modig Modbus 16R jest wyposażony w 16 przekaźników elektromagnetycznych SPDT, które są sterowane za pomocą poleceń w standardzie Modbus przesyłanych interfejsem RS485. Interfejs sterujący jest wyposażony w separację galwaniczną i zabezpieczenia przeciwprzepięciowe, dzięki czemu działa stabilnie nawet w instalacjach narażonych na silne zakłócenia. Parametry komunikacji i funkcjonowania modułu można elastycznie konfigurować i dostosować do wymagań różnych aplikacji  
Moduł Modig Modbus 16R jest wyposażony w 16 przekaźników elektromagnetycznych SPDT, które są sterowane za pomocą poleceń w standardzie Modbus przesyłanych interfejsem RS485. Interfejs sterujący jest wyposażony w separację galwaniczną i zabezpieczenia przeciwprzepięciowe, dzięki czemu działa stabilnie nawet w instalacjach narażonych na silne zakłócenia. Parametry komunikacji i funkcjonowania modułu można elastycznie konfigurować i dostosować do wymagań różnych aplikacji.
<center>
<center>
[[File:foto|none|900px|thumb|center]]
[[File:Modig_Modbus_16R_1.jpg|none|900px|thumb|center]]
</center>
</center>
<br><br>
<br><br>
<hr>
<hr>
==== Podstawowe cechy i parametry ====
==== Podstawowe cechy i parametry ====
* 16 wyjść przekaźnikowych - styki NC/NO, 10 A, 250 V AC/ 30 V DC
* 16 wyjść przekaźnikowych - styki NC/NO, 10 A, 250 V AC / 30 V DC
* interfejs RS485 z separacją galwaniczną i zabezpieczeniami przeciwprzepięciowymi
* interfejs RS485 z separacją galwaniczną i zabezpieczeniami przeciwprzepięciowymi
* konfigurowane parametry komunikacji:
* konfigurowane parametry komunikacji:
Line 19: Line 20:
* sterowanie i konfigurowanie ustawień za pomocą poleceń Modbus
* sterowanie i konfigurowanie ustawień za pomocą poleceń Modbus
* pomiar wartości napięcia zasilającego i temperatury modułu
* pomiar wartości napięcia zasilającego i temperatury modułu
* wymiary: 200x110x60
* wymiary: 200x110x60 mm
* montaż na szynę DIN-35
* montaż na szynę DIN-35
<br>
<br>
<hr>
<hr>
==== Złącza przekaźników ====
==== Złącza przekaźników ====
Styki przekaźników są wyprowadzone na złącza śrubowe z rastrem 5,08 mm. Każde z 16 wyjść oferuje styki normalnie zwarte (NC) oraz normalnie otwarte (NO). Gdy dane wyjście zostanie włączone, to styk NO zostanie połączony ze stykiem wspólnym (COM) natomiast styk NC zostanie odłączony od COM. Stan aktywny dla danego wyjścia jest sygnalizowany świeceniem diody LED umieszczonej przy zaciskach tego złącza. Sposób rozmieszczenia poszczególnych wyprowadzeń został pokazany na rysunku.
Styki przekaźników są wyprowadzone na złącza śrubowe z rastrem 5,08 mm. Każde z 16 wyjść oferuje styki normalnie zwarte (NC) oraz normalnie otwarte (NO). Gdy dane wyjście zostanie włączone, to styk NO zostanie połączony ze stykiem wspólnym (COM), natomiast styk NC zostanie odłączony od COM. Stan aktywny dla danego wyjścia jest sygnalizowany świeceniem diody LED umieszczonej przy zaciskach tego złącza. Sposób rozmieszczenia poszczególnych wyprowadzeń został pokazany na rysunku.
<center>
<center>
[[File:Modig_Modbus_16_rel.png|none|600px|thumb|center]]
[[File:Modig_Modbus_16_rel.png|none|600px|thumb|center]]
Line 124: Line 126:


==== Przywracanie ustawień ====
==== Przywracanie ustawień ====
Na płytce modułu KAmod Modbus 16R znajduje się mikroprzycisk SET. Jego przyciśnięcie i przytrzymanie przez czas ok 5 s. spowoduje przywrócenie wszystkich ustawień (wartości rejestrów konfiguracyjnych) do wartości domyślnych. Funkcja będzie przydatna w sytuacji, kiedy poprzez błędne ustawienie parametrów nie ma możliwości wysyłania poleceń Modbus do modułu. Przywrócenie ustawień domyślnych ustawi parametry komunikacji RS485 na: 19200, 8, none, 1.
Na płytce modułu Modig Modbus 16R znajduje się mikroprzycisk SET. Jego przyciśnięcie i przytrzymanie przez czas ok 5 s. spowoduje przywrócenie wszystkich ustawień (wartości rejestrów konfiguracyjnych) do wartości domyślnych. Funkcja będzie przydatna w sytuacji, kiedy poprzez błędne ustawienie parametrów nie ma możliwości wysyłania poleceń Modbus do modułu. Przywrócenie ustawień domyślnych ustawi parametry komunikacji RS485 na: 19200, 8, none, 1 i adres modułu na "1".
<center>
<center>
[[File:Modig_Modbus_16_set.png|none|450px|thumb|center]]
[[File:Modig_Modbus_16_set.png|none|450px|thumb|center]]
Line 144: Line 146:
|-
|-
| style="text-align: center;"|x4000
| style="text-align: center;"|x4000
| style="text-align: center;"|Adress
| style="text-align: center;"|Address
| style="text-align: left;"|Określa adres modułu przy sterowaniu poleceniami Modbus
| style="text-align: left;"|Określa adres modułu przy sterowaniu poleceniami Modbus
| style="text-align: center;"|1 (x0000)
| style="text-align: center;"|1 (x0001)
1…255
1…255
|-
|-
Line 223: Line 225:
| style="text-align: center;"|x2000
| style="text-align: center;"|x2000
| style="text-align: center;"|ExBaud
| style="text-align: center;"|ExBaud
| style="text-align: left;"|Umożliwia ustawienie parametrów komunikacji, jedną z predefiniowanych wartości.
| style="text-align: left;"|Umożliwia ustawienie parametrów komunikacji jedną z predefiniowanych wartości.
Młodszy bajt odpowiada prędkości baud:<br>
Młodszy bajt odpowiada prędkości baud:<br>
0 - 4800, 1 - 9600, 2 - 19200, 3 - 38400<br>
0 - 4800, 1 - 9600, 2 - 19200, 3 - 38400<br>
Line 259: Line 261:
Zakres temperatury: 0…70 jest zapisywany jako x0000…x0046
Zakres temperatury: 0…70 jest zapisywany jako x0000…x0046
| style="text-align: center;"|-20…-1 *C =  
| style="text-align: center;"|-20…-1 *C =  
xFF14…xFF01
xFF14…xFF01<br>
0…70 *C=  
0…70 *C = <br>
x0000…0046
x0000…0046
|}
|}
Line 360: Line 362:
| style="text-align: center;"|xFF00
| style="text-align: center;"|xFF00
| style="text-align: left;"|Wartość określająca zadanie do wykonania:
| style="text-align: left;"|Wartość określająca zadanie do wykonania:
x0000 - wyłącz (ON), xFF00 - włącz (OFF),
x0000 - wyłącz (OFF), xFF00 - włącz (ON),
x5500 - zmień stan na przeciwny (TOGGLE) ON->OFF / OFF->ON
x5500 - zmień stan na przeciwny (TOGGLE) ON->OFF / OFF->ON
|-
|-
Line 368: Line 370:
|-
|-


| style="text-align: center;""scope="row" colspan="2"|Odpowiedź
! style="text-align: center;""scope="row" colspan="2"|'''Odpowiedź'''
| style="text-align: left;"|Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi identyczną ramkę: 01 05 00 00 FF 00 8C 3A
! style="text-align: left;"|'''Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi identyczną ramkę: <br>01 05 00 00 FF 00 8C 3A'''
|}
|}
</center>
</center>
Line 377: Line 379:
*A5 05 00 08 55 00 6A 7C - polecenie x05 do urządzenia o adresie 165 (xA5), wyjście nr. 8 (x0008) zmieni stan na przeciwny (x5500)
*A5 05 00 08 55 00 6A 7C - polecenie x05 do urządzenia o adresie 165 (xA5), wyjście nr. 8 (x0008) zmieni stan na przeciwny (x5500)
:Odpowiedź: A5 05 00 08 55 00 6A 7C
:Odpowiedź: A5 05 00 08 55 00 6A 7C
 
<br>
*14 05 00 10 00 00 CE CA - polecenie x05 do urządzenia o adresie 20 (x14), wyjście nr. 16 (x0010) zostanie wyłączone - OFF (x0000)
*14 05 00 10 00 00 CE CA - polecenie x05 do urządzenia o adresie 20 (x14), wyjście nr. 16 (x0010) zostanie wyłączone - OFF (x0000)
:Odpowiedź: 14 05 00 10 00 00 CE CA
:Odpowiedź: 14 05 00 10 00 00 CE CA
 
<br>
*29 05 00 FF FF 00 BA 22 - polecenie x05 do urządzenia o adresie 41 (x29), wszystkie wyjścia (x00FF) zostaną włączone - ON (xFF00)
*29 05 00 FF FF 00 BA 22 - polecenie x05 do urządzenia o adresie 41 (x29), wszystkie wyjścia (x00FF) zostaną włączone - ON (xFF00)
:Odpowiedź: 29 05 00 FF FF 00 BA 22
:Odpowiedź: 29 05 00 FF FF 00 BA 22
Line 389: Line 391:
<br>
<br>
Komenda x0F pozwala sterować stanem wielu wyjść jednocześnie, zarówno załącza jak i wyłącza określone wyjścia.
Komenda x0F pozwala sterować stanem wielu wyjść jednocześnie, zarówno załącza jak i wyłącza określone wyjścia.
<br>
<br><br>
<center>
<center>
{| class="wikitable"  style="width: 1000px;"
{| class="wikitable"  style="width: 1000px;"
Line 436: Line 438:
| style="text-align: left;"|Suma kontrolna CRC16
| style="text-align: left;"|Suma kontrolna CRC16
|-
|-
| style="text-align: center;""scope="row" colspan="2"|Odpowiedź
! style="text-align: center;""scope="row" colspan="2"|'''Odpowiedź'''
| style="text-align: left;"|Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi następującą ramkę: 01 0F 00 01 00 03 44 0A
! style="text-align: left;"|'''Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi następującą ramkę: '''
<br>'''01 0F 00 01 00 03 44 0A'''
|-
|-
| style="text-align: center;"|1
| style="text-align: center;"|1
Line 510: Line 513:
|-
|-
| style="text-align: center;"|7…8
| style="text-align: center;"|7…8
| style="text-align: center;"|x0DC5
| style="text-align: center;"|x9C09
| style="text-align: left;"|Suma kontrolna CRC16
| style="text-align: left;"|Suma kontrolna CRC16
|-
|-


| style="text-align: center;""scope="row" colspan="2"|Odpowiedź
! style="text-align: center;""scope="row" colspan="2"|'''Odpowiedź'''
| style="text-align: left;"|Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi następującą ramkę:<br>01 01 02 00 0C B9 F9
! style="text-align: left;"|'''Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi następującą ramkę:<br>01 01 02 00 0C B9 F9'''
|-
|-
| style="text-align: center;"|1
| style="text-align: center;"|1
Line 544: Line 547:
*A5 01 00 08 00 06 6A 7C - polecenie x01 do urządzenia o adresie 165 (xA5), odczyt stanu 6 (x0006) wyjść, zaczynając od wyjścia 8 (x0008).
*A5 01 00 08 00 06 6A 7C - polecenie x01 do urządzenia o adresie 165 (xA5), odczyt stanu 6 (x0006) wyjść, zaczynając od wyjścia 8 (x0008).
:Odpowiedź: A5 01 02 00 02 49 E4 - załączone tylko wyjście nr. 9 (x0002)
:Odpowiedź: A5 01 02 00 02 49 E4 - załączone tylko wyjście nr. 9 (x0002)
 
<br>
*14 01 00 10 00 01 CE CA - polecenie x01 do urządzenia o adresie 20 (x14), odczyt stanu jednego (x0001) wyjścia, zaczynając od wyjścia 16 (x0010).
*14 01 00 10 00 01 CE CA - polecenie x01 do urządzenia o adresie 20 (x14), odczyt stanu jednego (x0001) wyjścia, zaczynając od wyjścia 16 (x0010).
:Odpowiedź: 14 01 02 00 00 B4 3F - wyjście wyłączone (x0000)
:Odpowiedź: 14 01 02 00 00 B4 3F - wyjście wyłączone (x0000)
 
<br>
*29 01 00 20 01 00 BA 06 - polecenie x01 do urządzenia o adresie 41 (x29), odczyt stanu 16 (x0010) wyjść, zaczynając od wyjścia 32 (x0020).
*29 01 00 20 01 00 BA 06 - polecenie x01 do urządzenia o adresie 41 (x29), odczyt stanu 16 (x0010) wyjść, zaczynając od wyjścia 32 (x0020).
:Odpowiedź: brak odpowiedzi - nie można odczytać stanu od wyjścia 32
:Odpowiedź: brak odpowiedzi - nie można odczytać stanu od wyjścia 32
 
<br>
Jeśli liczba wyjść do odczytania przekracza liczbę wyjść zawartych w urządzeniu (po uwzględnieniu numeru wyjścia, od którego rozpocznie się odczyt stanów), to w odpowiedzi wyjścia nieistniejące będa miały zawsze stan OFF (0).
Jeśli liczba wyjść do odczytania przekracza liczbę wyjść zawartych w urządzeniu (po uwzględnieniu numeru wyjścia, od którego rozpocznie się odczyt stanów), to w odpowiedzi wyjścia nieistniejące będa miały zawsze stan OFF (0).
<br>
<br><br>
<hr>
<hr>


Line 594: Line 597:
|-
|-


| style="text-align: center;""scope="row" colspan="2"|Odpowiedź
! style="text-align: center;""scope="row" colspan="2"|'''Odpowiedź'''
| style="text-align: left;"|Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi następującą ramkę:<br>01 02 02 00 0C B9 BD
! style="text-align: left;"|'''Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi następującą ramkę:<br>01 02 02 00 0C B9 BD'''
|-
|-
| style="text-align: center;"|1
| style="text-align: center;"|1
Line 625: Line 628:
:Odpowiedź: A5 02 02 00 02 49 A0 - aktywne tylko wejście nr. 9 (x0002)
:Odpowiedź: A5 02 02 00 02 49 A0 - aktywne tylko wejście nr. 9 (x0002)
<br>
<br>
*4 02 00 10 00 01 BA CA - polecenie x02 do urządzenia o adresie 20 (x14), odczyt stanu jednego (x0001) wejścia, zaczynając od wejścia 16 (x0010).
*14 02 00 10 00 01 BA CA - polecenie x02 do urządzenia o adresie 20 (x14), odczyt stanu jednego (x0001) wejścia, zaczynając od wejścia 16 (x0010).
:Odpowiedź: 14 02 02 00 00 B4 7B - wejście nieaktywne (x0000)
:Odpowiedź: 14 02 02 00 00 B4 7B - wejście nieaktywne (x0000)
<br>
<br>
Line 631: Line 634:
:Odpowiedź: brak odpowiedzi - nie można odczytać stanu od wejścia 32
:Odpowiedź: brak odpowiedzi - nie można odczytać stanu od wejścia 32
<br>
<br>
Jeśli liczba wejść do odczytania przekracza liczbę wejść zawartych w urządzeniu (po uwzględnieniu numeru wejścia, od którego rozpocznie się odczyt stanów), to w odpowiedzi wejścia nieistniejące będa miały zawsze stan nieaktywny (0).
Jeśli liczba wejść do odczytania przekracza liczbę wejść zawartych w urządzeniu (po uwzględnieniu numeru wejścia, od którego rozpocznie się odczyt stanów), to w odpowiedzi wejścia nieistniejące będą miały zawsze stan nieaktywny (0).
<br>
<br>
<hr>
<hr>


===== Komenda “Read Input Registers” - x04 =====  
===== Komenda “Read Input Registers” - x04 =====  
<br>
Komenda x04 pozwala odczytać wartości z rejestrów wejść pomiarowych. W urządzeniu KAmod Modbus 16R możliwy jest pomiar napięcia zasilającego oraz temperatury modułu.
<br><br>
<center>
{| class="wikitable"  style="width: 1000px;"
|-
! style="text-align: center;"scope="row" colspan="2"|'''Ramka danych z komendą x04'''
! style="text-align: left;"|'''01 04 30 00 00 02 7E CB'''
|-
! style="text-align: center;"|'''Numer bajtu'''
! style="text-align: center;"|'''Wartość (hex)'''
! style="text-align: left;"|'''Znaczenie'''
|-
| style="text-align: center;"|1
| style="text-align: center;"|x01
| style="text-align: left;"|Adres urządzenia docelowego
|-
| style="text-align: center;"|2
| style="text-align: center;"|x04
| style="text-align: left;"|Komenda “Read Input Registers”- odczyt rejestrów wejść pomiarowych
|-
| style="text-align: center;"|3…4
| style="text-align: center;"|x3000
| style="text-align: left;"|Numer rejestru, od którego rozpocznie się odczyt.
x3000 - odczyt pomiaru napięcia zasilającego
x3002 - odczyt pomiaru temperatury modułu
|-
| style="text-align: center;"|5…6
| style="text-align: center;"|x0002
| style="text-align: left;"|Wartość określająca ile rejestrów będzie odczytanych:
1 - jeden np. tylko napięcie, 2 - oba rejestry pomiarowe
|-
| style="text-align: center;"|7…8
| style="text-align: center;"|x7ECB
| style="text-align: left;"|Suma kontrolna CRC16
|-
! style="text-align: center;""scope="row" colspan="2"|'''Odpowiedź'''
! style="text-align: left;"|'''Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi następującą ramkę:<br>01 04 04 02 06 00 18 1A 37'''
|-
| style="text-align: center;"|1
| style="text-align: center;"|x01
| style="text-align: left;"|Adres urządzenia, które odpowiada
|-
| style="text-align: center;"|2
| style="text-align: center;"|x04
| style="text-align: left;"|Komenda “Read Input Registers” - odczyt rejestrów wejść pomiarowych
|-
| style="text-align: center;"|3
| style="text-align: center;"|x04
| style="text-align: left;"|Liczba bajtów danych, które zawierają odpowiedź - 4
|-
| style="text-align: center;"|4…5
| style="text-align: center;"|x0206
| style="text-align: left;"|Wartość napięcia - x0206 = 518, co oznacza 5,18 V
|-
| style="text-align: center;"|6…7
| style="text-align: center;"|x0018
| style="text-align: left;"|Wartość temperatury - x0018 = 24, co oznacza 24 stopnie C
Zakres temperatury: -20…-1 jest zapisywany jako xFF14…xFF01
Zakres temperatury: 0…70 jest zapisywany jako x0000…x0046
|-
| style="text-align: center;"|8…9
| style="text-align: center;"|x1A37
| style="text-align: left;"|Suma kontrolna CRC16
|}
</center>
<br>
Podobne polecenia:
*A5 04 30 00 00 01 27 EE - polecenie x04 do urządzenia o adresie 165 (xA5), odczyt jednego rejestru (x0001) o numerze x3000, czyli rejestr pomiaru napięcia zasilającego .
:Odpowiedź: A5 04 02 01 F0 49 A0 - napięcie wynosi 4,96 V (x01F0 = 496)
<br>
*14 04 30 08 00 02 FD CC - polecenie x04 do urządzenia o adresie 20 (x14), odczyt dwóch (x0002) rejestrów pomiarowych od numeru x3008.
:Odpowiedź: brak odpowiedzi - nie ma rejestru pomiarowego o numerze x3008.
<br>
*29 04 30 02 00 02 7E 78 - polecenie x04 do urządzenia o adresie 41 (x29), odczyt dwóch (x0002) rejestrów pomiarowych od numeru x3002.
:Odpowiedź: A5 04 02 00 18 C8 E3 - urządzenie nie ma rejestrów pomiarowych o numerze wyższym niż x3002, dlatego został odczytany tylko jeden rejestr o numerze x3002 - temperatura modułu = 24 (x0018) i w odpowiedzi są tylko dwa bajty danych (x02)
<br>
<hr>
<hr>
===== Komenda “Read Holding Registers” - x03 =====  
===== Komenda “Read Holding Registers” - x03 =====  
<br>
Komenda x03 pozwala odczytać wartości z rejestrów konfiguracyjnych.
<br><br>
<center>
{| class="wikitable"  style="width: 1000px;"
|-
! style="text-align: center;"scope="row" colspan="2"|'''Ramka danych z komendą x03'''
! style="text-align: left;"|'''01 03 40 00 00 01 91 CA'''
|-
! style="text-align: center;"|'''Numer bajtu'''
! style="text-align: center;"|'''Wartość (hex)'''
! style="text-align: left;"|'''Znaczenie'''
|-
| style="text-align: center;"|1
| style="text-align: center;"|x01
| style="text-align: left;"|Adres urządzenia docelowego
|-
| style="text-align: center;"|2
| style="text-align: center;"|x03
| style="text-align: left;"|Komenda “Read Holding Registers”- odczyt rejestrów konfiguracyjnych
|-
| style="text-align: center;"|3…4
| style="text-align: center;"|x4000
| style="text-align: left;"|Numer rejestru, od którego rozpocznie się odczyt.
Dostępne są rejestry z zakresu x4000…x4014 oraz x2000, x8000
|-
| style="text-align: center;"|5…6
| style="text-align: center;"|x0001
| style="text-align: left;"|Wartość określająca ile rejestrów będzie odczytanych:
1 - jeden, itd. maksymalnie 8
|-
| style="text-align: center;"|7…8
| style="text-align: center;"|x91CA
| style="text-align: left;"|Suma kontrolna CRC16
|-
! style="text-align: center;""scope="row" colspan="2"|'''Odpowiedź'''
! style="text-align: left;"|'''Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi następującą ramkę:<br>01 03 02 00 01 79 84'''
|-
| style="text-align: center;"|1
| style="text-align: center;"|x01
| style="text-align: left;"|Adres urządzenia, które odpowiada
|-
| style="text-align: center;"|2
| style="text-align: center;"|x03
| style="text-align: left;"|Komenda “Read Holding Registers”- odczyt rejestrów konfiguracyjnych
|-
| style="text-align: center;"|3
| style="text-align: center;"|x02
| style="text-align: left;"|Liczba bajtów danych, które zawierają odpowiedź - 2
|-
| style="text-align: center;"|4…5
| style="text-align: center;"|x0001
| style="text-align: left;"|Rejestr o numerze x4000 zawiera adres dla poleceń modbus, który w tym przypadku wynosi 1 (x0001)
|-
| style="text-align: center;"|6…7
| style="text-align: center;"|x7984
| style="text-align: left;"|Suma kontrolna CRC16
|}
</center>
<br>
Podobne polecenia:
*A5 03 40 06 00 04 28 EE - polecenie x03 do urządzenia o adresie 165 (xA5), odczyt czterech rejestrów konfiguracji (x0004), od numeru (x4006).
:Odpowiedź: 01 03 08 00 C0 00 00 00 01 00 01 C5 DB - wartości 4 rejestrów konfiguracyjnych, czyli 8 bajtów danych
<br>
*14 03 80 00 00 01 AF 0F - polecenie x03 do urządzenia o adresie 20 (x14), odczyt jednego (x0001) rejestru konfiguracji o numerze x8000, czyli wersja oprogramowania.
:Odpowiedź: 14 03 02 00 A0 B5 FF - odpowiedź 2 bajty (x00A0) = 10 co oznacza wersję oprogramowania 1.0
<br>
<hr>
<hr>
===== Komenda “Write Single Holding Register” - x06 =====  
===== Komenda “Write Single Holding Register” - x06 =====  
<br>
Komenda x06 pozwala ustawić wartość w rejestrze konfiguracyjnym.
<br><br>
<center>
{| class="wikitable"  style="width: 1000px;"
|-
! style="text-align: center;"scope="row" colspan="2"|'''Ramka danych z komendą x06'''
! style="text-align: left;"|'''01 06 40 00 00 01 5D CA'''
|-
! style="text-align: center;"|'''Numer bajtu'''
! style="text-align: center;"|'''Wartość (hex)'''
! style="text-align: left;"|'''Znaczenie'''
|-
| style="text-align: center;"|1
| style="text-align: center;"|x01
| style="text-align: left;"|Adres urządzenia docelowego
|-
| style="text-align: center;"|2
| style="text-align: center;"|x06
| style="text-align: left;"|Komenda “Write Single Holding Register”- zapis rejestru konfiguracyjnego
|-
| style="text-align: center;"|3…4
| style="text-align: center;"|x4000
| style="text-align: left;"|Numer rejestru, do którego zostanie zapisana nowa wartość.
Dostępne są rejestry z zakresu x4000, x4006…x4012 oraz x2000
|-
| style="text-align: center;"|5…6
| style="text-align: center;"|x0001
| style="text-align: left;"|Wartość, która zostanie zapisana do rejestru
|-
| style="text-align: center;"|7…8
| style="text-align: center;"|x5DCA
| style="text-align: left;"|Suma kontrolna CRC16
|-
! style="text-align: center;""scope="row" colspan="2"|'''Odpowiedź'''
! style="text-align: left;"|'''Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi identyczną ramkę:<br> 01 06 40 00 00 01 5D CA'''
|}
</center>
<br>
Podobne polecenia:
*A5 06 40 00 00 04 84 ED - polecenie x06 do urządzenia o adresie 165 (xA5), zapis rejestru konfiguracyjnego o numerze x4000 wartością 4 (x0004), czyli nadanie nowego adresu o wartości 4.
:Odpowiedź: A5 06 40 00 00 04 84 ED
<br>
*14 06 40 0C 00 00 5E CC - polecenie x06 do urządzenia o adresie 20 (x14), zapis rejestru konfiguracyjnego o numerze x400C wartością 0 (x0000), czyli wyłączenie obsługi poleceń typu broadcast.
:Odpowiedź: 14 06 40 0C 00 00 5E CC
<br>
<hr>
<hr>
===== Komenda “Write Multiple Holding Registers” - x10 =====  
===== Komenda “Write Multiple Holding Registers” - x10 =====  
<br>
Komenda x10 pozwala ustawić wartości kilku rejestrów konfiguracyjnych.
<br><br>
<center>
{| class="wikitable"  style="width: 1000px;"
|-
! style="text-align: center;"scope="row" colspan="2"|'''Ramka danych z komendą x10'''
! style="text-align: left;"|'''01 10 40 0C 00 03 06 00 01 00 00 00 01 8F 7E'''
|-
! style="text-align: center;"|'''Numer bajtu'''
! style="text-align: center;"|'''Wartość (hex)'''
! style="text-align: left;"|'''Znaczenie'''
|-
| style="text-align: center;"|1
| style="text-align: center;"|x01
| style="text-align: left;"|Adres urządzenia docelowego
|-
| style="text-align: center;"|2
| style="text-align: center;"|x10
| style="text-align: left;"|Komenda “Write Multiple Holding Registers”- zapis kilku rejestrów konfiguracyjnych
|-
| style="text-align: center;"|3…4
| style="text-align: center;"|x400C
| style="text-align: left;"|Numer rejestru, do którego rozpocznie się zapis.
Dostępne są rejestry z zakresu x4000, x4006…x4012 oraz x2000
|-
| style="text-align: center;"|5…6
| style="text-align: center;"|x0003
| style="text-align: left;"|Wartość określająca ile rejestrów będzie zapisanych:
1 - jeden, itd. maksymalnie 8
|-
| style="text-align: center;"|7
| style="text-align: center;"|x06
| style="text-align: left;"|Liczba bajtów danych, które zawierają wartości do zapisania
|-
| style="text-align: center;"|8…13
| style="text-align: center;"|x0001
x0000
x0001
| style="text-align: left;"|Trzy wartości do wpisania do rejestrów konfiguracyjnych
|-
| style="text-align: center;"|14…17
| style="text-align: center;"|x8F7E
| style="text-align: left;"|Suma kontrolna CRC16
|-
! style="text-align: center;""scope="row" colspan="2"|'''Odpowiedź'''
! style="text-align: left;"|'''Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi następującą ramkę:<br> 01 10 40 0C 00 03 55 CB'''
|-
| style="text-align: center;"|1
| style="text-align: center;"|x01
| style="text-align: left;"|Adres urządzenia, które odpowiada
|-
| style="text-align: center;"|2
| style="text-align: center;"|x10
| style="text-align: left;"|Komenda “Write Multiple Holding Registers”-  zapis kilku rejestrów konfiguracyjnych
|-
| style="text-align: center;"|3
| style="text-align: center;"|x400C
| style="text-align: left;"|Numer rejestru, od którego został rozpoczęty zapis wartości
|-
| style="text-align: center;"|4…5
| style="text-align: center;"|x0003
| style="text-align: left;"|Wartość określająca ile rejestrów zostało zapisanych
|-
| style="text-align: center;"|6…7
| style="text-align: center;"|x55CB
| style="text-align: left;"|Suma kontrolna CRC16
|}
</center>
<br>
Podobne polecenia:
*A5 10 40 00 00 01 02 00 03 6D 52 - polecenie x10 do urządzenia o adresie 165 (xA5), zapis jednego (x0001) rejestru konfiguracyjnego od numeru x4000 danymi o długości dwóch bajtów (x02) równymi x0003, czyli nadanie nowego adresu o wartości 3.
:Odpowiedź: A5 10 40 00 00 03 8C EC
<br>
*14 10 40 0C 00 02 04 00 01 00 00 D6 F5 - polecenie x10 do urządzenia o adresie 20 (x14), zapis dwóch (x0002) rejestrów konfiguracyjnych od numeru x400C wartościami x0001 i x0000, czyli włączenie obsługi poleceń typu broadcast oraz wyłączenie sprawdzania sumy kontrolnej CRC.
:Odpowiedź: 14 10 40 0C 00 02 96 CE
<br>
<hr>
<hr>

Latest revision as of 06:39, 16 April 2026

Moduł Modbus 16 Relays
Karta 16 przekaźników sterowanych poprzez RS485 i Modbus

Opis

Moduł Modig Modbus 16R jest wyposażony w 16 przekaźników elektromagnetycznych SPDT, które są sterowane za pomocą poleceń w standardzie Modbus przesyłanych interfejsem RS485. Interfejs sterujący jest wyposażony w separację galwaniczną i zabezpieczenia przeciwprzepięciowe, dzięki czemu działa stabilnie nawet w instalacjach narażonych na silne zakłócenia. Parametry komunikacji i funkcjonowania modułu można elastycznie konfigurować i dostosować do wymagań różnych aplikacji.




Podstawowe cechy i parametry

  • 16 wyjść przekaźnikowych - styki NC/NO, 10 A, 250 V AC / 30 V DC
  • interfejs RS485 z separacją galwaniczną i zabezpieczeniami przeciwprzepięciowymi
  • konfigurowane parametry komunikacji:
    • baud rate: 1200…1000000;
    • parity: none/even/odd;
    • stop bits: 1/1,5/2
  • zasilanie 5 V (4,9…5,3) o wydajności min. 1,5 A
  • zasilanie poprzez złącze USB-C lub złącze cylindryczne DC 2.1/5.5 lub złącze Phoenix MC 3,81 mm
  • sterowanie i konfigurowanie ustawień za pomocą poleceń Modbus
  • pomiar wartości napięcia zasilającego i temperatury modułu
  • wymiary: 200x110x60 mm
  • montaż na szynę DIN-35



Złącza przekaźników

Styki przekaźników są wyprowadzone na złącza śrubowe z rastrem 5,08 mm. Każde z 16 wyjść oferuje styki normalnie zwarte (NC) oraz normalnie otwarte (NO). Gdy dane wyjście zostanie włączone, to styk NO zostanie połączony ze stykiem wspólnym (COM), natomiast styk NC zostanie odłączony od COM. Stan aktywny dla danego wyjścia jest sygnalizowany świeceniem diody LED umieszczonej przy zaciskach tego złącza. Sposób rozmieszczenia poszczególnych wyprowadzeń został pokazany na rysunku.


Przykładowy obwód sterowany za pomocą Modig Modbus 16 Relays pokazano na rysunku.


Interfejs RS485

Interfejs RS485 jest wyprowadzony w postaci złącza typu Phoenix Contact MC 3,81 mm z 4 stykami. W zależności od instalacji mogą być używane tylko linie A+ i B- lub wszystkie T, A+, B- ,G. Ich funkcje zostały opisane w tabeli.


Oznaczenie Funkcja
120 Ω / T Aktywowanie wewnętrznego rezystora terminującego 120 Ω. Rezystor jest aktywny, gdy styk T jest połączony ze stykiem A+, np. za pomocą zworki zamontowanej bezpośrednio we wtyczce.
A+ Linia A magistrali RS485 (potencjał dodatni)
B- Linia B magistrali RS485 (potencjał ujemny)
GND / G Masa GND magistrali RS485.


Interfejs RS485 jest odseparowany galwanicznie od pozostałych komponentów i wyposażony w elementy przeciwprzepięciowe dzięki czemu działa stabilnie nawet w instalacjach narażonych na silne zakłócenia.

Parametry komunikacji RS485 są konfigurowane za pomocą poleceń Modbus, domyślne ustawienia to: 19200, 8, none, 1.

Moduł Modig Modbus 16R może być dołączony do magistrali RS485, która łączy maksymalnie 64 urządzenia (wliczając moduł). Każde urządzenie powinno być dołączone w taki sposób, aby nie powstawały rozgałęzienia magistrali - ewentualne połączenia powinny być jak najkrótsze. Na obu końcach magistrali zalecane jest dołączenie rezystorów terminujących 120 Ω. Modig Modbus 16R ma zintegrowany taki rezystor, ale żeby był aktywny należy połączyć ze sobą styk A+ oraz T we wtyczce.

Na rysunku pokazano uproszczony schemat magistrali RS485, z jednej strony zakończonej rezystorem terminującym 120 Ω, a z drugiej strony rezystorem terminującym zintegrowanym w module. Ponadto pokazano właściwe, oraz błędne podłączenie urządzeń do magistrali.


Zasilanie

Moduł Modig Modbus 16R jest wyposażony w 3 różne złącza zasilania, połączone równolegle. Należy wybrać tylko jedno z nich i dołączyć zasilanie o napięciu 4,9…5,3 V, wydajności min. 1,5 A i o właściwej polaryzacji.

Złącze Funkcja
USB-C (J3) Standardowe gniazdo USB-C, pełni tylko funkcję złącza zasilania
2.1/5.5 (J2) Gniazdo cylindryczne 2.1/5.5 kompatybilne z zasilaczami typu “kostka”. Uwaga na polaryzację - plus w środku.
MC 3,81 mm (J1) Złącze z wtyczką do przyłączenia przewodów. Uwaga na polaryzację - plus od strony przekaźników.

Kontrolki sygnalizacyjne

Na płytce Modig Modbus 16R znajdują się dwie kontrolki LED, które informują o działaniu urządzenia.

Kontrolka Funkcja
STA Świecenie diody z krótkim cyklicznym wygaszeniem oznacza poprawne działanie urządzenia
BUS Miganie diody LED oznacza odbieranie danych z magistrali RS485 i poleceń Modbus




Przywracanie ustawień

Na płytce modułu Modig Modbus 16R znajduje się mikroprzycisk SET. Jego przyciśnięcie i przytrzymanie przez czas ok 5 s. spowoduje przywrócenie wszystkich ustawień (wartości rejestrów konfiguracyjnych) do wartości domyślnych. Funkcja będzie przydatna w sytuacji, kiedy poprzez błędne ustawienie parametrów nie ma możliwości wysyłania poleceń Modbus do modułu. Przywrócenie ustawień domyślnych ustawi parametry komunikacji RS485 na: 19200, 8, none, 1 i adres modułu na "1".



Rejestry konfiguracyjne (Holding Registers)

Wszystkie parametry urządzenia są definiowane poprzez wartości rejestrów konfiguracyjnych tzw. Holding Registers. Rejestry można odczytywać i zapisywać poprzez polecenia Modbus i w ten sposób można zmieniać działanie urządzenia. Lista rejestrów oraz ich funkcje zostały opisane w tabeli.

Numer rejestru (hex) Nazwa Opis Wartość domyślna/

zakres wartości

x4000 Address Określa adres modułu przy sterowaniu poleceniami Modbus 1 (x0001)

1…255

x4002 Coils Zawiera wartość określającą liczbę wyjść (Coils) dostępnych w module.
Wartość tylko do odczytu
16 (x0010)
x4004 Inputs Zawiera wartość określającą liczbę wejść (Discrete inputs) dostępnych w module.

Wartość tylko do odczytu

0 (x0000)
x4006 Baud Określa szybkość komunikacji RS485 (baud).
Wartość bez 2 ostatnich zer np.

1200 = 12 = x000C; 2400 = 24 = x0018
4800 = 48 = x0030; 9600 = 96 = x0060
19200 = 192 = x00C0; 57600 = 576 = x0240
115200 = 1152 = x0480;
256000 = 2560 = x0A00

192 (x00C0)

12…10000

x4008 Parity Określa parzystość (parity) przy komunikacji RS485.
0 - none; 1 - even; 2 - odd
0 (x0000)

0…2

x400A Stop Określa bity stopu (stop bits) przy komunikacji RS485.

1 - 1 bit stopu; 2 - dwa bity stopu

1 (x0001)

1…2

x400C Broadcast Definiuje, czy urządzenie realizuje polecenia z adresem rozgłoszeniowym o wartości 0 (x00) - broadcast. 0 - nie, 1 - tak 1 (x0001)

0…1

x400E CRC Definiuje, czy urządzenie sprawdza sumę kontrolną w poleceniach Modbus. 0 - nie, 1 - tak 0 (x0000)

0…1

x4010 Response Zezwala na wysyłanie odpowiedzi na polecenia Modbus.

0 - nie wysyła żadnych odpowiedzi,
1 - wysyła odpowiedzi na komendy Modbus

1 (x0001)

0…1

x4012 IO Offset Określa, od jakiej wartości liczone są wejścia (inputs) i wyjścia (coils)

0 - wejścia/wyjścia zaczynają się od 0 (0…15)
1 - wejścia/wyjścia zaczynają się od 1 (1…16)

1 (x0001)

0…1

x4014

oraz x8000

Version Zawiera wersję oprogramowania firmware.

wartość 10 - oznacza 1.0 itd.
Wartość tylko do odczytu

10 (x00A0)
x2000 ExBaud Umożliwia ustawienie parametrów komunikacji jedną z predefiniowanych wartości.

Młodszy bajt odpowiada prędkości baud:
0 - 4800, 1 - 9600, 2 - 19200, 3 - 38400
4 - 57600, 5 - 115200, 6 - 12800, 7 - 256000
8 - inna wartość
Starszy bajt określa parzystość:
0 - none, 1 - even, 2 - odd

x0002

x0000…x0208



Rejestry wejść pomiarowych (Input Registers)

Urządzenie jest wyposażone w obwody pomiaru napięcia zasilającego oraz temperatury, które pozwalają kontrolować warunki pracy modułu i uniknąć awarii. Wyniki pomiarów są dostępne w rejestrach wejść pomiarowych tzw. Input Registers. Rejestry pomiarowe można odczytywać poprzez polecenia Modbus.

Numer rejestru (hex) Nazwa Opis Zakres wartości
x3000 Voltage Pomiar wartości napięcia zasilającego. Wartość 495 = 4,95 V itd. 330…550
x3002 Temp Pomiar temperatury modułu. Wartość temperatury 24 (x0018), co oznacza 24 stopnie C.

Zakres temperatury: -20…-1 jest zapisywany jako xFF14…xFF01
Zakres temperatury: 0…70 jest zapisywany jako x0000…x0046

-20…-1 *C =

xFF14…xFF01
0…70 *C =
x0000…0046



Komendy sterujące w standardzie Modbus

Każde polecenie w standarcie Modbus ma postać ramki danych, której strukturę pokazuje rysunek:

Kolejne ramki muszą być oddzielone przerwą o czasie co najmniej 3,5 znaku (czas potrzebny na przesłanie pełnego znaku ASCII), natomiast przerwa pomiędzy przesłaniem jednego znaku, a rozpoczęciem transmisji kolejnego, w tej samej ramce, nie może przekroczyć 1,5 znaku. Takie reguły są stosowane dla prędkości komunikacji (baud rate) do 19200.

Jeśli prędkość komunikacji jest ustawiona powyżej 19200, to minimalna przerwa pomiędzy ramkami ma stałą wartość, równą 1,75 ms. Natomiast przerwa pomiędzy kolejnymi znakami tej samej ramki nie może przekroczyć 0,75 ms.

Każde urządzenie dołączone do magistrali Modbus musi mieć przypisany niepowtarzalny adres. Pole adresu znajduje się w każdej przesyłanej ramce, ma rozmiar 1 bajta i może mieć wartość z zakresu 1…255. Adres o wartości 0 jest tzw. adresem rozgłoszeniowym (broadcast) i umożliwia skierowanie polecenia do wszystkich urządzeń dołączonych do magistrali. W niektórych systemach nie zaleca się ustawiania adresów powyżej wartości 247.

Wyjścia i wejścia standardowo są numerowane od liczby 1. Wtedy pierwsze wyjście, to wyjście o numerze 1 (x01), a ostatnie ma numer 16 (0x10). Opisy komend i przykłady poleceń dotyczą właśnie takiego wariantu. Jednak urządzenie może być skonfigurowane w taki sposób, aby wyjścia i wejścia były numerowane od liczby 0. Wtedy pierwsze wyjście, to wyjście o numerze 0 (x00), a ostatnie ma numer 15 (0x0F). Jeśli numer wyjścia, do którego odnosi się polecenie sterujące/odczytujące, przekracza liczbę wyjść zawartych w urządzeniu (15 lub 16, w zależności od konfiguracji), to polecenie nie zostanie wykonane i pozostanie bez odpowiedzi.

W standardzie Modbus występuje kilka standardowych komend. Każda z nich oraz przykładowe polecenia i odpowiedzi urządzenia zostały opisane w dalszej części instrukcji.


Wykaz obsługiwanych komend Modbus

Nazwa komendy Kod komendy Funkcja
Write Single Coil x05 Pozwala sterować stanem wyjścia lub wyjść
Write Multiple Coils x0F Pozwala sterować stanem wielu wyjść jednocześnie, zarówno załącza jak i wyłącza określone wyjścia.
Read Coils x01 Pozwala odczytać stan wyjścia lub wyjść
Read Discrete Inputs x02 Pozwala odczytać stan wejść. Ponieważ urządzenie Modig Modbus 16R nie ma wejść do odczytu stanów w odpowiedzi na to polecenie odczytuje stan wyjść, podobnie jak komenda “Read Coils” - x01.
Read Input Registers x04 Pozwala odczytać wartości z rejestrów wejść pomiarowych
Read Holding Registers x03 Pozwala odczytać wartości z rejestrów konfiguracyjnych
Write Single Holding Register x06 Pozwala ustawić wartość w rejestrze konfiguracyjnym
Write Multiple Holding Registers x10 Pozwala ustawić wartości kilku rejestrów konfiguracyjnych



Komenda “Write Single Coil” - x05


Komenda x05 pozwala sterować stanem wyjścia lub wyjść.

Ramka danych z komendą x05 01 05 00 00 FF 00 8C 3A
Numer bajtu Wartość (hex) Znaczenie
1 x01 Adres urządzenia docelowego
2 x05 Komenda “Write Single Coil” - sterowanie jednym wyjściem
3…4 x0000 Numer wyjścia, które będzie sterowane:

0 - żadne z wyjść, 1 - wyjście 1 (pierwsze), 16 - wyjście 16 (ostatnie) x00FF - steruje wszystkimi wyjściami - od 1 do 16

5…6 xFF00 Wartość określająca zadanie do wykonania:

x0000 - wyłącz (OFF), xFF00 - włącz (ON), x5500 - zmień stan na przeciwny (TOGGLE) ON->OFF / OFF->ON

7…8 x8C3A Suma kontrolna CRC16
Odpowiedź Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi identyczną ramkę:
01 05 00 00 FF 00 8C 3A


Podobne polecenia:

  • A5 05 00 08 55 00 6A 7C - polecenie x05 do urządzenia o adresie 165 (xA5), wyjście nr. 8 (x0008) zmieni stan na przeciwny (x5500)
Odpowiedź: A5 05 00 08 55 00 6A 7C


  • 14 05 00 10 00 00 CE CA - polecenie x05 do urządzenia o adresie 20 (x14), wyjście nr. 16 (x0010) zostanie wyłączone - OFF (x0000)
Odpowiedź: 14 05 00 10 00 00 CE CA


  • 29 05 00 FF FF 00 BA 22 - polecenie x05 do urządzenia o adresie 41 (x29), wszystkie wyjścia (x00FF) zostaną włączone - ON (xFF00)
Odpowiedź: 29 05 00 FF FF 00 BA 22



Komenda “Write Multiple Coils” - x0F


Komenda x0F pozwala sterować stanem wielu wyjść jednocześnie, zarówno załącza jak i wyłącza określone wyjścia.

Ramka danych z komendą x0F 01 0F 00 01 00 03 02 00 05 27 76
Numer bajtu Wartość (hex) Znaczenie
1 x01 Adres urządzenia docelowego
2 x0F Komenda “Write Multiple Coils” - sterowanie wieloma wyjściami
3…4 x0001 Numer wyjścia, od którego rozpocznie się sterowane:

0 - żadne z wyjść nie będzie sterowane, 1 - od wyjścia 1 (pierwszego), 16 - od wyjścia 16 (ostatniego)

5…6 x0003 Liczba wyjść, które będą sterowane:

0 - żadne z wyjść nie będzie sterowane 1 - jedno wyjście, 16 - do wysterowania 16 wyjść

7 x02 Liczba bajtów danych zawierających sekwencję sterującą - musi wynosić 2
8…9 x0005 Sekwencja sterująca, LSB -> wyjście nr 1.

Bity o wartości 0 powodują wyłączenie wyjść, bity o wartości 1 powodują załączenie wyjść. x0005 = 00000000 00000101 - załączone wyjścia 1 i 3

10...11 x27 76 Suma kontrolna CRC16
Odpowiedź Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi następującą ramkę:


01 0F 00 01 00 03 44 0A

1 x01 Adres urządzenia, które odpowiada
2 x0F Komenda “Write Multiple Coils” - sterowanie wyjściami
3...4 x0001 Numer wyjścia, od którego rozpoczęto sterowane
5...6 x0003 Liczba wyjść, które rzeczywiście były sterowane
7...8 x440A Suma kontrolna CRC16


Jeśli liczba wyjść do ustawienia przekracza liczbę wyjść zawartych w urządzeniu (po uwzględnieniu numeru wyjścia, od którego rozpocznie się sterowanie), to polecenie zostanie wykonane prawidłowo dla wyjść istniejących. W odpowiedzi zostanie zwrócona liczba wyjść rzeczywiście wysterowanych.

Podobne polecenia:

  • A5 0F 00 08 00 04 02 00 07 6D 9D - polecenie x0F do urządzenia o adresie 165 (xA5), steruje 3 (x0003) wyjściami od wyjścia nr. 8 (x0008), sekwencja sterująca to :x0007 (00000000 00000111) czyli załączy wyjścia 8, 9, 10 oraz wyłączy wyjście 11.
Odpowiedź: A5 0F 00 08 00 04 CC EE
  • 14 0F 00 0F 00 05 02 00 00 14 43 - polecenie x0F do urządzenia o adresie 20 (x14), steruje 5 (x0005) wyjściami od wyjścia nr. 15 (x000F), sekwencja sterująca to :x0000 (00000000 00000000) czyli wyłączy wyjścia 15 i 16.
Odpowiedź: 14 0F 00 0F 00 02 E6 CC (wysterowane 2 wyjścia, a nie 5)
  • 29 0F 00 01 00 10 02 FF FF 1C 40 - polecenie x0F do urządzenia o adresie 41 (x29), steruje 16 (x0010) wyjściami od wyjścia nr. 1 (x0001), sekwencja sterująca to xFFFF (11111111 11111111) czyli włączy wszystkie wyjścia od 1 do 16.
Odpowiedź: 29 0F 00 01 00 10 03 EF



Komenda “Read Coils” - x01


Komenda x01 pozwala odczytać stan wyjścia lub wyjść.

Ramka danych z komendą x01 01 01 00 02 00 04 9C 09
Numer bajtu Wartość (hex) Znaczenie
1 x01 Adres urządzenia docelowego
2 x01 Komenda “Read Coils” - odczyt stanu wyjść
3…4 x0002 Numer wyjścia, od którego rozpocznie się odczyt stanów wyjść:

2 - odczyt od wyjścia nr 2

5…6 x0004 Wartość określająca ile wyjść będzie odczytanych:

4 - odczytanie 4 wyjść, czyli: 2, 3, 4 i 5

7…8 x9C09 Suma kontrolna CRC16
Odpowiedź Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi następującą ramkę:
01 01 02 00 0C B9 F9
1 x01 Adres urządzenia, które odpowiada
2 x01 Komenda “Read Coils” - odczyt stanu wyjść
3 x02 Liczba bajtów danych, które zawierają odpowiedź - 2
4…5 x000C Stan wyjść: 2 - OFF (0), 3 - OFF (0), 4 - ON (1), 5 - ON (1)

Binarnie: 00000000 00001100

6…7 xB9F9 Suma kontrolna CRC16


Podobne polecenia:

  • A5 01 00 08 00 06 6A 7C - polecenie x01 do urządzenia o adresie 165 (xA5), odczyt stanu 6 (x0006) wyjść, zaczynając od wyjścia 8 (x0008).
Odpowiedź: A5 01 02 00 02 49 E4 - załączone tylko wyjście nr. 9 (x0002)


  • 14 01 00 10 00 01 CE CA - polecenie x01 do urządzenia o adresie 20 (x14), odczyt stanu jednego (x0001) wyjścia, zaczynając od wyjścia 16 (x0010).
Odpowiedź: 14 01 02 00 00 B4 3F - wyjście wyłączone (x0000)


  • 29 01 00 20 01 00 BA 06 - polecenie x01 do urządzenia o adresie 41 (x29), odczyt stanu 16 (x0010) wyjść, zaczynając od wyjścia 32 (x0020).
Odpowiedź: brak odpowiedzi - nie można odczytać stanu od wyjścia 32


Jeśli liczba wyjść do odczytania przekracza liczbę wyjść zawartych w urządzeniu (po uwzględnieniu numeru wyjścia, od którego rozpocznie się odczyt stanów), to w odpowiedzi wyjścia nieistniejące będa miały zawsze stan OFF (0).


Komenda “Read Discrete Inputs” - x02


Komenda x02 pozwala odczytać stan wejść. Ponieważ urządzenie KAmod Modbus 16R nie ma wejść do odczytu stanów w odpowiedzi na to polecenie odczytuje stan wyjść, podobnie jak komenda “Read Coils” - x01.

Ramka danych z komendą x02 01 02 00 02 00 04 D8 09
Numer bajtu Wartość (hex) Znaczenie
1 x01 Adres urządzenia docelowego
2 x02 Komenda “Read Discrete Inputs” - odczyt stanu wejść
3…4 x0002 Numer wejścia, od którego rozpocznie się odczyt stanów wejść:

2 - odczyt od wejścia nr 2

5…6 x0004 Wartość określająca ile wejść będzie odczytanych:

4 - odczytanie 4 wejść, czyli: 2, 3, 4 i 5

7…8 xD809 Suma kontrolna CRC16
Odpowiedź Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi następującą ramkę:
01 02 02 00 0C B9 BD
1 x01 Adres urządzenia, które odpowiada
2 x02 Komenda “Read Discrete Inputs” - odczyt stanu wejść
3 x02 Liczba bajtów danych, które zawierają odpowiedź - 2
4…5 x000C Stan wejść: 2 - nieaktywne (0), 3 - nieaktywne (0), 4 - aktywne (1), 5 - aktywne (1);

Binarnie: 00000000 00001100

6…7 xB9BD Suma kontrolna CRC16


Podobne polecenia:

  • A5 02 00 08 00 06 60 EE - polecenie x02 do urządzenia o adresie 165 (xA5), odczyt stanu 6 (x0006) wejść, zaczynając od wejścia 8 (x0008).
Odpowiedź: A5 02 02 00 02 49 A0 - aktywne tylko wejście nr. 9 (x0002)


  • 14 02 00 10 00 01 BA CA - polecenie x02 do urządzenia o adresie 20 (x14), odczyt stanu jednego (x0001) wejścia, zaczynając od wejścia 16 (x0010).
Odpowiedź: 14 02 02 00 00 B4 7B - wejście nieaktywne (x0000)


  • 29 02 00 20 01 00 7E 78 - polecenie x02 do urządzenia o adresie 41 (x29), odczyt stanu 16 (x0010) wejść, zaczynając od wejścia 32 (x0020).
Odpowiedź: brak odpowiedzi - nie można odczytać stanu od wejścia 32


Jeśli liczba wejść do odczytania przekracza liczbę wejść zawartych w urządzeniu (po uwzględnieniu numeru wejścia, od którego rozpocznie się odczyt stanów), to w odpowiedzi wejścia nieistniejące będą miały zawsze stan nieaktywny (0).


Komenda “Read Input Registers” - x04


Komenda x04 pozwala odczytać wartości z rejestrów wejść pomiarowych. W urządzeniu KAmod Modbus 16R możliwy jest pomiar napięcia zasilającego oraz temperatury modułu.

Ramka danych z komendą x04 01 04 30 00 00 02 7E CB
Numer bajtu Wartość (hex) Znaczenie
1 x01 Adres urządzenia docelowego
2 x04 Komenda “Read Input Registers”- odczyt rejestrów wejść pomiarowych
3…4 x3000 Numer rejestru, od którego rozpocznie się odczyt.

x3000 - odczyt pomiaru napięcia zasilającego x3002 - odczyt pomiaru temperatury modułu

5…6 x0002 Wartość określająca ile rejestrów będzie odczytanych:

1 - jeden np. tylko napięcie, 2 - oba rejestry pomiarowe

7…8 x7ECB Suma kontrolna CRC16
Odpowiedź Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi następującą ramkę:
01 04 04 02 06 00 18 1A 37
1 x01 Adres urządzenia, które odpowiada
2 x04 Komenda “Read Input Registers” - odczyt rejestrów wejść pomiarowych
3 x04 Liczba bajtów danych, które zawierają odpowiedź - 4
4…5 x0206 Wartość napięcia - x0206 = 518, co oznacza 5,18 V
6…7 x0018 Wartość temperatury - x0018 = 24, co oznacza 24 stopnie C

Zakres temperatury: -20…-1 jest zapisywany jako xFF14…xFF01 Zakres temperatury: 0…70 jest zapisywany jako x0000…x0046

8…9 x1A37 Suma kontrolna CRC16


Podobne polecenia:

  • A5 04 30 00 00 01 27 EE - polecenie x04 do urządzenia o adresie 165 (xA5), odczyt jednego rejestru (x0001) o numerze x3000, czyli rejestr pomiaru napięcia zasilającego .
Odpowiedź: A5 04 02 01 F0 49 A0 - napięcie wynosi 4,96 V (x01F0 = 496)


  • 14 04 30 08 00 02 FD CC - polecenie x04 do urządzenia o adresie 20 (x14), odczyt dwóch (x0002) rejestrów pomiarowych od numeru x3008.
Odpowiedź: brak odpowiedzi - nie ma rejestru pomiarowego o numerze x3008.


  • 29 04 30 02 00 02 7E 78 - polecenie x04 do urządzenia o adresie 41 (x29), odczyt dwóch (x0002) rejestrów pomiarowych od numeru x3002.
Odpowiedź: A5 04 02 00 18 C8 E3 - urządzenie nie ma rejestrów pomiarowych o numerze wyższym niż x3002, dlatego został odczytany tylko jeden rejestr o numerze x3002 - temperatura modułu = 24 (x0018) i w odpowiedzi są tylko dwa bajty danych (x02)



Komenda “Read Holding Registers” - x03


Komenda x03 pozwala odczytać wartości z rejestrów konfiguracyjnych.

Ramka danych z komendą x03 01 03 40 00 00 01 91 CA
Numer bajtu Wartość (hex) Znaczenie
1 x01 Adres urządzenia docelowego
2 x03 Komenda “Read Holding Registers”- odczyt rejestrów konfiguracyjnych
3…4 x4000 Numer rejestru, od którego rozpocznie się odczyt.

Dostępne są rejestry z zakresu x4000…x4014 oraz x2000, x8000

5…6 x0001 Wartość określająca ile rejestrów będzie odczytanych:

1 - jeden, itd. maksymalnie 8

7…8 x91CA Suma kontrolna CRC16
Odpowiedź Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi następującą ramkę:
01 03 02 00 01 79 84
1 x01 Adres urządzenia, które odpowiada
2 x03 Komenda “Read Holding Registers”- odczyt rejestrów konfiguracyjnych
3 x02 Liczba bajtów danych, które zawierają odpowiedź - 2
4…5 x0001 Rejestr o numerze x4000 zawiera adres dla poleceń modbus, który w tym przypadku wynosi 1 (x0001)
6…7 x7984 Suma kontrolna CRC16


Podobne polecenia:

  • A5 03 40 06 00 04 28 EE - polecenie x03 do urządzenia o adresie 165 (xA5), odczyt czterech rejestrów konfiguracji (x0004), od numeru (x4006).
Odpowiedź: 01 03 08 00 C0 00 00 00 01 00 01 C5 DB - wartości 4 rejestrów konfiguracyjnych, czyli 8 bajtów danych


  • 14 03 80 00 00 01 AF 0F - polecenie x03 do urządzenia o adresie 20 (x14), odczyt jednego (x0001) rejestru konfiguracji o numerze x8000, czyli wersja oprogramowania.
Odpowiedź: 14 03 02 00 A0 B5 FF - odpowiedź 2 bajty (x00A0) = 10 co oznacza wersję oprogramowania 1.0



Komenda “Write Single Holding Register” - x06


Komenda x06 pozwala ustawić wartość w rejestrze konfiguracyjnym.

Ramka danych z komendą x06 01 06 40 00 00 01 5D CA
Numer bajtu Wartość (hex) Znaczenie
1 x01 Adres urządzenia docelowego
2 x06 Komenda “Write Single Holding Register”- zapis rejestru konfiguracyjnego
3…4 x4000 Numer rejestru, do którego zostanie zapisana nowa wartość.

Dostępne są rejestry z zakresu x4000, x4006…x4012 oraz x2000

5…6 x0001 Wartość, która zostanie zapisana do rejestru
7…8 x5DCA Suma kontrolna CRC16
Odpowiedź Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi identyczną ramkę:
01 06 40 00 00 01 5D CA


Podobne polecenia:

  • A5 06 40 00 00 04 84 ED - polecenie x06 do urządzenia o adresie 165 (xA5), zapis rejestru konfiguracyjnego o numerze x4000 wartością 4 (x0004), czyli nadanie nowego adresu o wartości 4.
Odpowiedź: A5 06 40 00 00 04 84 ED


  • 14 06 40 0C 00 00 5E CC - polecenie x06 do urządzenia o adresie 20 (x14), zapis rejestru konfiguracyjnego o numerze x400C wartością 0 (x0000), czyli wyłączenie obsługi poleceń typu broadcast.
Odpowiedź: 14 06 40 0C 00 00 5E CC



Komenda “Write Multiple Holding Registers” - x10


Komenda x10 pozwala ustawić wartości kilku rejestrów konfiguracyjnych.

Ramka danych z komendą x10 01 10 40 0C 00 03 06 00 01 00 00 00 01 8F 7E
Numer bajtu Wartość (hex) Znaczenie
1 x01 Adres urządzenia docelowego
2 x10 Komenda “Write Multiple Holding Registers”- zapis kilku rejestrów konfiguracyjnych
3…4 x400C Numer rejestru, do którego rozpocznie się zapis.

Dostępne są rejestry z zakresu x4000, x4006…x4012 oraz x2000

5…6 x0003 Wartość określająca ile rejestrów będzie zapisanych:

1 - jeden, itd. maksymalnie 8

7 x06 Liczba bajtów danych, które zawierają wartości do zapisania
8…13 x0001

x0000 x0001

Trzy wartości do wpisania do rejestrów konfiguracyjnych
14…17 x8F7E Suma kontrolna CRC16
Odpowiedź Urządzenie, które odczyta i wykona polecenie wyśle w odpowiedzi następującą ramkę:
01 10 40 0C 00 03 55 CB
1 x01 Adres urządzenia, które odpowiada
2 x10 Komenda “Write Multiple Holding Registers”- zapis kilku rejestrów konfiguracyjnych
3 x400C Numer rejestru, od którego został rozpoczęty zapis wartości
4…5 x0003 Wartość określająca ile rejestrów zostało zapisanych
6…7 x55CB Suma kontrolna CRC16


Podobne polecenia:

  • A5 10 40 00 00 01 02 00 03 6D 52 - polecenie x10 do urządzenia o adresie 165 (xA5), zapis jednego (x0001) rejestru konfiguracyjnego od numeru x4000 danymi o długości dwóch bajtów (x02) równymi x0003, czyli nadanie nowego adresu o wartości 3.
Odpowiedź: A5 10 40 00 00 03 8C EC


  • 14 10 40 0C 00 02 04 00 01 00 00 D6 F5 - polecenie x10 do urządzenia o adresie 20 (x14), zapis dwóch (x0002) rejestrów konfiguracyjnych od numeru x400C wartościami x0001 i x0000, czyli włączenie obsługi poleceń typu broadcast oraz wyłączenie sprawdzania sumy kontrolnej CRC.
Odpowiedź: 14 10 40 0C 00 02 96 CE