Тема / Topic: MODBUS: запросы на чтение байтовых регистров в PLC Emersson ROC809 (Trace Mode 6)
Gregory_ua
Junior Member / Новичок
Участник № / Member № 1497
отправлено / posted
Сталкиваюсь не первый раз, но не понимаю до сих пор, почему ТМ6, посылая групповой запрос на чтение байтовых регистров, ждёт в ответ всего 7 байт. То есть, она ждёт значения только одного канала. По получении 7-ми байт МРВ проверяет CRC и обнаруживает ошибку. Принятое значение в канал не поступает. Остальная часть ответа просто игнорируется. Все эти умозаключения подтверждаются при просмотре протокола обмена с помощью утилитки PORTMON.EXE. Что бы это всё значило? И что нужно ТМ6, чтобы она приняла ответ на групповой запрос чтения байтовых регистров?
[ 17.11.2006, 13:03: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
Сообщения / Posts 8 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
Согласно стандарту MODBUS функция 02 запрашивает битовые переменные (это группа Coils-переменных). И в запросе указывается количество битов, а не байтов. А в ответе указывается количество байтов, содержащихся в теле ответа. В продемонстрированном Вами в письме запросе (07 02 00 97 00 10 C8 4C) указывается 16 (0х10) битов. В ответе они должны укладываться в 2 байта. Именно поэтому МРВ ожидает кадр ответе в объеме 7 байтов. Если Ваш MODBUS-Slave отвечает иначе, значит он нарушает стандарт.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Gregory_ua
Junior Member / Новичок
Участник № / Member № 1497
отправлено / posted
Спасибо. Принято. Однако есть ещё одна задачка. Пришлось поковырять Emersson ROC809. В ответ на запрос: > 07 04 00 01 00 01 CRC CRC можем получить ответ > 07 04 0A 65 65 20 20 20 20 20 20 20 20 CRC CRC Ответ, бесспорно, MODBUS. Однако ТМ6 его не принимает. Приходится придерживать ТМ6 от анализа с помощью драйверка Т11. А можно было бы предусмотреть анализ байта 2 (0, 1, 2) на предмет определения реальной длины ответа ROC809 или другого подобного КП. Или я опять чего-то не понимаю?
Сообщения / Posts 8 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
Ответ Вашего прибора на указанный запрос некорректен. Он должен был бы ответить 07 04 02 xx xx CRC CRC Трейс Моуд 6 ожидает ответа такого формата или сообщения об ошибке. Никаких нарушений стандарта со стороны Трейс Моуд 6 я не вижу. Если ROC809 не соблюдает стандарта, это проблемы производителя. Если прибор может отвечать только 5-регистрами, придется организовывать для него групповые запросы в рамках проекта. Это реально, хотя и утомительно. Хотя на наш запрос российский поставщик этих контроллеров ответил, что никаких отступлений от стандарта MODBUS у этих приборов нет.
Возможно еще, что у Вас задан малый таймаут на обмен и прибор посылает ответы с задержкой, что путает их последовательность.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |