Печатать эту главуПечатать эту главу

Стандарти ОРС

Механізми читання та запису даних процесу

Технологія ОРС надає двохсторонній доступ до даних, тобто як для читання так і для запису. Механізми реалізації цих сервісів практично однакові за принципом, однак мають свої особливості у різних версіях специфікації ОРС DA. Ми розглянемо їх в контексті 2-ї версії цієї специфікації, оскільки на сьогодні вона є найбільш популярною.

Читання зводиться до вирішення наступних питань:

  • коли на ОРС-Сервері повинні відновлюватися дані з пристроїв для кожного з ОРС-Item'ів;
  • яким чином про відновлення даних дізнається ОРС-Клієнт і як він їх отримає.

Операції читання та запису проводиться одночасно для всіх  Item'ів в межах ОРС-Group.

Синхронне читання (Sync Read). Ініціація процесу відновлення змінних на ОРС-Сервері може проводитись самим ОРС-Клієнтом. Тобто при необхідності ОРС-Клієнт робить запит на відновлення певної ОРС-Group. В такому випадку Клієнт може заморозити виконання своєї програми (потоку), поки не дочекається результату читання від ОРС-Сервера. Такий спосіб називається Синхронним Читанням (Sync Read). На рис.8.4 графічно зображений процес обміну між ОРС-Клієнтом та ОРС-Сервером. При необхідності Клієнт робить запит за допомогою виклику метода SyncRead для OPC-Group "myGroup" та чекає поки той не поверне відповідь.

Асинхронне читання (Async Read).  Механізм синхронного читання гальмує роботу програми (потоку) Клієнта, тому доречний для читання невеликих об’ємів даних. Альтернативою йому може бути використання Асинхронного Читання (Async Read), при якому ОРС-Клієнт теж ініціює обмін, однак не чекає результату обробки. Замість цього, при закінченні процесу читання ОРС-Сервер викликає функцію зворотного виклику  ОРС-Клієнта (обробник події AsyncReadComplete), в яку передає результат читання. Для реалізації цього механізму необхідно, щоб в об’єкті OPC-Group був активований механізм Підписки (Subscript). 

Періодичне Читання з Оповіщенням (Periodical Read with Notify). При необхідності відновлення даних, обидва наведених вище способи потребують від ОРС-Клієнта кожний раз проводити запит до ОРС-Сервера. Однак як правило дані необхідно читати періодично через певні інтервали часу. Для цього в специфікаціях OPC DA є механізм Періодичного Читання з Оповіщенням (Periodical Read with Notify). При створенні ОРС-Group, Клієнт замовляє частоту відновлення Item'ів в межах цієї групи. Через вказані проміжки часу ОРС-Сервер буде відновлювати ці дані, а результат буде зберігати в Кеші (Cache). Якщо дані (Value або Quality) хоча б для одного ОРС-Item'а в OPC-Group змінилися, буде викликана зворотна функція Оповіщення (Notify), тобто обробник події DataChange, в параметрах виклику якого будуть передані нові значення. Для ефективного використання цього механізму можна скористатися зоною нечутливості (Deadband). Необхідно зазначити, що в об’єкті OPC-Group повинен бути активований механізм Підписки та прапорець Активності (ACTIVE FLAG). Крім того, періодично відновлюватись будуть тільки Активні OPC-Item.          

Синхронний та асинхронний запис. Операції запису можуть проводитись двома способами: Синхронний Запис (Sync Write) та Асинхронний Запис (Async Write). Функціонування повністю аналогічне як і в операціях читання (рис.8.5).