"ГУП ДЕЗ района «Текстильщики» рекомендует привлечь ЗАО «Сервисная Компания «Тепловизор» для выполнения работ по сервисному обслуживанию узлов учета тепловой энергии на других объектах г. Москвы."
Н.Н. Елисеева, Главный инженер ГУП ДЕЗ «Текстильщики»
ВИС.Т MODBUS - Чтение архивов без "файловых" функций
Новенький
Вопрос по Архивам ВИС.Т (не файловой функцией). Не могу полностью разобраться как с ними работать. 1) Я прочитал Спецификацию архивных файлов: 01_03_0A_10_00_00_4F_C1_B1_08_93_1B_00 - Спец. прибора 1. 01_03_0A_1B_00_00_00_00_00_00_00_00_00 - Спец. прибора 2(+ смещение 1 байт) 01_03_0A_00_00_00_00_00_00_00_00_00_00 - Спец. прибора 3. 2) Понял что сконфигурирован только Прибор 1 и могу считать информацию с 1000h регистра. 00_4F_C1_B1 = 0100 1111 1100 0001 1011 0001 - настроено Время наработки, Масса 1, Масса 2, Средняя Темп. 1, Средняя Темп. 2, Тепловая Энергия, Критические ошибки, Время расхода мин и мах, Время Т мин, Время пропадания питания и время простоя. Предельное число записей 2195. Длина архивной записи 27. 3) Готов отправить команду на чтение структуры заголовка по документации стр. 15: 01_04_10_00_00_30 4) Готов получить и запомнить значения(смещения) в ответе: 6, 10, 12, 16 + разобрать ответ по стр. 15.
Далее возник вопрос: 1)Как дальше работать с записями архива если мне нужны значения за прошлый час? 2)Записи с данными лежат сразу после 1000h регистра + заголовка и можно опросить командой: 01_04_10_30_00_1B(первая запись) 01_04_10_4B_00_1B(вторая запись) 3)Время для записи будет: Дата и Время обновления архива(из заголовка файла) - Номер записи(т.е. 1 час) т.е. время для второй записи будет: Дата и Время обновления архива - 2 часа?
Re: ВИС.Т MODBUS - Чтение архивов без "файловых" функций
Администратор
Считать запись с данными за предыдущий час работы прибора (новейшая запись) вы можете с указанного в заголовке архива индекса ("Индекс будущей записи в архиве" - 1), а не с нулевого индекса (сразу за заголовком архива). Её время будет совпадать с временем заголовка архива, она создаётся одновременно с обновлением заголовка. Запись, сделанная ещё за час до того по индексу ("Индекс будущей записи в архиве" - 2), её время на 1 час меньше времени заголовка архива. И т. д. Если ("Индекс будущей записи в архиве" - x) получается меньше нуля, прибавляете "Предельное число записей в архиве". Ну и учитываете, что архив может оказаться ещё не заполненным, больше чем "Текущее число записей в архиве" не прочитать.
-- Виктор В. Жданов NegaSoft Co. FAE НПО "Тепловизор", Главный инженер-программист
Re: ВИС.Т MODBUS - Чтение архивов без "файловых" функций
Новенький
Спасибо за ответ. Можно вас попросить проверить адресацию запросов записей и длину команд?(обмен ниже) Цель считать последние данные за 5 часов из архивов. Должно быть все правильно. В запросах учел: Длина записи в байтах, а работаем в запросах с регистрами. Архив может обновиться. Ниже пример работы с Архивом прибора 1. Для приборов 2 и прибора 3 адресацию заголовка я рассчитываю по формуле: A:=(X + $1000) / 2; где X это значение @Байтового адреса заголовка архивного файла в адресном пространстве прибора".
Спецификация архивов по приборам|01_03_1C_10_00_00_4F_C1_B1_08_93_1B_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00 >Чтение заголовка архива|Адрес:4096|Длина записи архива:27(байты)|01_04_10_00_00_30 <Чтение заголовка|0|4096|0|01_04_60_01_32_01_00_00_00_00_4F_C1_B1_08_93_00_E2_08_93_0D_00_00_0F_0C_15_0A_C8_78_10_0A_76_67_E7_00_00_00_00_0A_79_60_F6_0A_65_26_CE_00_00_00_00_00_53_49_71_00_00_00_00_12_12_7E_FB_03_03_02_05_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00 >Проверка заголовка|Параметры:0|5226929|2195|226|2195|44545.5416666667|3|3|2|5|01_04_10_00_00_30 2195(текущее число записей в архиве)|226(Индекс будущей записи)|2195(Предельное число записей) 44545.5416666667(15.12.2021 13:00:00 Дата и время обновления архива) <Проверка заголовка|1|1|0|01_04_60_01_32_01_00_00_00_00_4F_C1_B1_08_93_00_E2_08_93_0D_00_00_0F_0C_15_0A_C8_78_10_0A_76_67_E7_00_00_00_00_0A_79_60_F6_0A_65_26_CE_00_00_00_00_00_53_49_71_00_00_00_00_12_12_7E_FB_03_03_02_05_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00 >Чтение записи за -0ч|Номер записи:225|01_04_1C_0D_00_0E <Чтение записи за -0ч|3|1|0|01_04_1C_00_E8_64_00_00_0B_E4_00_00_0B_D7_03_74_02_35_00_00_25_E0_00_00_00_00_00_00_00_00_00 >Проверка заголовка до чтения за -1ч|01_04_10_00_00_30 <Проверка заголовка -1ч|1|2|0|01_04_60_01_32_01_00_00_00_00_4F_C1_B1_08_93_00_E2_08_93_0D_00_00_0F_0C_15_0A_C8_78_10_0A_76_67_E7_00_00_00_00_0A_79_60_F6_0A_65_26_CE_00_00_00_00_00_53_49_71_00_00_00_00_12_12_7E_FB_03_03_02_05_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00 >Чтение записи за -1ч|Номер записи:224|01_04_1C_00_00_0E <Чтение записи за -1ч|3|2|0|01_04_1C_01_64_00_00_0B_C6_00_00_0B_BA_03_76_02_28_00_00_27_3D_00_00_00_00_00_00_00_00_00_E8 >Проверка заголовка до чтения за -2ч|01_04_10_00_00_30 <Проверка заголовка -2ч|1|3|0|01_04_60_01_32_01_00_00_00_00_4F_C1_B1_08_93_00_E2_08_93_0D_00_00_0F_0C_15_0A_C8_78_10_0A_76_67_E7_00_00_00_00_0A_79_60_F6_0A_65_26_CE_00_00_00_00_00_53_49_71_00_00_00_00_12_12_7E_FB_03_03_02_05_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00 >Чтение записи за -2ч|Номер записи:223|01_04_1B_F2_00_0E <Чтение записи за -2ч|3|3|0|01_04_1C_00_09_64_00_00_0B_AE_00_00_0B_A2_03_75_02_1A_00_00_28_83_00_00_00_00_00_00_00_00_00 >Проверка заголовка до чтения за -3ч|01_04_10_00_00_30 <Проверка заголовка -3ч|1|4|0|01_04_60_01_32_01_00_00_00_00_4F_C1_B1_08_93_00_E2_08_93_0D_00_00_0F_0C_15_0A_C8_78_10_0A_76_67_E7_00_00_00_00_0A_79_60_F6_0A_65_26_CE_00_00_00_00_00_53_49_71_00_00_00_00_12_12_7E_FB_03_03_02_05_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00 >Чтение записи за -3ч|Номер записи:222|01_04_1B_E5_00_0E <Чтение записи за -3ч|3|4|0|01_04_1C_E6_64_00_00_0B_AD_00_00_0B_A1_03_7D_02_3E_00_00_25_39_00_00_00_00_00_00_00_00_00_09 >Проверка заголовка до чтения за -4ч|01_04_10_00_00_30 <Проверка заголовка -4ч|1|5|0|01_04_60_01_32_01_00_00_00_00_4F_C1_B1_08_93_00_E2_08_93_0D_00_00_0F_0C_15_0A_C8_78_10_0A_76_67_E7_00_00_00_00_0A_79_60_F6_0A_65_26_CE_00_00_00_00_00_53_49_71_00_00_00_00_12_12_7E_FB_03_03_02_05_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00 >Чтение записи за -4ч|Номер записи:221|01_04_1B_D7_00_0E <Чтение записи за -4ч|3|5|0|01_04_1C_00_70_64_00_00_0B_9F_00_00_0B_94_03_80_01_04_00_00_49_F2_00_00_00_00_00_00_00_00_00
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.
НПО «Тепловизор», Москва, Рязанский проспект, 8а тел/факс: +7(495)730-47-44, +7(495)127-28-44