Дополнительный порт

У меня есть несколько устройств подключенных по 485 к WB4. у одного из них настройки порта отличаются от других 9600,E,8,1 вместо 9600,N,8,1. Как их подключить одновременно? Я попробовал в Web задать дополнительный порт (ttyNSC1) с нужными настройками и туда добавить это устройство но ничего не получилось.

crw-rw---- 1 root tty 204, 64 Sep 27 05:11 ttyAMA0
crw-rw—T 1 root dialout 247, 0 Sep 27 05:10 ttyAPP0
crw-rw—T 1 root dialout 254, 0 Sep 27 05:19 ttyNSC0
crw-rw—T 1 root dialout 254, 1 Sep 27 05:19 ttyNSC1

Добрый день! Можете, пожалуйста, более подробно описать порядок ваших действий, что кк каим портам подключено, какие настройки выбраны, что именно не получилось?

У меня разные устройства работают с разными настройками порта и мне их как то нужно подключить. Устройства на порту /dev/ttyNSC0 (он был изначально) работают, а вот на /dev/ttyNSC1 (его я добавил, добавлял через WEB) не хочет находится. Если его перенести на порт /dev/ttyNSC0 и настроить параметры порта правильно то он виден и работает, но все остальные отваливаются. Что я делаю не так?
Вот мой wb-homa-modbus.conf

{“debug”: true,
“ports”: [{
“path”: “/dev/ttyNSC0”,
“devices”: [{
“slave_id”: “18”,
“device_type”: “WP3066ADAM”,
“protocol”: “modbus”
}, ],
“baud_rate”: 9600,
“parity”: “N”,
“data_bits”: 8,
“stop_bits”: 1,
“poll_interval”: 10,
“enabled”: true,
“type”: “modbus”
},
{“path”: “/dev/ttyNSC1”,
“enabled”: true,
“baud_rate”: 9600,
“parity”: “E”,
“data_bits”: 8,
“stop_bits”: 1,
“devices”: [
{ “slave_id”: “1”,
“device_type”: “PD561Z”,
“enabled”: true
}], “type”: “modbus”}]}

zhukovia, добрый день!
А вы пробовали подключать заведомо работающее устройство к ttyNSC0 (остановив wb-homa-modbus) и опрашивать его через modbus_client, указывая нужные коммуникационные параметры, а затем, получив ответ, подключить его его же, только к ttyNSC1?

Я видимо не совсем понял ваш вопрос, но я же писал ранее что устройства настроенные на работу через ttyNSC0 работают, при чем если перенастроить порт под устройство которое подключено через ttyNSC1 то оно тоже работает. Я может не понимаю “физики” процесса. Порт ttyNSC0 и ttyNSC1 это же виртуальные порты, а физически все подключается к одним и тем же клемам на устройстве 485 А и В? И для настройке достаточно просто поправить конфигурационный файл wb-homa-modbus.conf? Или я путаю чего то?

А я, похоже, вас не до конца понял )
В WB4 это два разных физических порта со своими клеммниками:
image
А вот как одно устройство видится на двух шинах одновременно, я несколько затрудняюсь объяснить.

Т.е. ttyNSC0 и ttyNSC1 это физически разные порты и нужно будет тянуть отдельный кабель к этому одному устройству? Это плохо. А можно как то “подружить” на одном кабеле устройства с разными настройками порта? У одного 9600,E,8,1 (PD561Z), а у всех остальных 9600,N,8,1. Полагаю что нельзя. А вообще у всех устройств на шине 485 можно перенастроить параметры порта или это зависит от устройства? Можно как то определить возможность перенастройки не имея инструкции к нему?

Да, это, к сожалению, разные порты, и наш драйвер не позволяет опрашивать устройства с разными коммуникационными параметрами на одной шине.
Коммуникационные параметры устройств не сегда можно изменить, наши старые устройства имели фиксированные 96008N2, сейчас все устройства позволяют менять настройки. НО у разных производителей все по-разному, стандартных мпособов конфигурирования нет, к сожалению.
Может, вам посмотреть в сторону беспроводных конвертеров типа https://www.usriot.com, если провода не получается проводить.

У меня устройство PD561Z лет 5 назад ваши специалисты писали к нему “драйвер” в настройках порта для него было необходимо установить “Parity = E”. Я поменял настройки на нем (у него есть ЖК дисплей с меню) на “Parity = N” (n.8.1), но устройство все равно не видится WB4. Если поменять настройки порта на “Parity=E” то все видится, но исчезают устройства (WP3066ADAM). В чем может быть проблема? Может что то прописано в самом “драйвере” PD561Z на WB4, что он работает только с “Parity=E”? И что вообще “Parity=E” значит?

zhukovia, добрый день! В шаблоне для вашего устройства нет настроек параметров передачи данных.
Все устройства, подключенные к одному порту контроллера, должны иметь одинаковые коммуникационные параметры (скорость передачи данных, количество стоп-битов, битов четности, битов данных). Настройки порта задаются на странице конфигурации.
Про бит четности можно прочесть тут.
Считайте его просто формальным коммуникационным параметром, который должен быть одинаковым на шине и на всех устройствах, к ней подключенных.

Это понятно что должны быть одинаковыми. Но почему изменив параметры порта на PD561 на WB4 не могу ничего прочитать? Как будто и не менял ничего.
И еще вопросы. В Web интерфейсе у некоторых устройств периодически параметры становятся красными. Почему это может происходить?
И как удалить в разделе Device лишние устройства? Я менял параметр адрес у одного устройства 3 раза и теперь у меня 3 устройства с разными адресами 1 работает, а остальные неактивны.%D0%91%D0%B5%D0%B7%D1%8B%D0%BC%D1%8F%D0%BD%D0%BD%D1%8B%D0%B9

В консоли командой
mqtt-delete-retained “/devices/ИМЯ_ДЕВАЙСА/#”

И так с каждым девайсом. Регистр имеет значение.

1 лайк

Удалил, спасибо.
А по поводу “покраснения” значений в Веб интерфейсе и того что при измененных параметрах порта в устройстве PD561 WB4 продолжает к нему обращаться только через “старые” настройки не подскажите? Хотя по последнему вопросу я полагаю что параметры скорее всего просто не меняются на самом PD561, хоть я их и изменил через кнопки на нем.

А отключить-выключить PD561 для вступления изменений в силу не надо, случайно?

Это уже делал, не помогло. Сейчас переписываюсь с производителем, может узнаю как командами по 485 посмотреть.

А из командной строки при подключенном к какому-либо выбранному порту вы пробовали опрашивать устройство, меняя на нем коммуникационные параметры?

Да пробовал. Если стоит “Parity=E” то данные получают, а если “Parity=N” то нет. Но у меня только одно устройство PD561Z требует этих параметров и провода уже проложены, поэтому перенести его на другую линию очень проблематично. Вот и пытаюсь настроить все одинаково.

А почему у данного устройства все значения в Веб могли стать красными? Я перенастроил его на “Parity=E” и данные вроде как приходят но значения почему то красного цвета? Ваши устройства, как я понял, одинаково работают и “Parity=N” и “Parity=E” без перенастройки. Или я ошибаюсь?

zhukovia, простите меня, я немного запутался, что к чему у вас подключено.
Можете подробнее описать конфигурацию параметров передачи данных портов контроллера, когда все работает, и что к каким портам подсоединено?
И что меняется, когда работать перестает. Можно схемку от руки.
Про WP3066ADAM ничего сказать не могу – это устройство не нашего производства.

Подключено к первому порту 6 устройств(WP3066ADAM,PD561Z,WB-M1W2,WB-M1W2,WB-MR6C,WB-MS v.2). PD561Z работает только если параметры порта 9600,E,8,1 а при 9600,N,8,1 не работает (хоть я и поменял на нем параметры порта). На WP3066ADAM перенастроил параметры порта на 9600,E,8,1, данные приходят но в Веб все “красное” (скриншот выше). Ваши устройства вроде работают при разных настройках порта (без их перенастройки), по крайней мере они не “красные”. Или я ошибаюсь?