Организуйте пожалуйста удалённый доступ (ssh к контроллеру или teamviewer к терминалу) - посмотрим.
Писать в support@contactless.ru
Организуйте пожалуйста удалённый доступ (ssh к контроллеру или teamviewer к терминалу) - посмотрим.
Писать в support@contactless.ru
Ну и сейчас у вас вылетает драйвер при старте, потому что вы зачем-то указали protocol: modbus для счётчика:
{
"path": "/dev/ttyRS485-2",
"baud_rate": 9600,
"parity": "N",
"data_bits": 8,
"stop_bits": 1,
"poll_interval": 10,
"enabled": true,
"devices": [
{
"slave_id": "164225",
"device_type": "Mercury 200.02",
"enabled": true,
"protocol": "modbus",
"poll_interval": 20
}
],
"response_timeout_ms": 0
},
root@wirenboard-ABZ4PE4F:~# cat /var/log/messages | grep serial | tail
<...>
May 18 09:57:35 wirenboard-ABZ4PE4F user.notice serial: FATAL: Error parsing config file: invalid register type: param32 -- Mercury 200.02
он по умолчанию указан. Какой протокол необходим?
По-умолчанию он не добавляется вообще.
Ещё вопрос: /usr/share/wb-mqtt-serial/templates/config-mercury200_02.json или другие темплейты вы вручную редактировали?
я протокол не указывал. По поводу темплейтов редактировал только меркурий с целью исправить неверный масштаб.
так, для счётчика вы поставили response_timeout_ms: 0.
Предполагаю, что дело в этом.
Можно узнать, зачем?
я не трогал этот параметр. он по умолчанию ставит 0
Сколько нужно поставить?
Вы неправы. Вы нажали Properties, выбрали response_timeout_ms (а это значит, что вы решили добавить новую сложную настройку, которую мы даже специально убрали с глаз долой), а потом оставили 0. То же самое и с protocol.
Общее правило: не стоит добавлять и трогать настройки, не понимая, что они делают.
Нужно зайти в Properties и убрать эту настройку обратно.
убрал, посыпались ошибки
перестали передавать информацию датчики на RS485
Потому что я их отключил на время тестирования. Убедитесь сейчас, что ничего не “зависает”, потом включите в интерфейсе порт с датчиками обратно.
“Посыпались ошибки” - это симптом того, что плохи дела с физическим подключением. Может быть дело в терминаторе (убрали перемычку), может быть вы подключили плохо или плохим кабелем, может быть ещё куча причин. Кроме этого, вы подключаете счётчик UART-CAN к порту RS-485, это работает по счастливой случайности (частично пересекаются уровни сигналов RS-485 и CAN). В общем случае это работать не должно и для подключения Меркуриев по UART-CAN нужно взять у нас специализированный модуль.
Предвосхищая возможный вопрос: нет, надпись “CAN” на клеммнике про другое. У нас на этом клеммнике настоящий интерфейс CAN, а производители Меркурия под словом “CAN” подразумевают нечто самодельное.
я тогда рекомендую вам, где то в описаниях отразить что для меркурия нужен отдельный модуль. Я где то у вас читал что его можно подключать напрямую к контроллеру только чтобы кроме него не было ничего другого, поэтому так и поступил.
подскажите как тестовое логирование счетчика теперь отключить?
галочку с Debug в веб-интерфейсе в настройках драйвера снять. Или в конфиг-файле поменять “debug”:true на “debug”:false
Так есть меркурии с нормальным человеческим RS-485, так что это касается далеко не всех модификаций. Посмотрим как лучше написать.
Понял. Спасибо. Пока все стабильно
Подключил модуль изолированный UART-CAN. Терминатор не снимал, в настройках железа модуль указал. Вопрос следующий. Отвалились все датчики на 1 порту RS485, меркурий так и не появился
May 24 20:24:18 wirenboard-ABZ4PE4F user.notice serial: ERROR Can’t open the device /dev/ttyMOD2 (No such file or directory)
May 24 20:24:18 wirenboard-ABZ4PE4F user.notice serial: FATAL: Serial protocol error: cannot open serial port. Stopping event loops.
dpkg -l wb-configs
dpkg -l wb-hwconf-manager
Особо интересует, откуда взялась вообще строчка “/dev/ttyMOD2”
и прописал тут
и тут
Спасибо. Ещё пожалуйста покажите вывод
dpkg -l wb-mqtt-serial
и вывод
ls -lh /dev/tty*
P.S. Кирилл, не могли бы вы отвечать одним сообщением, а не разбивать на пять разных? Спасибо.