RS-485 Modbus

Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Ответить
Грызет канифоль
Сообщения: 265
Зарегистрирован: Вт янв 01, 2013 15:42:37

Сообщение xxmafxx »

Здравствуйте. Сильно не пинайте, вопрос следующего плана. Имеется ПЛК с протоколом modbus интерфейс RS485. Необходимо отправлять данные с ПЛК на GSM модем и затем через VPN принимать их на ПК. Вопрос следующего характера - подойдёт ли для этих целей данный модем - http://www.moxa.ru/files/datasheets/onc ... series.pdf ? Немного разъясните пожалуйста момент - модему вообще нужно знать протокол передачи данных или достаточно, что интерфейс совпадает и всё?

Заранее спасибо.
Не ошибается лишь тот - кто ничего не делает.
Реклама
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

xxmafxx писал(а):Немного разъясните пожалуйста момент - модему вообще нужно знать протокол передачи данных или достаточно, что интерфейс совпадает и всё?
Естественно, просто интерфейса недостаточно. Интерфейс - это физическая среда передачи данных, грубо говоря, провода и согласованные уровни сигналов.
Протокол - это следующий уровень, это формат (в общем случае) передачи данных, хотя иногда под протоколом понимают еще и и систему команд.
xxmafxx писал(а):Имеется ПЛК с протоколом modbus интерфейс RS485. Необходимо отправлять данные с ПЛК на GSM модем
Как правило, модемы не работают по "чистому" modbus. Вам что-нибудь говорит понятие "система АТ-команд модама"?
xxmafxx писал(а):Вопрос следующего характера - подойдёт ли для этих целей данный модем
Да, скорее всего, подойдет. Только со стороны ПЛК придется написать реализацию передачи данных в соответствии с системой команд выбранного вами модема.
Реклама
Грызет канифоль
Сообщения: 265
Зарегистрирован: Вт янв 01, 2013 15:42:37

Сообщение xxmafxx »

Про AT команды в курсе.
Отсюда еще вопрос: Если в качестве мастера будет выступать ПЛК. На той же линии будет висеть некое устройство (самодельное и самописное на STM32) принимающее данные от ПЛК и с некоторой периодичностью отправляющее эту информацию через ту же линию модему( обращаясь к нему через АТ -команды). Такая схема имеет право на жизнь?

Добавлено after 2 minutes 41 second:
А вот что пишет тех поддержка - "Работа с AT-командами в модемах серии G31xx невозможна. Эти модемы самостоятельно устанавливают GPRS-соединение, поднимают стек TCP/IP и передают данные."
Не ошибается лишь тот - кто ничего не делает.
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

xxmafxx писал(а):Если в качестве мастера будет выступать ПЛК. На той же линии будет висеть некое устройство (самодельное и самописное на STM32) принимающее данные от ПЛК и с некоторой периодичностью отправляющее эту информацию через ту же линию модему( обращаясь к нему через АТ -команды).
Как Вы это себе представляете? Вы точно знаете, что такое RS-485? Интерфейс RS-485 - это "шина" с одним "мастером". Данные, переданные любым устройством на шине, принимаются всеми остальными устройствами.
Если ПЛК передаст данные вашей самоделке на STM, то модем также получит эти данные. А потом еще раз получит их уже от самоделки. Это во-первых. Ваша самоделка должна как-то модифицировать данные от ПЛК?
Во-вторых, для того, чтобы ваша самоделка начала передавать данные модему, она должна стать "мастером", потому что "слейвы" в RS-485 по своей инициативе ничего передавать не могут. "Слейв" тупо ожидает пакет со своим адресом и получив его, выполняет действия, указанные в пакете. Может в ответ на пакет какие-то данные послать, может какую-то команду внутри себя выполнить. Но какой-то ответ при этом все равно должен послать, чтобы "мастер" знал, что его команда получена адресатом.
Вам придется реализовывать режим виртуального мультимастеринга. Виртуального потому, что одновременно более одного "мастера" быть не может. Ваш ПЛК должен послать самоделке команду, передающую ей право быть "мастером", а сам ПЛК после этого должен стать "слейвом" и смиренно ждать, пока самоделка не вернет ему право быть мастером.
Мне кажется, что Вы исходно задачу неправильно ставите.
xxmafxx писал(а): А вот что пишет тех поддержка - "Работа с AT-командами в модемах серии G31xx невозможна
Значит, вам надо узнать, в каком формате этот модем может (если вообще может) получать по RS-485 данные для передачи.
Реклама
Эиком - электронные компоненты и радиодетали
Грызет канифоль
Сообщения: 265
Зарегистрирован: Вт янв 01, 2013 15:42:37

Сообщение xxmafxx »

Хорошо, допустим исключим из схемы самодельное устройство на STM. Остается передача данных от ПЛК к модему.
Со стороны ПЛК:
Modbus RS485 RTU.

Со стороны модема:
RS-485 2ух проводной (аналогично ПЛК)
Единственная информация которую я нашел по последовательному порту модема:
Data Bits: 5, 6, 7, 8
Stop Bits: 1, 1.5, 2 (when parity = None)
Parity: None, Even, Odd, Space, Mark
Baudrate: 75 bps to 921.6 kbps
Насколько я понимаю, данная информация и оговаривает вид принимаемой модемом информации?

Даже нет, оставим устройство на STM. Пусть оно принимает те же данные что и модем. Только устройство на STM их пишет на флэш, а модем отправляет по сотовой сети.
Не ошибается лишь тот - кто ничего не делает.
Реклама
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

xxmafxx писал(а):Насколько я понимаю, данная информация и оговаривает вид принимаемой модемом информации?
Да. Именно вид информации.
Последовательный порт модема допускает различные конфигурации протокола.
Например, вот так:
Data Bits: 5, 6, 7, 8
Stop Bits: 1, 1.5, 2 (when parity = None)
Parity: None, Even, Odd, Space, Mark
Baudrate: 75 bps to 921.6 kbps 115.2 kbps

Передача кадрами по 8 бит с двумя стоп-битами без контроля четности на скорости 115.2 кбит/с

или вот так

Data Bits: 5, 6, 7, 8
Stop Bits: 1, 1.5, 2 (when parity = None)
Parity: None, Even, Odd, Space, Mark
Baudrate: 75 bps to 921.6 kbps 33.6 kbps

Передача кадрами по 7 бит с одним стоп-битом без контроля четности на скорости 33.6 кбит/с

Но это ведь только формат передачи одного байта (в первом случае) или семи бит из байта (во втором случае)! Он не оговаривает, что именно передается. Со 100-процентной вероятностью скажу, что у модема все равно есть какая-то система команд для принятия информации. Модем, коль скоро он работает по интерфейсу RS-485, должен как-то распознать свой адрес в принятом пакете данных и т.д. Как именно должны быть организованы пакеты данных - сперва команда, затем адрес или наоборот? Длина пакета явно не указывается, так как зависит от команды или же указывается, тогда указывается ли длина пакета в целом или же длина только информационной части и т.д. В каком по счету байте пакета находится его длина? Есть ли CRC, и как именно он считается? Если у вас ПЛК поддерживает Modbus RTU, то там один алгоритм расчета CRC. У модема такой же? Или модем использует алгоритм CRC16-CCITT? Или какой-то другой?

В общем, судя по уровню Ваших знаний (точнее, незнаний) основных принципов передачи данных, я рекомендую Вам обратиться для решения этой задачи к более компетентному специалисту.
Реклама
Грызет канифоль
Сообщения: 265
Зарегистрирован: Вт янв 01, 2013 15:42:37

Сообщение xxmafxx »

Со стороны ПЛК информация доступна и её полно. Даже если я что то не знаю касательно ПЛК, достать знаю где. В остальном к сожалению разбираться придётся самостоятельно - 100%.
Давайте я все таки постараюсь поставить задачу более конкретно: Необходимо выбрать подходящий модем. Требования к модему следующие - получение информации от ПЛК через Modbus RTU и передача их через VPN. Питание 24В. Рабочая температура не ниже +65. Как то так, спасибо что не оставили мой вопрос без внимания :)

Добавлено after 44 minutes 12 seconds:
Нашел подобный вопрос на форумах, вот что ответили человеку - "Давайте будем честны: GSM модем с ModBus - это будет стандартный модем с встроенным контроллером, который будет данные перегонять хать из ModBus хать еще из чего... То есть это все равно, по большой сути модем + контроллер. Единственный возможный плюс такого решения - что AT команды данный модуль будет формировать сам, ВОЗМОЖНО... Но цена такого решения я думаю будет не радостная..."
Возможно и в моём случае выбор модема с поддержкой Modbus RTU не самое лучшее решение?

Добавлено after 19 minutes 40 seconds:
http://www.radiofid.ru/catalog/besprovo ... -atm2-485/ Вот такого пациента нашел. В описании написано о наличии поддержки Modbus RTU. Я так понимаю, это то что нужно?
Вложения
modbus PLC.JPG
(28.16 КБ) 341 скачивание
Не ошибается лишь тот - кто ничего не делает.
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

xxmafxx писал(а):Вот такого пациента нашел. В описании написано о наличии поддержки Modbus RTU. Я так понимаю, это то что нужно?
Да не факт.
Вы описание читали? Там не написано "Поддерживает все MODBUS устройства". Там, наоборот, написано:
Модемы серии АТМx-485 протестированы с электросчетчиками:
Меркурий 230 ● Миртек 1-РУ ● Миртек 3-РУ ● ПСЧ 3А-06 ● ПСЧ 3ТА-07 ● ПСЧ 4ТМ-05М ● СЭТ 4ТМ.02М ● Elster A1140 ● Энергомера СЕ303 ● Нева МТ 313 ● Вектор-3 АRT2 ● Вектор-100 ● Вектор-300 ● ЦЭ 2727А Е4ОР ● ЦЭ 2726А Е4ОР (ООО «СПбЗИП»)
О чем это говорит? Да только о том, что производитель как раз не гарантирует работу абсолютно со всеми MODBUS устройствами. Вышеуказанные счетчики протестированы, а остальные - не факт, что будут работать.
Вы вообще представляете себе суть протокола Modbus?
Далее - вы описание этого модема прочли? Я мельком глянул - поскольку там устанавливается параметр "Пауза", связанный с частотой опроса внешнего устройства, то, скорее всего, модем на шине RS-485 играет роль "мастера". Ваш ПЛК - он передает данные по собственной инициативе или ждет запроса для передачи данных? В первом случае он - тоже "мастер", а два мастера на одной шине "не уживутся".

В общем, резюме такое. Заочно трудно сказать, можно ли связать ваш ПЛК с этим модемом, слишком много факторов. Вы говорите, что можете получить по ПЛК подробную информацию - получайте, а потом связывайтесь с изготовителем этого модема, причем не с менеджером по продажам, а с техническими специалистами. Излагайте им информацию по ПЛК и узнавайте, будет ли их модем работать с вашим ПЛК.
xxmafxx писал(а):Возможно и в моём случае выбор модема с поддержкой Modbus RTU не самое лучшее решение?
Если Вы уверены, что сможете сами разработать контроллер, с одной стороны, принимающий данные от Modbus-устройства, а с другой стороны, передающий эти данные посредством АТ-команд на обычный модем, работающий через АТ-команды - дерзайте.
Грызет канифоль
Сообщения: 265
Зарегистрирован: Вт янв 01, 2013 15:42:37

Сообщение xxmafxx »

Разработать, конечно возможно, но думаю Вам понятно, что с моим уровнем знаний в данном вопросе, это займет огромное количество времени. Поэтому я склоняюсь к поиску готового решения.
Очевидно, что необходимо подобрать модем с соответствующими характеристиками и сделать это обращаясь в тех поддержку задача не из легких и не быстрых. Поэтому и надеюсь, что здесь мне подскажут (уже многое подсказали) на какие параметры обращать внимание, чтобы может не выбрать, но по крайней мере отсеять все не подходящие варианты.
ПЛК в моей системе данные передаёт исключительно по собственной инициативе.
Прочитав описанную Вами информацию и порывшись в интернете, наткнулся вот на сей девайс - http://www.euromobile.ru/wp-content/upl ... .0-ru1.pdf
1) Промышленное исполнение
2) Наличие VPN
3) Встроенное преобразование Modbus RTU - Modbus TCP
4) Возможность работы в качестве Modbus RTU Slave по интерфейсу RS-485 (Согласно стр.42-44 документа приведенного в самом низу)
5) Подходящее питающее напряжение
Возможно есть какой то очевидный параметр, по которому мне этот модем не подходит, но я его не вижу?
http://www.euromobile.ru/wp-content/upl ... 0.0-en.pdf
С уважением.
Не ошибается лишь тот - кто ничего не делает.
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

xxmafxx писал(а):Прочитав описанную Вами информацию и порывшись в интернете, наткнулся вот на сей девайс
Давайте для начала оговорим, что я, конечно, помогаю Вам, но 100-процентную ответственность за окончательное решение нести не буду. Эта тематика лежит несколько в стороне от того, чем я занимаюсь, а вникать в тему совсем уж глубоко у меня нет времени.

Теперь по делу. Найденный Вами модем, в принципе должен подойти для Вашей задачи - передачи данных с ПЛК.
Самая грубая проверка совместимости - это соответствие уже оговоренных ранее параметров
Data Bits:
Stop Bits:
Parity:
Baudrate:
Ваш ПЛК должен уметь работать с теми же значениями этих параметров, что и модем.

Далее - из выложенной Вами ссылки на документацию я понял, что модем умеет быть как мастером, так и слейвом, причем как в протоколе Modbus RTU (что нам важно), так и в Modbus ASCII (что нам не важно).
Модем имеет некоторые настройки, в частности, при определении модема как "слейв"-устройство позволяет его адрес на шине RS-485.
Так что теоретически все должно "взлететь".
Грызет канифоль
Сообщения: 265
Зарегистрирован: Вт янв 01, 2013 15:42:37

Сообщение xxmafxx »

Давно не отвечал, т.к. не было движений по данному вопросу. На днях на конец - то добрался до ПЛК и модема. На практике всё оказалось почти как в теории и прекрасно "взлетело" :)
Удалось организовать передачу данных и даже поднять OpenVPN, для прямого доступа к ПЛК.
Но есть одно НО, которое я не учел, т.к. не верно представлял "структуру" сей системы. Дело в том, что хоть модем и переключается в режим slave, но по факту ведомым устройством не является, а следовательно не имеет собственного ID. Ведомым же устройством является ПО на ПК или сервере. На работе всей системы это конечно не скажется, но все таки вещь не приятная :)
Спасибо за помощь! :beer:
Не ошибается лишь тот - кто ничего не делает.
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

xxmafxx писал(а):Спасибо за помощь!
Рад, что все получилось. Удачи!
Ответить

Вернуться в «Теория»