Jump to content
Форум по продукции MOXA

Recommended Posts

Для увеличения количества COM-портов контроллера планируется использовать NPort IA-5250. Программное обеспечение контроллера предлагает только режим Modbus over UDP.

Вижу, что запрос от контроллера на COM-порт пришёл, устройство ответило, а контроллер от NPort посылку не получает - выдаёт тайм-аут готовности.

Проверил связь с NPort от компьютера с помощью программы Modbus Poll:

При задании в программе связи Modbus over TCP (NPort - в режиме TCP Server Mode) обмен идёт нормально: вижу код отправленный и код полученный.

При задании в программе режима Modbus over UDP (NPort - в режиме UDP Mode) ответа не получаю.

Что-то надо изменить в настройках?

Link to comment
Guest Stepashkin

Добрый день!

 

Прежде чем советовать, что нужно изменить в настройках, хотелось бы видеть эти самые настройки. Также непонятно, как построена схема опроса. Контроллер выступает в качестве Master-устройства? Опрашиваемое устройство тоже поддерживает Modbus over UDP или только Modbus/RTU? Поясните, пожалуйста.

Link to comment

Добрый день.

На время забудем про контроллер.

Есть компьютер с установленной программой Modbus Poll. По сети ETHERNET он связан с NPort. К COM-порту NPort по RS-485 подключено устройство с Modbus-протоколом.

Реализовывал 2 режима работы NPort:

1. UDP Mode. При этом в Modbus Poll задавал связь Modbus RTU over UDP/IP. Устройство отвечает на запросы, приходящие с COM-порта (подключил осциллограф), но до компьютера ответы не доходят: программа выдаёт ошибку тайм-аута.

2. TCP Server Mode. При этом в Modbus Poll задавал связь Modbus RTU over TCP/IP. В этом режиме компьютер получает ответы, идёт полноценный обмен информацией.

Почему не приходят ответы в первом случае?

Link to comment

Добрый день,

Похоже, с настройками всё хорошо. Тут вопрос в Modbus Poll, мне кажется.

Вы ведь через Modbus Poll открываете соединение "Modbus RTU/ASCII over UDP/IP" (как на картинке)? Там можно задать IP-адрес NPort (в Вашем случае - 192.168.127.254) и номер порта для опроса (в Вашем случае - 4001). А вот по какому порту слушает приемные данные Modpoll - это я, честно говоря, не знаю. Вы уверены, что тоже 4001? Я не нашел, где это задается.

У меня мало опыта общения с Modpoll, и я сходу не смог найти информацию о входящем порте.

 

В протоколе TCP всё просто: логическое соединение устанавливается, и данные из NPort возвращаются в Modpoll в тот же сокет, откуда стартовал запрос. А в UDP может быть всё по-другому.

2012-02-15_1133.png

Link to comment

Вы правы, всё дело в несогласованности портов при приёме ответной посылки. Такая же история происходит и при опросе от контроллера. Вопрос - как узнать этот destination адрес, чтобы прописать его в настройках NPort.

Мы забыли, что в запросе, который посылает и контроллер и компьютер с программой ModPoll есть не только порт назначения, но и порт источника. Логично было бы отвечать по этому адресу источника. Провёл эксперимент.

Запустил программу WireShark, которая мне позволила посмотреть содержимое посылок по IP. Подсмотрел там порт источника и прописал его в настройках как destination port. Порт оказался совсем дурацкий: 55719. И обмен пошёл. Но если я перезапускаю программу ModPoll (разрываю связь и вновь восстанавливаю), то этот порт будет уже другой. А, значит обмена вновь нет.

Логично было бы в настройках NPort ввести режим, когда destination port задаётся не фиксированным, а берётся из посылки-запроса.

Не знаю, почему "прыгает" порт в запросе, и, наверное, тоже самое происходит с контроллером. Так что пытаться найти и прописать этот destination port дело бесполезное.

 

Вывод печальный: NPort не поддержиает стандартный обмен по UDP.

 

Может быть вы можете предложить альтернативные варианты?

Задача простая: у контроллера есть Ethenet порт, спомощью которого надо опросить, скажем, 8 устройств по COM-портам. Устройства умеют "говорить" только по протоколу Modbus RTU. Контроллер может работать в следующих режимах: Modbus/TCP, Modbus RTU over UDP.

 

Спасибо за внимание.

post-3338-0-46103300-1329457028_thumb.jpg

post-3338-0-35619900-1329457045_thumb.jpg

Link to comment

Добрый день!

Вывод печальный: NPort не поддержиает стандартный обмен по UDP.

Нет, как раз-таки наоборот. NPort работает по UDP. Как раз в самом классическом понимании этого протокола. Отправлять ответ на тот порт, откуда пришел запрос, это уже частный случай. Какой-то "UDP а-ля TCP" получается.

В самом NPort, как раз, при работе в UDP-режиме задаются порты как для приема, так и для передачи данных. Почему порты для приема в некоторых программах не задаются, вот это вопрос!

 

Ну а почему не использовать в Вашей задаче Modbus over TCP, если он корректно работает?

 

А вообще, если передавать данные из Modbus RTU-счетчиков, то MOXA для этого выпускает преобразователи серии MGate. Они конвертируют данные из формата Modbus RTU в крассический Modbus/TCP, корректно обрабатывают требуемые задержки Modbus-протокола.

Link to comment

Здравствуйте.

Хотелось бы разобраться, как формируются порты source в протоколах UDP, какие возможны варианты. Не могли бы дать ссылку. Обратил внимание, что контроллер перебирает порты source в своих запросах, если нет ответа. Появилась надежда наладить связь...

К программе ModPoll обратился как к инструменту, чтобы понять, почему нет связи с контроллером. Контроллер поддерживает только два, как считается на www.modbus.org - стандартных соединения: Modbus/TCP и Modbus RTU over UDP. Так что выбор у меня ограничен.

Посмотрел на предложенные вами преобразователи MGate. Там есть для расширенного диапазона температур, которые нам подошли бы: MGate MB3270I-T и MGate MB3270-T. К сожалению, не нашёл описания на них. В чём между ними разница?

 

P.S. Не могли бы дать образец на тестирование?

Link to comment

Добрый день,

 

Номер исходящего порта UDP вобщем-то назначается случайно. Какого-то стандартизованного метода назначения портов нет.

 

По поводу устройств MGate - модели с буквой "i" имеют гальваническую изоляцию 2 КВ по последовательным портам. Если по порту плймается какая-то высоковольтная помеха, то она не передастся на остальное оборудование.

Насчет тестирования - да, конечно! Личным собщением я описал, что надо для получения на тест.

Link to comment

С наступающим праздником!

Личного сообщения не увидел.

Если можно, вышлите и описание на MGate. Не факт, что и он подойдёт.

Link to comment

C праздником!!!!

На MGate есть описание только английское, к сожалению. Можете скачать здесь.

 

А личное сообщение я продублировал Вам на почту.

 

К сожалению, могут проявляться какие-то проблемы на форуме, в т.ч. с личными сообщениями. Старая версия форума стала уязвима для спаммеров, а после апгрейда до новой версии выяснилось, что движок форума поменялся кардинальным образом, и наши программисты адаптируют сервер под новый вариант форума. Так что пока возможны какие-то сбои.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...