Реанимация опроса по Modbus

Модератор: SaniOK

Реанимация опроса по Modbus

Сообщение KondratievES » 27 ноя 2017, 12:40

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

Задача опроса чего-нибудь по modbus всплывает и практике большинства инженеров постоянно. Рецепты написания максимально защищенного от проблем кода, находились самостоятельно и выкладывались на форуме.( Отдельное спасибо ув.Александру за вдохновение.).

Не пора ли сделать отдельный топ с рецептами лечения ситуаций когда уже "что-то пошло не так"??? (поискал по форуму - не нашел.)

Для затравки моя недавняя ситуация.
Нужно подружить M340 и 8-9 ПЧ Danfoss по ,по 20 слов с каждого. Диагностика связи, битов состояния, учтены хелпы,советы, выложенная в открытом доступе информация. Cancel делал периодически, уже после появления проблем изменил на вызов Cancel только при диагностике ошибки связи.
В конце концов все работает довольно долго, тесты "отсоединим кабель от ПЛК", "отсоединим от ПЧ", " выключим все ПЧ кроме одного " , "отключим-включим ПЛК" проходит успешно. и работает месяцами.

Но в какой-то момент все ложится. и 8 функций read_var начинают запускаться одновременно (причины распишу отдельным топом), диагностические биты каждой функции отдельно ведут себя словно все в порядке,но обмена естественно не происходит.

Так вот самое неприятное,что лечится это только перезаливкой ПЛК, что не очень страшно во время наладки, но слишком кардинально во время работы оборудования.
Даже устранение одновременного запуска read_var,и заведомо корректная работа обмена (например, оставлялся только тестовый порос одного ПЧ) не спасают.

для CANOpen есть "волшебный" бит, сбрасывающий связь. для mobus и вообще сериального порта, я такого не нашел.
Может кто-то знает способы "сброса" обмена без перезаливки ПЛК?......
KondratievES
 
Сообщений: 2
Зарегистрирован: 20 сен 2017, 17:35
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Re: Реанимация опроса по Modbus

Сообщение san » 27 ноя 2017, 21:03

Надо обращаться к тех-поддержке с официальным запросом. Может это проблема конкретного ЦПУ. Все функции со своими таблицами параметров?
Аватар пользователя
san
 
Сообщений: 880
Зарегистрирован: 05 мар 2012, 11:59
Откуда: Киев, Национальный университет пищевых технологий, каф.ИАСУ
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Пункты репутации: 21

Re: Реанимация опроса по Modbus

Сообщение PLC support » 20 дек 2017, 12:29

Подобная проблема встречалась на старых версиях M340 Firmware. Попробуйте обновиться.
PLC support
 
Сообщений: 82
Зарегистрирован: 29 авг 2013, 16:22
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 1

Re: Реанимация опроса по Modbus

Сообщение SaniOK » 26 дек 2017, 16:46

Уважаемый Евгений!

Подобные зависания по Serial line чаще всего связаны с неправильно сконфигурированным временем ожидания timeout (третье слово в Management Parameters). Значение этого параметра кратно 100 мс (5 = 500 мс). Если значение =0, функция ожидает ответа бесконечно долго, от чего может не выдавать никаких аварийных сообщений. При этом лечится перезагрузкой. Если перезагрузка вам не помогла - скорее всего у вас отключена функция Initialize %MWi on Cold Start. А при старте/стопе данные по связи не сбрасываются.
Либо же производится опрос до получения ответа на предыдущий запрос. Как бы там ни было, одновременная работа нескольких функций Read_var нуждается в изучении, но возможно, происходит из-за неправильной обработки активности опроса (для Serial line критичен поочерёдный опрос).
Могу порекомендовать опрос всех устройств с помощью одного блока Read_var, по окончании одного запроса подменяется адрес устройства а после опроса последнего переходим к первому.

Более точно можно определить после детального описания программы.
SaniOK
 
Сообщений: 3
Зарегистрирован: 30 ноя 2017, 13:55
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0


Вернуться в Высокоуровневые системы автоматизации - M340, M580, Premium, Quantum и Unity

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron