Плагин Modbus



  • Пользователь @Erik написал в Плагин Modbus:

    value*10

    супер, получилось



  • Увидел такой баг при изменении температуры, установил шаг шкалы 0,1, и получается так:
    alt text
    alt text
    как это поправить?



  • @amgstone структура проекта-устройства - для каждого устройства можно выставить количество цифр после запятой.

    А зачем вы все подряд багом называете?



  • @Erik у меня установлена цифр после запятой 1. Установил как надо.



  • подскажите как визуализировать эти статусы:
    alt text



  • Никак. Только значения передаются.
    Эти статусы вроде постоянные, они не меняются. Зачем их визуализровать?



  • @Erik там у меня есть данные для вывода, например: включен компресор, тен....



  • Модбас передает значение регистра. Все.

    Что именно подключено к конкретному номеру регистра вы должны знать. Это не передается.
    И считываете вы значение конкретного номера регистра, и подразумевается, что вы знаете, что там подключено.



  • @Erik там есть два варианта 0 или 1 а интрахаус принимает значения 3, потому и спрашиваю в чем проблема может быть.



  • @amgstone

    У плагина 7 типов переменной для считывания регистра.
    Может не тот тип выбрали?

    Тут гадать незачем. Прочитайте внимательно описание к своему modbus контроллеру. И выставьте корректно типы переменных и формулы преобразования, если нужны.



  • Здравствуйте. У меня проблема с подключением Network ERROR:ETIMEDOUT
    В чем может быть проблема. Я в этом делитант, прошу помощи.



  • @konia74 Добрый день!

    Проверьте, какое значение стоит в параметрах плагина: Ожидание ответа на запрос (ms)

    • если значение меньше 1000 -попробуйте его увеличить. По умолчанию там 5000 - это 5 секунд
    • если таймаут большой, значит ответ просто не приходит. Опишите подробнее, когда возникает эта ошибка, какой транспорт (Modbus TCP/ RTU,...) используется


  • @intrapro Таймаут стоит 5000 мс. Использую RTU. Подозреваю, что проблема в китайском релейном модуле или моих кривых руках.



  • @intrapro Добавил один канал DO, вроде всё настроил. Запускаю отладчик и вылазит эта ошибка. Через Modbus poll тоже проблема, не читает модуль.



  • Вот что мне выдает отладчик
    06.08 17:14:50.039 modbus1: undefined
    06.08 17:14:50.164 modbus1: READ: unitId = 1, FC = 3, address = 0x01 (0x1), length = 1
    06.08 17:14:50.183 IH: get [ { id: 'ch1', value: 0 } ]
    set { LAMP_2_1: { dval: 0, err: 0 } }
    06.08 17:14:50.383 modbus1: READ: unitId = 1, FC = 3, address = 0x01 (0x1), length = 1
    06.08 17:14:50.402 IH: get [ { id: 'ch1', value: 0 } ]
    set { LAMP_2_1: { dval: 0, err: 0 } }



  • @konia74 В отладчике все нормально, снимается значение 0. Можно увеличить интервал между запросами - сейчас у Вас 200 мс, для RTU можно сделать пореже. А в чем проблема? Команда на запись не уходит?



  • @intrapro Проблема в том, что не отвечает.
    data:
    [ { chan: 'ch1',
    id: 'ch1',
    vartype: 'int8',
    usek: false,
    ks: 100,
    ks0: 0,
    gr: false,
    pollp: true,
    desc: 'DO',
    kh0: 0,
    address: '0x01',
    fcr: '3',
    useactions: false,
    kh: 100,
    unitid: 1,
    value: 1,
    nofb: false,
    command: 'on' } ] }
    06.08 18:22:37.895 modbus1: Command to send: [ { chan: 'ch1',
    id: 'ch1',
    vartype: 'int8be',
    usek: false,
    ks: 100,
    ks0: 0,
    gr: false,
    pollp: true,
    desc: 'DO',
    kh0: 0,
    address: 1,
    fcr: '3',
    useactions: false,
    kh: 100,
    unitid: 1,
    value: 1,
    nofb: false,
    command: 'on' } ]
    06.08 18:22:37.896 modbus1: WRITE: unitId = 1, FC = 6, address = 1 (0x1), value = 1
    06.08 18:22:37.897 modbus1: writeSingleRegister: address = 1 (0x1), value = 1
    06.08 18:22:37.916 modbus1: Write result: { address: 1, value: 1 }
    06.08 18:22:37.918 modbus1: READ: unitId = 1, FC = 3, address = 0x01 (0x1), length = 1
    06.08 18:22:42.924 modbus1: Network ERROR: ETIMEDOUT
    06.08 18:22:43.125 modbus1: READ: unitId = 1, FC = 3, address = 0x01 (0x1), length = 1
    06.08 18:22:43.144 IH: get [ { id: 'ch1', value: 0 } ]
    set { LAMP_2_1: { dval: 0, err: 0 } }



  • @konia74 Что интересно, команда проходит и в ответ на команду проходит ответ.

    06.08 18:22:37.897 modbus1: writeSingleRegister: address = 1 (0x1), value = 1
    06.08 18:22:37.916 modbus1: Write result: { address: 1, value: 1 } - через 20 мсек пришел ответ, что команда на запись выполнена

    Но что-то мешает устройству переключиться, при этом оно виснет на некоторое время. Но потом опять начинает отвечать. Возможно, проблема в схеме подключения?



  • @intrapro Спасибо! Где нужно ковырять, куда кидаться?



  • @konia74 а сколько устррйств/параметров на шлейфе?


Log in to reply