Форум : Оборудование производства НПО "Тепловизор"Название : ВИС.Т MODBUS - Чтение архивов без "файловых" функций© NegaSoft co., 2005 http://www.teplovizor.ru
URL этой темы
http://www.teplovizor.ru/forum/viewtopic.php?topic_id=733&forum=1
|
Jenius : |
13.12.21 15:31 |
Вопрос по Архивам ВИС.Т (не файловой функцией). Не могу полностью разобраться как с ними работать. 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 часа?
[ Редактировано Jenius в 13.12.21 16:49 ]
[ Редактировано Jenius в 13.12.21 17:26 ] | |
|
CH : |
14.12.21 11:35 |
Считать запись с данными за предыдущий час работы прибора (новейшая запись) вы можете с указанного в заголовке архива индекса ("Индекс будущей записи в архиве" - 1), а не с нулевого индекса (сразу за заголовком архива). Её время будет совпадать с временем заголовка архива, она создаётся одновременно с обновлением заголовка. Запись, сделанная ещё за час до того по индексу ("Индекс будущей записи в архиве" - 2), её время на 1 час меньше времени заголовка архива. И т. д. Если ("Индекс будущей записи в архиве" - x) получается меньше нуля, прибавляете "Предельное число записей в архиве". Ну и учитываете, что архив может оказаться ещё не заполненным, больше чем "Текущее число записей в архиве" не прочитать. | |
|
Jenius : |
15.12.21 13:58 |
Спасибо за ответ. Можно вас попросить проверить адресацию запросов записей и длину команд?(обмен ниже) Цель считать последние данные за 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
">" - что отправляю "<" - что получаю на запрос | |
|
CH : |
17.12.21 11:41 |
Насчёт вашей просьбы о проверке - я не могу её выполнить. | |
|
|