НПО Тепловизор. Теплосчетчики и расходомеры К вершинам эволюции теплосчетчика
Продукция Поддержка Форум Контакты
     
Пользователь    Пароль  
Регистрация | Пароль?  
Главное меню
НовостиПродукцияФайлы/ДокументыСтатьиФорумОпросыФотогалереяО компанииРекламодателям
Потребители о нас
"Архитектура построения узлов учета ВИСТ.Т позволяет использовать указанные приборы в качестве единственного измерительного прибора для всех видов энергоресурсов: г.в.с., х.в.с., отопление, что особенно актуально для сокращения издержек при установке и эксплуатации узлов учета в жилищном фонде."

Ю.И.Припачкин, Генеральный конструктор ГЦП «Электронная Москва»
Наши партнёры
Свернуть/Развернуть ТЕПЛОСЧЕТЧИКИ • ВОДОСЧЕТЧИКИ • РАСХОДОМЕРЫ • ВИС.Т Свернуть/Развернуть
/  Список форумов
   /  Программное обеспечение
/  Передача данных по 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 Профайл
Распечатать топик 
«  Предыдущая тема    Следующая тема  »


Поиск

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

Права

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