OPC DA/HDA клиент для 1С Предприятие 8 (платформы 8.0, 8.1, 8.2, 8.3) - Описание

Описание

Интерфейсы Решения
Версии FAQ Контакты


ВНИМАНИЕ!
Этот проект, включая:
- доменные имена 1c-opc.ru и opc-1c.ru, занимающие последние 6 лет (с мая 2009) первые места по актуальным запросам в самых популярных поисковиках,
- используемые технологии программного взаимодействия (особенно актуально для спецификации OPC-HDA, по которой альтернативных реализаций взаимодействия из 1С пока не обнаружено),
- наработки и техническую поддержку,
продается в умелые руки за умеренную цену. Заинтересовавшимся всерьез просьба обращаться по адресу, указанному в контактах.
В связи с этим прием новых заявок на поставку лицензий и разработку систем автоматизации на базе платформы 1С временно прекращен. Все проданные лицензии и программные продукты будут безусловно обеспечены необходимой поддержкой в соответствии с имеющимися договоренностями.


OPC DA/HDA клиент для 1С Предприятие 8
(платформы 8.0, 8.1, 8.2, 8.3) - Описание



Новые возможности развития систем учета на базе 1С Предприятие 8


Требования к возможностям систем автоматизации учета все чаще затрагивают сферы, изначально не планировавшиеся к полноценной поддержке программными продуктами, на базе которых эти системы создаются. Все чаще возникает потребность связать систему учета не только со сканером штрихкода, кассовым аппаратом или телефонной станцией, но и с чем-то более оригинальным: счетчиками коробок на конвейере, вагонов, электроэнергии, весами, расходомерами, теплосчетчиками и т.д. Такая интеграция возможна и работает по сложившемуся в течение последних 10-15 лет иерархическому принципу: контроллер – SCADA – база данных – система учета. Безусловно, для больших предприятий, такая иерархия, разделяющая зоны ответственности, оправдана. Само по себе внедрение SCADA – процедура довольно затратная и, часто, несмотря на появление некоторых возможностей автоматизации проектирования, длительная. Кроме того, в дальнейшем, для поддержки работоспособности такой системы потребуется персонал соответствующей квалификации. А что делать тем, кто пока не вырос настолько, что бы позволить себе SCADA, при условии, что учитывать ресурсы в действующей системе учета необходимо уже сейчас?

Я не случайно упомянул об иерархии. SCADA, развиваясь, все чаще перехватывают у систем «верхнего» уровня функции, им изначально не свойственные. Это, например, генерация сводных отчетов или обслуживания архивов накапливаемых данных, причем не только своих, но и всего предприятия в целом. Сложившаяся иерархическая граница постепенно размывается. И почему бы системе учета предприятия, а речь идет именно об 1С, не взять на себя часть функций, связанных с получением информации, необходимой, например, для расчета себестоимости, от приборов учета, которые раньше были доступны только в SCADA?

Предпосылки, вызвавшие понимание необходимости предлагаемой разработки:

1. Наличие потребностей в простой, недорогой и легко адаптируемой под самые разнообразные применения подсистеме для организации учета ресурсов, использующей в своей основе только штатные средства 1С и Windows.

2. Широкое применение 1С, вызвавшее колоссальный рост количества технических специалистов, способных реализовать конфигурирование и развитие системы под конкретное применение.

3. Широкое распространение отечественных контроллеров для учета самых разнообразных ресурсов, поставляемых в комплекте с OPC серверами, обуславливающее высокую степень готовности систем на их основе к быстрому вводу в эксплуатацию.

4. Штатные возможности платформы 1С в части поддержки технологии COM, достаточные для работы с OPC в необходимом для решения рассматриваемых задач объеме.

5. Наличие стандартных и свободно распространяемых поставщиками OPC-серверов библиотек, поддерживающих необходимые OPC интерфейсы.

Очень краткий экскурс по OPC. OLE for Process Control. Разработан на базе технологии COM (Component Object Model) для обеспечения возможности работы с оборудованием, подключенным не только к компьютеру, на котором нужно получить данные, но и к любому в сети, в последнем случае потребуется соответствующая настройка DCOM. Возможна работа через VPN. Оборудование (контроллер) может быть подключено как к портам ввода/вывода компьютера, так и непосредственно к Ethernet. Взаимодействие с контроллером осуществляется через OPC-сервер, установленный на компьютере, отвечающем за работу с этим контроллером. OPC-сервер является источником данных для всех приложений, кому эти данные нужны, при условии, что приложение имеет OPC-клиента. Большинство производимых в настоящее время контроллеров имеют в комплекте поставки бесплатный OPC-сервер; для большинства контроллеров, поставляемых в комплекте без OPC-сервера, его можно купить. Т.е., что бы получить данные от контроллера, нужно: установить OPC-сервер, подключить контроллер и подключиться к OPC-серверу OPC-клиентом. OPC-клиент, подключаясь к OPC-серверу, «поднимает» его автоматически, это важный момент. OPC-сервер структурно состоит из двух частей: с одной стороны драйвер, подключенный к оборудованию, с другой – стандартные интерфейсы OPC. Важно здесь то, что драйвер потенциально может «уронить» любое приложение, с которым он работает, и в этом случае OPC-клиент, имеющий возможность «поднять» «упавший» OPC-сервер, намного предпочтительней работы напрямую с драйвером в смысле устойчивости системы в целом. Стандартов OPC несколько, но нашли реальное практическое применение и интересны для наших задач только DA (data access – доступ к текущим данным контроллера) и HDA (history data access – доступ к данным, накопленным контроллером за некоторое время). Расшифровка, в общем-то, говорит сама за себя. Исторические данные – архив, накопленный, например, счетчиком электроэнергии или воды. Согласно стандартам, OPC-серверы должны обеспечивать предоставление данных OPC-клиентам синхронно и асинхронно. С синхронным доступом вроде все должно быть понятно: запросил – подождал – получил. Что касается асинхронного (а это может быть получение данных по подписке при их изменении или периодически), то использование этого подхода для 1С платформы 8, теоретически возможно, но на мой взгляд, при текущих событийных возможностях этой системы, нерационально: при возможном пропуске неприоритетного события (а бутерброд, как известно, имеет известные свойства) произойдет и потеря данных. Периодическое же чтение данных легко организуется инициативно из 1С.

Здесь еще одно замечание. Для того, что бы иметь возможность работать в качестве измерительного прибора, например, счетчика электроэнергии, контроллер сертифицируется производителем как средство измерения. OPC-сервер получает с выхода контроллера данные уже в цифровом формате, которые наш OPC-клиент только читает. Т.е. сертифицировать систему учета или ее отдельные элементы, получающие данные от измерительных приборов только в цифровом виде, в нашем случае не придется, конечно, если того не потребуют специальные отраслевые нормативы.

Подводные камни. Стандарты OPC поддерживаются общественной организацией OPC Foundation и представляет собой набор спецификаций, обязательных и не очень. Разработчики OPC-серверов, к сожалению, не всегда трактуют эти спецификации однозначно. Дело касается, в основном, принципов именования переменных и, соответственно, броузинга, а так же поддержки некоторых интерфейсов. В большинстве случаев эти проблемы обходятся без значительных трудозатрат, по крайней мере, мне пока не приходилось в этой связи попасть в «тупиковую» ситуацию.

Реализация. OPC DA/HDA клиент реализован стандартными средствами языка 1C8 и Windows (VBScript) с использованием свободно распространяемых, обычно в составе OPC-серверов, библиотек для работы с OPC. В большинстве случаев, после установки OPC-сервера их использование будет доступно на Вашем компьютере. Кроме того, часть поставляемых производителями OPC-серверов требует предустановки Microsoft Framework, который так же распространяется свободно.

Скриншот 1С8-OPC-DA клиента (доступ к текущим значениям сигналов):
Скриншот 1С8-OPC-DA клиента (доступ к текущим значениям сигналов)


Скриншот 1С8-OPC-HDA клиента (доступ к архивам контроллера):
Скриншот 1С8-OPC-HDA клиента (доступ к архивам контроллера)


Краткий комментарий. Каждый элемент данных (и текущих, и архивных), получаемые от OPC сервера, состоит из трех составляющих: значения, времени, присвоенного OPC сервером (который может поднять это время и из контроллера) и признака качества (неотрицательное целое число, равное 192 в случае, когда OPC сервер считает, что значению можно доверять).

Совместимость

Обычно, говоря об OPC клиенте, указывают версии OPC-DA и OPC-HDA спецификаций, которые данный клиент поддерживает. По этим данным можно предположить, будет ли совместим конкретный OPC клиент (а обычно это SCADA) с OPC сервером, данные от которого необходимо получать. В нашем случае все немного по другому. Уровень поддержки той или иной версии стандарта OPC будет определяться версией библиотек, установленных и зарегистрированных в системе при установке самого OPC сервера. Здесь нужно учитывать два момента:
1. Несмотря на обязательность поддержки OPC сервером ряда стандартных OPC интерфейсов, установочный комплект этого OPC сервера не всегда содержит весь набор необходимых библиотек, или версии этих библиотек ниже той, с которой должен работать другой, ранее установленный на этой же машине, OPC сервер. Это случай совсем не патовый. Вопрос обычно решается изменением последовательности установки OPC серверов или установкой "поверх всего" последней версии OPC Core Components от OPC Foundation.
2. В случае получения данных от OPC сервера, установленного не локально, желательно, что бы версии этих библиотек на машине OPC сервера и 1C-OPC клиента совпадали.


На текущий момент работа предлагаемого OPC-клиента опробована со следующими OPC-серверами (размер видеоиллюстраций редко превышает 300 кБ, кодек TSCC):
Logika.SpserverOPC.Da
– ОРС DA сервер счетчиков Логика. Проверялся с реальным контроллером, видео, к сожалению, не сохранилось, показан только броузинг.
Logika.SpserverOPC.Hda
– ОРС HDA сервер счетчиков Логика. Проверялся с реальным контроллером, видео, к сожалению, не сохранилось, показан только броузинг.
Insat.TeplocomOpcVkt7.Da
– ОРС DA сервер теплосчетчиков BKT-7. Проверялся без контроллера, на видео показан только броузинг.
Insat.TeplocomOpcVkt7.Hda
– ОРС HDA сервер теплосчетчиков BKT-7. Проверялся без контроллера, на видео показан только броузинг.
InSAT.Simulator.MasterOPC.Da
– Качественный симулятор, можно использовать для проверки возможности работы с другими OPC серверами, разработаными на база OPC ToolKit от ИнСАТ
InSAT.Simulator.MasterOPC.Hda
– Один из немногих симуляторов OPC HDA
KEPware.KEPServerEx.V4 (DA)
– Симулятор, поддерживающий OPC DA 3.0
OWEN.RS232 (DA) – Универсальный OPC сервер для линейки распространенных контроллеров Овен.
OWEN.RS485 (DA)
– Универсальный OPC сервер для линейки распространенных контроллеров Овен.
OWEN.MODBUS (DA) – Универсальный OPC сервер для линейки распространенных контроллеров Овен.
Krug.CE2727.OPCServer (DA)
– OPC-сервер ЦЭ2727
OPCServer CE2727 HDA
– OPC HDA сервер приборов ЦЭ2727
Krug.Merkury.OPCServer
– OPCDA сервер электросчетчика «Меркурий-230»
Krug.Merkury.OPCHDAServer
– OPC HDA сервер электросчетчика «Меркурий-230»
Krug.OPCMercury225Srv
– OPC-сервер концентратора «Меркурий 225»
Krug.OPC.DA.SRVK

Krug.OPC.HDA.SRVK
Krug.OPC.DA.Energomera – ОРС DA сервер электросчетчиков СЕ301, СЕ303, СЕ304, ЦЭ6850М
Krug.OPC.HDA.Energomera – ОРС HDA сервер электросчетчиков СЕ301, СЕ303, СЕ304, ЦЭ6850М
Krug.SET4TMPSCH.OPCServer.1 – OPC DA сервер счетчиков электрической энергии серий СЭТ-4ТМ.02, СЭТ-4ТМ.03 и ПСЧ-4ТМ.05
OPCServer SET_PSCH HDA – OPC HDA сервер счетчиков электрической энергии серий СЭТ-4ТМ.02, СЭТ-4ТМ.03 и ПСЧ-4ТМ.05
Krug.PC6806.OPCServer
– OPC DA сервер прибора ПЦ6806
Krug.OPCPEContSrv

KRUG.OpcSnmpServer

Krug.OPCSprutSrv

Krug.Resurs-PKE.OPCServer
– OPC DA сервер прибора контроля показателей качества электроэнергии «Ресурс-ПКЭ»
Krug.Resurs-UF2.OPCServer
– OPC DA сервер прибора контроля показателей качества электроэнергии «Ресурс-UF2»
Krug.Resurs-UF22MC.OPCServer
– OPC DA сервер измерителя показателей качества электроэнергии «Ресурс-UF2M(C)»
Krug.TEM.OPCServer
– ОРС DA сервер теплосчетчиков ТЭМ-104, ТЭМ-106
Krug.TEM.HDA.OPCServer – ОРС HDA сервер теплосчетчиков ТЭМ-104, ТЭМ-106
Krug.AIST_r2.OPCServer
– ОРС DA сервер приборов АИСТ и ШУ МИЖУ (система газового пожаротушения)
NS.HcDaSvr.1 HcDa (ВИС.Т-HC OPC Сервер) – OPC-DA и HDA сервер многоканальных теплоcчётчиков и водосчётчиков ВИС.Т (ВИС.Т-ТС, ВИС.Т-ВС) производства НПО Тепловизор
pbxlogger.Instance.1 – OPC-DA сервер Advanced PBX Data Logger, позволяет пользователям захватывать, учитывать и архивировать телефонные звонки, а также захватывать данные SMDR или CIR через порты RS232, RS845, TCP или UDP. Поддерживается 50 моделей офисных АТС
Lectus.OPC.1Lectus – OPC-DA Modbus OPC/DDE сервер - полнофункциональный OPC и DDE сервер с возможностью подключения различных Modbus-устройств по нескольким каналам передачи данных одновременно: выделенные физические линии (RS232, RS485) и связь через сотовую сеть посредством GSM-модема
Matricon.OPC.Universal.1
– универсальный ОРС DA и HDA сервер практически для любых ПЛК: Allen Bradley, Siemens S7, Modbus ПЛК и т.д.
S7200.OPCServer
– ОРС DA сервер Siemens S7 для контроллеров SIMATIC S7-200
OPC.Dep.1
– ОРС интерфейсы ПО WinDecont для подключения к информационному, измерительному и управляющему комплексу ДЕКОНТ

Пара слов о быстродействии. Часть, связанная с OPC, по сравнению с 1С работает очень быстро. Конечно, 1С не SCADA, и ожидать от нее сверхбыстрых реакций было бы утопией. Однако, нагрузочное тестирование показало, что по крайней мере задачи диспетчеризации на 2-3 тыс. точек опроса для компьютера на современном двухъядерном процессоре – такой системе вполне по силам. Например, старенький Genuine T2300 1.66 ГГц на 1ГБ памяти за 1с максимально опрашивает и выводит в табличное поле около 1000 точек (20% дискретных и 80% аналоговых). При этом OPC-сервер отнимает около 5% процессорных ресурсов, смотрите вложенное видео (кодек TSCC) тестов:
1000 точек(Версия 1.0 BETA)
2000 точек(Версия 1.0 BETA)
1000 точек(Версия 1.0)
2000 точек(Версия 1.0)

Предлагаемая разработка коммерческая, демоверсии нет, и, в основном, из-за опасений вызвать массу вопросов типа «а почему у меня не идут данные от OPC-сервера XX.XXХ?» пока нет уверенности, что она нужна. Поэтому выложены только скриншоты и видео.

1C-OPC клиент с 2010 года работает в самых различных учетных системах под OS Windows XP, Vista, W7 x32 и W7 x64 (в режиме *32) на платформах 1С:Предприятие: 8.1 ( начиная с 8.1.14.72 и выше), 8.2 (начиная с 8.2 8.2.12.96) и 8.3 (начиная с 8.3.1.531). Перечисленные ограничения не являются существенными, принципиальны только два момента: OS Windows, где поддержка OPC появилась еще в W-95 и 1С Предприятие платформа 8.

1C-OPC клиент поставляется в виде отдельной конфигурации, доступной для редактирования с сохранением поддержки, код основных функций взаимодействия по OPC закрыт и легко встраивается в конфигурацию прикладного решения или может работать как самостоятельное приложение 1С Предприятие с возможностью полноценного взаимодействия с любыми, в т.ч. стандартными конфигурациями 1С. В коплект поставки входит пример внешней обработки, выполняющей двусторонний обмен (создание документов на основании данных, получаемых от OPC-сервера и запись данных в OPC-сервер из 1С) с конфигурацией УПП.

Если нужный Вам OPC-сервер отсутствует в текущей версии списка, пожалуйста, присылайте дистрибутив, протестирую и добавлю.

Если у Вас имеются собственные разработки, ориентированные на отраслевые решения, в которых перспективно применение описанного решения – буду рад сотрудничеству.



ОПИСАНИЕ Интерфейсы Решения
Версии FAQ Контакты