wtorek, 20 kwietnia 2021

MODBUS TCP popularny protokół automatyki przemysłowej w "PROMYK 1.2 DX1/DX2"

 Promyk 1.2 DX1/DX2 od wersji oprogramowania 16.04.2021 uzyskał możliwość obsługi protokołu MODBUS TCP. Obsługuje funkcje FC03( READ Holding registers) , FC06 (Write Single Holding Register) , FC16 (Write Multiple Holding Registers). Protokół MODBUS TCP jest bardzo popularny w automatyce przemysłowej i domowej, wszelkie panele HMI , sterowniki PLC, komputery z oprogramowaniem SCADA korzystające z tego protokołu wysyłając komendy w stronę "PROMYK 1.2 DX1/DX2" mogą sterować dowolnymi urządzeniami DMX512. 


 Protokół Modbus TCP jest obsługiwany na porcie 502 (TCP) , dane dla rejestrów 4xxxx (holding registers) są odbierane i przetwarzane przez oprogramowanie "PROMYK 1.2 DX1/DX2" i wypuszczone na gniazdo X1 DMX512 (standardowe wyjście dla Universe X1). Urządzenie obsługuje potrafi obsłużyć rejestry 40001-40512, przy czym rejestr 40001 to kanał nr 1 DMX512 i tak kolejno, ponieważ rejestry MODBUS TCP są 16bitowe a DMX512 jest 8 bitowy to do kanału DMX512 przekazywany jest tylko młodszy bajt, a starszy jest ignorowany. 
Protokół ARTNET i MODBUS w tej Bramce ARTNET/DMX512 działa równolegle i dla Universe nr 1 korzystają z tej samej przestrzeni adresowej , w przypadku działania aplikacji DMX512 tabela rejestrów zostanie zapisana.
W ten sposób można podejrzeć całą przestrzeń DMX512 z wartościami (zadając pytania z maks. długością 64 rejestrów za pomocą aplikacji Automatyki a zapis robić aplikacją dla ARTNET.
Do testowania na pierwszy ogień posłużyła genialnie prosta aplikacja modpoll. Jest to aplikacja w konsoli (wierszu poleceń) zarówno w Windows i LINUX (64bit). Nie trzeba instalować , wystarczy skopiować.
Do odczytania rejestrów 4xxxx należy użyć komendy:

modpoll.exe -r 1 -c 10 192.168.1.22
czyli następuje odczyt od pierwszego rejestru , liczba resjestrów do odczytu 10 , adres IP jest to adres serwera MODBUSTCP , czyli adres IP "PROMYK 1.2 DX1/DX2" dla ustawień fabrycznych.

 Do zapisu rejestrów 4xxxx należy użyć komendy:

modpoll.exe -r 1 -c 10 192.168.1.22 1 2 3 4 5 6 7 8 9 10

  czyli następuje zapis od pierwszego rejestru , liczba rejestrów do zapisu 10 , adres IP jest to adres serwera MODBUSTCP , czyli adres IP "PROMYK 1.2 DX1/DX2" dla ustawień fabrycznych, liczby 1 2 3 4 5 6 7 8 9 10 to wartości kolejnych rejestrów. Gdy wartość argumentu -c jest równa 1 wtedy jest użyta funkcja FC06 , gdy jest większa niż jeden program operuje już funkcją FC16.

W kolejnych postach pojawią się przykłady dla zastosowań protokołu MODBUS TCP w  aplikacjach  SCADA , HMI,  PLC .



 

Linki :

  • https://www.modbusdriver.com/modpoll.html 
  • https://zestapro.pl/2020/07/09/podstawy-i-symulacja-komunikacji-modbus-tcp-ip-modrsim2-webhmi/
  • https://en.wikipedia.org/wiki/Modbus
  •  http://en.radzio.dxp.pl/modbus-master-simulator/
  • https://www.multiprojekt.pl/

 

 

Brak komentarzy:

Publikowanie komentarza