PDA

Просмотр полной версии : Снифер RS-485 из ПЛК110



Parovoz
06.06.2019, 16:40
Здравствуйте.
У меня есть устройство, являющееся слейвом в RS-485 сети с протоколом MBRTU. Это устройство непрерывно опрашивается заводским программным обеспечением, установленным на ПК, через USB-485 конвертер. В эту безупречную схему мне нужно внедрить ПЛК110, который должен просто получать те же самые данные, которые получает заводское ПО. Внимание вопрос: как это возможно реализовать? Думал сначала поставить преобразователь на MBTCP и опрашивать это по всё по MBTCP протоколу, но заводская софтина может работать только с COM-портом по MBRTU. Подобные ситуации уже решались с помощью снифера RS485-сети. Поэтому ещё один вопрос: кто-нибудь реализовывал такой снифер на базе ПЛК110? Чтобы ПЛК не выдавал команду на чтение, а только слушал гуляющие данные по 485-сети?

Parovoz
24.10.2019, 06:15
Up! Тема актуальна!

melky
24.10.2019, 09:21
Присесть для начала другим ПК и все прослушать, наверняка там небольшой набор запросов. Ну и научить ПЛК писать в массивы, зная по какому адресу идут запросы и откуда придут ответы.

Преобразователь на ModbusTCP не подойдет, так как он является Мастером для RTU режима.

з.ы. а почему именно для ПЛК реализация ? какая цель ?

Parovoz
25.10.2019, 08:19
Чем modbus. lib не устраивает, исходники есть надо только посмотреть как организовано чтение ответов на запрос

может быть и устраивает исходники не ковырял, в стандартном режиме идёт команда на считывание 03, а потом приём данных, что мне не подходит т.к. из-за двух мастеров в 485-сети возникнут коллизии.

спрашиваю может кто-то на практике уже этим занимался или есть определённые конкретные идеи по реализации.

Parovoz
25.10.2019, 08:35
Присесть для начала другим ПК и все прослушать, наверняка там небольшой набор запросов. Ну и научить ПЛК писать в массивы, зная по какому адресу идут запросы и откуда придут ответы.

Преобразователь на ModbusTCP не подойдет, так как он является Мастером для RTU режима.

з.ы. а почему именно для ПЛК реализация ? какая цель ?

другим ПК сейчас всё читается и работает, но интересует возможность для реализации подобного функционала программными средствами плк без использования сторонних устройств в целях экономии ресурсов. набор запросов там примерно 400 регистров которые нужно сниффить, адреса известны как устройств так и регистров в них, команды на чтение стандартные 03.

суть и принципы реализации понятны, непонятны программно-аппаратные возможности ПЛК в этом вопросе, насколько это в принципе реализуемо? а также именно нюансы реализации.


to all
ожидаются ответы вида: вот держи код, у меня уже всё работает, или кода нет, но я это делал так и так и всё работало.

melky
25.10.2019, 08:50
"вот держи код" тут вряд ли получите... Думайте сами. Если родное ПО можно настроить опрашивать устройство строго в определенные секунды минуты (вряд ли оно умеет конечно, ну а вдруг) тогда при синхронизации времени можно и двумя мастерами опрашивать. Но это не лучший выход, хотя как посмотреть.

Опять же, частота опроса какая нужна ?
Опять же, если другим ПК у вас все сниферится, и уже работает, почему не расширить функционал ?
Опять же, вы не указали цели и задачи на кой тут ПЛК ?

То есть цена вопроса какой-нибудь без вентиляторный промПК или ПЛК по цене сопоставимы.

Sergey666
25.10.2019, 09:20
Делается на основе библиотеки SysLibCom.lib. Только с программным анализом будут проблемы, т.к валится хаотично все будет в общий буфер(который чистить надо будет периодически).
Снифер вообще для "человеческого" анализа предназначен. Если интересно позже пример выложу.

Parovoz
25.10.2019, 09:54
"вот держи код" тут вряд ли получите... Думайте сами. Если родное ПО можно настроить опрашивать устройство строго в определенные секунды минуты (вряд ли оно умеет конечно, ну а вдруг) тогда при синхронизации времени можно и двумя мастерами опрашивать. Но это не лучший выход, хотя как посмотреть.

Опять же, частота опроса какая нужна ?
Опять же, если другим ПК у вас все сниферится, и уже работает, почему не расширить функционал ?
Опять же, вы не указали цели и задачи на кой тут ПЛК ?

То есть цена вопроса какой-нибудь без вентиляторный промПК или ПЛК по цене сопоставимы.

функционал уже расширен, другой пк сниффит сеть и расшаривает данные в mbtcp, оттуда по локалке плк читает данные и производит соответствующие действия.

какая разница, что, зачем и для чего здесь плк. просто есть потребность в таком инструменте как снифер rs-485, уже неоднократно пришлось его использовать на сторонних устройствах и городить огород с расшариванием регистров для дальнейшего чтения.
просто было бы неплохо иметь такой инструмент, который позволит в дальнейшем упростить костыли в некоторых условиях.

Parovoz
25.10.2019, 09:57
Делается на основе библиотеки SysLibCom.lib. Только с программным анализом будут проблемы, т.к валится хаотично все будет в общий буфер(который чистить надо будет периодически).
Снифер вообще для "человеческого" анализа предназначен. Если интересно позже пример выложу.

интересно.

melky
25.10.2019, 10:54
Parovoz как написал Sergey666, будете мучать плк с очисткой буфера и лишней работой. На самом дешманском промПК можно сделать шлюз (например используя RaspberryPi) раз уж умеете программировать. Который будет так же брать данные из порта путем снифа и передавать данные в любой вам ПЛК по Modbus хоть RTU хоть TCP....

Ну а так дело ваше, лепите на ПЛК....

Parovoz
25.10.2019, 14:00
Parovoz как написал Sergey666, будете мучать плк с очисткой буфера и лишней работой. На самом дешманском промПК можно сделать шлюз (например используя RaspberryPi) раз уж умеете программировать. Который будет так же брать данные из порта путем снифа и передавать данные в любой вам ПЛК по Modbus хоть RTU хоть TCP....

Ну а так дело ваше, лепите на ПЛК....

именно так уже и сделано, это уже многократно работает и на малине и на обыкновенном ПК.