|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.12.2012, 02:31 | #1 |
Регистрация: 15.12.2012
Сообщений: 4
|
перехват обращения к СОМ-порту и инициализация GSM модема
Доброе время суток. В С++ я начинающий, но стала такая вот задача.
Есто ОРС-сервер, работающий через СОМ-порт с прибором учета электроэнергии (но это неважно). Все былоб хорошо, если бы канал связи был таков: счетчик(RS232)->преобразователь в TCP-> Ethernet сеть ->преобразователь в RS232-> COM-порт компьютера с OPC сервером. НО, используется не Etherner, а GSM модем. OPC-сервер не может инициализировать модем. Нужно написать программу, которая будет - отслеживать обращение к определенному виртуальному COM-порту. - при обращении устанавливать канал связи через GSM модем, - предавать управление OPC серверу (который связь эту и инициализировал) - после завершения опроса закрывать GSM канал Вопрос, собственно, втом. как реализовать эту прогу на С++. подскажите может алгоритм, что почитать для программирования СОМ. модемов (что-то типа телнета) Зарания спасибо |
15.12.2012, 12:01 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
А чем бы вам помогло переобразование RS232 -> Ethernet?
Далее, есть куча готового софта, которая делает "удаленные" RS232 через TCP/IP. Перехват обращений к COM порту - только через драйвер. |
15.12.2012, 12:14 | #3 | |||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
Можно попробовать обойти, воспользовавшись бесплатными виртуальными нуль-модемами-повторителями, это если программно, но муторно. Однако, зайдем с другого боку: Цитата:
2- если OPC-сервер позволяет завести канал для отслеживания активности и подачи данных, то можно дополнительным OPC-клиентом этот канал отслеживать и в нем (в клиенте) инициировать модем ...но, тут возникает вопрос, как узнать зарнее, что нужно его поднять, ведь данные уже идут, а модем не мгновенно инициируется, чуете к чему веду? 3- использовать GSM-модем, к примеру, со встроенной Питон-машиной и написать свой скрипт 4- втиснуть в структуру ПЛК сбора данных, сам ПЛК (что-нить от OWEN) будет осуществлять автономное управление модемом, накопление и передачу данных ...по запросу верхнего уровня также будет возможно считывание показаний счетчика на OPC-сервер Поскольку не вижу вашей структуры автоматизации сказать трудно, нужен ли вам вообще OPC-сервер. Он бы пригодился, если бы вы данные где-нить архивировали, но в случае автономной отправной точки, ПК не нужен, как и OPC-сервер. Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation Последний раз редактировалось raxp; 15.12.2012 в 12:17. |
|||
16.12.2012, 03:19 | #4 | |
Регистрация: 15.12.2012
Сообщений: 4
|
Выкладываю две структурные схемы системы. Первая, оптика, по идее должна работать без всяких доработок ПО, вопрос возник из-за второй.
По поводу обхода обращения к COM-порту я тоже подумал. Действительно, Сеанс опроса приборов учета будет инициализировать ОРС-клиент, так почему же перед обращением к ОРС-серверу не открыть бы COM-порт, создать канал GSM а дальше обращаться к ОРС-серверу через открытый порт. Это, как я понял, raxp и предлагает в п.1(немного не понял смысл п.2). Пп. 3, 4 неприемлемы - оборудование уже закуплено. По поводу п.4 возможно. когда-нибудь и будет принято решение "втиснуть" контроллер, не сейчас вопрос не в этом. Уважаемый raxp, можете объяснить по подробнее этот предмет Цитата:
1. Если я открою COM-порт клиентом (как файл), сможет ли к нему обращаться другое ПО (OPC-сервер), причем сервер же тоже открывает порт. (получается он открывается дважды) 2. Каким образом (прошу не код, конечно, а принцип) и возможно ли инициализировать, как я выше писал, клиентом GSM связь, а потом использовать ее уже сервером, затем клиентом закрыть (и порт в т.ч.). Последний раз редактировалось Biker_reg67; 16.12.2012 в 03:32. |
|
16.12.2012, 11:29 | #5 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
1. Нет, доступ всегда ексклюзивный
2. "Настоящие" модемы следят за раазными сигналами на выводе RS232, типа DTR. Если эти сигналы не менять при закрытии порта и не инциализировать все заново при новом открытии, теоретически возможно проинициализировать из одного приложения и потом слать данные из другого. На практике все зависит от второго приложения - что оно делает с COM портом. |
16.12.2012, 12:19 | #6 | |||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Насколько я понял из задачи ТС, то модемом он лишь поднимает Интернет-канал (PPoE) и в системе после этого через тырнет может работать любое приложение, поэтому неважно, обслуживанием порта уже занимается сама система.
Цитата:
Цитата:
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|||
16.12.2012, 14:47 | #7 | |
Регистрация: 15.12.2012
Сообщений: 4
|
На сколько я понимаю, PPoE и услуга "передача данных" мобильного оператора - это разные вещи (у нас второе).
Модемы - siemens mc35i - java нет Счетчик электрической энергии Меркурий 230 - модификация с CAN (заказывали норм, а отдел снабжения опять напутал, хрен что закупил). Но вообще есть счетчики и со встроенным модемом, есть с RS232, тут сторона счетчика неважна. По последнему вопросу, raxp, Цитата:
Уважаемый waleri, т.о. возможна такое решение? 1. Открываю СОМ-порт(как файл) ОРС-клиентом,инициализирую модем, устанавливаю связь, больше ничего с ним не делаю, закрываю СОМ-порт (как файл). Получается, что СОМ-порт закрыт, модем работает, сигналы на нем (типа DTR) не изменяются. 2. ОРС-сервер открывает СОМ-порт на опрос счетчика (но т.к. в нем не предусмотрена возможность работы модемом, то он просто после открытия порта начинает передачу команд, модем не трогает) 3.ОРС-клиент получил, что хотел, отстает от ОРС-сервера (тот от счетчика), (далше пока не знаю, закрыл ли порт ОРС сервер или нет,допустим закрыл), открывает СОМ-порт, завершает модемную связь, закрывает СОМ-порт 4.Все в шоколаде. Или все ссложнее? |
|
16.12.2012, 17:37 | #8 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
Cо стороны-же автономного счетчика поднимать соединение на модеме кроме счетчика некому. Смысл ясен?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
18.12.2012, 02:27 | #9 |
Регистрация: 15.12.2012
Сообщений: 4
|
Raxp, смысл само собой ясен, но интернет канал я поднимать не собираюсь. Именно технология передачи данных. Как вы считаете, схема в предыдущем моем сообщении работат будет? После закрытия СОМ-порта будет ли продолжать работать модем (как это сделать)?
Еще, то что раньше писали про модем с java машиной, его же одного достаточно, со стороны пк? Т.е. я пишу код на java, в котором если приходит, например от ПК "start" - он устанавливает связь с удаленным модемом. В свою очередь ОРС-клиентом я отсылаю по СОМ-порту этот START, жду подтверждения связи, отключаюсь и предаю управление портом ОРС-серверу. С таким модемом не обязательно же быть подключенному ПК? Последний раз редактировалось Biker_reg67; 18.12.2012 в 02:32. |
18.12.2012, 08:54 | #10 | ||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
||
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перехват обращения к COM-порту из драйвера | Sam Gold | Win Api | 2 | 24.09.2012 22:52 |
Передача по СОМ-порту | Faton 11 | C# (си шарп) | 7 | 18.06.2012 10:19 |
Ищу компоненту ActiveX для отправки SMS с GSM-модема | Вадим Мошев | Свободное общение | 9 | 17.08.2011 14:37 |
Необходимо подключить датчик к СОМ порту | SashaIV | Win Api | 3 | 22.09.2009 00:08 |
Закрытие доступа к СОМ- порту | nova-alex | Win Api | 2 | 21.02.2007 11:55 |