Legolas
Active Forum Member / Активный участник форума
Участник № / Member № 5047
отправлено / posted
Здравствуйте.
Имеется проект,в котором по Modbus TCP опрашиваются регистры 30001-30008, в каналах создали канал Call с типом вызова ChGroupReq, вроде как заработало, но через определенное время показания перестают изменятся.Причем каналы опрашиваемые не через Modbus продолжают исправно опрашиваться
В чем может быть причина? Нет ли там какого-нибудь числа означающего количество опросов?
отправлено / posted
Надо получить диагностическую информацию. Посмотреть атрибут ДОСТОВЕРНОСТЬ канала ChGroupReq. Запустить профайлер с ключом DEBUG=400 в файле конфигурирования запуска TMcom_xx.cnf и посмотреть в протоколе профайлера сообщения об ошибках сетевого обмена.
В каком релизе Вы работаете? Каково содержание файла ip_mobus?
Legolas
Active Forum Member / Активный участник форума
Участник № / Member № 5047
отправлено / posted
При запуске программы Достоверность канала CALL = _T После того как каналы перестают менять значения Достоверность _F Релиз 6.06.2 Содержание ip_modbus: ;502 Port 100 RECTIMEOUT 0 TIMEOUT 5 ERROR 5 OFFCOUNT 1 10.0.2.113
отправлено / posted
Вам следует обновиться до релиза 6.07.7, выложенного в настоящее время на сайте. С целью повышения устойчивости обмена драйвер протокола Modbus TCP в последнем релизе модифицирован. Протокол профайлера - текстовый файл в папке узла с тем же именем, что и файл *.dbb. Можно предположить, что в канале существует некоторый уровень ошибок. После прохождения большого числа неудачных транзакций канал, в соответствии с настройками Вашего файла ip_modbus, отключается от источника. Обмен прекращается. После налаживания связи канал надо вновь включать (атрибут 8 (W) сбросить в 0).
Надо получить информацию в протоколе профайлера и по ее содержанию либо настраивать сеть с целью уменьшения количества ошибок, либо настройками в файле ip_modbus оптимизировать режим обмена. В частности, можно поставить 0 OFFCOUNT.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Kollega
Forum Haunter / Завсегдатай форума
Участник № / Member № 4097
отправлено / posted
Добрый день, уважаемая теххподдержка! Дабы не создавать лишних тем напишу здесь. Итак, есть два компьютера: один с МРВ+, второй с маленькой системой, написаной на делфи(другой фирмы). Возникла задача получать в МРВ два значения float. Реализовать это посредством передачи по com-порту затруднений не вызывает. Но хотелось бы научиться передавать и получать данные по TCP протоколу. Изучив документацию, показалось, что это подобно связи по произвольному протоколу по RS. Т.е. с помощью канала ChGroupReq c привязкой MODBUS.R_FIFO_Queue я смогу задавать параметры как при связи по RS(само собой, что в системе на делфи придеться писать нужную функцию для связи). Правильно ли я мыслю или что-то не понимаю?
Сообщения / Posts 120 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
Если внешнее устройство в качестве сервера будет поддерживать "пользовательские" функции в соответствии с требованиями Modbus TCP, то Ваши предположения верны.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |