OPC через GPRS, скорость работы |
Ответить | Страница 12> |
Автор | |
Участник Присоединился: 13 Май 2005 Online Status: Offline Публикации: 61 |
Опубликовано: 20 Январь 2011 10:08 |
Здравтвуйте. Есть задача передавать данные с удаленных контроллеров по GPRS. Контроллеры ADAM-5510/TCP -> Router ER75 -> Modbus OPC Server. В контроллере написал простую программу на BC++, с библиотекой Modbus OPC сервера. Текущие данные передаются по ModbusTCP, при разрыве GPRS соединения связь автоматически восстанавливается- это работает, но медленно. Вопрос заключается в том, что т.к. ping роутера достигает 3х секунд и более, OPC сервер опрашивает регистры контроллера с интервалом на много превосходящим скорость изменения сигналов на входе, т.е. если сработал дискретный датчик на входе контроллера кратковременно, допустим на 2 секунды, то это изменение сигнала с большой вероятностью будет потеряно. И это без учета того что GPRS-соединение периодически пропадает. Может быть организовать передачу только OPC-HDA и забирать только архивы из контроллера, тогда данные теряться не будут, но теряется оперативность доступа к данным. Или задачу таким образом вообще решать идеалогически не верно и т.к. ModBus не допускает инициирование передачи сервером события. Какие могут быть варианты? |
|
Действительный член Присоединился: 27 Июль 2006 Online Status: Offline Публикации: 304 |
|
Тема сообщения сформулирована некорректно. Через GPRS у вас идет обмен не по OPC, а по Modbus TCP.
Идея с OPC HDA и архивами на контроллере чисто теоретически осуществима, но для этого вам понадобится OPC HDA сервер собственной разработки, который будет обмениваться архивными данными с вашим контроллером, по вашему же протоколу. Обычные OPC HDA серверы, имеющиеся в продаже, получают _оперативные_ исходные данные (например, по OPC DA), складывают их в БД и уже из собственной БД выдают клиентам OPC HDA данные. Если задействовать в вашем случае такой OPC HDA, никакого выигрыша не будет.
Исключения из такой схемы - связки "прибор со встроенной архивацией" - "OPC DA/HDA сервер", предлагаемые некоторыми производителями оборудования а-ля вычислители потребления энергоресурсов. Такой софт заточен под конкретный прибор конкретного производителя и вам не подойдет.
Возможный вариант в вашем случае - передавать по интерфейсу не сигналы с датчиков непосредственно, а некий набор событий либо состояний. Например, срабатывание датчика на 2 секунды вызывает установку определенного бита в регистре Modbus в единицу. Сброс бита после обработки события системой верхнего уровня.
И кстати Modbus действительно не допускает инициирование передачи сервером. Однако никто вас не заставляет делать Modbus-сервером именно контроллер... Из-за багофич используемого ПО мне в свое время приходилось делать контроллер мастером (т.е. клиентом) обмена по последовательному интерфейсу. Значения переменных передавались на слейв (СКАДА) посылками на запись новых значений. Система получилась кривая, однако выбора тогда не было :S
|
|
Теория - это когда все знаешь, но ничего не работает.
Практика - это когда все работает, но никто не знает как. |
|
Участник Присоединился: 13 Май 2005 Online Status: Offline Публикации: 61 |
|
"Система получилась кривая, однако выбора тогда не было" - а сейчас есть выбор? Просто возникает простой вопрос, а как же на самом деле работают контроллеры с поддержкой GPRS в реальном времени? Или про это умалчивается (что идет потеря событий), или только HDA, или свои собственные решения. Хочется сделать решение на основе открытых стандартных решений. Может использовать подобное решение Moxa Active OPC Server - где контроллеры сами инициируют передачу данных. |
|
Участник Присоединился: 02 Декабрь 2010 Online Status: Offline Публикации: 68 |
|
Добрый день! Протокол ModBus вообще не поддерживает архивирование событий на момент отсутствие связи, он также не может инициализировать передачу от ведомого к ведущему этих событий. Для этих целей используются совсем другие протоколы обмена данных, например DNP3 или МЭК 61870-5-104
|
|
Участник Присоединился: 13 Май 2005 Online Status: Offline Публикации: 61 |
|
Если не ошибаюсь, сам по себе протокол не решает такие задачи как архивация и подъем событий на верхний уровень. Нужен какойто буфер событий с автоматической докачкой этой очереди и гарантированной достакой с подтверждением. Может быть есть готовые решения - как передавать данные в ОРС через GPRS без потерь? Иначе получается что все удаленные контроллеры через GPRS обладают низкой надежностью передачи данных (о чем не пишется).
|
|
Участник Присоединился: 02 Декабрь 2010 Online Status: Offline Публикации: 68 |
|
Если этот контроллер поддерживает GPRS подключение и только протокол ModBus TCP тогда вы правы вся эта затея не стоит ваших усилий, вам придется изобретать свой подуровень протокола ModBus.
Но допустим если контроллер поддерживает GPRS связь и протокол DNP3 (вместо ModBus) тогда в надежность доставки данных нет сомнения, т.к. DNP3 сам буферизирует все события (по настройке), присваивает метку времени каждому событию, и сам ждет, когда с ним свяжется мастер устройство чтобы все это ему передать или может сам инициализировать связь с мастером зависит все от настроек. Мастер в свою очередь подтверждает все принятое, только тогда ведомое устройство сбрасывает свой буфер или если подтверждения от мастера не поступила, ведомое устройство повторяет свою посылку к мастеру. В вашем случае можно сделать так: Контроллер с TCP аппаратной реализацией DNP3 протокола -> GPRS-> OPC DNP3 ->база данных. Хотелось бы узнать для каких целей понадобилась такая сложность с GPRS соединением? |
|
Действительный член Присоединился: 11 Октябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 392 |
|
Как вариант, "гонять" ModBus, через промежуточный ОРС шлюз, например SplitOPC :
http://www.prosoftsystems.ru/products/product.htm?pid=165 , который и предназначен для "плохих" каналов связи. Решение использование такой связки, в том числе и с другими ОРС серверами различных расходомеров газа использовано здесь : http://www.prosoftsystems.ru/products/product.htm?pid=168 , система работает в нескольких "регионгаз" , но насколько надежно и качественно сказать не могу - не юзал. А еще у Матрикона есть интересные ОРС сервера : http://www.matrikonopc.com/drivers/telemetry-scada.aspx PS. Не совсем правильно выразился вначале, ModBus не гоняется через SplitOPC, ModBusOPCserver отдает данные SplitOPC, тот гонит их на верхний уровень, где в свою очередь то же стоит SplitOPC, который уже отдает данные либо СКАДЕ либо другому ОРСклиенту, либо гонит их еще дальше на другой узел, еще более верхнего уровня и т.д. |
|
Участник Присоединился: 13 Май 2005 Online Status: Offline Публикации: 61 |
|
Спасибо.
|
|
Участник Присоединился: 02 Декабрь 2010 Online Status: Offline Публикации: 68 |
|
Могу посоветовать вот такой контроллер SCADAPack с аппаратной поддержкой протоколов DNP3 и IEC 104 но это, наверное, будет дорого. В нем точно поддерживается буферизация событий для 104 протокола (сам проверял). Ну а самым дешевым будет способ реализовать программным путем любой из протоколов DNP3 или 104 для контроллера ADAM 5510E/TCP, только есть проблема врятле вы найдете готовую библиотеку для ADAMA, придется делать самому, если решитесь могу только посоветовать реализуйте 104 протокол он вcеж проще чем DNP3 и документация есть на русском. Ну а насчет буферизации в 104, ее можно реализовать, если даже в стандарте не описано. Есть еще вариант сделать свей протокол с буферизацией но тогда и OPC придется своё программировать. Ну а насчет промПК с локальными OPC-серверами мне кажется выдет дороже чем контроллер SCADAPack и к этому прибавятся проблемы с надежностью всей системы.
Извините за ошибки |
|
Новичок Присоединился: 02 Март 2011 Online Status: Offline Публикации: 3 |
|
Могу поделиться своим решением. Я использовал GSM контроллер TS-30M8 (модем с программой и GPRS ОРС сервером). GSM контроллер(модем) в связке с GPRS ОРС сервером дает возможность управлять входами/выходами удаленного устройства, а также позволяет организовывать прозрачный канал передачи данных между СОМ портом GSM модема и виртуальным СОМ портом компьютера на котором установлен GPRS ОРС сервер.
Таким образом можно подключить любое устройство и опрашивать его стандартным ОРС сервером или другой программой, используя виртуальный СОМ порт. Метод для самых ленивых(ничего не программировать). GSM модем выступает как повторитель порта и удаленное устройство ввода/вывода. Для работы GPRS ОРС сервера обязательно подключение к сети интернет и внешний статический IP-адрес. Есть подобные устройства с резервированием канала и СИМ карты. |
|
Ответить | Страница 12> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |