Проблема: в случайные моменты времени получаю в ответ на запрос заведомо известных значений следующее: Float - вместо 0: 2.65383e+010 Float - вместо 160: 2.65383e+010 Float - вместо 1: 2.65383e+010 Float - вместо 0: 2.65389e+010 Float - вместо 160: 0.674377 Word - вместо 0: 63, 65531, 55, 36 и т.п.
Пробовал использовать Lectus Modbus-OPC сервер - тот считывает корректно, без ошибок.
отправлено / posted
Протокол Modbus TCP защищен очень хорошо. Проскакивание такого рода ошибок возможно только при подстановке ошибочных данных на TCP-входе. Нет ли у Вас в канале связи какого-либо перехода, например, Modbus TCP в Modbus RTU?
Если получен корректный кадр (а иначе у канала был бы признак недостоверности и его значение не изменилось бы), внутренними средствами диагностики ошибку не поймать.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Kramarenko Stanislav
Forum Professor / Завсегдатай форума
Участник № / Member № 119
отправлено / posted
переходы Modbus TCP в Modbus RTU не использую.
отправлено / posted
Протоколируются только ошибки. Но выставление какого-либо значения без признака недостоверности в канале говорит об отсутствии протокольных ошибок.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Kramarenko Stanislav
Forum Professor / Завсегдатай форума
Участник № / Member № 119
отправлено / posted
Обнаружил причину появления "левых" данных.
Дело в том, что я использовал в строке IP адреса в настройках источника/приёмника ключ THONE, в надежде использовать отдельные потоки для каждого контроллера.
Это выглядело как "xxx.yyy.mmm.nnn THONE"
Этот ключ я использовал у источников/приемников двух (из шести) узлов.
При этом значения их каналов стали перепутываться, т.е. значения каналов одного контроллера стали подменяться значениями из каналов другого контроллера (IP адреса разные). Кроме того, неверные данные стали появляться и в каналах оставшихся 4-х контроллеров, в которых ключ THONE не использовался.
Подмена была кратковременной. Было похоже, что сначала записываются неверные данные, а затем переписываются верными.
отправлено / posted
1. Поставили эксперимент с тремя эмуляторами Modbus-устройств. У устройств отличались только IP-адреса. Опрос каждого производился в отдельном потоке. Обмен был безупречен - ошибок не наблюдалось.
2. Мы готовы проверить функционирование Вашего проекта на эмуляторах. Также полезную информацию можно получить из протокола профайлера, включив отладку. Для этого создайте в папке узла проекта cnf-файл с ключом "DEBUGON=4400". Материал отправляйте на hotline3@adastra.ru.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |