Powiadomienia
Wyczyść wszystko
OpenHAB
145
Wpisów
4
Użytkownicy
0
Reactions
10.8 K
Wyświetleń
ID chodzi o numer, nie ma znaczenia przy jednym urządzeniu. Czy ustawisz 1, 3 lub 4 nie ma różnicy, dodatkowo można ustawić by urządzenie ignorowało ID po RS 485 adres jak najbardziej ma znaczenie. https://store.chipkin.com/products/tools/cas-modbus-scanner sprawdź sobie komunikacje z konwerterem. Trochę pomieszane te ustawienia wyglądają tak jak by były do tego co wychodzi a jest zmiksowane. Czy ten konwerter to RS 485->TCP czy Modbus RS485->TCP ramka TCP z tego co pamiętam jest inna niż w RS.
Dodane : 17/01/2021 3:32 pm
@szpila86
Był zainstalowany vide
openhab> la -s | grep -i modbus
273 x Installed x 80 x 2.5.6 x org.openhab.binding.modbus
tylko nie był uruchomiony w miejscu installed powinno być Active
Dodane : 17/01/2021 3:40 pm
Autor tematu
Według sprzedawcy obsługuje Modbus rtu i już dziś pisałem o ewentualny zwrot jeśli się wszystko nie wyklaruje do środy.
Robi się to mocno problematyczne i denerwuje.
Na PLC też mam z tym problem gdzie inne urządzenia po Modbus faunie ścigają.
Dodane : 17/01/2021 4:02 pm
@szpila86 Według strony waveshare ten konwerter obsługuje modbus: https://www.waveshare.com/RS232-485-TO-ETH.htm
Jak chcesz z tym walczyć to proponuję zainstalować na QNAPie Entware ( https://github.com/Entware/Entware/wiki/Install-on-QNAP-NAS) a w Entware socat i spróbować tak:
socat -d -d pty,link=/dev/ttyMB,raw,echo=0,waitslave tcp:192.168.86.7:500
A w OH:
Bridge modbus:serial:localhostTCP [ port="/dev/ttyMB" baud=9600, stopBits="1.0", parity="none", dataBits=8, encoding="rtu", id=3 ] {
Dodane : 17/01/2021 6:11 pm
@szpila86
W sumie nie da nic, ten konwerter nie konwertuje ramek MODBUS więc to niestety nie będzie działało, w opisie jest że jest transparentny więc ramki przechodzą nie zmienione. Opis wprowadza w błąd, konwerter faktycznie wspiera MODBUS ale na linii RS485/RS232 co nie jest wielka filozofia bo to tylko konwersja sygnału 🙂
Dodane : 17/01/2021 7:49 pm
Autor tematu
Dodane : 17/01/2021 7:53 pm
@szpila86 W założeniu zakładasz wirtualny port szeregowy, który wysyła dane do Twojej bramki przez TCP (Ethernet). Bramka zamienia TCP na port szeregowy i wysyła do Volcano. W drugą stronę tak samo.Nie mam jak sprawdzić, czy to działa, ale jest szansa, że będzie.
Dodane : 17/01/2021 8:21 pm
@alien I w ten sposób co opisałem z socat nic nie musi konwertować. OH komunikuje się po serialu i do urządzenia fizycznego też idzie serial. A że po drodze zmienia się medium to nie ma znaczenia.
Dodane : 17/01/2021 8:27 pm
Autor tematu
Zainstalowałem entware-std ale nie wiem jak wejść w to i zainstalować przekierowanie
Dodane : 18/01/2021 4:33 pm
@szpila86 Musisz wyłaczyć management console QNAPa (napisałem jak to zrobić na drugiej stronie tego wątku). Łączysz się przez ssh do konsoli QNAPa (port 22, użytkownik admin i hasło do QNAPa). Tam wykonujesz polecenie
opkg update
a następnie
opkg install socat
Potem możesz spróbować przekierować serial na bramkę przez socat wg tego, co pisałem kilka postów wyżej.
Dodane : 18/01/2021 6:22 pm
Autor tematu
[~] # opkq update
-sh: opkq: command not found
[~] # opkg update
Downloading http://bin.entware.net/x64-k3.2/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/entware
[~] # opkg install socat
Installing socat (1.7.3.4-1) to root...
Downloading http://bin.entware.net/x64-k3.2/socat_1.7.3.4-1_x64-3.2.ipk
Installing zlib (1.2.11-3) to root...
Downloading http://bin.entware.net/x64-k3.2/zlib_1.2.11-3_x64-3.2.ipk
Installing libopenssl (1.1.1h-1) to root...
Downloading http://bin.entware.net/x64-k3.2/libopenssl_1.1.1h-1_x64-3.2.ipk
Configuring zlib.
Configuring libopenssl.
Configuring socat.
[~] # socat -d -d pty,link=/dev/ttyMB,raw,echo=0,waitslave tcp:192.168.86.7:500
2021/01/18 19:21:14 socat[19818] N PTY is /dev/pts/5
[~] # socat -d -d pty, link=/dev/ttyMB, raw, echo=0, waitslave tcp:192.168.86.7:500
2021/01/18 19:23:31 socat[22997] E exactly 2 addresses required (there are 6); use option "-h" for help
2021/01/18 19:23:31 socat[22997] N exit(1)
Czy jest możliwość że aplikacja OH na telefonie zgłasza błąd certyfikatu SSL przez coś co namieszałem z konsoli?
Dodane : 18/01/2021 7:24 pm
@szpila86 Wydaje mi się, że po pierwszym wydaniu polecenia socat zrobił link od urządzenia /dev/pts/5 do twojej bramki.
Podaje wynik poleceń:
netstat -n |grep :500
i
ps w|grep socat
W drugiej próbie wstawiłeś dodatkowe spacje, co spowodowało błąd. Po drugim -d mają być dokładnie w argumenty. Dodatkowe spacje spowodowały, że argumentów jest więcej.
Dodane : 18/01/2021 8:36 pm
Autor tematu
Pierwszy nie dał wyniku
[~] # netstat -n |grep :500
[~] # ps w|grep socat
11230 admin 240 S grep socat
[~] #
Dodane : 18/01/2021 8:40 pm
@szpila86 Jeśli robiłeś tylko to, co pisałem, to nie powinno zmienić certyfikatu SSL.
Z powyższego wynika, że socat nie działa.
A jak wydałeś pierwsze polecenie socat to sam wrócił do linii poleceń czy użyłeś Ctrl-C ?
Podaj jeszcze wynik
dmesg|tail -n 20
Dodane : 18/01/2021 8:45 pm
dłuższa chwilę wisiał więc przerwałem
Dobry znak 🙂
W takim razie
socat -d -d pty,link=/dev/ttyMB,raw,echo=0,waitslave tcp:192.168.86.7:500 &
a potem pokaż
netstat -n |grep :500
ps w|grep socat
A w OH
Bridge modbus:serial:localhostTCP [ port="/dev/pts/5" baud=9600,
stopBits="1.0", parity="none", dataBits=8, encoding="rtu", id=3 ] {
Dodane : 18/01/2021 8:52 pm
Autor tematu
[~] # netstat -n |grep :500
[~] # ps w|grep socat
4117 admin 3308 S socat -d -d pty,link=/dev/ttyMB,raw,echo=0,waitslave tcp:192.168.86.7:500
4493 admin 3340 S socat -d -d pty,link=/dev/ttyMB,raw,echo=0,waitslave tcp:192.168.86.14:500
5776 admin 240 S grep socat
[~] # ps w|grep socat
4117 admin 3308 S socat -d -d pty,link=/dev/ttyMB,raw,echo=0,waitslave tcp:192.168.86.7:500
4493 admin 3340 S socat -d -d pty,link=/dev/ttyMB,raw,echo=0,waitslave tcp:192.168.86.14:500
6161 admin 236 S grep socat
308 S socat -d -d pty,link=/dev/ttyMB,raw,echo=0,waitslave tcp:192.168.86.7:500
Dodane : 18/01/2021 8:55 pm
@szpila86 Chyba jest OK.
Teraz musisz zabić te 2 procesy, które stworzyłeś:
killall socat
i ostatnia (mam nadzieję) zmiana
socat -d -d pty,link=/dev/tty10,raw,echo=0,waitslave tcp:192.168.86.7:500 &
i w OH
Bridge modbus:serial:localhostTCP [ port="/dev/tty10" baud=9600,
stopBits="1.0", parity="none", dataBits=8, encoding="rtu", id=3 ] {
Jak to nie zadziała, to ja nie mam już pomysłów.
Dodane : 18/01/2021 9:07 pm