NEWS
Драйвер ModBus
-
Так и не получилось заставить работать драйвер modbus в ioBroker c coil на конкретном устройстве (о чем выше)…
Возникла и другая проблема - два одинаковых устройства на одной шине RS485 отказываются нормально опрашиваться. Разумеется, они с разными ID. По одному работают нормально. А вот парой - никак. Пробовал через COM сервер с настройкой как RTU over TCP, так и Modbus TCP - секунд 10 работают, после чего в логах идут постоянные ошибки timeout c рестартами. По отдельности - все нормально. Modbus poll работает нормально... Попробовал подключить на serial (usb-485) - то же самое, по одному работают, парой - нет. При этом при старте второго драйвера в его логе сразу ошибка On error: {}. Тут, как я понимаю, первый драйвер просто блокирует серийный порт и не дает второму работать с ним. Получается, что ioBroker не умеет работать на одной 485 шине с несколькими устройствами? Если так - то печально...
-
Две недели прошло - результат все тот же - тишина. Никто не использует подключение по modbus нескольких устройств на одной RS-485 шине? Очень-очень странно, что такое не работает в ioBroker, вполне типичный способ подключения группы modbus устройств. Или все же есть какой-то "тайный" способ настройки драйвера в ioBroker на несколько устройств на шине?
-
Разбираюсь с драйвером modbus.
Не может открыть порт. Лог:
modbus.0 2017-07-18 15:57:38.048 error Cannot create modbus master!
modbus.0 2017-07-18 15:57:38.045 error Cannot open port "/dev/ttyUSB0" [19200]: ReferenceError: serialport is not defined
В чем может быть проблема?
-
Так же пробовал устанавливать драйвера по инструкции
http://www.iobroker.net/docu/?page_id=5506&lang=ru
и устанавливать на виртуалку ubuntu
результат все тот же
куда копать?
-
На винде тоже самое(((((
-
На винде тоже самое((((( `
COM порт у Вас вообще работает? Не пробовали опрашивать устройства через софт modbus poll? Что за USB-COM переходник используете? Драйвера ставили? Там в зависимости от чипсета могут быть разные заморочки, а в линуксе вообще могут потребоваться танцы с бубнами при какой-нибудь экзотике. К примеру мне попался как-то на Exar XR21B1411 - специфичная вещь.
-
Работает.
Пробовал как usb to rs232, usb to rs485 так и штатную гребенку orange pi. Чипы не скажу какие именно, но rs485 вроде на мах485.
С обратной стороны arduino. Отвечает корректно, если эмулировать запросы програмкой modbus master (точное название не скажу сейчас). Так же корректно работает, если пробросить порт (любой о котором я написал) через ser2net на 502 порт и с любого компа пробросить ком порт и засылать запросы мастером. Но если слать запросы modbus tcp или modbus rtu over tcp ардуинка не отвечает. Причем видно что пакеты к ней идут (по светодиоду) но она не отвечает. Я думаю что пакеты разные, или косяк в библиотеке ардуино или ser2net не то что то днлает, порт еще не сканил сниффером. Т.е. если пробрасывать именно ком порт (прогой, которая прям создает на удаленном хосте ком порт) работает, а modbus tcp запросы нет.
Но я хочу пока разобраться с modbus rtu, но на всех моих компах эта ошибка возникает. Что только не делал.
-
Работает.
Чипы не скажу какие именно, но rs485 вроде на мах485. `
Это приемопередатчик 485, я имел ввиду чип USB-serial.ардуинка не отвечает `
Не имел с ними дел, но подозреваю что дело именно в ней. Попробуйте подключить какой-нибудь промышленный modbus девайс к ioBroker. Так Вы хоть частично локализуете проблему. У меня не было проблем с работой modbus в ioBroker. И через serial, и оба режима TCP. Если не считать тех особенностей, что я выше указывал, но мне так никто и не ответил. Похоже реализация драйвера еще далека от желаемой…
Еще могу предположить, что Вы на своей ардуине пытаетесь реализовать дискретные входы-выходы, причем адресация там идет не подряд по 8... именно в таком случае у меня это не получилось на одном из фирменных девайсов (уж так производитель сделал), а на другом, где регистры идут подряд - нормально. Это только касаемо дискретных... поизучал это дело немного, выяснил, что ioBroker считывает массивами по 8 регистров, ну и в результате если регистр отсутствует - ошибка. И ничего вообще не считывается в этой группе.
-
Работает.
Чипы не скажу какие именно, но rs485 вроде на мах485. `
Это приемопередатчик 485, я имел ввиду чип USB-serial.ардуинка не отвечает `
Не имел с ними дел, но подозреваю что дело именно в ней. Попробуйте подключить какой-нибудь промышленный modbus девайс к ioBroker. Так Вы хоть частично локализуете проблему. У меня не было проблем с работой modbus в ioBroker. И через serial, и оба режима TCP. Если не считать тех особенностей, что я выше указывал, но мне так никто и не ответил. Похоже реализация драйвера еще далека от желаемой…
Еще могу предположить, что Вы на своей ардуине пытаетесь реализовать дискретные входы-выходы, причем адресация там идет не подряд по 8... именно в таком случае у меня это не получилось на одном из фирменных девайсов (уж так производитель сделал), а на другом, где регистры идут подряд - нормально. Это только касаемо дискретных... поизучал это дело немного, выяснил, что ioBroker считывает массивами по 8 регистров, ну и в результате если регистр отсутствует - ошибка. И ничего вообще не считывается в этой группе. `
Наименование чипов не скажу сейчас, но они другими средствами работают, в т.ч. если напрямую выводить в порт командой echo.Проблема именно в том, что iobroker не может обратиться к любому com порту, вне зависимости от того, что там висит. Мне почему то кажется, что проблема в конкретной сборке или я что то не так делаю в порядке или способах установки.
Есть какие либо подробные логи?
Нужно ли пересобирать драйвер модбаса?
По инструкции установка не получается, может там что то не дописано?
-
Нужно ли пересобирать драйвер модбаса?
По инструкции установка не получается, может там что то не дописано? `
На текущий момент пробовал 4 разных типа modbus устройств. Просто ставил драйвер и все. Устройства такие: универсальный модуль входов-выходов, контроллеры заряда батареи, модуль опроса датчиков влажности-температуры, счетчик ЭЭ.
1. Универсальный модуль. На борту есть как 485, так и Ethernet. Полный набор входов выходов (регистров) - coil, discrete, input, holding. Подключал через modbus TCP. Заработал в итоге полностью и нормально.
2. Контроллер заряда. Только RS-485, причем только на 115200. Тоже полный набор регистров. Заработало нормально только с input и holding, причем с установкой "максимальное кол-во регистров при чтении = 1". С дискретными - никак… но они не очень-то и полезны, поэтому пока устраивает. Подключалось через 2xRS-485 - Ethernet конвертер. На ioBroker пробовал как modbus TCP, так и RTU over TCP. Работают оба, но субъективно второй работает стабильнее. Попытка добавить второе аналогичное устройство на одну шину 485 приводила к тому, что сие работало некоторое время, потом уходило в постоянные рестарты modbus драйвера из-за ошибок. В итоге просто воткнул (уже портов не хватило) USB-485 (на чипе cp210x) и второе устройство подключил туда. Работает также. Пробовал подключать на него (на одну шину) и оба устройства, но с удивлением обнаружил, что на одном драйвере вообще нет возможности настроить два устройства с разными ID. А разные драйвера с одним COM портом просто не работают из-за блокировки порта первым драйвером.
3. Модуль опроса датчиков. 485. Нормально работает. Регистры только input. Подключал через конвертор.
4. Счетчик ЭЭ. 485 Нормально работает. Регистры только input. Подключал через конвертор.
Попытка подключить устройства 3 и 4 на одну шину приводила к тому же результату, что и с вариантом 2. По одному - работают без проблем. В итоге получилось что для нормальной работы требуется подключать каждое устройство на отдельный RS-485 порт в не зависимости от того, конвертор ли это или USB затычка в сервере. Что вообщем-то быть не должно. Из-за этого остановил пока перенос устройств с контроллера WB5 (где они висят "гирляндой" на 485) на ioBroker. Надеюсь, разработчики со временем эти проблемы решат.
И да, в качестве сервера использовалась виртуальная машина на ESXi с Debian. Пробовалось (Modbus TCP и RTU over TCP) и на Orange PI Zero - результат тот же самый.
-
По какой то причине иногда подвисает modbus.
Протокол TCP, устройство WAGO 750-841
Через какое-то время в настройках драйверов modbus загорается жёлтым цветом, при этом команды с web интерфейса проходят крайне медленно либо вообще не проходят, помогает перезагрузка драйвера, на некоторое время, потом снова всё сначала.
-
По какой то причине иногда подвисает modbus.
Протокол TCP, устройство WAGO 750-841
Через какое-то время в настройках драйверов modbus загорается жёлтым цветом, при этом команды с web интерфейса проходят крайне медленно либо вообще не проходят, помогает перезагрузка драйвера, на некоторое время, потом снова всё сначала. `
Версия драйвера не 0.5.0? Попробуйте обновить на 0.5.3
https://github.com/ioBroker/ioBroker.mo … d5365a421c
У меня тоже случаются ошибки на модбасе, нечасто вроде… в результате перегружается драйвер самостоятельно (видно по логам). Раньше тоже с этим были проблемы.
-
Подключил ESP8266 к IO Broker через MODBUS. Брокер как мастер, ESP как слэйв. Работает, но почему-то медленно, апдейт происходит раз в 15-20 секунд, хотя другая SCADA (mySCADA ot https://www.myscada.org/en/) делает апдейт как минимyм раз в секунду от того же ESP. Не могу понять в чем дело, может библиотека MODBUS на ESP не тянет? Я пользуюсь библиотекой от https://github.com/andresarmento/modbus-arduino
Спасибо
-
Подключил ESP8266 к IO Broker через MODBUS… `
Почему именно MODBUS? в чем секрет? почему не MQTT, например? -
-
Подключил ESP8266 к IO Broker через MODBUS. Брокер как мастер, ESP как слэйв. Работает, но почему-то медленно, апдейт происходит раз в 15-20 секунд, хотя другая SCADA (mySCADA ot https://www.myscada.org/en/) делает апдейт как минимyм раз в секунду от того же ESP. Не могу понять в чем дело, может библиотека MODBUS на ESP не тянет? Я пользуюсь библиотекой от https://github.com/andresarmento/modbus-arduino
Спасибо `
Проблема решена использованием другой MODBUS библиотеки для ESP8266 от https://github.com/JhonControl/ESP8266_ … dbusTCP_V2 -
Почему Modbus Постоянно отваливается?
ioBroker установлен на компе под Win10. Используется оригинальный USB-RS485 адаптер от Болид https://bolid.ru/production/orion/inter … rs485.html , уже несколько лет ими пользуюсь, самые надёжные, никогда не глючили, имеют гальваническую развязку до 2,5кВ. Подключил три счётчика SDM120, в сумме 33 параметра. Работает минут 5-10, иногда несколько часов, и потом индикатор коннекта на самом адаптере гаснет, в драйверах ioBrokerа модбас драйвер загорается жёлтым, типа нет соединения с модбас шиной. Жму "перезагрузить", и всё начинает работать, опять до следующего падения.
Сначала думал что параметров много, или частота обновления большая, или может сами счётчики глючат... Оставил один счётчик, оставил один параметр (считывание напряжения), интервал запросов 1000 милисек. Но ситуация не поменялась, всё равно модбас отваливается. Никакой зависимости не заметил, может сразу отвалиться, может через несколько часов.
Сейчас поставил эти счётчики под мониторинг рапид скады, мониторятся почти сутки, никаких проблем, адаптер тот же самый.
Что можно предпринять? Без модбаса никак не могу? Есть альтернативные драйвера?
Логи:
Время Сообщение x modbus.0 2018-01-27 19:05:25.067 warn Poll error count: 11 code: {"err":"timeout"} modbus.0 2018-01-27 19:05:25.066 warn Error: undefined modbus.0 2018-01-27 19:05:24.065 info Connected to slave modbus.0 2018-01-27 19:04:24.058 info Disconnected from slave 127.0.0.1 modbus.0 2018-01-27 19:04:24.057 warn Poll error count: 10 code: {"err":"timeout"} modbus.0 2018-01-27 19:04:24.057 warn Error: undefined modbus.0 2018-01-27 19:04:23.056 info Connected to slave modbus.0 2018-01-27 19:03:23.048 info Disconnected from slave 127.0.0.1 modbus.0 2018-01-27 19:03:23.047 warn Poll error count: 9 code: {"err":"timeout"} modbus.0 2018-01-27 19:03:23.047 warn Error: undefined modbus.0 2018-01-27 19:03:22.044 info Connected to slave modbus.0 2018-01-27 19:02:22.038 info Disconnected from slave 127.0.0.1 modbus.0 2018-01-27 19:02:22.037 warn Poll error count: 8 code: {"err":"timeout"} modbus.0 2018-01-27 19:02:22.037 warn Error: undefined modbus.0 2018-01-27 19:02:21.036 info Connected to slave modbus.0 2018-01-27 19:01:21.032 info Disconnected from slave 127.0.0.1 modbus.0 2018-01-27 19:01:21.032 warn Poll error count: 7 code: {"err":"timeout"} modbus.0 2018-01-27 19:01:21.031 warn Error: undefined modbus.0 2018-01-27 19:01:20.028 info Connected to slave modbus.0 2018-01-27 19:00:21.226 warn Poll error count: 6 code: "App Timeout" modbus.0 2018-01-27 19:00:20.022 info Disconnected from slave 127.0.0.1 modbus.0 2018-01-27 19:00:19.222 warn Poll error count: 5 code: "App Timeout" modbus.0 2018-01-27 19:00:19.022 warn Poll error count: 4 code: {"err":"timeout"} modbus.0 2018-01-27 19:00:19.021 warn Error: undefined modbus.0 2018-01-27 19:00:18.020 info Connected to slave modbus.0 2018-01-27 18:59:19.213 warn Poll error count: 3 code: "App Timeout" modbus.0 2018-01-27 18:59:18.006 info Disconnected from slave 127.0.0.1 modbus.0 2018-01-27 18:59:17.139 warn Poll error count: 2 code: "App Timeout" modbus.0 2018-01-27 18:59:17.006 warn Poll error count: 1 code: {"err":"timeout"}
Перезапуск:
modbus.0 2018-01-27 19:06:07.382 info Connected to slave history.0 2018-01-27 19:06:07.347 info enabled logging of modbus.0.info.pollTime history.0 2018-01-27 19:06:07.334 info enabled logging of modbus.0.inputRegisters.0_Напряжение modbus.0 2018-01-27 19:06:07.265 info starting. Version 1.0.3 in C:/ioBroker/node_modules/iobroker.modbus, node: v4.7.3 host.Computer 2018-01-27 19:06:06.621 info instance system.adapter.modbus.0 started with pid 10064 host.Computer 2018-01-27 19:06:04.129 info instance system.adapter.modbus.0 terminated with code null () host.Computer 2018-01-27 19:06:04.129 warn instance system.adapter.modbus.0 terminated due to SIGTERM host.Computer 2018-01-27 19:06:04.100 info stopInstance system.adapter.modbus.0 killing pid 1956 host.Computer 2018-01-27 19:06:04.099 info stopInstance system.adapter.modbus.0 host.Computer 2018-01-27 19:06:04.095 info object change system.adapter.modbus.0 modbus.0 2018-01-27 19:05:25.067 info Disconnected from slave 127.0.0.1 modbus.0 2018-01-27 19:05:25.067 warn Poll error count: 11 code: {"err":"timeout"}
При этом автоматически делает переподключение - не прокатывает. А как ручками нажму кнопку, тогда подключается.
-
Почему Modbus Постоянно отваливается? `
Я так и не смог добиться стабильной работы если на одной шине 485 больше одного устройства. Причем в разных вариантах - и на USB-485, и на COM-сервере Ethernet-485. Вероятнее всего причина в том, что разные драйвера для разных устройств ничего не знают друг о друге и шлют запросы на одну шину случайным образом, создавая конфликты. Странно что у Вас те же проблемы и с одним устройством, я пробовал подключать такой же счетчик, работало нормально.
Ну и попробуйте разные параметры настройки драйвера. К примеру, одно из устройств стабильно у меня работает с таймаутом чтения 0. Другие же при 1000…
-
Здравствуйте, Blufox.
Скажите, когда будет полноценная реализация протокола modbus? Очень необходимо, чтобы драйвер поддерживал несколько устройств на одной шине.
-
Вообщем такая вот беда.
Пока iobroker работал на вот таких версиях
Orange PI Plus2
Node Js
v4.9.1
Npm
2.15.1
Драйвер ModBus последней ревизии видел Serial port без проблем можно было выбрать usb устройство
Но как только обновил систему до
Orange PI Plus2
Node.js: v8.11.4
NPM: 6.4.1
Всё драйвер modbus перестал видеть Serial port вообще в выборе просто пустота!
При этом на команду
root@orangepiplus:~# lsusb
Bus 002 Device 002: ID 05e3:0718 Genesys Logic, Inc. IDE/SATA Adapter
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 006: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Прежде чем писать этот пост я попробовал сделать многое в частности и
:!: Часто при установке драйверов, работающих с последовательным портом, возникают проблемы. Проблема происходит из за того, что NPM пакет serialport на вашей системе должен быть заново скомпилирован. Для этого необходимо установить нужные пакеты и инструменты. Linux:
sudo apt-get update
sudo apt-get install build-essential git
1
2
sudo apt-get update
sudo apt-get install build-essential git
Всё безуспешно драйвер не хочет видеть serial и всё.
Но я попробовал установить более старую версию Modbus и он без проблем видит serial port
Версии такие 1.1.0 работает
1.1.1 нет :oops:
)
)
Что делать и как заставить Modbus драйвер видить serial???
Дело не в правах пользователя и не в одноплатнике а судя из происходящего в драйвере.