Плагин Modbus



  • @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 а сколько устррйств/параметров на шлейфе?



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

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

    Один релейный модуль (16 реле)



  • @konia74 думаю надо время опроса увеличить... Из расчёта 20 мс/параметр... Т.е. 400м/с на канал... Что покажет?



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

    @konia74 думаю надо время опроса увеличить... Из расчёта 20 мс/параметр... Т.е. 400м/с на канал... Что покажет?

    Выставлены параметры:
    Ожидание ответа на запрос 7500мс
    Интервал между запросами 1000мс
    Мах кол-во слов при чтении 350



  • @konia74 а то такое СЛОВО в intra?



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

    @konia74 а то такое СЛОВО в intra?

    Есть там такой пункт. Я его не трогал



  • @konia74 четыре устройства опрашиваются без проблем с такими вводными...1.png 2.png



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

    @konia74 четыре устройства опрашиваются без проблем с такими вводными...1.png 2.png

    Спасибо, попробую.



  • Здравствуйте Уважаемые профессионалы. Опять прошу помощи. Устройство вроде как отвечает но не включает. Может где ошибка в настройках или еще что-то?

    22.08 14:13:16.321 IH: command [ { dn: 'ACTOR1', prop: 'on' } ]
    22.08 14:13:16.322 IH: send { type: 'act',
    data:
    [ { chan: 'ch1',
    id: 'ch1',
    vartype: 'int16',
    usek: false,
    ks: 100,
    ks0: 0,
    gr: true,
    pollp: true,
    desc: 'DO',
    kh0: 0,
    address: '0x0001',
    fcr: '3',
    useactions: false,
    kh: 100,
    unitid: 1,
    value: 1,
    nofb: true,
    command: 'on' } ] }
    22.08 14:13:16.326 IH: get [ { id: 'ch1', value: 0 } ]
    set { ACTOR1: { dval: 0, err: 0 } }
    22.08 14:13:16.326 modbus1: Command to send: [ { chan: 'ch1',
    id: 'ch1',
    vartype: 'int16be',
    usek: false,
    ks: 100,
    ks0: 0,
    gr: true,
    pollp: true,
    desc: 'DO',
    kh0: 0,
    address: 1,
    fcr: '3',
    useactions: false,
    kh: 100,
    unitid: 1,
    value: 1,
    nofb: true,
    command: 'on' } ]
    22.08 14:13:16.342 modbus1: WRITE: unitId = 1, FC = 6, address = 1 (0x1), value = 1
    22.08 14:13:16.342 modbus1: writeSingleRegister: address = 1 (0x1), value = 1
    22.08 14:13:16.362 modbus1: Write result: { address: 1, value: 1 }
    22.08 14:13:16.364 modbus1: READ: unitId = 1, FC = 3, address = 0x0001 (0x1), length = 1
    22.08 14:13:16.384 IH: get [ { id: 'ch1', value: 0 } ]
    set { ACTOR1: { dval: 0, err: 0 } }
    22.08 14:13:16.403 modbus1: READ: unitId = 1, FC = 3, address = 0x0001 (0x1), length = 1
    22.08 14:13:16.423 IH: get [ { id: 'ch1', value: 0 } ]



  • Вот настройки Screenshot_2020-08-22-12-22-55-068_com.android.chrome.jpg Screenshot_2020-08-22-12-22-31-655_com.android.chrome.jpg Screenshot_2020-08-22-12-22-20-929_com.android.chrome.jpg Screenshot_2020-08-22-12-23-20-847_com.android.chrome.jpg



  • Вот документация по модулюScreenshot_2020-08-22-12-37-27-106_cn.wps.xiaomi.abroad.lite.jpg



  • Навскидку, без изучения документации - очень маленький интервал между запросами 20 мсек

    22.08 14:13:16.342 modbus1: WRITE: unitId = 1, FC = 6, address = 1 (0x1), value = 1
    22.08 14:13:16.342 modbus1: writeSingleRegister: address = 1 (0x1), value = 1
    22.08 14:13:16.362 modbus1: Write result: { address: 1, value: 1 }
    Запись произошла успешно с точки зрения плагина
    Прошло всего 20 мсек 342+20=362 - и отправляется команда на чтение
    22.08 14:13:16.364 modbus1: READ: unitId = 1, FC = 3, address = 0x0001 (0x1), length = 1

    Поставьте для начала Интервал между запросами 2000 - то есть 2 секунды


Log in to reply