НПО Тепловизор. Теплосчетчики и расходомеры К вершинам эволюции теплосчетчика
Продукция Поддержка Форум Контакты
     
Пользователь    Пароль  
Регистрация | Пароль?  
Главное меню
НовостиПродукцияФайлы/ДокументыСтатьиФорумОпросыФотогалереяО компанииРекламодателям
Потребители о нас
"ГУП ДЕЗ района «Текстильщики» рекомендует привлечь ЗАО «Сервисная Компания «Тепловизор» для выполнения работ по сервисному обслуживанию узлов учета тепловой энергии на других объектах г. Москвы."

Н.Н. Елисеева, Главный инженер ГУП ДЕЗ «Текстильщики»
Наши партнёры
Свернуть/Развернуть ТЕПЛОСЧЕТЧИКИ • ВОДОСЧЕТЧИКИ • РАСХОДОМЕРЫ • ВИС.Т Свернуть/Развернуть
/  Архив форума
   /  Программное обеспечение
/  Передача данных по modbus

Форум : Программное обеспечение

Название : Передача данных по modbus

© NegaSoft co., 2005
http://www.teplovizor.ru

URL этой темы
http://www.teplovizor.ru/forum/viewtopic.php?topic_id=771&forum=2


 kalin_a :

20.10.22 13:07
 Добрый день, можете подсказать по передаче данных с ВИС.Та modbus:
Для получения следующих данных: тип прибора, версии ПО, заводского номера, отправляется запрос вида FF 03 00 02 00 20 F0 0C. В этом запросе передаётся начальный адрес 00 02. В описании modbus на ВИС.Т перечисленные данные располагаются по адресу 00 04. Почему в запросе отличается начальный адрес?

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


Вот немного разобранный пример проблемы:
Столкнулись с тем, что в некоторых запросах, адресация регистров не соответствует описанию протокола.

Запрос:
FF 03 00 02 00 20 F0 0C
Здесь
FF - адрес ID
03 - функция чтения регистров
00 - начальный адрес (старший байт)
02 - начальный адрес (младший байт)
00 20 - количество запрашиваемых байт
F0 0C - сумма crc
Ответ от ВИС.Т
01 03 40 ....данные

Отправляется запрос, а в ответ получает следующие данные: тип прибора, версию ПО, заводской номер. В описании протокола modbus на ВИС.Т начальный адрес ячейки с запрашиваемыми данными должен быть 00 04, а в запросе передаёт адрес 00 02 смещение на 2 байта."

 xBocT :

20.10.22 14:20
 Вы путате "адрес в регистрах" и "смещение в байтах" получаемых структур.

В Документации "ВИС.Т-HC протокол MODBUS" указано, функцией 0x03 (Read holding registers) по Адресу 0x0000 (это адрес регистра!) можно получить "Структуру общих спецификаций прибора". Регистры в MODBUS имеют размер 16-битного слова, т.е. 2 байта...
Т.е. если надо вычитать 99 байт "Структуры общих спецификаций прибора", то надо прочитать 50 регистров начиная с адреса 0х0000, и уже в полученных данных "отсчитывать" указанные для определенных параметров теплосчетчика смещения.

 2kon :

20.10.22 22:50
 Очень, очень рекомендую вопрошающему внимательно ознакомиться с описанием протокола "Modbus" приборов ВИС.T-HC. И не использовать адрес 255 для обращения к устройству, иначе ваш вопрос с использованием этого адреса выглядит провокационно, если не сказать больше - издевательским.