Название: Регистры Modbus в ТСРВ024 Отправлено: 024 от 20.12.2008, 19:02:48 Не смог получить достоверные значения параметра "Общее тепло, потребленное абонентом - в рабочем режиме, Гкал, Название в приборе - Wтс" из регистров, указанных в выложенном на сайте перечне (modbus_tsrv0241.doc). При чтении регистров C0BE, C0D6, C0EE получаю какие-то константы. Я делаю что-то не так, или перечень ошибочный?
Название: Re: Регистры Modbus в ТСРВ024 Отправлено: Dekir от 22.12.2008, 12:03:45 Значение находится в 0хC0BE 0хC0BF 0хC0С0 0хC0C1. Переменная, состоящая из 4 регистров, число повышенной точности. Запрашивать надо сразу 4 регистра в одном запросе.
Первые два регистра 0хC0BE 0хC0BF это целая часть числа в формате signed long, вторые два 0хC0С0 0хC0C1 это дробь в формате float. Обе части имеют одинаковый знак, float находиться в пределах от -1 < float < 1. Ихнадо сложить в одно 8 байтовое число типа double после прочтения Название: Re: Регистры Modbus в ТСРВ024 Отправлено: 024 от 22.12.2008, 17:41:38 Спасибо огромное за быстрый и содержательный ответ. Всё получилось. :)
ЗЫ. А документ modbus_tsrv0241.doc требует серьёзной доработки, там много неясностей. Название: Re: Регистры Modbus в ТСРВ024 Отправлено: Dekir от 23.12.2008, 11:47:51 Согласен, будем дорабатывать
Название: Re: Регистры Modbus в ТСРВ024 Отправлено: Demus от 14.04.2010, 17:46:29 По регистрам такой вопрос. Скачал документ http://www.vzljot.ru/files/docs/83/modbus_tsrv024.doc
1. Поиском по адресу 0xC0BE ищутся 2 регистра: Верхний номинальный ток, мА ДАВЛЕНИЕ ПД1 (0) 449343 и Общее тепло, потребленное абонентом - в рабочем режиме, Гкал ТЕПЛОСИСТЕМА ТС1 (0) 349343 2. Пробую прочитать этот регистр как советуют выше, т.е. c0be, c0bf - читаю как signed long,а 0хC0С0 0хC0C1 как float. С целой частью понятно. Она считывается правильно. А дробная приходит в виде 2 -х 5ти значных чисел. Что делать с этими числами? Пришло в голову разделить 0хC0С0 на 65536 (если регистр 16ти разрядный). А 0хC0C1 неужели делить на 6553600000? Неужели такая точность в счетчике? Название: Re: Регистры Modbus в ТСРВ024 Отправлено: Demus от 20.04.2010, 07:27:43 Есть ли живые люди на форуме? Техподдержка ведь должна быть... ???
Название: Re: Регистры Modbus в ТСРВ024 Отправлено: Dekir от 20.04.2010, 08:44:38 449343- просто float, засунутый в два 16 битных регистра по общим правилам фирмы Modicon
349343 - 4 16 битных регистра как описывалось выше. Делить ничего не надо float представлен в стандарте ANSI/IEEE 754 Все же есть на сайте http://www.vzljot.ru/files/docs/83/prtkl_Modbus_standart_data.pdf Название: Re: Регистры Modbus в ТСРВ024 Отправлено: WATalex от 04.06.2010, 07:22:03 А еще конфига для OPC-сервера "TSRV_024.vtmpl" кривая.... очень кривая.... :P
Название: Re: Регистры Modbus в ТСРВ024 Отправлено: lbv от 04.06.2010, 12:48:01 А еще пользователи... С такими руками!... ;D
Название: Re: Регистры Modbus в ТСРВ024 Отправлено: WATalex от 07.06.2010, 09:15:11 А еще пользователи... С такими руками!... ;D Если уж выкладывают конфиги к приборам и OPC-сервер на сайт для всеобщего обозрения, то хотя бы протестить все это можно предварительно, а то сидишь на объекте, интегрируешь эти приборчики и понять не можешь, почему же приходят совершенно не те данные, которые ты видишь на морде прибора, вот и приходится чужую работу выполнять, конфиги переделывать... и совершенно не в пользователях тут дело, в "корень зрить" надо... Название: Re: Регистры Modbus в ТСРВ024 Отправлено: Wizard от 30.06.2010, 06:42:41 День добрый. Вопрос такой. Нужно получить значение объема и количества теплоты(накопляемым итогом) для трубопровода 1 и 2 теплосистемы 1. В документе modbus_tsrv_024 тип данных для них указан, как вещественное. Указаны регистры - Объем (ТР1) - 349725, Объем (ТР2) - 349785, Тепло (ТР1) - 349717, Тепло (ТР2) - 349777. Пытался менять тип данных, но как вещественное они просто не считываются.
Название: Re: Регистры Modbus в ТСРВ024 Отправлено: lbv от 30.06.2010, 07:23:11 Формат представления этих данных, к сожалению, не указан в документации, упоминание о нем есть только в описании структуры архивов.
Указанные величины представляются в формате long+float, то есть, считывать нужно четыре регистра Modbus одним запросом, после этого старшие два регистра (с меньшим адресом) расшифровываются как длинное целое число, а следующие два регистра - как вещественное. Для получения результата эти два числа нужно сложить, как вещественные с двойной точностью. В списке регистров такое представление можно обнаружить, если после парного регистра с описанием назначения идет парный регистр, обозначенный, как "Заглушка для 4 регистровых ModBus переменных, реально не передается". Слова "реально не передается" обозначают, что отдельно прочитать эту заглушку нельзя, допускается только пакетное чтение совместно с предыдущим значащим парным регистром. |