Конфигурирование A9 для поддержки MODBUS-Slave (TCP/IP)

Общие вопросы по оборудованию и программному обеспечению Компании ДЭП
mnl
Сообщения: 6
Зарегистрирован: 07 май 2010, 14:03

Сообщение mnl » 11 май 2010, 07:30

Помогите пожалуйста сконфигурировать контроллер Decont-A9 для работы в режиме Modbus-slave через ethernet интерфейс.

То до чего я сам смог додуматься почему-то не работает :)

Первое, что я сделал это описал виртуальный интерфейс
Изображение
На этом этапе вопросов никаких не возникло, а вот дальше уже появились.
Например, нужно ли описывать устройство Modbus Мастер? И если нужно то далеко не все параметры настроек мне очевидны.
Изображение
1)Какой должен быть Физ. адрес?
2)Какой должен быть IP адрес если нужно чтоб подключение было возможно с любого?

mnl
Сообщения: 6
Зарегистрирован: 07 май 2010, 14:03

Сообщение mnl » 12 май 2010, 07:43

Мда, что-то тут не густо с ответами ну или с уточняющими вопросами. :(

В дополнение хочу сказать, что после всех моих настроек контроллер устанавливает соединение на 502 порту но ни на один запрос не отвечает. Компонент MODBUS Slave вроде как настроен.

Максим
Сообщения: 165
Зарегистрирован: 13 янв 2005, 15:03
Откуда: Компания ДЭП

Сообщение Максим » 12 май 2010, 17:05

IP адрес если равен 0, то контроллер принимает любого мастера.

Физический адрес, это однобайтовый адрес контроллера по протоколу MODBUS.
С уважением Максим
Компания ДЭП

mnl
Сообщения: 6
Зарегистрирован: 07 май 2010, 14:03

Сообщение mnl » 13 май 2010, 07:03

На сколько я понимаю, физический адрес в TCP/IP реализации протокола MODBUS не должен иметь значения(контроллер это же не мост), но даже если привести все в соответствие контроллер все равно отмалчивается.
В чем может быть причина? Я сейчас для тестовых целей пытаюсь получить значение дискретного входа который реализован на самом контроллере. Меня тут немного смущает то, что я не могу в настройках компонента MODBUS Slave указать тип данныз BYTE для функции №2. Мне же не 16 бит нужно получить, а всего один. Может тут что-то не так?

Светлана
Сообщения: 329
Зарегистрирован: 06 июн 2005, 15:27
Откуда: Компания ДЭП

Сообщение Светлана » 13 май 2010, 19:05

Если проблема не разрешилась, пожалуста, вышлите мне конфигурацию контроллера Decont, который не отвечает по MODBUS и запрос, который ему отправляется

vss@dep.ru

Максим
Сообщения: 165
Зарегистрирован: 13 янв 2005, 15:03
Откуда: Компания ДЭП

Сообщение Максим » 17 май 2010, 13:09

Меня тут немного смущает то, что я не могу в настройках компонента MODBUS Slave указать тип данныз BYTE для функции №2. Мне же не 16 бит нужно получить, а всего один. Может тут что-то не так?


Для типа "Дискретные ВХОДЫ" поле тип не используется, т.к обмен идет по битам.

Мы провели проверку и у нас все заработало.

Запрос: de aa 00 00 00 06 01 02 00 09 00 01
Ответ: de aa 00 00 00 04 01 02 01 29
С уважением Максим

Компания ДЭП

Максим
Сообщения: 165
Зарегистрирован: 13 янв 2005, 15:03
Откуда: Компания ДЭП

Сообщение Максим » 17 май 2010, 13:13

На сколько я понимаю, физический адрес в TCP/IP реализации протокола MODBUS не должен иметь значения(контроллер это же не мост), но даже если привести все в соответствие контроллер все равно отмалчивается.


Физический адрес имеет огромное значение, когда на одной сесии сидит два слейва с разными адресами.

В конфигурации вы поставили физический адрес 2, а в запросах которые вы прислали в письме стоит физический адрес 1.

Может в этом проблема?
Адреса должны совпадать.
С уважением Максим

Компания ДЭП

mnl
Сообщения: 6
Зарегистрирован: 07 май 2010, 14:03

Сообщение mnl » 19 май 2010, 13:01

В конфигурации вы поставили физический адрес 2, а в запросах которые вы прислали в письме стоит физический адрес 1.


Это следы эксперементов.
В той конфигурации которую я вам отправил адрес в настройках и в запросе был правильный.

То что у вас контроллер отвечает на запросы это хорошо и как минимум это говорит о том, что я ничего не упустил в настройках, но вот беда, в моем случае контроллер на запрос не отвечает.
Запрос такой:

Код: Выделить всё

ReqId|PrtId|PktSz|Ad|Fn| Reg | Len
00 01 00 00 00 06 01 02 00 09 00 01

От вашего примера этот запрос отличается только идентификатором
Что еще может влиять на такое поведение контроллера?

Вот еще раз ссылка на файл проблемной конфигурации.

По своему IP он пингуется нормально и сессия по 502 пору устанавливается, а вот ответов нет.

Максим
Сообщения: 165
Зарегистрирован: 13 янв 2005, 15:03
Откуда: Компания ДЭП

Сообщение Максим » 20 май 2010, 09:07

Какой дистрибутив вы используете?
Какой IP у мастера?

Попробуйте использовать для контроля входящих пакетов на PC программу ETHEREAL.
http://www.dep.ru/downloads/pub/Util/et ... 0.99.0.exe

Даю ссылку на drivers.so. Залейте его в A9. В журнале сообщений он будет писать принимаемые и отправляемые пакеты по интерфейсу V1.
http://www.dep.ru/downloads/pub/Util/temp1/drivers.rar
С уважением Максим

Компания ДЭП

mnl
Сообщения: 6
Зарегистрирован: 07 май 2010, 14:03

Сообщение mnl » 21 май 2010, 09:18

Какой дистрибутив вы используете?

Install_depDecont-5.4.1.69.exe

Какой IP у мастера?

У контроллера IP: 192.168.3.233
Кстати шлюз у контроллера не настроен так как за пределы локальной сети выход не требуется.
У мастера: 192.168.3.49

Даю ссылку на drivers.so. Залейте его в A9. В журнале сообщений он будет писать принимаемые и отправляемые пакеты по интерфейсу V1.

После добавления этого файла в журнале сообщений появились такие записи:

Код: Выделить всё

[2EAEF2C8] Rx: 00 01 00 00 00 06 01 02 00 09 00 01 
[2EAEF2C8] Rx: 00 01 00 00 00 06 01 02 00 09 00 01 

На один запрос их там почему-то две появляется.

Если послать запрос где указан неправильный физический адрес то запись в журнале будет только одна.

Максим
Сообщения: 165
Зарегистрирован: 13 янв 2005, 15:03
Откуда: Компания ДЭП

Сообщение Максим » 24 май 2010, 10:19

Есть предположение что в стабильном MODBUS-TCP Slave не работает.
Попробуйте последнийй тестовый дистрибутив.
С уважением Максим

Компания ДЭП

mnl
Сообщения: 6
Зарегистрирован: 07 май 2010, 14:03

Сообщение mnl » 24 май 2010, 14:18

Действительно, после установки тестовой версии дистрибутива контроллер сразу стал отвечать.

Проблема решена, спасибо!