/  Архив форума
   /  Оборудование производства НПО "Тепловизор"
/  ВИСТ.Т3 Modbus чтение накопленной энергии v

Форум : Оборудование производства НПО "Тепловизор"

Название : ВИСТ.Т3 Modbus чтение накопленной энергии v

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

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


 RUS :

25.6.21 00:49
 В продолжении к теме http://www.teplovizor.ru/forum/viewtopic.php?topic_id=698&forum=1&goto=prev
Считал параметры с регистров 654-662:
654: 4096
655: 15
656: -15983
657: 894
658: 5725
659: 18944
660: 4033
661: -28413
662: 32278

В каком адресе лежит тепловая энергия нарастающим итогом для Т/С 2???

 CH :

28.6.21 13:37
 Второй архив - самый сложный для обработки без файловых функций, поскольку вспомогательная структура его описания начинается не просто с адреса регистра 658, а только с его второй половины (байта) из за нечётного числа байтов в самой структуре (9). То есть, по вашим данным:
- в регистре 658 значение 5725 = 0x165D. 0x16 = 22 размер записи первого архива. 0x5D - первый байт адреса заголовка второго архива.
- в регистре 659 значение 18944 = 0x4A00. 0x4A - второй байт адреса заголовка второго архива.
- Адрес заголовка второго архива (байтовый) = 0x5D4A = 23882.
- Переводим байтовый адрес заголовка второго архива в регистровый (с учётом отображения архива начиная с адреса 0x1000 в пространстве регистров): (23882 + 0x1000) / 2 = 13989.

 RUS :

29.6.21 11:55
 При повторном чтении из Holding Registers получились значения:
658 - 5766 - 0x1686
659 - -24576 - 0xA000.

Получается число 0х86А0 - 34464. Отсюда выходит, что (34464 + 4096) / 2 = 19280.

Значения по адресам в Input Registers:
19280 - 327
19281 - 512
19282 - 0
19283 - 11

И при высчитывании полученное число накопленной энергии не совпадает с действительным.

Подскажите пожалуйста в чем может быть причина? Или что я делаю не так?

 CH :

29.6.21 12:09
 Значения в Holding-регистрах не могут отличаться от раза к разу, это настроечные константы в ПЗУ. Не знаю, насколько верно были прочитаны значения в первый раз, но регистр 654 во всяком случае прочитан верно - первый архив всегда с адреса 4096 (0x1000).
Убедитесь, что стабильно читаете одинаковые верные значения для начала по первому архиву (сравните размер / состав архива со значениями из заголовка архива), возможно обнаружите какую-то ошибку в процессе чтения.