Заранее спасибо.
RS-485 Modbus
- Сообщения: 265
- Зарегистрирован: Вт янв 01, 2013 15:42:37
Здравствуйте. Сильно не пинайте, вопрос следующего плана. Имеется ПЛК с протоколом modbus интерфейс RS485. Необходимо отправлять данные с ПЛК на GSM модем и затем через VPN принимать их на ПК. Вопрос следующего характера - подойдёт ли для этих целей данный модем - http://www.moxa.ru/files/datasheets/onc ... series.pdf ? Немного разъясните пожалуйста момент - модему вообще нужно знать протокол передачи данных или достаточно, что интерфейс совпадает и всё?
Заранее спасибо.
Заранее спасибо.
Не ошибается лишь тот - кто ничего не делает.
- Реклама
Естественно, просто интерфейса недостаточно. Интерфейс - это физическая среда передачи данных, грубо говоря, провода и согласованные уровни сигналов.xxmafxx писал(а):Немного разъясните пожалуйста момент - модему вообще нужно знать протокол передачи данных или достаточно, что интерфейс совпадает и всё?
Протокол - это следующий уровень, это формат (в общем случае) передачи данных, хотя иногда под протоколом понимают еще и и систему команд.
Как правило, модемы не работают по "чистому" modbus. Вам что-нибудь говорит понятие "система АТ-команд модама"?xxmafxx писал(а):Имеется ПЛК с протоколом modbus интерфейс RS485. Необходимо отправлять данные с ПЛК на GSM модем
Да, скорее всего, подойдет. Только со стороны ПЛК придется написать реализацию передачи данных в соответствии с системой команд выбранного вами модема.xxmafxx писал(а):Вопрос следующего характера - подойдёт ли для этих целей данный модем
- Сообщения: 265
- Зарегистрирован: Вт янв 01, 2013 15:42:37
Про AT команды в курсе.
Отсюда еще вопрос: Если в качестве мастера будет выступать ПЛК. На той же линии будет висеть некое устройство (самодельное и самописное на STM32) принимающее данные от ПЛК и с некоторой периодичностью отправляющее эту информацию через ту же линию модему( обращаясь к нему через АТ -команды). Такая схема имеет право на жизнь?
Добавлено after 2 minutes 41 second:
А вот что пишет тех поддержка - "Работа с AT-командами в модемах серии G31xx невозможна. Эти модемы самостоятельно устанавливают GPRS-соединение, поднимают стек TCP/IP и передают данные."
Отсюда еще вопрос: Если в качестве мастера будет выступать ПЛК. На той же линии будет висеть некое устройство (самодельное и самописное на STM32) принимающее данные от ПЛК и с некоторой периодичностью отправляющее эту информацию через ту же линию модему( обращаясь к нему через АТ -команды). Такая схема имеет право на жизнь?
Добавлено after 2 minutes 41 second:
А вот что пишет тех поддержка - "Работа с AT-командами в модемах серии G31xx невозможна. Эти модемы самостоятельно устанавливают GPRS-соединение, поднимают стек TCP/IP и передают данные."
Не ошибается лишь тот - кто ничего не делает.
Как Вы это себе представляете? Вы точно знаете, что такое RS-485? Интерфейс RS-485 - это "шина" с одним "мастером". Данные, переданные любым устройством на шине, принимаются всеми остальными устройствами.xxmafxx писал(а):Если в качестве мастера будет выступать ПЛК. На той же линии будет висеть некое устройство (самодельное и самописное на STM32) принимающее данные от ПЛК и с некоторой периодичностью отправляющее эту информацию через ту же линию модему( обращаясь к нему через АТ -команды).
Если ПЛК передаст данные вашей самоделке на STM, то модем также получит эти данные. А потом еще раз получит их уже от самоделки. Это во-первых. Ваша самоделка должна как-то модифицировать данные от ПЛК?
Во-вторых, для того, чтобы ваша самоделка начала передавать данные модему, она должна стать "мастером", потому что "слейвы" в RS-485 по своей инициативе ничего передавать не могут. "Слейв" тупо ожидает пакет со своим адресом и получив его, выполняет действия, указанные в пакете. Может в ответ на пакет какие-то данные послать, может какую-то команду внутри себя выполнить. Но какой-то ответ при этом все равно должен послать, чтобы "мастер" знал, что его команда получена адресатом.
Вам придется реализовывать режим виртуального мультимастеринга. Виртуального потому, что одновременно более одного "мастера" быть не может. Ваш ПЛК должен послать самоделке команду, передающую ей право быть "мастером", а сам ПЛК после этого должен стать "слейвом" и смиренно ждать, пока самоделка не вернет ему право быть мастером.
Мне кажется, что Вы исходно задачу неправильно ставите.
Значит, вам надо узнать, в каком формате этот модем может (если вообще может) получать по RS-485 данные для передачи.xxmafxx писал(а): А вот что пишет тех поддержка - "Работа с AT-командами в модемах серии G31xx невозможна
- Сообщения: 265
- Зарегистрирован: Вт янв 01, 2013 15:42:37
Хорошо, допустим исключим из схемы самодельное устройство на 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 их пишет на флэш, а модем отправляет по сотовой сети.
Со стороны ПЛК:
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 их пишет на флэш, а модем отправляет по сотовой сети.
Не ошибается лишь тот - кто ничего не делает.
- Реклама
Да. Именно вид информации.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
Со стороны ПЛК информация доступна и её полно. Даже если я что то не знаю касательно ПЛК, достать знаю где. В остальном к сожалению разбираться придётся самостоятельно - 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 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 скачивание
Не ошибается лишь тот - кто ничего не делает.
Да не факт.xxmafxx писал(а):Вот такого пациента нашел. В описании написано о наличии поддержки Modbus RTU. Я так понимаю, это то что нужно?
Вы описание читали? Там не написано "Поддерживает все MODBUS устройства". Там, наоборот, написано:
О чем это говорит? Да только о том, что производитель как раз не гарантирует работу абсолютно со всеми 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?
Далее - вы описание этого модема прочли? Я мельком глянул - поскольку там устанавливается параметр "Пауза", связанный с частотой опроса внешнего устройства, то, скорее всего, модем на шине RS-485 играет роль "мастера". Ваш ПЛК - он передает данные по собственной инициативе или ждет запроса для передачи данных? В первом случае он - тоже "мастер", а два мастера на одной шине "не уживутся".
В общем, резюме такое. Заочно трудно сказать, можно ли связать ваш ПЛК с этим модемом, слишком много факторов. Вы говорите, что можете получить по ПЛК подробную информацию - получайте, а потом связывайтесь с изготовителем этого модема, причем не с менеджером по продажам, а с техническими специалистами. Излагайте им информацию по ПЛК и узнавайте, будет ли их модем работать с вашим ПЛК.
Если Вы уверены, что сможете сами разработать контроллер, с одной стороны, принимающий данные от Modbus-устройства, а с другой стороны, передающий эти данные посредством АТ-команд на обычный модем, работающий через АТ-команды - дерзайте.xxmafxx писал(а):Возможно и в моём случае выбор модема с поддержкой Modbus RTU не самое лучшее решение?
- Сообщения: 265
- Зарегистрирован: Вт янв 01, 2013 15:42:37
Разработать, конечно возможно, но думаю Вам понятно, что с моим уровнем знаний в данном вопросе, это займет огромное количество времени. Поэтому я склоняюсь к поиску готового решения.
Очевидно, что необходимо подобрать модем с соответствующими характеристиками и сделать это обращаясь в тех поддержку задача не из легких и не быстрых. Поэтому и надеюсь, что здесь мне подскажут (уже многое подсказали) на какие параметры обращать внимание, чтобы может не выбрать, но по крайней мере отсеять все не подходящие варианты.
ПЛК в моей системе данные передаёт исключительно по собственной инициативе.
Прочитав описанную Вами информацию и порывшись в интернете, наткнулся вот на сей девайс - 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
С уважением.
Очевидно, что необходимо подобрать модем с соответствующими характеристиками и сделать это обращаясь в тех поддержку задача не из легких и не быстрых. Поэтому и надеюсь, что здесь мне подскажут (уже многое подсказали) на какие параметры обращать внимание, чтобы может не выбрать, но по крайней мере отсеять все не подходящие варианты.
ПЛК в моей системе данные передаёт исключительно по собственной инициативе.
Прочитав описанную Вами информацию и порывшись в интернете, наткнулся вот на сей девайс - 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
С уважением.
Не ошибается лишь тот - кто ничего не делает.
Давайте для начала оговорим, что я, конечно, помогаю Вам, но 100-процентную ответственность за окончательное решение нести не буду. Эта тематика лежит несколько в стороне от того, чем я занимаюсь, а вникать в тему совсем уж глубоко у меня нет времени.xxmafxx писал(а):Прочитав описанную Вами информацию и порывшись в интернете, наткнулся вот на сей девайс
Теперь по делу. Найденный Вами модем, в принципе должен подойти для Вашей задачи - передачи данных с ПЛК.
Самая грубая проверка совместимости - это соответствие уже оговоренных ранее параметров
Data Bits:
Stop Bits:
Parity:
Baudrate:
Ваш ПЛК должен уметь работать с теми же значениями этих параметров, что и модем.
Далее - из выложенной Вами ссылки на документацию я понял, что модем умеет быть как мастером, так и слейвом, причем как в протоколе Modbus RTU (что нам важно), так и в Modbus ASCII (что нам не важно).
Модем имеет некоторые настройки, в частности, при определении модема как "слейв"-устройство позволяет его адрес на шине RS-485.
Так что теоретически все должно "взлететь".
- Сообщения: 265
- Зарегистрирован: Вт янв 01, 2013 15:42:37
Давно не отвечал, т.к. не было движений по данному вопросу. На днях на конец - то добрался до ПЛК и модема. На практике всё оказалось почти как в теории и прекрасно "взлетело"
Удалось организовать передачу данных и даже поднять OpenVPN, для прямого доступа к ПЛК.
Но есть одно НО, которое я не учел, т.к. не верно представлял "структуру" сей системы. Дело в том, что хоть модем и переключается в режим slave, но по факту ведомым устройством не является, а следовательно не имеет собственного ID. Ведомым же устройством является ПО на ПК или сервере. На работе всей системы это конечно не скажется, но все таки вещь не приятная
Спасибо за помощь!
Удалось организовать передачу данных и даже поднять OpenVPN, для прямого доступа к ПЛК.
Но есть одно НО, которое я не учел, т.к. не верно представлял "структуру" сей системы. Дело в том, что хоть модем и переключается в режим slave, но по факту ведомым устройством не является, а следовательно не имеет собственного ID. Ведомым же устройством является ПО на ПК или сервере. На работе всей системы это конечно не скажется, но все таки вещь не приятная
Спасибо за помощь!
Не ошибается лишь тот - кто ничего не делает.


