Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. kab1561

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    K
    • Profile
    • Following 0
    • Followers 0
    • Topics 0
    • Posts 3
    • Best 0
    • Groups 0

    kab1561

    @kab1561

    0
    Reputation
    3
    Profile views
    3
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    kab1561 Follow

    Latest posts made by kab1561

    • RE: Драйвер ModBus

      @Bluefox:

      Понятно, что было не понятно 😄

      Или можно javascript:

      on({id: 'modbus.0.holdingRegisters.1', change: "any"}, function (obj) {
        if (obj.state.val === 280) setState("modbus.0.holdingRegisters.2", 4);
      });
      ```` `  
      

      Большое спасибо за пинок в нужном направлении!

      Никогда бы не подумал, что здесь необходимо для отправки контроллеру числа в его входной регистр указывать адрес Holding Registers. У меня была твердая убежденность, что это и логически и физически разные ячейки памяти Modbus контроллера. По крайней мере я в прошивке своего контроллера сделал именно такое разделение.

      Кстати, в моем случае Ваш скрипт не сработает совсем из-за неверной адресации регистров. Но работает следующий код, который и обрабатывает мой пример :

      on({id: 'modbus.0.holdingRegisters.40002', change: "any"}, function (obj) {
        if (obj.state.val == 280) setState("modbus.0.holdingRegisters.40001", 4);
      });
      
      posted in ioBroker драйвера
      K
      kab1561
    • RE: Драйвер ModBus

      @Bluefox:

      Для записи используется 16 если длина адресов больше 1 и

      6 если нужно считать только один адрес.

      А что не работает? `

      Я понимаю, что для Вас это "азы", но я просто не могу "въехать" в логику обработки событий ioBroker.

      В моем случае ioBroker получает от удаленного контроллера данные из 17 Holding Registers (в драйвере Modbus они описаны как 40001 … 40017). У этого контроллера есть один входной регистр (Preset Single Register), если записать в него какое-либо шестнадцатиричное число, то он исполняет сооветствующие команды.

      К примеру, я хочу, чтобы при появлении значения 280 в 40002 Holding Registers ioBroker отправлял значение 4 (0x4) в указанный Single Register контроллера посредством функции 06 (Preset Single Register) протокола Modbus. Как мне это реализовать в ioBroker?

      Какие драйверы кроме Modbus необходимо установить для реализации этого?

      И, если подобную логику кто-то делал - то где можно об этом почитать?

      posted in ioBroker драйвера
      K
      kab1561
    • RE: Драйвер ModBus

      Доброго времени суток всем!

      Пытаюсь использовать драйвер Modbus для работы с самосборным контроллером, работающим по протоколу Modbus RTU.

      Настроил драйвер на опрос holdingRegisters. Опрос ведется, данные с контроллера принимаются - проблем нет. Как я понимаю, здесь драйвер использует функцию 03 (Read Holding Registers) протокола Modbus.

      Но, я пока так и не понял, как записать из ioBroker какие-нибудь данные в единичный регистр контроллера.

      Это вообще возможно?

      Сейчас драйвер Modbus каким-либо образом может использовать функции 06 (Preset Single Register) и 16 (Preset Multiple Regs)? Если может, то как?

      posted in ioBroker драйвера
      K
      kab1561
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo