NEWS
Драйвер ModBus
-
Добрый день,
столкнулся со странной проблемой. При попытке прочитать данные из контроллера (Holdings registers) при подключении некоторых регистров драйвер выпадает в состояние "not connected", в логе при этом такие строчки:
modbus.0 2017-02-09 10:33:36.478 warn modbus.0 Poll error count: 3 code: {}
вот тут:
!
40051 - адрес регистра, который чудно читается через modbus poll например. но драйвер IOB при попытке его чтения клинит.
стоит этот 40051 убрать - все приходит в норму.
не понимаю что за ерунда
-
Мы достаточно близко подошли к решению.
Попробуй ещё раз обновиться `
0.4.1Теперь COM порт запоминает!
Я вижу появился бонус "RTU over TCP".
Проверить работу RTU смогу только завтра (это часов через 12)
PS: Как можно виртуалку на ESXi с USB-COM портом победить? При выборе Not available.
! log
host-Bee-IoT 2016-10-19 22:57:09.443 info stopInstance system.adapter.modbus.0 killing pid 3868 host-Bee-IoT 2016-10-19 22:57:09.443 info stopInstance system.adapter.modbus.0 host-Bee-IoT 2016-10-19 22:57:09.443 info object change system.adapter.modbus.0 modbus-0 2016-10-19 22:56:50.658 warn Module serialport is not available modbus-0 2016-10-19 22:56:44.854 error IP address is not defined modbus-0 2016-10-19 22:56:44.815 warn Serial is not available modbus-0 2016-10-19 22:56:44.811 info starting. Version 0.4.1 in /opt/iobroker/node_modules/iobroker.modbus host-Bee-IoT 2016-10-19 22:56:44.368 info instance system.adapter.modbus.0 started with pid 3868 >! ```` IOB Ubuntu
root@Bee-IoT:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 005: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 002 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
root@Bee-IoT:~# ls -l /dev/ttyS* /dev/ttyUSB*
crw-rw---- 1 root dialout 4, 64 окт 19 20:57 /dev/ttyS0
crw-rw---- 1 root dialout 4, 65 окт 19 20:57 /dev/ttyS1
crw-rw---- 1 root dialout 4, 74 окт 19 20:57 /dev/ttyS10
crw-rw---- 1 root dialout 4, 75 окт 19 20:57 /dev/ttyS11
crw-rw---- 1 root dialout 4, 76 окт 19 20:57 /dev/ttyS12
crw-rw---- 1 root dialout 4, 77 окт 19 20:57 /dev/ttyS13
crw-rw---- 1 root dialout 4, 78 окт 19 20:57 /dev/ttyS14
crw-rw---- 1 root dialout 4, 79 окт 19 20:57 /dev/ttyS15
crw-rw---- 1 root dialout 4, 80 окт 19 20:57 /dev/ttyS16
crw-rw---- 1 root dialout 4, 81 окт 19 20:57 /dev/ttyS17
crw-rw---- 1 root dialout 4, 82 окт 19 20:57 /dev/ttyS18
crw-rw---- 1 root dialout 4, 83 окт 19 20:57 /dev/ttyS19
crw-rw---- 1 root dialout 4, 66 окт 19 20:57 /dev/ttyS2
crw-rw---- 1 root dialout 4, 84 окт 19 20:57 /dev/ttyS20
crw-rw---- 1 root dialout 4, 85 окт 19 20:57 /dev/ttyS21
crw-rw---- 1 root dialout 4, 86 окт 19 20:57 /dev/ttyS22
crw-rw---- 1 root dialout 4, 87 окт 19 20:57 /dev/ttyS23
crw-rw---- 1 root dialout 4, 88 окт 19 20:57 /dev/ttyS24
crw-rw---- 1 root dialout 4, 89 окт 19 20:57 /dev/ttyS25
crw-rw---- 1 root dialout 4, 90 окт 19 20:57 /dev/ttyS26
crw-rw---- 1 root dialout 4, 91 окт 19 20:57 /dev/ttyS27
crw-rw---- 1 root dialout 4, 92 окт 19 20:57 /dev/ttyS28
crw-rw---- 1 root dialout 4, 93 окт 19 20:57 /dev/ttyS29
crw-rw---- 1 root dialout 4, 67 окт 19 20:57 /dev/ttyS3
crw-rw---- 1 root dialout 4, 94 окт 19 20:57 /dev/ttyS30
crw-rw---- 1 root dialout 4, 95 окт 19 20:57 /dev/ttyS31
crw-rw---- 1 root dialout 4, 68 окт 19 20:57 /dev/ttyS4
crw-rw---- 1 root dialout 4, 69 окт 19 20:57 /dev/ttyS5
crw-rw---- 1 root dialout 4, 70 окт 19 20:57 /dev/ttyS6
crw-rw---- 1 root dialout 4, 71 окт 19 20:57 /dev/ttyS7
crw-rw---- 1 root dialout 4, 72 окт 19 20:57 /dev/ttyS8
crw-rw---- 1 root dialout 4, 73 окт 19 20:57 /dev/ttyS9
crw-rw---- 1 root dialout 188, 0 окт 19 22:55 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 окт 19 22:55 /dev/ttyUSB1
root@Bee-IoT:~#! ```` `
УРА!!! Теперь драйвер работает и с виртуальными портами на ESXi.0.4.8 (2016-12-15) (Apollon77) update serialport library for node 6.x compatibility ````Если пробрасываю USB - RS485 в виртуальную машину с IoB, то в настройках драйвера теперь можно выбрать /dev/ttyUSB0 Спасибо!
-
Мы достаточно близко подошли к решению.
Попробуй ещё раз обновиться `
0.4.1Теперь COM порт запоминает!
Я вижу появился бонус "RTU over TCP".
Проверить работу RTU смогу только завтра (это часов через 12)
PS: Как можно виртуалку на ESXi с USB-COM портом победить? При выборе Not available.
! log
host-Bee-IoT 2016-10-19 22:57:09.443 info stopInstance system.adapter.modbus.0 killing pid 3868 host-Bee-IoT 2016-10-19 22:57:09.443 info stopInstance system.adapter.modbus.0 host-Bee-IoT 2016-10-19 22:57:09.443 info object change system.adapter.modbus.0 modbus-0 2016-10-19 22:56:50.658 warn Module serialport is not available modbus-0 2016-10-19 22:56:44.854 error IP address is not defined modbus-0 2016-10-19 22:56:44.815 warn Serial is not available modbus-0 2016-10-19 22:56:44.811 info starting. Version 0.4.1 in /opt/iobroker/node_modules/iobroker.modbus host-Bee-IoT 2016-10-19 22:56:44.368 info instance system.adapter.modbus.0 started with pid 3868 >! ```` IOB Ubuntu
root@Bee-IoT:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 005: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 002 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
root@Bee-IoT:~# ls -l /dev/ttyS* /dev/ttyUSB*
crw-rw---- 1 root dialout 4, 64 окт 19 20:57 /dev/ttyS0
crw-rw---- 1 root dialout 4, 65 окт 19 20:57 /dev/ttyS1
crw-rw---- 1 root dialout 4, 74 окт 19 20:57 /dev/ttyS10
crw-rw---- 1 root dialout 4, 75 окт 19 20:57 /dev/ttyS11
crw-rw---- 1 root dialout 4, 76 окт 19 20:57 /dev/ttyS12
crw-rw---- 1 root dialout 4, 77 окт 19 20:57 /dev/ttyS13
crw-rw---- 1 root dialout 4, 78 окт 19 20:57 /dev/ttyS14
crw-rw---- 1 root dialout 4, 79 окт 19 20:57 /dev/ttyS15
crw-rw---- 1 root dialout 4, 80 окт 19 20:57 /dev/ttyS16
crw-rw---- 1 root dialout 4, 81 окт 19 20:57 /dev/ttyS17
crw-rw---- 1 root dialout 4, 82 окт 19 20:57 /dev/ttyS18
crw-rw---- 1 root dialout 4, 83 окт 19 20:57 /dev/ttyS19
crw-rw---- 1 root dialout 4, 66 окт 19 20:57 /dev/ttyS2
crw-rw---- 1 root dialout 4, 84 окт 19 20:57 /dev/ttyS20
crw-rw---- 1 root dialout 4, 85 окт 19 20:57 /dev/ttyS21
crw-rw---- 1 root dialout 4, 86 окт 19 20:57 /dev/ttyS22
crw-rw---- 1 root dialout 4, 87 окт 19 20:57 /dev/ttyS23
crw-rw---- 1 root dialout 4, 88 окт 19 20:57 /dev/ttyS24
crw-rw---- 1 root dialout 4, 89 окт 19 20:57 /dev/ttyS25
crw-rw---- 1 root dialout 4, 90 окт 19 20:57 /dev/ttyS26
crw-rw---- 1 root dialout 4, 91 окт 19 20:57 /dev/ttyS27
crw-rw---- 1 root dialout 4, 92 окт 19 20:57 /dev/ttyS28
crw-rw---- 1 root dialout 4, 93 окт 19 20:57 /dev/ttyS29
crw-rw---- 1 root dialout 4, 67 окт 19 20:57 /dev/ttyS3
crw-rw---- 1 root dialout 4, 94 окт 19 20:57 /dev/ttyS30
crw-rw---- 1 root dialout 4, 95 окт 19 20:57 /dev/ttyS31
crw-rw---- 1 root dialout 4, 68 окт 19 20:57 /dev/ttyS4
crw-rw---- 1 root dialout 4, 69 окт 19 20:57 /dev/ttyS5
crw-rw---- 1 root dialout 4, 70 окт 19 20:57 /dev/ttyS6
crw-rw---- 1 root dialout 4, 71 окт 19 20:57 /dev/ttyS7
crw-rw---- 1 root dialout 4, 72 окт 19 20:57 /dev/ttyS8
crw-rw---- 1 root dialout 4, 73 окт 19 20:57 /dev/ttyS9
crw-rw---- 1 root dialout 188, 0 окт 19 22:55 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 окт 19 22:55 /dev/ttyUSB1
root@Bee-IoT:~#! ```` `
УРА!!! Теперь драйвер работает и с виртуальными портами на ESXi.0.4.8 (2016-12-15) (Apollon77) update serialport library for node 6.x compatibility ````Если пробрасываю USB - RS485 в виртуальную машину с IoB, то в настройках драйвера теперь можно выбрать /dev/ttyUSB0 Спасибо! `
Здравствуйте, подскажите пожалуйста как настроить Modbus через Serial, порт USB пишет "Note Available". iObroker стоит на Armbian (Orange PI PC2 64bit). Версия ModBus драйвера 0.5, до этого была 0.4.1, обновился через веб, но не помогло). Быть может этот порт где-то прописывать надо, чтоб его iObroker увидел?
Результат команды "dmesg" в командной строке показан на скриншоте. Помогите пожалуйста, третий день бьюсь, пытаясь снимать показания с ардуинки по Modbus через RS485 (Arduino pro mini + MAX485), а на orange pi вставлено устройство "USB to Serial"
! ````
root@orangepipc2:/opt/iobroker# ls -l /dev/ttyS* /dev/ttyUSB*
crw--w---- 1 root tty 4, 64 Feb 25 17:18 /dev/ttyS0
crw-rw---- 1 root dialout 4, 65 Feb 25 16:17 /dev/ttyS1
crw-rw---- 1 root dialout 4, 66 Feb 25 16:17 /dev/ttyS2
crw-rw---- 1 root dialout 4, 67 Feb 25 16:17 /dev/ttyS3
crw-rw---- 1 root dialout 188, 0 Feb 25 17:20 /dev/ttyUSB0
root@orangepipc2:/opt/iobroker#[2244_2017-02-25_22-45-59.jpg](/assets/uploads/files/2244_2017-02-25_22-45-59.jpg) [2244_2017-02-25_22-48-19.jpg](/assets/uploads/files/2244_2017-02-25_22-48-19.jpg)
-
Здравствуйте, подскажите пожалуйста как настроить Modbus через Serial, порт USB пишет "Note Available". `
А что выдаёт по lsusb ?Должен показать все устройства подключенные по usb.
Интересует /dev/ttyUSBx, это и есть искомый порт, и да у меня на такой -же микре переходник нормально видится в дебиан
-
Здравствуйте, подскажите пожалуйста как настроить Modbus через Serial, порт USB пишет "Note Available". `
А что выдаёт по lsusb ?Должен показать все устройства подключенные по usb.
Интересует /dev/ttyUSBx, это и есть искомый порт, и да у меня на такой -же микре переходник нормально видится в дебиан `
По lsusb тоже виден! ````
root@orangepipc2:/opt/iobroker# lsusb
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@orangepipc2:/opt/iobroker# -
Тогда возможно не хватает прав, у меня иоброкер бегает от рута
Пишу с пульта….
-
Тогда возможно не хватает прав, у меня иоброкер бегает от рута
Пишу с пульта…. `
Не безопасно конечно, но запущено от рута. Как же заставить ioBroker видеть usb? :roll:
2244_2017-02-26_00-04-30.jpg -
Попробуй подключиться к этому порту терминалом, может порт чем-то занят
-
Попробуй перезапустить драйвер…
У меня разрешает выбор COM порта только когда драйвер запущен.
А на Опельсинке вообще никогда проблем не было с выбором COM порта (Armbian 5.20)
-
При попытке установить драйвер вылетает ошибка в логе:
` > ERR!
Tried to download: https://github.com/voodootikigod/node-s … a32.tar.gz `
По данной ссылке действительно ничего нет, при этом в более новой версии node-serialport (4.0.7) присутствует архив ia32. Что с этим можно сделать?
-
При попытке установить драйвер вылетает ошибка в логе:
` > ERR!
Tried to download: https://github.com/voodootikigod/node-s … a32.tar.gz `
По данной ссылке действительно ничего нет, при этом в более новой версии node-serialport (4.0.7) присутствует архив ia32. Что с этим можно сделать? `
Это стандартный метод установки. Сначала установщик пытается скачать предкомпилированную версию для системы. И если система экзотическая, то пытается собрать из исходников сам.Для этого нужно установить соответсвующие apt-get пакеты.
Исходя из того что для windows бинарные версии существуют, то значит у тебя linux.
Нужно сначала установить
sudo apt-get install build-essential
и потом установить iob драйвер от рута.
И запускать его тоже надо от рута
-
Да, Debian 8 32-bit.
build-essential уже стоял, использую root, других пользователей не заводил, драйвера наверное тоже запускаются от root, или я что-то не так понимаю? В admin интерфейсе просто пытаюсь ставить modbus… или надо как-то принудительно из командной строки?
-
Да, Debian 8 32-bit.
build-essential уже стоял, использую root, других пользователей не заводил, драйвера наверное тоже запускаются от root, или я что-то не так понимаю? В admin интерфейсе просто пытаюсь ставить modbus… или надо как-то принудительно из командной строки? `
Ну в целях эксперимента попробуй установить из командной строкиcd /opt/iobroker sudo npm i iobroker.modbus
При ошибке должен появится npm-debug.log в /opt/iobroker. Было бы интересно его посмотреть.
-
Попробовал. Cначала удалил в админе старую установку modbus, потом установил из строки. Вроде установилось. Никаких сообщений об ошибках в консоли не увидел, в логах админа вообще пусто, npm-debug.log не появился. Но… захожу в админ - закладки "драйвера" - вижу установленный modbus adapter, захожу в закладку "настройки драйверов" - там нет modbus. Когда до этого игрался с этим делом - обнаружил, что именно так и бывает с версией 0.5.2, а вот если поставить ее поверх 0.5.0 - то нормально. Видимо в свежей версии есть в этой части ошибки.
Пробую еще раз, но теперь из админа. Удаляю драйвер, ставлю 0.5.2 с github - установилось на этот раз без ошибок (node-serialport сохранился от установки через консоль?), но с настройками драйвера все та же беда. Еще раз удаляю драйвер и на этот раз ставлю в админе версию 0.5.0 - повторяется ошибка с node-serialport-ia32 (разные версии modbus смотрят в разные каталоги?), но при этом а настройках драйверов появляется modbus. Ставлю через админ (обновляю) драйвер с github на версию 0.5.2 - ошибок с ia32 нет (в этот раз увидела сохраненное от установки через строку?), в настройках драйверов modbus сохранился.
Надеюсь, что заработает, проверить смогу не скоро, когда прибудет из Китая новое modbus устройство, те что есть не хочу отключать пока от существующего контроллера. Будут проблемы - отпишусь. А пока на лицо помимо ошибки с ia32 (как видим преодолимо через строку), так и ошибки в новой версии с настройками драйверов.
Кстати, node-serialport используется не совсем свежий по каким-то важным причинам?
-
Попробовал. Cначала удалил в админе старую установку modbus, потом установил из строки. Вроде установилось. Никаких сообщений об ошибках в консоли не увидел, в логах админа вообще пусто, npm-debug.log не появился. Но… захожу в админ - закладки "драйвера" - вижу установленный modbus adapter, захожу в закладку "настройки драйверов" - там нет modbus. Когда до этого игрался с этим делом - обнаружил, что именно так и бывает с версией 0.5.2, а вот если поставить ее поверх 0.5.0 - то нормально. Видимо в свежей версии есть в этой части ошибки. `
Надо просто выполнитьiobroker upload modbus iobroker add modbus
Пробую еще раз, но теперь из админа. Удаляю драйвер, ставлю 0.5.2 с github - установилось на этот раз без ошибок (node-serialport сохранился от установки через консоль?), но с настройками драйвера все та же беда. Еще раз удаляю драйвер и на этот раз ставлю в админе версию 0.5.0 - повторяется ошибка с node-serialport-ia32 (разные версии modbus смотрят в разные каталоги?), но при этом а настройках драйверов появляется modbus. Ставлю через админ (обновляю) драйвер с github на версию 0.5.2 - ошибок с ia32 нет (в этот раз увидела сохраненное от установки через строку?), в настройках драйверов modbus сохранился.
Надеюсь, что заработает, проверить смогу не скоро, когда прибудет из Китая новое modbus устройство, те что есть не хочу отключать пока от существующего контроллера. Будут проблемы - отпишусь. А пока на лицо помимо ошибки с ia32 (как видим преодолимо через строку), так и ошибки в новой версии с настройками драйверов. `
@Adav:Кстати, node-serialport используется не совсем свежий по каким-то важным причинам? `
Новый serialport ломает поддержку 0.12.x node.js версий -
Был немного занят другими делами…
Надо просто выполнить
iobroker upload modbus iobroker add modbus ```` `
После этого действительно появляется modbus последней версии в настройках, но вот в процессе опять появляется та же ошибка:
root@ioBroker:/opt/iobroker# iobroker add modbus
host.ioBroker install adapter modbus
npm install –production (System call) in "/opt/iobroker/node_modules/iobroker.modbus"
node-pre-gyp ERR! Tried to download: https://github.com/voodootikigod/node-s ... a32.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for serialport@3.1.2 and node@4.8.1 (node-v46 ABI) (falling back to source compile with node-gyp)
Я правильно понимаю, что в итоге node-serialport так и не ставится на моей версии linux?
Попробовал еще на Orange Pi Zero с Armbian - та же проблема:
ERR! Tried to download(404): https://github.com/EmergingTechnologyAd ... arm.tar.gz node-pre-gyp ERR! Pre-built binaries not found for serialport@4.0.7 and node@4.8.1 (node-v46 ABI) (falling back to source compile with node-gyp)
Но вот почему-то лезет уже к свежей версии. Хотя Вы говорили выше, что нужна старая... ничего не понимаю
build-essential здесь также установлен.
-
Был немного занят другими делами…
Надо просто выполнить
iobroker upload modbus iobroker add modbus ```` `
После этого действительно появляется modbus последней версии в настройках, но вот в процессе опять появляется та же ошибка:
root@ioBroker:/opt/iobroker# iobroker add modbus
host.ioBroker install adapter modbus
npm install –production (System call) in "/opt/iobroker/node_modules/iobroker.modbus"
node-pre-gyp ERR! Tried to download: https://github.com/voodootikigod/node-s ... a32.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for serialport@3.1.2 and node@4.8.1 (node-v46 ABI) (falling back to source compile with node-gyp)
Я правильно понимаю, что в итоге node-serialport так и не ставится на моей версии linux?
Попробовал еще на Orange Pi Zero с Armbian - та же проблема:
ERR! Tried to download(404): https://github.com/EmergingTechnologyAd ... arm.tar.gz node-pre-gyp ERR! Pre-built binaries not found for serialport@4.0.7 and node@4.8.1 (node-v46 ABI) (falling back to source compile with node-gyp)
Но вот почему-то лезет уже к свежей версии. Хотя Вы говорили выше, что нужна старая... ничего не понимаю
build-essential здесь также установлен. `
Это только надпись. А устанавливать все равно должен. -
Это только надпись. А устанавливать все равно должен. `
Понятно. Надеюсь заработает, когда будет с чем попробовать. А что на счет версий? Почему на разных железках пытается ставиться разные версии? Как это соответствует Вашему утверждению, что нужна старая?
-
Доброго времени суток всем!
Пытаюсь использовать драйвер Modbus для работы с самосборным контроллером, работающим по протоколу Modbus RTU.
Настроил драйвер на опрос holdingRegisters. Опрос ведется, данные с контроллера принимаются - проблем нет. Как я понимаю, здесь драйвер использует функцию 03 (Read Holding Registers) протокола Modbus.
Но, я пока так и не понял, как записать из ioBroker какие-нибудь данные в единичный регистр контроллера.
Это вообще возможно?
Сейчас драйвер Modbus каким-либо образом может использовать функции 06 (Preset Single Register) и 16 (Preset Multiple Regs)? Если может, то как?
-
Доброго времени суток всем!
Пытаюсь использовать драйвер Modbus для работы с самосборным контроллером, работающим по протоколу Modbus RTU.
Настроил драйвер на опрос holdingRegisters. Опрос ведется, данные с контроллера принимаются - проблем нет. Как я понимаю, здесь драйвер использует функцию 03 (Read Holding Registers) протокола Modbus.
Но, я пока так и не понял, как записать из ioBroker какие-нибудь данные в единичный регистр контроллера.
Это вообще возможно?
Сейчас драйвер Modbus каким-либо образом может использовать функции 06 (Preset Single Register) и 16 (Preset Multiple Regs)? Если может, то как? `
Для записи используется 16 если длина адресов больше 1 и6 если нужно считать только один адрес.
А что не работает?