#pragma once #include #define comm_RebootAdapter 2u #define comm_LockOutReset 3u struct BoilerInfo { uint8_t adapterType; // тип адаптера. 000 - Opentherm 001 - eBus 010 - Navien uint8_t boilerStatus; // состояние связи с котлом 0 - нет ответа от котла на последнюю команду 1 - есть ответ от котла на последнюю команду uint8_t rebootStatus; // Код последней перезагрузки адаптера. 0...255 - код uint8_t adapterHardVer; // Аппаратная версия адаптера. 0...255 - номер версии uint8_t adapterSoftVer; // u8 Программная версия адаптера. 0...255 - номер версии uint16_t boilerMemberCode; // 0x0021 R u16 Код производителя котла. Зависит от марки и модели котла. 0...65535 - код производителя uint16_t boilerModelCode; // 0x0022 R u16 Код модели котла. Зависит от марки и модели котла. 0...65535 - код модели }; struct BoilerStatus { uint8_t burnStatus; // бит 0 - текущее состояние горелки 0 - отключена 1 - включена uint8_t CHStatus; // бит 1 - текущее состояние отопления 0 - отключено 1 - включено uint8_t DHWStatus; // бит 2 - текущее состояние ГВС 0 - отключено 1 - включено }; // Флаги ошибок (только для котлов с интерфейсом OpenTherm) enum FlagErrorOT //: uitn8_t { er_SecviceReq, // 0: Необходимо обслуживание er_LockOut, // 1: Котел заблокирован er_LowWater, // 2: Низкое давление в отопительном контуре er_FlameFault, // 3: Ошибка розжига er_AirPresFault, // 4: Низкое давление воздуха er_OverTem // 5: Перегрев теплоносителя в контуре }; ////////////////// Данные регистров второй версии адаптера котла //////////////////// Регистры для чтения enum ReadDataEctoControl //: uitn16_t { ecR_AdapterInfo = 0x0010, // 0x0010 R bitfields бит 2...0 - тип адаптера. 000 - Opentherm 001 - eBus 010 - Navien // бит 3 - состояние связи с котлом 0 - нет ответа от котла на последнюю команду 1 - есть ответ от котла на последнюю команду // u8 Код последней перезагрузки адаптера. 0...255 - код ecR_AdaperVersion = 0x0011, // 0x0011 R u8 Аппаратная версия адаптера. 0...255 - номер версии // u8 Программная версия адаптера. 0...255 - номер версии ecR_Time = 0x0012, // 0x0012 - 0x0013 R u32 Время работы адаптера после перезагрузки 0...4294967295 - время в секундах ecR_MinSetCH = 0x0014, // 0x0014 R u8 Нижний предел уставки теплоносителя. 0...100 - температура уставки в град. С ecR_MaxSetCH = 0x0015, // 0x0015 R u8 Верхний предел уставки теплоносителя 0...100 - температура уставки в град. С ecR_MinSetDHW = 0x0016, // 0x0016 R u8 Нижний предел уставки ГВС 0...100 - температура уставки в град. С ecR_MaxSetDHW = 0x0017, // 0x0017 R u8 Верхний предел уставки ГВС 0...100 - температура уставки в град. С ecR_TempCH = 0x0018, // 0x0018 R i16 Текущая температура теплоносителя -100...100 - температура в 0.1 гр. С ecR_TempDHW = 0x0019, // 0x0019 R u16 Текущая температура ГВС 0...100 - температура в 0.1 гр. С ecR_Pressure = 0x001A, // 0x001A R u8 Текущее Давление в контуре 0...50 - давление в (0,1бар) ecR_FlowRate = 0x001B, // 0x001B R u8? Текущий расход ГВС 1...255 - расход в (0,1 л/мин) ecR_ModLevel = 0x001C, // 0x001C R u8? Текущая модуляция горелки 0xFF - не определено 0...100 - модуляция в (%) ecR_BoilerStatus = 0x001D, // 0x001D R bitfields бит 0 - текущее состояние горелки 0 - отключена 1 - включена // бит 1 - текущее состояние отопления 0 - отключено 1 - включено // бит 2 - текущее состояние ГВС 0 - отключено 1 - включено ecR_CodeError = 0x001E, // 0x001E R u16 Код ошибки котла (основной). Зависит от марки и модели котла. 0...65535 - код ошибки ecR_CodeErrorExt = 0x001F, // 0x001F R u16 Код ошибки котла (дополнительный). Зависит от марки и модели котла. 0...65535 - код ошибки ecR_TempOutside = 0x0020, // 0x0020 R s8 Температура уличного датчика котла (при егоналичии). -65…+100 температура в градусах С ecR_MemberCode = 0x0021, // 0x0021 R u16 Код производителя котла. Зависит от марки и модели котла. 0...65535 - код производителя ecR_ModelCode = 0x0022, // 0x0022 R u16 Код модели котла. Зависит от марки и модели котла. 0...65535 - код модели ecR_FlagErrorOT = 0x0023 // 0x0023 R s8 Флаги ошибок (только для котлов с интерфейсом OpenTherm) // 0: Необходимо обслуживание // 1: Котел заблокирован // 2: Низкое давление в отопительном контуре // 3: Ошибка розжига // 4: Низкое давление воздуха // 5: Перегрев теплоносителя в контуре }; ////////////////////////////// WRITE ///////////// enum WriteDataEctoControl //: uitn16_t { ecW_SetTypeConnect = 0x0030, // 0x0030 W u8 Тип внешних подключений (будет сохранено в постоянной памяти адаптера) // 0 - адаптер подключен к котлу // 1 - котел подключен к внешнему устройству (панель или перемычка) ecW_TSetCH = 0x0031, // 0x0031 W int16 Уставка теплоносителя (будет сохранено в постоянной памяти адаптера). // Будет передана котлу при старте адаптера, пока главным устройством не // были записаны регистры уставки температуры. // 0...1000 - температура уставки в десятых долях градуса С (например, для // установки 45С нужно записать число 450). Во многих котлах необходимо до // подключения адаптера необходимо поднять температуру теплоносителя // отопления (нажимая “+” на панели котла) для согласования диапазона // температуры теплоносителя, в противном случае температура теплоносителя // может не достигнуть требуемого значения. ecW_TSetCHFaultConn = 0x0032, // 0x0032 W int16 Уставка теплоносителя в аварийном режиме(будет сохранено в постоянной памяти адаптера). // Будет передана котлу в случае // отсутствия связи с главным управляющим устройством. // 0...1000 - температура уставки в десятых долях град. С (например, // для установки 45С нужно записать число 450) ecW_TSetMinCH = 0x0033, // 0x0033 W u8 Нижний предел уставки теплоносителя 0...100 - температура уставки в град. С // Не все котлы поддерживают этот параметр. Как правило, этот // предел не должен быть ниже аналогичного предела, // установленного в настройках котла. ecW_TSetMaxCH = 0x0034, // 0x0034 W u8 Верхний предел уставки теплоносителя 0...100 - температура уставки в град. С // Не все котлы поддерживают этот параметр. Как правило, этот // предел не должен быть выше аналогичного предела, // установленного в настройках котла. ecW_TSetMinDHW = 0x0035, // 0x0035 W u8 Нижний предел уставки ГВС 0...100 - температура уставки в град. С // Не все котлы поддерживают этот параметр. Как правило, этот // предел не должен быть ниже аналогичного предела, // установленного в настройках котла. ecW_TSetMaxDHW = 0x0036, // 0x0036 W u8 Верхний предел уставки ГВС 0...100 - температура уставки в град. С // Не все котлы поддерживают этот параметр. Как правило, этот // предел не должен быть выше аналогичного предела, // установленного в настройках котла. ecW_TSetDHW = 0x0037, // 0x0037 W u8 Уставка ГВС (EPROM) 0...100 - температура уставки в град. С // Для большинства котлов эта уставка должна находиться ниже // предела, установленного в меню самого котла, иначе она может быть // проигнорирована котлом. Для некоторых котлов стоит устанавливать // этот параметр равным верхнему пределу уставки ГВС. ecW_SetMaxModLevel = 0x0038, // 0x0038 W u8 Уставка максимальной модуляции горелки (будет сохранено в постоянной памяти адаптера) 0...100 - уровень модуляции в процентах. // Данный параметр поддерживается не всеми котлами. Для // электрических трехфазных котлов возможно задать только 3 // уровня модуляции (в диапазоне 0…100%). ecW_SetStatusBoiler = 0x0039, // 0x0039 W bitfields бит 0 - режим контура отопления (будет сохранено в постоянной памяти адаптера) 0 - отключен 1 - включен // бит 1 - режим контура ГВС 0 - отключен 1 - включен // бит 2 - “второй контур”, используется только некоторыми котлами с // интерфейсом OpenTherm и может отвечать за активацию бойлера // косвенного нагрева или встроенной функции ГВС. 0 - отключен 1 - включен ecW_Command = 0x0080 // 0x0080 W uint16 команда // 0 - нет команды // 1 - CH water filling (зарезервировано) // 2 - перезагрузка адаптера // 3 - сброс ошибок котла // 4..65525 - зарезервировано // При записи любой команды, кроме «нет команды», сразу же меняется // состояние регистра «Ответ на команду» - становится 2 – идет // обработка команжы }; ///////////////////////////////////////// Регистры состояния: /* 0x0040…0x006F R i16 состояние данных в регистре ($addr - 0x30) -2 - ошибка чтения/записи в котел -1 - регистр не поддерживается 0- для регистра на чтение означает, что данные из котла прочитаны и валидны. Для регистра на запись означает, что данные успешно приняты котлом. 1- не инициализирован. если регистр R: чтение соответствующих данные из котла не приводилось, если регистр W: адаптеру не было задано значение для записи соответствующего значения в котле */ /* 0x0081 R int16 Ответ на команду -32768..-6 - зарезервировано -5 – ошибка выполнения команды -4 – неподдерживаемая котлом команда -3 – не поддерживаемый котлом идентификатор устройства -2 – не поддерживается данный адаптером -1 – не получен ответ за отведенное врекмя 0 – команда выполнена успешно 1 – не было команды (значение по умолчанию) 2 – идет обработка команды (обмен данными) 3..32767 - зарезервировано Если команда после перезагрузки адаптера не давалась, регистр читается как 1 - не было команды. */