Плагин Modbus



  • Из темы про сценарии

    Пользователь @intrapro написал в Сценарии - новая версия API:

    @Erik
    Спасибо за тестирование, действительно, есть проблема с записью отрицательных целых значений в библиотеке modbus-serial.
    В новой версии библиотеки эта проблема исправлена. Проверим у себя и на следующей неделе выпустим новый релиз плагина

    Не получилось, или забыли?



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

    Не получилось, или забыли?

    Не забыли. Нашли еще баг в плагине. Надо с ним разобраться.



  • Сегодня утром опять все актуаторы обновляемые по модбас были в ошибках.
    Запустил отладчик. Он сначала тупил (очень медленно выдавал инфу), а потом вдруг сам справился с ситуацией и начал работать. Без перезагрузки плагина.

    20.03 07:53:55.531 IH: get [ { id: 'GK.T.Obr', value: 255 } ]
    set { ACTORA56: { aval: 25.5, err: 0 } }
    20.03 07:53:59.666 modbus1: undefined
    20.03 07:53:59.667 modbus1: Port is not open! TRY RECONNECT
    20.03 07:53:59.667 modbus1: Connecting options = { port: 502 }
    20.03 07:54:03.821 modbus1: READ: unitId = 1, FC = 3, address = 0431 (0x1af), length = 1
    20.03 07:54:11.471 IH: get [ { id: 'Tobr', value: 258 } ]
    set { ACTORA2: { aval: 25.8, err: 0 } }
    20.03 07:54:19.019 modbus1: READ: unitId = 1, FC = 3, address = 434 (0x1b2), length = 1
    20.03 07:54:26.545 IH: get [ { id: 'GK.Stup1', value: 0 } ]
    set { ACTORA54: { aval: 0, err: 0 } }
    20.03 07:55:16.572 IH: Plugin exit with code null
    20.03 07:55:16.575 IH: restart timer 5
    20.03 07:55:22.137 IH: Run /var/lib/intrahouse-c/plugins/modbus/modbus.js modbus1
    20.03 07:55:22.889 modbus1: Modbus Master plugin has started.
    20.03 07:55:22.896 modbus1: Received params...
    20.03 07:55:22.906 modbus1: Received 72 channels...
    20.03 07:55:22.914 modbus1: Requested channels update. Get channels: no
    20.03 07:55:22.929 modbus1: Connecting options = { port: 502 }
    20.03 07:55:22.943 modbus1: Connected to 192.168.13.25:502
    20.03 07:55:22.944 modbus1: READ: unitId = 1, FC = 3, address = 144 (0x90), length = 1
    20.03 07:55:22.960 IH: get [ { id: 'TUl', value: 29 } ]
    set { ACTORA1: { aval: 2.9, err: 0 } }
    20.03 07:55:23.159 modbus1: READ: unitId = 1, FC = 3, address = 407 (0x197), length = 1
    20.03 07:55:23.164 IH: get [ { id: 'GK.T.Max', value: 850 } ]
    set { ACTORA52: { aval: 85, err: 0 } }
    20.03 07:55:23.365 modbus1: READ: unitId = 1, FC = 3, address = 408 (0x198), length = 1
    20.03 07:55:23.371 IH: get [ { id: 'GK.T.Min', value: 200 } ]
    set { ACTORA53: { aval: 20, err: 0 } }
    20.03 07:55:23.571 modbus1: READ: unitId = 1, FC = 3, address = 430 (0x1ae), length = 1
    20.03 07:55:23.575 IH: get [ { id: 'GK.T.Pod', value: 274 } ]
    set { ACTORA55: { aval: 27.4, err: 0 } }
    20.03 07:55:23.777 modbus1: READ: unitId = 1, FC = 3, address = 431 (0x1af), length = 1
    20.03 07:55:23.782 IH: get [ { id: 'GK.T.Obr', value: 255 } ]
    


  • ПОдскажте, где взять старую версию плагина (до поддержки Modbus RTU).
    У меня в ней все работало без остановок. Я бы лучше на ней исправления ошибок подождал. Все чаще останавливается плагин.



  • @Erik Добрый день
    Версии плагина есть на github: https://github.com/intrahouseio/intraHouse.plugin-Modbus/releases
    v0.0.9 была без ModbusRTU совсем
    Далее добавлялся функционал ModbusRTU, но без переделки ModbusTCP
    v0.0.15 - значительные изменения кода, добавлен TRY RECONNECT



  • При долгой работе плагина modbus и одном отвалившемся устройстве остальные работают, но вот оперативная память заполняется. При чем за двое суток -500МБ памяти. Остановка-запуск плагина решают эту проблему, память освобождается. Как обойти проблему или организовать перезапуск плагина по расписанию? плагин v16



  • @Viktor Все верно, в последних версиях плагина modbus есть проблема с утечкой памяти.
    На github выложена новая версия v0.0.17 https://github.com/intrahouseio/intraHouse.plugin-Modbus/releases/tag/v0.0.17
    Там вначале потребление памяти тоже увеличивается, но потом стабилизируется и больше не растет. Попробуйте установить эту версию плагина, она работает уже на нескольких инсталляциях.
    Перезапуск плагина добавим в одном из ближайших релизов



  • Добрый день, подскажите как создать обмен данными по протоколу rs485, есть такой переобразователь http://vkmodule.com.ua/Converter/ConverterE485.html
    Есть рекуператор с контроллером carel, хочу управлять с IH.



  • @amgstone
    Контроллер Carel - универсальный контроллер, который программируется в каждом случае по-своему. Надо найти в интернете или у поставщика вашего рекуператора таблицу регистров Modbus.

    Устанавливаем плагин Modbus.
    Выбираем транспорт Modbus RTU over TCP
    В настройках плагина вписать адрес и порт вашего преобразователя.
    9e9588e4-cb61-43e2-bbe0-8ebb00efc8b3-image.jpeg

    Далее нужно добавить каналы. Не торопитесь добавлять все каналы сразу. В первую очередь необходимо убедиться в наличии связи с контроллером. Добавляем один канал и вписываем адрес регистра. На рисунке ниже для наружной температуры у меня был регистр с адресом 15.
    eed0404b-1c7f-42af-8af8-7fb1a43b55cf-image.jpeg

    Для температуры: тип устройства AI, тип переменной INT16, 2 байта, функция FC4

    Далее заходим в отладчик и запускаем плагин. Если связь с контроллером есть и адрес регистра правильный, в отладчике увидим показания температуры в этом регистре.



  • @intrahouse а BMS это и есть регистры?



  • @amgstone BMS - Building Management System
    Сейчас посмотрел файл BMS.xlsx, который вы прислали на почту.
    Там есть колонка BMS-index
    Почему они так назвали, не знаю. Но, вероятно, это и есть адреса регистров.



  • @amgstone Если не получается, скиньте на почту адрес и аккаунт доступа к своей системе. Попробуем помочь. Перед этим проверьте пингом доступ от сервера к преобразователю и убедитесь, что контроллер Carel (рекуператор) включен.



  • @intrahouse общался с производителем рекуператора, для rs485 нужно обновить прошивку контролера рекуператора, завтра обновлюсь заказал переходник rs485 - usb.
    Связь между переоблазователем rs485-tsp i Ih есть в отладчике проверял.



  • подскажите какое устройство (температура) нужно создать чтобы была возможность устанавливать значение и видеть текущее значение.
    alt text



  • BMS Boolean не принимает IH alt text



  • Это сообщение удалено!


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

    подскажите какое устройство (температура) нужно создать чтобы была возможность устанавливать значение и видеть текущее значение.

    Актуатор



  • @Erik Установил актуатор но пишет ошибку
    alt text
    подскажите что делаю не так



  • Устанавливаю значение на 25 градусов, но система понимает это как 2.5 градуса, формула расчета входного значения: value/10. Устанавливаю в IH температуру все ок, но как только на пульте меняю температуру то сказу показатель меняются (делятся на 10, то есть с 25 выдает 2,5)
    alt text
    alt text
    помогите поправить разработчики этот баг.



  • Формулы есть разные для входа и выхода.
    Поставьте нужные.

    Если на пульте хранится в десятых градуса, то при чтении нужно делить на 10, а при записи умножать на 10.


Авторизуйтесь, чтобы ответить