7in

Ответы в темах

Просмотр 15 сообщений - с 16 по 30 (из 46 всего)
  • Автор
    Сообщения
  • 7in
    Участник

    Обе рассматриваемые ошибки больше не возникают. Запись float работает корректно в обоих случаях.
    Спасибо!
    Неужели до меня никто не сталкивался с подобными проблемами?

    7in
    Участник

    Это была первоочередная проблема.
    При попытке её обойти вылезла другая — если создать команду (множественную) с типом float — то всегда через неё пишутся нули вне зависимости от того, что я пытаюсь записать. Если нужны скриншоты/файл шаблона — выложу чуть позже.

    7in
    Участник

    Шаблон прежний (не изменялся) — из первого сообщения данной темы.
    Проблема с элементом «Смещение графика конт 1»:
    <Elem type="float" byteOrder="2301" readOnly="false" isBitMask="false" tagCode="558" name="Смещение графика конт 1" />
    Проблема заключается в том, что при попытке записи такого элемента коммуникатор направляет некорректный запрос устройству: пытается функцией для записи одного регистра записать сразу два.

    7in
    Участник

    то есть изначально 00 00 00 00 00 00 40 00 и хвост пропадает…

    Попробовал записать значение «1,1» — там хвоста с нулями быть не должно т.к. в hex оно выглядит как 0x9a9999999999f13f

    Однако в журнале коммуникатора все равно одни нули

    7in
    Участник

    Должен вот такой пакет передаваться:

    30 10 02 2E 00 02 04 00 00 40 00 A3 67

    7in
    Участник

    Число float состоит из 4 байт и занимает 2 адреса Модбас.

    Действительно все верно. Только почему то нули одни пишутся, а не передаваемое значение.

    7in
    Участник

    Тогда вот что отправляет:
    Отправка (17): 30 10 02 2E 00 04 08 00 00 00 00 00 00 00 00 28 44
    Это если у множественной ставить.

    7in
    Участник

    Еще возникла проблема с записью float элементов:
    Есть вот такой элемент в группе (Смещение графика). Тип float, порядок 2301
    https://disk.yandex.ru/i/sUonycKkxU2PuQ
    Когда пытаюсь его записать (значение 2,0) — коммуникатор направляет устройству вот такой пакет:

    2022-11-10 14:00:13 Команда устройству [3] ТРМ1032 Вокзальная 31А
    Команда "Смещение графика"
    Отправка (10): 30 06 02 2E 00 00 40 00 FD 3B
    Приём (2/2): 30 86
    Приём (3/3): 03 53 AE
    Ошибка устройства: [03] ILLEGAL DATA VALUE!

    На что устройство ругается, т.к. онлайн парсер выдает ошибку «Expected data package size is 8 bytes».
    Т.е. коммуникатор пытается функцией «06» записать сразу два регистра.
    После этого я решил добавить множественную команду:
    https://disk.yandex.ru/i/rO6OXCiqTBO2GQ
    При попытке записи такой командой коммуникатор отправляет следующий пакет:

    2022-11-10 14:08:17 Команда устройству [3] ТРМ1032 Вокзальная 31А
    Команда "Смещение"
    Отправка (13): 30 10 02 2E 00 02 04 00 00 00 00 92 A7
    Приём (2/2): 30 10
    Приём (6/6): 02 2E 00 02 24 58
    OK

    Т.е. пишет 4 байта вместо необходимых двух. Зачем — непонятно

    7in
    Участник

    Можно узнать в чем заключалась проблема? Я верно предположил что это связано с размерностями элементов?

    7in
    Участник

    Вот так после обновления:
    2022-11-09 17:16:30 Команда устройству [7] trm1032v2 vokz31a
    Команда «Уставка температуры контура отопления, Точка №3»
    Отправка (8): 30 06 02 2A 00 34 AC 4C
    Приём (2/2): 30 06
    Приём (6/6): 02 2A 00 34 AC 4C
    OK
    Теперь все корректно работает, спасибо!
    Думал я что-то не так делаю)

    7in
    Участник

    Вот что до обновления:
    2022-11-09 17:12:29 Команда устройству [7] trm1032v2 vokz31a
    Команда «Уставка температуры контура отопления, Точка №3»
    Отправка (8): 30 06 02 23 00 34 7C 4E
    Приём (2/2): 30 06
    Приём (6/6): 02 23 00 34 7C 4E
    OK

    7in
    Участник

    Скриншот настроек: https://disk.yandex.ru/i/Gfu222CWAlTERg
    Желаемый пакет: 30 06 02 2A 00 34 AC 4C
    Фактич. пакет: 30 06 02 23 00 34 7C 4E

    7in
    Участник

    Пробовал все удалить, передать конфигурацию и заново добавлять каналы, представления и т.д. и опять таки передавать конфигурацию — ничего не меняется.

    7in
    Участник

    Ошибся, не то вставил. Вот команда, которая отправляется на устройство: 30 06 02 23 00 34 7C 4E
    Все верно, я пишу один регистр (ushort).
    Насчет «Начинать с 0/1» уже пробовал — ничего не меняется.
    Идет именно смещение адреса регистра внутри группы.
    Чем дальше регистр от начала — тем больше он смещается.

    в ответ на: Драйвер ECL Comfort 300/200 #25860
    7in
    Участник

    Установил драйвер на 6.0.0~rc1 — Работает!
    https://disk.yandex.ru/d/_UA3RPpecwL4kw
    В ближайшее время займусь добавлением всех необходимых параметров для считывания, и соответственно проверю стабильность работы.
    После этого постараюсь сформулировать как должны работать команды на запись.
    Еще раз большое спасибо.

Просмотр 15 сообщений - с 16 по 30 (из 46 всего)