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

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

kalin_a Передача данных по modbus

Новенький


Добрый день, можете подсказать по передаче данных с ВИС.Та 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 байта."
» 20.10.22 13:07 Профайл

xBocT Re: Передача данных по modbus

Администратор


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

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

--
Сергей А. Александров
Отдел Диспетчеризации
НПО "Тепловизор", Инженер-программист
» 20.10.22 14:20 Профайл Посетить веб-сайт

2kon Re: Передача данных по modbus

Администратор


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

--
Константин Константинов
НПО "Тепловизор", инженер-программист
» 20.10.22 22:50 Профайл
Распечатать топик 
«  Предыдущая тема    Следующая тема  »


Поиск

Ключевые слова:    
[ Расширенный поиск ]

Права

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