Плагин Modbus



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

    @Erik Установил актуатор но пишет ошибку

    подскажите что делаю не так

    Я не знаю, что вы делаете не так.
    У меня несколько десятков термометров и уставок на актуаторах. Все ОК.

    Только одно НО.
    Если оконечное устройство все таки термометр, значение можно только читать. Записать значение на термометр НЕЛЬЗЯ. Уставку - можно и записывать и считывать. Термометр - только считывать.
    Если у вас есть описание вашего прибора, посмотрите какие регистры только для чтения, а какие для чтения-записи.



  • @Erik подскажите формулу умножить на 10, как в моем случае.



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

    @Erik подскажите формулу умножить на 10, как в моем случае.

    value*10



  • Пользователь @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 } }


Log in to reply