Стандарт ОРС разработан международной организацией OPC Foundation, членами которой являются более 400 фирм, работающих в области средств автоматизации и измерительной техники. Основателями организации являются фирмы Fisher-Rosemount, Rockwell Software, Opto 22, Intellution и Intuitive Technology. Первая версия ОРС стандарта была выпущена в 1998 г. В совет директоров OPC Foundation в 2008 году входили представители Siemens AG, Emerson Process Management, Yokogawa, Honeywell, Rockwell Automation, ICONICS.
Главной целью стандарта ОРС явилось обеспечение возможности совместной работы (интероперабельности) средств автоматизации, функционирующих на разных аппаратных платформах, в разных промышленных сетях и производимых разными фирмами. До разработки ОРС стандарта SCADA пакет нужно было адаптировать к каждому новому оборудованию индивидуально. Существовали длинные списки "поддерживаемого оборудования", очень сложной была техническая поддержка. При модификации оборудования нужно было вносить изменения во все драйверы, каждый из которых поддерживал протокол обмена только с одной клиентской программой. Число таких драйверов доходило до сотен.
После появления стандарта ОРС практически все SCADA-пакеты были перепроектированы как ОРС-клиенты, а каждый производитель аппаратного обеспечения стал снабжать свои контроллеры, модули ввода-вывода, интеллектуальные датчики и исполнительные устройства стандартным ОРС сервером. Благодаря появлению стандартизации интерфейса стало возможным подключение любого физического устройства к любой SCADA, если они оба соответствовали стандарту ОРС. Разработчики получили возможность проектировать только один драйвер для всех SCADA-пакетов, а пользователи получили возможность выбора оборудования и программ без прежних ограничений на их совместимость.
Стандарт ОРС относится только к интерфейсам, которые ОРС сервер предоставляет клиентским программам. Метод же взаимодействия сервера с аппаратурой (например, с модулями ввода-вывода), стандартом не предусмотрен и его реализация возлагается полностью на разработчика аппаратуры. Поэтому стандарт ОРС может быть использован не только для взаимодействия SCADA с "железом", но и для обмен данными с любым источником данных, например, с базой данных или с GPS приемником.
ОРС сервер как средство взаимодействия с техническим устройством может быть использован при разработке заказных программ на C++, Visual Basic, VBA и т. п. В этих задачах ОРС сервер используется как Microsoft DCOM объект, от которого он отличается только стандартизацией обозначений и специфическими терминами из области промышленной автоматизации. Применение ОРС сервера при разработке заказных программ позволяет скрыть от разработчика всю сложность общения с аппаратурой, представляя простой и удобный метод доступа к аппаратуре через интерфейсы СОМ-объекта.
Стандарт ОРС состоит из нескольких частей:
Сервер OPC DA является наиболее широко используемым в промышленной автоматизации. Он обеспечивает обмен данными (запись и чтение) между клиентской программой и физическими устройствами. Данные состоят из трех полей: значение, качество и временная метка. Параметр качества данных позволяет передать от устройства клиентской программе информацию о выходе измеряемой величины за границы динамического диапазона, об отсутствии данных, ошибке связи и другие.
Существует четыре стандартных режима чтения данных из ОРС сервера:
В каждом из этих режимов данные могут читаться либо из кэша ОРС сервера, либо непосредственно из физического устройства. Чтение из кэша выполняется гораздо быстрее, но данные к моменту чтения могут устареть. Поэтому сервер должен периодически освежать данные с максимально возможной частотой. Для уменьшения загрузки процессора используют параметр частоты обновления, которая может быть установлена для каждой группы тегов индивидуально. Кроме того, некоторые теги можно сделать пассивными, тогда их значения не будут обновляться данными из физического устройства.
Запись данных в физическое устройство может быть выполнена только двумя методами: синхронным и асинхронным и выполняется сразу в устройство, без промежуточной буферизации. В синхронном режиме функция записи выполняется до тех пор, пока из физического устройства не поступит подтверждение, что запись выполнена. Этот процесс может занимать много времени, в течение которого клиент находится в состоянии ожидания завершения функции и не может продолжать выполнение своей работы. При асинхронной записи клиент отправляет данные серверу и сразу продолжает свою работу. После окончания записи сервер отправляет клиенту соответствующее уведомление.
Целью OPC HDA сервера (сервера предыстории процесса) является предоставление клиентской программе единого интерфейса для обмена данными с любыми хранилищами данных, в качестве которых может выступать нестандартный файл с данными, стандартная СУБД, OPC DA сервер или другой ОРС HDA сервер. Стандарт распространяется только на интерфейсы для взаимодействия HDA сервера с клиентскими программами и не устанавливает способов получения или хранения данных.
Спецификация OPC HDA устанавливает стандарт на интерфейсы СОМ объекта и методы его использования. Структура сервера и методы взаимодействия с клиентами полностью аналогичны общей идеологии ОРС и описанному выше OPC DA в частности. Например, ОРС клиент может подсоединяться к нескольким OPC HDA серверам разных производителей и быть установлен на разных компьютерах в сети Ethernet.
Существует два типа HDA серверов: