Здравствуйте! В проекте у меня предусмотрена связь с внешним устройством по ModBus TCP (master естественно PLC), функции 04 и 06. Функция 04 запрашивает данные со slave с периодом 1 сек (такт выполнения проекта), а 06 - по запросу оператора. Все функции отрабатываются нормально - передают/принимают. НО периодически между ними связь пропадает, причем обрывается именно ModBus TCP соединение (сама сеть работает) Восстановление связи возможно только после перезагрузки PLC. Вот так выглядит файл конфигурации ModBus: ;502 Port 200 RECTIMEOUT 0 TIMEOUT 3 ERROR 0 OFFCOUNT 1 192.168.1.2 Манипуляции с ним не дали результата. Вариант с перезагрузкой PLC не приемлем. "Глюк" начался после перехода с версии 6.06 (127 точек) на релиз 6.07.7 (255 точек). Как можно диагностировать и вновь инициализировать соединение ModBus TCP? Лучше с примером (с hepl-ом нет взаимопинимания) Поможет ли в данной ситуации переход на релиз 6.08? И подойдет ли "старая регистрация" МРВ 6.07.7? Аппаратная платформа: WinPac-8841 и microМРВ GSM/GPRS+ (255) версия 6.07.7
Спасибо за ответ!
[ 16.05.2012, 11:01: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Лицензия на ПО сохраняется при переходе на другой релиз.
Физически связь по Modbus TCP осуществляется через GPRS или по локальной сети?
В релизе 6.08 приняты дополнительные меры как для расширения диагностики, так и для повышения устойчивости связи по Modbus TCP. Если отвечающее устройство ведет себя адекватно, соединение восстанавливается автоматически с учетом заданных таймаутов. Таймауты ликвидации соединения у SLAVE и восстановления соединения со стороны MASTER должны быть согласованы.
Если возникнут вопросы по детализации этих процедур, предлагаем перейти на прямой контакт по почте.
Posted by Гаврилей Роман (Участник № / Member № 3402) on :
Спасибо за оперативный ответ
Физически связь по Modbus TCP осуществляется по локальной сети.
Что значит "Таймауты ликвидации соединения у SLAVE и восстановления соединения со стороны MASTER должны быть согласованы"? "Мой" slave может пропадать из сети до 5 минут (примерно раз в сутки идет его перезагрузка командой от PLC). Как правило, связь восстанавливается. НО потом через неопределенное время клиент-сервер рушится нет связи - нет перезагрузки slave. Помогает только "ручное" вмешательство.
Попробую перейти на релиз 6.08. Сообщу как только будут результаты.
Posted by Demus1 (Участник № / Member № 3844) on :
Да, можно здесь разместить информацию про согласование таймаутов?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
При потере связи SLAVE некоторое время ждет, после чего он должен разорвать соединение и быть готовым к установлению нового соединению по запросу МАСТЕРа. У МАСТЕРа, согласно документации, есть таймаут ожидания ответа, таймаут контроля/разрыва соединия и таймаут между попытками установления нового соединения.
Чрезмерное увеличение таймаутов у МАСТЕРа может привести к снижению производительности и неоправданно большому времени восстановления соединения. Занижение величин таймаутов может привести к увеличению переспросов и интенсификации процедур коннекта/дисконнекта, что увеличивает потребление ресурсов и негативно сказывается на динамике обновления информации.