MODBUS/TCP i sterowniki Beckhoff

W wersji oprogramowania 1.7.5 funkcjonalność modułu DOMIQ/Base została wzbogacona o obsługę protokołu MODBUS/TCP oraz MODBUS/UDP. Moduł Base pełni rolę urządzenia nadrzędnego (master). Otwiera to możliwość integracji z wieloma powszechnie stosowanymi urządzeniami automatyki np. sterownikami PLC lub użycia konwerterów protokołu MODBUS/TCP na MODBUS RTU przy użyciu standardowej sieci Ethernet.

W tym samouczku znajdziesz:

  • Podstawowe informacje o protokole MODBUS/TCP.
  • Opis konfiguracji modułu Base do integracji z wykorzystaniem MODBUS/TCP.
  • Opis intergracji modułu Base z modularnym sterownikiem PLC firmy Beckhoff.

1. Protokół MODBUS/TCP #

MODBUS/TCP to modyfikacja standardowego protokołu MODBUS RTU, w którym wartstwę transportową opartą o RS-485 zastąpiono użyciem protokołu TCP/IP. Niektóre urządzenia wykorzystują też niestandardowy wariant, w którym zamiast TCP użyto protokołu bezpołączeniowego UDP.

Protokoły IP, TCP i IP pełnią funkcję wyłączenie transportową – umożliwiają wymianę danych między urządzeniami. Wymieniane dane są interpetowana dokładnie tak samo, jak w przypadku MODBUS RTU, łącznie w wymogiem pojedynczej odpowiedzi po każdym zapytaniu.

Głównym zadaniem protokołu TCP jest czuwanie nad tym, aby wszystkie pakiety danych były poprawnie przesyłane między urządzeniami w kolejności nadawania, natomiast protokół IP (Internet Protocol) odpowiada za to, żeby dane zostały wysłane do odpowiednich adresatów poprzez wiele urządzeń pośrednich – routerów.

Enkapsulacja pakietu MODBUS została zobrazowana na poniższym schemacie:

Pakiety MODBUS/TCP oraz MODBUS/UDP są wysyłane na port 502, który jest zarezerwowany dla tego zastosowania.

MODBUS/TCP ma kilka cech, którymi przewyższa komunikację MODBUS wykorzystującą port szeregowy:

  • Proste łączenie nawet bardzo dużej ilości sterowników, dowolne odległości.
  • Większa prędkość transmisji danych.
  • Wykorzystania istniejącej struktury sieciowej (routery, switche, okablowanie itd.).
  • Wysoka niezawodność transmisji danych, dzięki wykorzystaniu mechanizmów kontroli poprawności zawartych w protokole TCP i automatycznych powtórzeń w przypadku błędów lub zgubionych pakietów. Ta cecha nie jest obecna w wariancie UDP.

2. Konfiguracja modułu Base #

W tym rozdziale przestawimy, jak w kliku krokach przygotować moduł Base do komunikacji przy użyciu MODBUS/TCP.

  1. Wybierz zakładkę MODBUS.
  2. Dodaj nowy interfejs i kliknij na nim, aby uzupełnić jego właściwości.
    • Wpisz dowolną nazwę (bez polskich znaków i spacji). Nazwa interfejsu jest wykorzystywana przy tworzeniu nazw identyfikatorów (przykład poniżej)
    • Typ ustaw jako TCP.
    • W polu Adres IP wpisz adres IP urządzenia slave.
    • Pole Port domyślnie uzupełnione jest wartością 502. Zdarzają się jednak urządzenia, które używają innego portu TCP, wówczas należy tu wprowadzić odpowiedni numer portu.
  3. Dodaj nowe urządzenie:
    • Wpisz nazwę (bez polskich znaków i spacji). Nazwa urządzenia jest wykorzystywana w nazwie identyfikatora (przykład poniżej).
    • W polu Opis możesz wpisać dowolny opis urządzenia.
    • W polu Adres należy wpisać adres urządzenia podrzędnego (slave).
  4. Dodaj rejestry, które chcesz odczytać/zapisać, a następnie ustal ich parametry: typ, adres i nazwę.

Jeżeli urządzenia zostaną poprawnie połączone i skonfigurowane, wówczas wartości odczytywanych/zapisywanych rejestrów wyświetlane są w zakładce Stan. Identyfikatory mają następującą składnię:

MODBUS.<inerfejs>.<urządzenie>.<rejestr>, np. MODBUS.bk.dev.temp.

Wartości rejestrów MODBUS można wyświetlać na wizualizacjach lub aplikacji Remote, powiązać ze zdarzeniami, regułami czasowymi itp.

Przykładowa konfiguracja wykorzystana do integracji modułu Base ze sterownikiem firmy Beckhoff została przedstawiona na poniższym obrazku:

3. Integracja z modularnymi sterownikami Beckhof #

Wykorzystanie protokołu MODBUS/TCP umożliwia integrację systemu DOMIQ z dowolnymi urządzeniami obsługującymi ten protokół. Jedną z dostępnych opcji jest integracja systemu DOMIQ z modularnymi sterownikami Beckhoff.

Beckhoff oferuje bardzo szeroki wybór urządzeń powszechnie stosowanych w instalacjach automatyki, w oparciu o które można stworzyć inteligentną instalację:

  • ściemniacze (np. KL2751);
  • przekaźniki (np. KL2641 lub KM2604);
  • moduły sterujące silnikami (np. KL2552 lub KL2791) – do sterowania rekuperacją;
  • wyjścia cyfrowe (np. KL2408) i analogowe (np. KL4408);
  • moduły wejść cyfrowych (np. KL1408) oraz analogowych (np. KL3408);
  • przetworniki pomiarowe (temperatura, wilgotność, ciśnienie);
  • urządzenia monitorujące sieć energetyczną;
  • oraz wiele innych

Urządzeniami bezpośrednio sterującymi wejściami/wyjściami może być sprzęg sieciowy, pełniący jednocześnie funkcję interfejsu MODBUS/TCP np. Beckhoff BK9050, lub jeden z dostępnych sterowników PLC np. BC9050. Sterownika PLC warto użyć, gdy konieczne jest tworzenie zależności logicznych lub szybszych czasów reakcji niż możliwe z wykorzystaniem modułu Base.

Cechą sterowników Beckhoff zasługującą na uwagę jest łatwość ich rozbudowy. Standardowo można podłączyć 64 moduły rozszerzeń lub 255 jeżeli zostanie zastosowane rozszerzenie magistrali.

Przykładową konfigurację sterownika przedstawia poniższa ilustracja.

Moduły rozszerzeń mogą być w każdej chwili wymienione na inne bez konieczności rekonfiguracji sterownika.

Moduł Base pełni funkcję urządzenia nadrzędnego (master) w stosunku do sterowników Beckhoff. Oznacza to, że integrując system DOMIQ ze sterownikiem Beckhoff mamy do dyspozycji całą jego funkcjonalność. Dane pozyskane ze sterownika Beckhoff mogą być zwizualizowane lub użyte w zdarzeniach, regułach czasowych, skryptach lua itd. Wyjścia natomiast są dowolnie sterowalne z poziomu interfejsów użytkownika DOMIQ.

3.1. Dodatkowe uwagi konfiguracyjne #

Podczas konfiguracji sterownika Beckhoff, oprócz ustawienia sposobu inicjalizacji adresu IP, niezbędne jest również ustawienie okresowego resetowania rejestru nr 4384 – watchdog komunikacji. Po odebraniu pierwszego komunikatu przez sterownik, należy resetować rejestr w ustaloną częstoliwością, maksymalnie co sekundę. W przeciwnym wypadku sterownik samoczynnie przerwie komunikację.

Okresowe resetowanie można zrealizować z następujący sposób:

  1. Dodaj odczyt rejestru nr 4384 w zakładce MODBUS, typ ustaw jako uint16, oraz wprowadź nazwę np. wd.
  2. Dodaj zdarzenie:
    • W polu Kanał wpisz: E.MODBUS.<interfejs>.<urządzenie>.<rejestr> np. E.MODBUS.bk.dev.wd.
    • W polu Dane wpisz: 1000.
  3. Dodaj komendę:
    • W polu Nazwa wpisz: C.MODBUS.<interfejs>.<urządzenie>.<rejestr> w naszym przypadku C.MODBUS.bk.dev.wd.
    • W polu Wartość wprowadź: 1000.

4. Odczyt wejść oraz sterowanie wyjściami #

Implementacja protokołu MODBUS w module Base pozwala, oprócz odczytu rejestrów (wszystkie dostępne typy) i wejść (input), także zapisywać wartości w rejestrach (tylko typy uint16 oraz int16) oraz sterować wyjściami (coil). Rejestry, wejścia i wyjścia są odczytywane po dodaniu ich w zakładce MODBUS i uzupełnieniu parametrów (typ, nazwa, adres).

W sterownikach Beckhoff moduły rozszerzeń liczone są od lewej i wedle tej kolejności nadawana jest numeracja wejściom i wyjściom. Zatem jeśli podłączymy dwa moduły wyjść cyfrowych np. KL2408, wówczas wyjścia pierwszego modułu mają numerację od 1 do 8, a drugiego 9–16 itd.

Dla wejść przewidziane zostały rejestry z zakresu od 0x0000 do 0x00FF, natomiast dla wyjść od 0x0800 do 0x08FF. Przykładowo jeżeli do modułu BK9050 podłączony zostanie moduł ośmiu wejść cyfrowych np. KL1408, wówczas stany wejść przechowywane są w rejestrach od 0 do 7.

Do zapisywania wartości rejestrów/wyjść wykorzystywane są standardowe komendy. Aby zapisać wartość w rejestrze wystarczy wysłać komendę o następującej składni: C.MODBUS.<interfejs>.<urządzenie>.<rejestr>=wartość np. C.MODBUS.dev.bk.temp=25.

Wartości wyjść są zapisywane analogicznie. Różnica polega na tym, że wyjście akceptuje jedną z czterech komend: on, off, 1 lub 0. Np. C.MODBUS.dev.bk.swiatlo=on lub C.MODBUS.dev.bk.swiatlo=0.

Możliwe jest oczywiście sterowanie MODBUS/TCP z powiomu wizualizacji Display lub też menu Remote przy wykorzystaniu elementów kanałowych, należy wtedy pamiętać o używaniu identyfikatorów kanału w postaci: MODBUS.<interfejs>.<urządzenie>.<rejestr>, np. MODBUS.dev.bk.swiatlo .

Wykorzystując opisaną powyżej funkcjonalność z powodzeniem można zrealizować kompletną instalację automatyki budynkowej w oparciu o moduły DOMIQ i pojedynczy sterownik Beckhoff, lub też wykorzystać go do uzupełnienia funckjonalności instalacji automatyki opartej o system LCN.

Powered by BetterDocs

Select your currency
PLN Złoty polski
EUR Euro