WBE2-I-OPENTHERM проблема 2

Ввводные те же (см. WBE2-I-OPENTHERM проблема 1)

Прошу разработчиков прояснить логику работы модуля с котлом. Какие ячейки (data-id) котла читаются, какие записываются, как часто, и при каких условиях? Какие ячейки связаны с какими modbus регистрами?
Как влияет на этот процесс конфигурация опроса modbus регистров модуля через serial драйвер WB (конкретно, значение параметра Poll для параметра (‘do not read’/‘in queue order’/etc)?

В имеющейся документации (OpenTherm_Modbus_BCG-1.0.2-W.pdf) эти вопросы не освещены практически никак. Например, соответствие ячейки и регистра указано только в одном случае (ячейка 28 - регистр чтения 0216).
Вдобавок, использование в документации “сокращённых” номеров modbus регистров ведёт к путанице. Например, регистр 0207 - это input register 30207, или holding register 40207? На чтение доступен и тот, и другой…

Также, помимо проблемы, озвученной в предыдущем посте (WBE2-I-OPENTHERM проблема 1), это позволит разобраться с другими малопонятными “феноменами” в работе модуля.
Например, запись через “прямой обмен” в ячейку 1 не приводит к изменению в ней значения, несмотря на то, что в mqtt модуль публикует 5/WRITE-ACK (предположительно, из-за того, что модуль сам постоянно пишет туда значение из топика Hot Water Setpoint, даже в том случае, когда значение Poll для этого канала стоит в ‘do not read’ и он в web-интерфейсе модуля вообще не отображается)
А в топике “Hot Water Temperature” иногда публикуются значения, совершенно невозможные по формату для opentherm ячейки, с которой он, предположительно, связан (026 DHW temperature имеет формат f8.8, и при этом в топике публикуется, например, 244)

Косвенным образом с этим, вероятно, связана и катастрофически медленная реакция модуля на команды “прямого обмена”. Даже при выключении (‘do not read’) всех остальных, кроме TR*, каналов, цикл чтения ячейки занимает более 15 секунд… Можно как-нибуть попросить модуль обслуживать только “прямой обмен”?

Поскольку никакой реакции на этот пост от @Vladimir_Nev_Sup я не получил, попробую ещё раз задать те вопросы, ответы на которые я хотел бы узнать.

  1. Какие ячейки (data-id) котла модулем читаются, какие записываются, как часто, и при каких условиях?

  2. Какие ячейки (data-id) котла связаны с какими modbus регистрами модуля?

  3. Как влияет на этот процесс чтения/записи модудем ячеек котла конфигурация опроса modbus регистров модуля через serial драйвер WB (конкретно, значение параметра Poll для параметра (‘do not read’/‘in queue order’/etc)?

  4. Можно как-нибуть устроить так, чтоб модуль обслуживал только “прямой обмен” (т.е. никакие другие чтения/записи ячеек котла, кроме тех, что заданы через “прямой обмен”, не производил)?

Добрый день.

  1. Список читаемых команд (в порядке очереди): 0, 5, 25, 26, 17, 18, 27, 48, 49, 28, 3.
    Список записываемых команд (в порядке очереди): 1, 56, 2.
    Частота 1 раз в секунду.
  2. Указано на инструкции стр 9,10 Инструкция
  3. Никак не влияет со стороны модуля. “do not read” - регистр не читается WB, “in queue order” - читается в порядке очереди.
  4. Нет, список опрашиваемых команд (1) нельзя изменить/отключить.

Спасибо за конкретику! Но разрешите, всё-таки, несколько уточняющих вопросов:

  1. Я полагаю, что то, что вы называете “командами” - это data-id в терминах оригинального документа Opentherm Protocol v2-2.pdf? Тогда предлагаю использовать для перевода на русский термин “ячейка”. Ибо ячейки можно и писать и читать (называть командой прочитанное из котла значение статуса - несколько странно…), и при этом не будет коллизий с регистрами modbus.

  2. Правильно ли я понимаю, что 1 раз в секунду опрашивается одна, из перечня, ячейка opentherm slave устройства? Т.е. на опрос 11 перечисленных ячеек, и запись трёх, тратится ~14 секунд?
    Опрашиваются ли ячейки, заданные в команде прозрачного обмена, только в тот цикл опроса, в который завершено формирование пакета на обмен? Если нет, то как тогда?

  3. На страницах 9 и 10 информация о соотвествии (да и то - неявно, без указания конкретной ячейки по спецификации opentherm) дана только для регистра CD/0205 “Статус котла”. Именно поэтому я и задал свой вопрос, и жду от вас ответа.

  4. Принято. Но всё-таки хочется уточнить, как на цикл опроса влияют команды прозрачного обмена?

  5. Жаль. Если бы у вас был специальный вариант прошивки, содержащий только трансляцию команд прозрачного обмена - я бы первый её установил.

  1. Да. Только запись 3х (если вы про прозрачный обмен) происходит одновременно. Эти 3 регистра формируют 1 пакет в котёл, то есть ~12 сек.
  2. Никак не влияют. Фиксированные команды идут циклично. Прозрачный обмен идёт в конце цикла если есть, что отправить.
  3. В течение 2х недель могу для вас сделать такой вариант прошивки, если всё ещё есть необходимость?

Нет, я про запись ячеек 1, 56, 2 - они тоже циклически записываются? Или только в случае изменения регистров modbus модуля? Если только по изменению, то было бы здорово всё-таки получить список соответствия: регистр modbus модуля ↔ номер ячейки opentherm (и алгоритм обмена… это как раз два первых вопроса, которые я задал вам ещё 26го марта, и повторил 28го, и повторяю сейчас, т.к. до сих пор не получил от вас полного ответа)

Понятно. Значит, чтение ячеек opentherm slave устройства модуль производит постоянно с одинаковым (жёстко заданным) темпом, а темп чтения прочитанных модулем значений через регистры modbus определяется настройками драйвера wb-mqtt-serial?

И позвольте, всё-таки, уточнить - у вас там внутри точно есть синхронизация между этими двумя циклами обмена? Есть защита от того, что команда чтения modbus регистра заберёт из него данные как раз в тот момент, когда они обновляются командой чтения ячейки opentherm?

Да, есть. По факту мой модуль сейчас неработоспособен.