Три независимых контура, по две магистрали. Стандартная архивная запись — 256 байт.
| EEPROM | Байт | Поле |
|---|---|---|
0x0000 |
8 | Номер, ASCII-цифры |
0x0010 |
1 | Тип: 0x60 |
0x0011 |
1 | Сетевой адрес |
0x0012 |
1 | Версия статистики |
0x0050–0x0052 |
По 1 | Типы контуров: 0 — закрытый, 1 — открытый, 2 — расходомер |
0x0053–0x0055 |
По 1 | Коды модификаций контуров |
0x0056 |
1 | Маска включения: биты 0/1/2 — контуры 1/2/3 |
0x00D8 |
4 | Версия ПО, ASCII |
Версия статистики и версия ПО — разные поля. Маска включения — value & 7; нулевая маска недопустима. Читаются выбранные контуры 1–3, запрос отключённого контура отклоняется. Число используемых магистралей — 1 или 2.
Основной запрос — A/4, ответ 261 байт, payload packet[4:260].
| Архив | AT | Число записей | Страницы для A/1 |
|---|---|---|---|
| Месячный | 2 | 30 | 2–31 |
| Суточный | 1 | 512 | 32–543 |
| Часовой | 0 | 1504 | 544–2047 |
Чтение физической страницы:
Запрос: 00 BA 41 01 PH PL 00 00 00 00 00 00 00 KS
Ответ: 00 BA C1 01 [256 байт] KS
page = (PH << 8) | PL
После исчерпания попыток A/4 выбранное кольцо однократно просматривается через A/1, записи индексируются по фактической дате. Корректный ответ A/4 с другой датой означает отсутствие записи и сам по себе не включает резервный просмотр. Физический порядок страниц может быть не календарным. Полностью нулевые/FF страницы пустые; для непустых проверяются дата и KSI.
При дублировании календарной границы точная запись имеет приоритет над частичной; среди равноточных сохраняется первая прочитанная. Кэшируются исходные записи, чтобы набор декодируемых контуров можно было менять.
Смещения от начала payload.
| Смещение | Байт | Поле | Формат |
|---|---|---|---|
| 0 | 5 | Дата | BCD YY MM DD hh mm |
| 10 | 2 | t холодной воды | UInt16 /256, °C |
| 12 | 1 | P холодной воды | /100, МПа |
| 13 | 2 | t наружная | UInt16 /256, °C |
| 15 | 4 | Накопленное время включения | BCD /100, ч |
B = 27 + 76*(n-1)
| Смещение от B | Байт | Поле | Формат |
|---|---|---|---|
| 0 | 7 | Q | BCD /1e9, Гкал |
| 7 | 7 | M1 | BCD /1e6, т |
| 14 | 7 | M2 | BCD /1e6, т |
| 21 | 7 | M3, отрицательный дисбаланс | BCD /1e6, т |
| 28 | 7 | V1 | BCD /1e6, м³ |
| 35 | 7 | V2 | BCD /1e6, м³ |
| 49 | 2 | t1 | UInt16 /256, °C |
| 51 | 2 | t2 | UInt16 /256, °C |
| 53 | 1 | P1 | /100, МПа |
| 54 | 1 | P2 | /100, МПа |
| 55 | 4 | Время нормальной работы | BCD /100, ч |
| 59 | 4 | Время G < Gmin | BCD /100, ч |
| 63 | 4 | Время G > Gmax | BCD /100, ч |
| 67 | 4 | Время dT < dTmin | BCD /100, ч |
| 71 | 4 | Время технической неисправности | BCD /100, ч |
| 75 | 1 | Ошибки | Биты |
KSI — байт 255, инверсия суммы байтов 0–254. Неиспользуемые блоки контуров могут содержать стёртые BCD; декодируются только нужные контуры. KSI проверяется для всей записи. После проверки KSI дата, состоящая только из байтов 00/FF, означает пустую запись.
M3 не является третьим трубопроводом. V1/V2 — накопленные м³, не расходы.
| Бит | Значение |
|---|---|
| 0 / 1 | G1 / G2 < Gmin |
| 2 / 3 | G1 / G2 > Gmax |
| 4 | dT1−2 вне допуска |
| 5 | dT2−3 вне допуска |
| 7 | Техническая неисправность |
Бит 6 не используется. Точные моменты начала/окончания из маски не определяются.
O = 0x58*(n-1) # n = 1..3
| Поле | Адрес относительно O | Формат |
|---|---|---|
| Ошибки | 0x00 |
UInt8 |
| P1 / P2 | 0x08 / 0x0C |
FLOAT4, МПа |
| t1 / t2 | 0x14 / 0x18 |
FLOAT4, °C |
| t холодной воды | 0x1C |
FLOAT4, °C |
| Gv1 / Gv2 | 0x30 / 0x34 |
FLOAT4, м³/ч |
| Gm1 / Gm2 | 0x38 / 0x3C |
FLOAT4, т/ч |
FLOAT4 — IEEE-754 binary32, big-endian, первые 4 байта данных ответа. NaN/Infinity отклоняются. FP3 ЭСКО-Т здесь неприменим. Текущая неисправность: (errors & 0xBF) != 0.
Прочитать 32 блока по 8 байт:
address = 0x0100 + 8*i # i = 0..31
payload[8*i : 8*i+8] = read_R(address)
Полученные 256 байт содержат Q/M/V и пять счётчиков времени по тем же смещениям контуров, что архив.
Для этого блока:
0x0100, не 0x0200;Тип 0x60 не гарантирует одинаковую карту всех схем и версий статистики. Здесь описаны стандартные общие поля холодной воды и три блока контуров. Специальные схемы с иным размещением полей требуют отдельной карты.
T/G → для каждого выбранного контура G ошибок и t холодной воды → для каждой выбранной магистрали G t/P/Gv/Gm → 32 чтения R 0x0100..0x01F8.
Сбой чтения EEPROM или неверный BCD исключает весь снимок текущих интеграторов, но не отменяет уже прочитанные мгновенные значения. Отмена опроса не подавляется. Дополнительное чтение версии ПО не является обязательным для получения показаний.