PDA

Просмотр полной версии : МОХА Nport Ethernet-RS485



Андрей Чернов
25.06.2025, 12:17
Добрый день, коллеги!

Требуется опросить пр200 через МОХА в спк110. Почитав форум нашел информацию что необходимо формировать запросы через библиотеку owencommunication.
Оформил это следующим образом.

84513
84514
84515

Как видно tcp.client подключился, но блок tcp.request постоянно выдает error timeout.

в 518 регистре на пр200 лежит просто константа типа "123" для понимания что опрос таки произошел.
у пр200 адрес 16
моха настроена на TCP Server Mod всеми четырьмя портами.
OPC сервером напрямую с контактов пр200 опрос идет.

Ищу подсказок что я мог сделать не так.

melky
25.06.2025, 12:22
вы наверное опрашиваете по Modbus TCP (не разглядывал программу), а надо в режиме Com Over TCP. То есть опрос фактически идет в RTU режиме, завернутый в TCP через преобразователь.
Вроде для ПЛК это есть, с настройками не подскажу.

Андрей Чернов
25.06.2025, 12:33
надо в режиме Com Over TCP.

у блока tcp.request установлен флаг IsRtuOverTcpMode

imaex
25.06.2025, 12:37
Com Over TCP.

RTU over TCP, так правильнее.

melky
25.06.2025, 12:50
а порт на rs485 у moxa на TCP server 502 ?

imaex
25.06.2025, 13:33
4001, по-моему. По умолчанию. Но, если поменять на 502, он от этого шлюзом rtu/tcp не станет

imaex
25.06.2025, 13:43
OPC сервером напрямую с контактов пр200 опрос идет.


Так тем же OPC (если он RTU over TCP умеет) опросите через nport. Или любым другим клиентом, который умеет. На nport через телнет можно активность отследить, как на сетевом порту, так и на последовательных.

melky
25.06.2025, 13:50
imaex ну так я к тому же, типа 4001 порт в моксе, а в программе не поменяли и оставили 502-й порт.

imaex
25.06.2025, 13:57
Может он поменял в моксе. Видел же, наверное, когда "Operating settings" настраивал.

Андрей Чернов
25.06.2025, 14:01
а порт на rs485 у moxa на TCP server 502 ?

порт 502 да
84518

imaex
25.06.2025, 14:09
Совет прежний - добейтесь ответа в любом клиенте, умеющем RTU over TCP. Чтобы убедиться в работоспособности канала. Потом уже СПК мучайте.

Sergey361
25.06.2025, 14:10
А если таймаут побольше 50 ms поставить?

Андрей Чернов
27.06.2025, 08:46
Вопрос решился.
У моей моха 4 порта rs485 и каждый порт необходимо опрашивать отдельным tcp.client. Далее возникла проблема что мастер опрашивает случайный порт в моха. Решил это тем, что каждому порту дал разный порт (502, 503, 504, 505). Надеюсь в будущем это кому-нибудь пригодится.

imaex
27.06.2025, 09:02
Там дефолтные значения для номеров портов с 1-го по 4-ый - с 4001 по 4004 соответственно. Когда меняли, могли бы и внимание обратить и подумать. А по-хорошему и ни к чему менять было, тем паче, что 502-ой под modbus tcp зарезервирован. На ровном месте себе проблему создали.

Андрей Чернов
27.06.2025, 09:06
Знал бы прикуп, жил бы в Сочи

imaex
27.06.2025, 09:13
Ну, мне бы в голову не пришло одинаковые номера портов для всех интерфейсов выставить. Вон, разработчики дивайса даже не удосужились запрет на такое поставить.

Андрей Чернов
27.06.2025, 09:25
О эти гении форума, которые решают вступить в беседу когда вопрос решен. Скрывают свои знания от необразованных людишек пытаясь показать себя выше их.

melky
27.06.2025, 09:29
Одинаковые номера портов прекрасно работают в драйвере Modbus Slave на RapidScada с указанием устройства соответственно. Вполне себе удобно, когда устройство поддерживает несколько сокетов подключения и умеет так работать.
Не рассираешься портами.

imaex
27.06.2025, 09:40
О эти гении форума, которые решают вступить в беседу когда вопрос решен. Скрывают свои знания от необразованных людишек пытаясь показать себя выше их.

Вы же скромно промолчали о том, что наваракосили, не так ли? А все "тайные знания" содержатся в "NPort 5000 Series User Manual", которое нужно было просто хотя бы по диагонали прочитать.