PDA

Просмотр полной версии : ПЛК110 <-> МВ110-16P - не работает MODBUS



ibobalo
21.10.2011, 13:32
На златом крыльце... На столе на одной дин рейке бок обок смонтированы:

1. ПЛК110-60 (прошивка 2.14.0)
2. МУ110-16Р (прошивка 2.01)
3. МВ110-16ДН (прошивка 1.11)
4. МВ110-16ДН (прошивка 1.11)

все соединено в цепочку RS-485 отрезками витой пары с терм.рез.
все барахло дебажится и конфигурирутся через езернет крос с ноутбука.

для конфугурирования слейвов на ПЛК запускается маленькая програма бридж форвардящая пакеты между 485 и ТЦП сокетом виртуального ком порта на ноуте. (луч ненависти за недокумментированную инверсию результатов функций SysSockListen SysComSetSettings и т.п.) (луч любви форуму)

штатный конфигуратор M110 все слейвы видит и конфигурит на всех скоростях. кроме адресов у слейвов изменен сетевой таймаут = 5с. для МВ110 изменен протокол c Овена на ModbusRTU. (скриншот приатачен). для МУ110 протокола в конфигураторе нет, (автоопределение ?) (луч любви) (легкий луч диареи за то что такая важная и полезная фича недокумментирована).

для ПЛК кодесисом 2.3.9 создан пустой проект, в ПЛЦ конфугураторе Увеличено время цикла до 20мс. Создан модбас мастер, ему установлен 485 порт и вид фреймов RTU. под ним созданы универсальн.устр. для слейвов. им установлено адреса и создано регистры. (проект приатачен)

ПЛК110 <-> МУ110-16Р - коммуникация идет без проблем и во всех позах (все скорости, контроль парности, ASCII RTU). Лампочка авария на МУ гаснет сразу после запуска ПЛК.

ПЛК110 <-> МВ110-16P - НЕ РАБОТАЕТ НИКАК. оба. перебрал почти все комбинации скорости контроля четности и вида модбас фреймов. Лампочка авария горит нон стоп, в ПЛЦ конфигураторе параметр ласт еррор = 81. При том, конфигуратор его видит, новые параметры коммуникации программирует и потом успешно читает.

У меня идеи кончились. Куда копать?

PS. извините многа букав. накипело

swerder
21.10.2011, 14:37
вы случайно не подключаете одновременно всю цепочку rs485 модулей к конфигуратору?

ibobalo
21.10.2011, 14:42
вы случайно не подключаете одновременно всю цепочку rs485 модулей к конфигуратору?

нет. на кажд.модуль отдельный выключатель и при конфигурировании я все модули кроме одного выключаю.

capzap
21.10.2011, 15:04
нет. на кажд.модуль отдельный выключатель и при конфигурировании я все модули кроме одного выключаю.

К конфигуратору понятно,а пробовали ли подключать в одиночку модули к ПЛК и смотреть устанавливается ли связь. И имеется ли преобразователь интерфейса, чтоб сторонней программой с бука опросить модули?

ibobalo
21.10.2011, 15:48
К конфигуратору понятно,а пробовали ли подключать в одиночку модули к ПЛК и смотреть устанавливается ли связь. И имеется ли преобразователь интерфейса, чтоб сторонней программой с бука опросить модули?

пробовал. включен только один модуль и ПЛК. связи нет.
отдельного преобразователя в класическом понимании нету щас под руками. есть ПЛК в качестве прозрачного преобразователя. щас действительно попробую с прямо с бука модбасом попингать. может посоветуете програму под винду - модбас мастер на компорт?

capzap
21.10.2011, 16:52
жаль у ОВЕНа своих утилиток нет для проверки протоколов, попытайтесь здесь http://www.icpdas.com/products/PAC/i-8000/modbus_web_download.htm, свое не предлагаю :)

ibobalo
21.10.2011, 17:49
жаль у ОВЕНа своих утилиток нет для проверки протоколов, попытайтесь здесь http://www.icpdas.com/products/PAC/i-8000/modbus_web_download.htm, свое не предлагаю :)

спасибо. я уже вроде чуток разгреб. саммари:
причина 1. после переконфигурирования слейвов их надо выкл/пауза/вкл.
причина 2. МВ110-16ДН не поддерживает бит четности "parity even/odd" при использовании протокола модбас. только "no parity" (очередной луч за документацию где про сие скромно умалчивают) Без бита четности удалось запустить на 115200. Конечно в модбасе есть своя ЦРЦа, но неакуратненько как-то.

кстати, МУ110 со второй прошивкой держит бит четности. так что будем ждать прошивку 2 для МВ110 с автоопределением протокола и поддержкой бита четности.

ibobalo
21.10.2011, 18:21
а какой смысл в этом бите для модбаса ?

вопрос риторический?

если нет то приблизительно такой же как и в ремнях безопасности в самолете :). то есть для душевного спокойствия :p .

а если серьезно то можно не тратить время на просчет ЦРЦ когда ашипка четности.

Николаев Андрей
21.10.2011, 18:23
Есть ModBus tester стандартный - мы им пользуемся.
В принципе есть утилита OWenTestConsole. Но она для производства, мы как то не думали её выкладывать...

ibobalo
21.10.2011, 18:36
А вы думаете что код мастера анализирует ошибку четности ?

А есть причина делать по другому (кроме лени конечно ;) ?

Скажу даже больше, оно естественно так и получится если АПИ нормальное и ф-я "ЧитатьКомПорт" возвращает код ашипки "ЦРЦЕрор" а не надцать байт информационного мусора.

Hemann
21.10.2011, 19:07
Аркадич, думаю что наличие OWenTestConsole у потребителей несколько облегчил им настройку оборудования

ibobalo
21.10.2011, 22:49
"ЧитатьКомПорт" возвращает имеено надцать байт информационного мусора, а после разборки его и определяется код ашипки "ЦРЦЕрор" или "Пучком"

пардону просим, описочка получилась. я имел ввиду не "ЦРЦЕрор" а "ПАРИТИеррор". считается еще в УАРТ приемнике, выставляется флажком ашипки.

обращаю внимание - "если АПИ нормальное"

увы и ах