Тема / Topic: Потеря связи с виртуальным COM портом
Taller
Junior Member / Новичок
Участник № / Member № 5829
отправлено / posted
Здравствуйте уважаемая техподдержка! Используем в своём проекте связку из 6 модулей ICPDAS M-7017Z связанных по Modbus RTU с 6-ю модулями M2M-711D, т.е. 6 автономных станций. Каждая такая станция подключается через WI-FI к точке доступа на Zyxel Keenetic. В свою очередь ПК с МРТ тоже подключен через WI-FI к точке доступа. Связь между МРТ и модулями M-7017Z происходит по средствам виртуальных COM портов организованных через ПО VxCommW7 и VxServer от ICPDAS. Проблема: при обрыве питания модулей M2M-711D показания в МРТ «замирают» и после восстановления питания не «оживают». Помогает только полное закрытие МРТ и новый запуск, т.е. закрытие и открытие COM порта решают проблему, смотрели через Portmon. Как исправить данную проблему? Наши настройки: COM портов - RTM - Источники - Всё остальное по стандарту.
Сообщения / Posts 4 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
При потере связи с COM-портом необходима повторная процедура инициализации COM-порта. Это может быть осуществлено с помощью диагностической переменной @RS_Reinit. Потеря связи по COM-порту может быть выявлена с помощью соответствующих диагностических переменных. Запуск процедуры реинициализации может осущетвляться по интерактивным командам или программно (таймерно) после установления факта отсутствия связи до ее восстановления.
Сообщения / Posts 17324 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Taller
Junior Member / Новичок
Участник № / Member № 5829
отправлено / posted
Спасибо за ответ! Создали кнопку для переинициализации COM порта, всё работает, но только когда устанавливается бит недостоверности по всем каналам COM порта. Затем решили сделать автоматическую переинициализацию COM порта, написали программу на ST, работает, но только 1 раз, при повторном установлении недостоверности всех каналов переинициализация не происходит, неизвестно по какой причине. Написали программу на FBD с доп. задержками после установления недостоверности и т.д., на симуляции всё работает а на деле только первый раз, в чём дело?Сообщения / Posts 4 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Taller
Junior Member / Новичок
Участник № / Member № 5829
отправлено / posted
И ещё вопрос. Как сделать чтоб после потери данных с канала Modbus обнулялись индикаторы данных с каналов, а не зависали на последних значениях с канала?
Сообщения / Posts 4 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
1. Надо при идентификации отказа такого виртуального COM-порта выключать каналы обмена по этому COM-порту. Команду на реинициализацию COM-порта желательно подавать после восстановления канала связи или автоматически редкими (с периодом несколько минут) однократными командами.
2. Признаком потери связи в канале Modbus является "1" в его атрибуте ДОСТОВЕРНОСТЬ. Этот признак может использоваться для соответствующе индикации на экране или для программного изменения значения в канале. Однако сброс значения канала в 0 без соответствующей индикации потери связи вряд ли является корректным.
Сообщения / Posts 17324 | Из / From: Россия
| IP / IP: IP адрес / IP address |
AlexanderN
Junior Member / Новичок
Участник № / Member № 5746
цитируя Вас - Запуск процедуры реинициализации может осущетвляться по интерактивным командам или программно (таймерно)!!! после установления факта отсутствия связи до ее восстановления.
хочу спросить, как именно реинициализировать процедуру с помощью @RS_Reinit таймерно?
Сообщения / Posts 20 | Из / From: Казахстан
| IP / IP: IP адрес / IP address |
отправлено / posted
При обнаружении потери связи необходимо включить программу, которая с выбранным Вами периодом будет посылать в канал, связанный с переменной @RS_Reinit, нужное значение (и подтвердит его посылкой "1" в атрибут 39 того же канала). Период может задаваться либо периодом обработки CALL.Program, либо какой-либо функцией временного контроля, встроенной в программу. После восстановления связи программу следует выключить.
Сообщения / Posts 17324 | Из / From: Россия
| IP / IP: IP адрес / IP address |
AlexanderN
Junior Member / Новичок
Участник № / Member № 5746
отправлено / posted
а есть конкретный пример, дабы опираясь на него реализовать у себя. Переменная создана, добавлена в нужные узлы.
Сообщения / Posts 20 | Из / From: Казахстан
| IP / IP: IP адрес / IP address |