Добрый день. В проекте использую каналы Modbus TCP/IP. Столкнулись с проблемой плохой связи по сети на объекте, в следствии чего зависает МРВ, часто появляется системное сообщение invalid connect for unit_XX addr=10.180.41.201[502]err=10060:ETIMEDOUT. Ситуацию с каналом связи мне не изменить . Можно ли увеличить время опроса каналов в Trace Mode? Что ещё можно предпринять, что бы МРВ не зависало ?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
МРВ не зависает. Прерывается обмен с устройством по причине плохого канала связи.
Правильным решением является принятие мер для повышения качества канала связи.
Увеличить период обращения к Modbus-устройству можно заданием периода обработки соответствующих каналов обмена.
Можно попробовать увеличить таймауты в процедурах разрыва/восстановления соединения. Для этого в файле конфигурирования запуска узла *.cnf задать ключи
TCP_DIFCONN<nn>=<число секунд> – таймаут переподключения. В случае ошибки соединения попытка подключения предпринимается спустя время, заданное данным ключом (значение по умолчанию – 30с, nn – номер протокола);
TCP_DISCONN<nn>=<число секунд> – таймаут разрыва соединения. Если в ходе нормального обмена с устройством наступает момент, когда не проходит посылка, то сокет не уничтожается, а в течение времени, заданного данным ключом, примерно 1 раз в 10с предпринимается попытка повторной отправки посылки. Если отправить посылку не удается, по истечении таймаута сокет уничтожается. Значение данного таймаута по умолчанию – 0, что соответствует уничтожению сокета через 1 минуту;
Номер протокола Modbus TCP равен 09.
Posted by veloledi256 (Участник № / Member № 7333) on :
В папке RTM_1 нет файла .cnf, как его добавить?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
См. раздел "Приложения/Задание параметров работы мониторов".
Posted by veloledi256 (Участник № / Member № 7333) on :
Как правильно именовать файл TMcom_<ordinal>.cnf? У нас МРВ версии 6.10.2
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
TMcom_xx.cnf
Posted by veloledi256 (Участник № / Member № 7333) on :
По Вашей рекомендации создан и добавлен в папку узла RTM_1 файл TMcom_1.cnf, содержащий строки: TCP_DIFCONN<09>=<30> TCP_DISCONN<nn>=<10> END_OF_CNF
Не знаю можно ли два ключа писать в одном файле, правильно я понимаю, что время в кавычках измеряется в секундах?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Ключ DEBUGON позволит в профайлерном протоколе увидеть ошибки сетевого обмена. Время в таймаутах задается в секундах. Ключи действуют независимо, друг другу не мешают.
Posted by veloledi256 (Участник № / Member № 7333) on :
Чему равен параметр DEBUGON=70000400?
Posted by veloledi256 (Участник № / Member № 7333) on :
Это сброс битов, или это время? не понятно, что эта за число
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
DEBUGON - ключ, задающий объем диагностики, отображаемой в профайлерном протоколе. Он описан в разделе "Приложения/Задание параметров работы мониторов".
Заданное значение ключа позволяет описать процесс загрузки узла и продиагностировать процедуры сетевого обмена.
Профайлерный протокол лежит в папке узла. Имя файла <имя файла *.dbb>.txt
Posted by veloledi256 (Участник № / Member № 7333) on :
Спасибо Вам за пояснение. В понедельник увидим результат
Posted by veloledi256 (Участник № / Member № 7333) on :
Спустя сутки после создания файла .cnf и перезапуска проекта, МРВ предлагает закрыть окно в аварийном режиме. Содержание файла конфигурирования DEBUGON=70000400 TCP_DIFCONN<09>=<30> TCP_DISCONN<09>=<10> END_OF_CNF
содержание файла профайлерного протокола (16:50:43) INF_RTM:301:invalid connect for unit_xx addr=10.180.41.201[502] err=10060:ETIMEDOUT (20:55:4) INF_RTM:301:invalid connect for unit_xx addr=10.180.41.201[502] err=10060:ETIMEDOUT
Posted by veloledi256 (Участник № / Member № 7333) on :