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/

 

 

czwartek, 25 marca 2021

GRANDMA onPC, ONYX , dot onPC : konfiguracja i rozwiązywanie problemów w aplikacjach pracujących w puli adresów IP 2.x.x.x/ 10.x.x.x

 Celem niniejszego artykułu jest przybliżenie tematu konfiguracji bramek ARTNET DMX512 w aplikacjach z wyższej półki niż Freestyler , Qlc+ itp. Te aplikacje zostały wymienione w tytule.

Pula adresów dla sieci ART-NET :

  1.  PRIMARY : 2.x.x.x maska 8 bitów (inny zapis maski ośmiobitowej 255.0.0.0) , zakres adresów  2.0.0.1- 2.255.255.254 ,  adres broadcast 2.255.255.255
  2. SECONDARY: 10.x.x.x maska 8 bitów (inny zapis maski ośmiobitowej 255.0.0.0) , zakres adresów  10.0.0.1- 10.255.255.254 ,  adres broadcast 10.255.255.255

Bramka DMX512 "PROMYK 1.2" ma fabrycznie ustawiony adres 192.168.1.22/ maska 24 bitowa (inny zapis 255.255.255.0) , który operuje w puli adresów IP popularnej w sieciach LAN. Rutery domowe przeważnie mają ustawione takie adresy IP , stąd po podłączeniu do złącza LAN takiego rutera bramka ARTNET startuje od razu i za pomocą aplikacji DMX512 na  OS Android,Windows Phone , IOS można sterować "lampami DMX512" bezprzewodowo. Również aplikacje popularne jak  Freestyler , Qlc+ działają z tą pulą adresów.

Jednak do pracy z GrandMA i podobnych należy przestawić się na zakres IP ARTNET PRIMARY lub SECONDARY. Do tego służy strona konfiguracji "PROMYK 1.2" dostępna pod adresem 192.168.1.22 (przy fabrycznych ustawieniach). Procedura dla poszczególnych aplikacji jest dostępna w poradniku video na YT.



Analogicznie do dot2 onPC konfiguruje się w aplikacji GrandMA onPC. 

W skrócie polega to na przestawienia adresu IP z fabrycznego na adres z puli 2.x.x.x i zapisaniu go w "PROMYK 1.2" a potem ustawienie karty sieciowej też na tą pulę. To zadanie jest proste i nie powinno być z tym problemów , jednak czasami czynnik ludzki lub komputerowy spowoduje problem , stąd niżej przedstawione zostaną pytania i odpowiedzi na popularne błędy.

  1. Jak włączyć /wyłączyć kartę sieciową w systemie Windows ? Należy wejść w ustawienia / sieć i kliknąć w ikonę interesującej nas karty sieciowej .
  2. Ustawiona została karta sieciowa na adres IP 192.168.1.2 a nie ma połączenia z "PROMYK 1.2"
    Ustawiona została zła maska podsieci , jest 8 bitowa 255.0.0.0 a powinna być 24 bitowa 255.255.255.0
  3. Czy można korzystać z internetu jeśli "PROMYK 1.2" jest podłączony do karty sieciowej przewodowej a INTERNET jest dostępny przez WIFI z rutera domowego? Tak , pod warunkiem że adresacja sieci nie pokrywa się dla jednej i drugiej karty. Najlepiej to sprawdzić z poziomu wiersza poleceń (wpisując polecenie cmd otwiera się okno wiersza poleceń zwanej dalej konsolą) . W konsoli należy wydać polecenie "ipconfig /all"



Jak widać na zrzutach ekranu adres IP dla karty sieciowej przewodowej "ETHERNET 2" jest 2.0.0.2 z maską 255.0.0.0 a adres IP WIFI 192.168.1.20 , stąd poprzez wydanie polecenia "tracert 8.8.8.8" , komenda służy do określenia drogi pakietów sieciowych od  komputera do serwera DNS google'a (najprostszy adres IP do zapamiętania użyty w tym przykładzie)

Jeśli bramka ARTNET miałaby adres 192.168.1.x należy dla uzyskania komunikacji wyłączyć kartę WI-FI i zmienić adresację dla jednego lub drugiego urządzenia.

4. Ustawiono adres PROMYK 2.0.0.22 oraz tak samo karty sieciowej w komputerze 2.0.0.22 , dlaczego nie działa jeśli adresy są takie same ?  Nie będzie działać bo podstawowa zasada w sieciach IP zakazuje używać tych samych adresów w tej samej sieci , adresy muszą być unikatowe. Zmiana

5. "Promyk 1.2" został przywrócony do ustawień fabrycznych i ma adres IP 192.168.1.22, karta sieciowa PC została zmieniona na adres 192.168.1.2 a mimo to nie ma łączności z bramką ARTNET. Co zrobić ? Z jednych narzędzi jest polecenie ping z konsoli wydając polecenie "ping 192.168.1.22"

Mimo że na karcie sieciowej został wpisany adres 192.168.1.2 to karta nie przestawiła się na zadany adres, gdyż odpowiedź jest udzielana z adresu 2.0.0.2 , najprościej jest wyłączyć i włączyć kartę sieciową i sprawdzić ping jeszcze raz
Teraz jest prawidłowo . Gdyby problem nadal istniał może być to przyczyną wady sterownika urządzenia , blokady przez oprogramowanie typu firewall ,antywirus . Należy te programy wyłączyć. Gdyby było jeszcze gorzej że komputer ma problem z systemem operacyjnym należy użyć innego komputera , szkoda czasu na walkę z niesprawnym narzędziem. Nie jest to zakresem pomocy sprzedawcy bramki ARTNET.

6. Łączność z bramką ARTNET jest natomiast nie świecą "lampy DMX512" mimo prawidłowej konfiguracji w aplikacji i dodaniu odpowiednich fixtur.

Może to być związane z "nie trafieniem " w numer Universe. Numeracja w aplikacji DMX512 zaczyna się od "1" a w protokole ARTNET od "0" , więc ustawiając w Grandma onPC  nr Universe na nr 1 nadajemy w rzeczywistości na numer fizyczny "0" , gdy w "PROMYK 1.2" fabrycznie są ustawione nr 1 i 2 . 
 Dobrym narzędziem do sprawdzenia co wychodzi z aplikacji DMX512 jest darmowa aplikacja WIRESHARK

Aby włączyć filtr dla ramek ART-NET należy wpisać "udp.port=6454", ramki z Opcode 0x5000 ArtDMX zawierają informację dla wyjść DMX512 z wartościami kanałów i numerem Universe. Jak na obrazku wyżej należy rozwinąć część podświetloną

Widać wartości kanałów , numer Universe w tym przykładzie równy jest zero .

Uwaga ! Gdy z aplikacji DMX512 wychodzi kilka/kilkanaście Universe z adresem Broadcast np 2.255.255.255 (10.255.255.255) może ona doprowadzić do zawieszenia kart sieciowych SWITCH'a, ROUTER'a. 

Należy wyłączyć nieużywane a używane zamienić na adresy UNICAST np : 

  •  adres IP "Promyk  1.2DX2" 2.0.0.22 z UNIVERSE 0,1 -> dla tych Universe ustawić adres UNICAST 2.0.0.22
  • adres IP "Promyk  1.2DX2" 2.0.0.23 z UNIVERSE 2,3 -> dla tych Universe ustawić adres UNICAST 2.0.0.23

7. Router domowy odrzuca adresację LAN 2.x.x.x , co zrobić ? Ustawić adresację 10.x.x.x , w aplikacjach DMX512 zamienić początek adresu IP "2" -> "10" 

8. Jak sprawdzić najprostszą metodą czy wyjście DMX512 nadaje sygnał DMX512 ? Za pomocą miernika uniwersalnego sprawdzić napięcie na pinach 3 i 2 w złączu XLR-3 . W wersji DX1/DX2 PROMYK 1.2 sygnał DMX512 jest nadawany cały czas (profil 2-10)


wartość napięcia w zależności od miernika waha się  od -0,5 do - 2V . Jest to pomiar niedokładny i służy tylko do oszacowania zjawiska . Gdy zmienia się wartość kanału DMX512 również zmienia się wartość napięcia . 

9. Dlaczego Wersja "PROMYK 1.11" , "PROMYK 1.2" w grandma onPC nie działa prawidłowa bo "lampa DMX512 " migocze ?

 Dopiero wersje PROMYK 1.2 DX1/DX2 działają prawidłowo , stare wersje należy aktualizować albo wymusić w aplikacji częstsze nadawanie sygnału DMX512 , przykład z CHAMSYS .


wtorek, 2 lutego 2021

Nowa wersja 'DX2' bramki artnet "PROMYK 1.2" z 1024 kanałami DMX512 i MODBUS TCP

        Miało nie być wersji z dwoma wyjściami DMX512 (2 Universe w jednym interfejsie, czyli 1024 kanały DMX512) w sprzedaży ale jednak będzie . Ze względu na zamknięte lokale postanowiłem dodać obsługę protokołu  Modbus TCP, dzięki temu uzyskuje się konwerter MODBUS TCP/ DMX512 , którego można użyć w każdej aplikacji SCADA lub podobnych systemach automatyki przemysłowej i domowej np: domoticz .  

Zaimplementowanie tego protokołu wymogło innego podejścia do wysyłania sygnału DMX512 i został odnaleziony błąd w obsłudze kanałów  DMA. To otworzyło drogę do prawidłowego i stabilnego  działania bramki ARTNET DMX512 z dwoma wyjściami.


Protokół MODBUS TCP działa równolegle do protokołu ARTNET, korzysta ze wspólnej puli danych dla pierwszego UNIVERSE.  Zamiast ustawiania oddzielnego czasów MAB /BREAK, wprowadzono profile pracy DMX512:

  1. zgodny z Promyk 1.11 i 1.2 (nie działa modbus TCP)
  2. do 10. profile DMA z dwoma wyjściami i obsługą MODBUS TCP ,różnią się czasem odświeżania ramki DMX512 oraz wartościami ustawień dla czasów MAB/BREAK

 

Aby oszczędzić pasmo wykorzystania sieci LAN zaleca się nadawanie UNICAST zamiast BROADCAST (w tym przykładzie byłoby 192.168.1.255) dla każdego Universe.