"В начальный период работы отмечались неполадки датчиков давления приборов, которые были устранены в кратчайшие сроки работниками котельной совместно с сотрудниками ЗАО «НПО «Тепловизор» и далее не повторялись. По истечении трёх лет работы счётчиков сотрудниками ЗАО «НПО «Тепловизор» была произведена модернизация приборов, вследствие этого увеличилась скорость обработки данных. Общая оценка работы и обслуживания теплосчетчиков ВИС.Т – хорошо."
С.М.Бакулин, Начальник ПУ «Мосочиствод» МГУП «Мосводоканал»
Необходимо по Modbus опросить теплосчётчик. Как я могу с помощью стандартных команд 03 (0x03) или 04 (0x04) получить доступ к ячейкам памяти накопленной тепловой энергии для каждого канала, какие регистры читать и как эти данные преобразовать для получения корректного показания? Какой функцией читать эти регистры?
Из http://www.teplovizor.ru/forum/viewtopic.php?topic_id=410&forum=1 "На самом деле, гкал лежат в регистрах с 0x1019 по 0x101C, поскольку описание структуры архивного заголовка в руководстве содержит байтовые смещения и размеры полей." где это написано в инструкции? Не совсем понятно какие адреса для теплосети 2 и 3? Пример: я считал регистры с 0x1019 по 0x101C 4 последовательных 16-битных регистра и получил 4 числа: 0, 0, 572, 123. Как их преобразовать в одно число?
В начале описания функции 03. Кроме того, на это намекают заданные в байтах размеры элементов структур.
RUS Цитата:
Не совсем понятно какие адреса для теплосети 2 и 3?
В отличие от первой теплосистемы, расположение заголовков архивов второй и третьей теплосистем зависит от размера первого архива, то есть его их адреса следует прочитать из "спецификаций архивного файла" требуемой теплосистемы. Видимо всоедствие того, что в руководстве чтение архива не_файловыми функциями не рассматривается, в нём не описан стартовый (смещение 0) элемент этой структуры - один регистр (2 байта), содержащий адрес заголовка соотв. архива (содержащийся в нём адрес байтовый, не регистровый).
RUS Цитата:
Пример: я считал регистры с 0x1019 по 0x101C 4 последовательных 16-битных регистра и получил 4 числа: 0, 0, 572, 123. Как их преобразовать в одно число?
В зависимости от своей системы правильно интерпретируйте прочитанное с учётом формата данных прибора "старшим байтом вперёд". Поскольку вы не указываете, в каком формате представлены значения регистров 572 и 123, дальше можно гадать результате. Если предположить, что с порядком всё верно, в прочитанных вами восьми байтах хранится число 37486715 (0x023c007b). Воткнув в нужное место этого целого числа десятичную точку получим значение тепловой энергии на начало текущего часа (например что-то вроде 3748.6715 Гкал). Методика получения точного значения на текущий момент времени вполне доходчиво описана по ссылке.
-- Виктор В. Жданов NegaSoft Co. FAE НПО "Тепловизор", Главный инженер-программист
В каких регистрах лежат накопленная масса и объём?
Это нетрудно сообразить самостоятельно. Последовательность и размеры данных описаны, отсчитайте нужное число регистров хотя бы от от адреса тепловой энергии.
-- Виктор В. Жданов NegaSoft Co. FAE НПО "Тепловизор", Главный инженер-программист
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.
НПО «Тепловизор», Москва, Рязанский проспект, 8а тел/факс: +7(495)730-47-44, +7(495)127-28-44