Moduł Modbus 16 Relays (PL): Difference between revisions
From Modig.pl Wiki
| Line 283: | Line 283: | ||
==== Wykaz obsługiwanych komend Modbus ==== | ==== Wykaz obsługiwanych komend Modbus ==== | ||
<center> | |||
{| class="wikitable" style="width: 1000px;" | |||
|- | |||
! style="width: 250px; text-align: center;"|Nazwa komendy | |||
! style="text-align: center;"|Kod komendy | |||
! style="text-align: center;"|Funkcja | |||
|- | |||
| style="text-align: left;"|Write Single Coil | |||
| style="text-align: center;"|'''x05''' | |||
| style="text-align: left;"|Pozwala sterować stanem wyjścia lub wyjść | |||
|- | |||
| style="text-align: left;"|Write Multiple Coils | |||
| style="text-align: center;"|'''x0F''' | |||
| style="text-align: left;"|Pozwala sterować stanem wielu wyjść jednocześnie, zarówno załącza jak i wyłącza określone wyjścia. | |||
|- | |||
| style="text-align: left;"|Read Coils | |||
| style="text-align: center;"|'''x01''' | |||
| style="text-align: left;"|Pozwala odczytać stan wyjścia lub wyjść | |||
|- | |||
| style="text-align: left;"|Read Discrete Inputs | |||
| style="text-align: center;"|'''x02''' | |||
| style="text-align: left;"|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. | |||
|- | |||
| style="text-align: left;"|Read Input Registers | |||
| style="text-align: center;"|'''x04''' | |||
| style="text-align: left;"|Pozwala odczytać wartości z rejestrów wejść pomiarowych | |||
|- | |||
| style="text-align: left;"|Read Holding Registers | |||
| style="text-align: center;"|'''x03''' | |||
| style="text-align: left;"|Pozwala odczytać wartości z rejestrów konfiguracyjnych | |||
|- | |||
| style="text-align: left;"|Write Single Holding Register | |||
| style="text-align: center;"|'''x06''' | |||
| style="text-align: left;"|Pozwala ustawić wartość w rejestrze konfiguracyjnym | |||
|- | |||
| style="text-align: left;"|Write Multiple Holding Registers | |||
| style="text-align: center;"|'''x10''' | |||
| style="text-align: left;"|Pozwala ustawić wartości kilku rejestrów konfiguracyjnych | |||
|} | |||
</center> | |||
<hr> | <hr> | ||
===== Komenda “Write Single Coil” - x05 ===== | ===== Komenda “Write Single Coil” - x05 ===== | ||
Revision as of 09:05, 19 March 2026
Modig 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
- 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 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.

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 | Adress | Określa adres modułu przy sterowaniu poleceniami Modbus | 1 (x0000)
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 |
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 (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 (x0001)
0…1 |
| x4014
oraz x8000 |
Version | Zawiera wersję oprogramowania firmware.
wartość 10 - oznacza 1.0 itd. |
10 (x00A0) |
| x2000 | ExBaud | Umożliwia ustawienie parametrów komunikacji, jedną z predefiniowanych wartości.
Młodszy bajt odpowiada prędkości baud: |
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 |
-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 |
