This is topic MODBUS: запросы на чтение байтовых регистров в PLC Emersson ROC809 (Trace Mode 6) in forum Редактор проекта TRACE MODE 6 / at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/32/t/000050.html

Posted by Gregory_ua (Участник № / Member № 1497) on :
 
Сталкиваюсь не первый раз, но не понимаю до сих пор, почему ТМ6, посылая групповой запрос на чтение байтовых регистров, ждёт в ответ всего 7 байт. То есть, она ждёт значения только одного канала. По получении 7-ми байт МРВ проверяет CRC и обнаруживает ошибку. Принятое значение в канал не поступает. Остальная часть ответа просто игнорируется. Все эти умозаключения подтверждаются при просмотре протокола обмена с помощью утилитки PORTMON.EXE. Что бы это всё значило? И что нужно ТМ6, чтобы она приняла ответ на групповой запрос чтения байтовых регистров?

[ 17.11.2006, 13:03: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Согласно стандарту MODBUS функция 02 запрашивает битовые переменные (это группа Coils-переменных).
И в запросе указывается количество битов, а не байтов. А в ответе указывается количество байтов, содержащихся в теле ответа.
В продемонстрированном Вами в письме запросе (07 02 00 97 00 10 C8 4C) указывается 16 (0х10) битов.
В ответе они должны укладываться в 2 байта.
Именно поэтому МРВ ожидает кадр ответе в объеме 7 байтов.
Если Ваш MODBUS-Slave отвечает иначе, значит он нарушает стандарт.
 
Posted by Gregory_ua (Участник № / Member № 1497) on :
 
Спасибо. Принято. Однако есть ещё одна задачка. Пришлось поковырять 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 или другого подобного КП. Или я опять чего-то не понимаю?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Ответ Вашего прибора на указанный запрос некорректен.
Он должен был бы ответить
07 04 02 xx xx CRC CRC
Трейс Моуд 6 ожидает ответа такого формата или сообщения об ошибке.
Никаких нарушений стандарта со стороны Трейс Моуд 6 я не вижу.
Если ROC809 не соблюдает стандарта, это проблемы производителя.
Если прибор может отвечать только 5-регистрами, придется организовывать для него групповые запросы в рамках проекта. Это реально, хотя и утомительно.
Хотя на наш запрос российский поставщик этих контроллеров ответил, что никаких отступлений от стандарта MODBUS у этих приборов нет.

Возможно еще, что у Вас задан малый таймаут на обмен и прибор посылает ответы с задержкой, что путает их последовательность.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2