Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Upac-7186eg
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
Reasoning
Здравствуйте, уважаемые специалисты!
Ситуация следующая: имеется контроллер uPAC-7186EG, связанный с модулями ввода/вывода - i-7k по RS-485. Протокол обмена между модулями с контроллером, насколько мне известно, DCON.
Контроллер модули видит, все работает прекрасно.
Проблема возникла в необходимости связать контроллер со слейвом по Modbus RTU. Кинули витую пару на тот же COM-порт RS-485 (поскольку у этого контроллера их всего два COM1 - RS-232 и COM2 - RS-485), далее добавил в программе (используется IsaGRAF 3.55) в меню "Соединение В/В" оборудование 'mbus: Modbus RTU master' настроив на работу со слейвом. После всех манипуляций конфигурация "Соединение В/В" выглядит следующим образом:

Параметры соединения с модулями:


Параметры соединения со слейвом по Modbus RTU:


В результате, при online отладке, IsaGRAF выкидывает в лог сообщение "Не могу открыть плату ... №10" - т.е. не видит слейв, но работает с модулями. Однако, если поменять местами оборудование 'bus7000c' и 'mbus' в "Соединение В/В", IsaGRAF снова фыркнет "Не могу открыть плату ... №10", т.е. на этот раз покажет что есть связь со слейвом, но нет с модулями! Хорошо, думаю, давайте хотя бы протестируем обмен со слейвом. Добавляю в программу функциональный блок MBUS_R со следующими параметрами: SLAVE_2010 (где 2 - номер COM-порта, 10 - NET_iD слейва (замечу, что NET_iD слейва выбран уникальный, т.е. не пересекается с идентификатором модулей) ), ADDR_1 (стартовый адрес регистра - 1), CODE_3 (функция чтения регистров хранения - 3), NUM_12 - читать 12 регистров; значения на выходе записываются в 12 internal integers. Запускаю отладку, связь со слейвом есть и шлем запросы на чтение регистров, "на том конце" слейв принимает запрос, отвечает но содержимое 12ти internal integers все по нулям! Статус блока "MBUS_R" - FALSE, т.е. ответы от слейва контроллер не получает (?).
Думаю, что вины слейва в этом нет, пробовал через конвертор RS-485-to-USB с ноутбука читать регистры слейва - все ОК.
Ну и собственнно, вопрос - как быть? helpsmilie.gif Сталкивался ли кто-то с опытом подвязки слейвов на данный контроллер по Modbus RTU, при этом сохраняя работу с модулями? Проблема программного рода или не стоит вообще пытаться на один COM2-порт вешать и модуля и слейвы?
Буду признателен за любые советы.
Reasoning
Сейчас прочитал в спецификации Modbus RTU что при отстутствии проверки четности требуется выставлять два стоповых бита. Может быть причина в этом?
Reasoning
Нашел в факе Why my ISaGRAF project can not connect Modbus slave device correctly? #6: The set “port_no” is occupied by other functions. For ex, if using “bus7000b” at the same port No...
Как раз моя ситуация. Значит, никак не повесить слейв на тот COM-порт, где уже висят модули sad.gif
SIM
Цитата(Reasoning @ 21.7.2012, 17:14) *
Сейчас прочитал в спецификации Modbus RTU что при отстутствии проверки четности требуется выставлять два стоповых бита.

Так помоему никто не делает, везде стандартные параметры СОМ порта 8, N, 1 (8 бит данных, нет проверки четности, 1 стоп бит).
AlexG
Цитата(SIM @ 28.7.2012, 13:45) *
Так помоему никто не делает, везде стандартные параметры СОМ порта 8, N, 1 (8 бит данных, нет проверки четности, 1 стоп бит).


Не то что-бы совсем никто. В наших изделиях c Modbus-RTU в соответствии со стандартом предусмотрен режим 8, N, 2. А чтобы работать в одной сети с устройствами тех кто на стандарт забил пришлось добавить режим 8, N, 1.5 (1 стоп при приеме, 2 стопа при передаче)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.