From OpenSCADAWiki
Jump to: navigation, search
This page is a translated version of the page Modules/DiamondBoards and the translation is 100% complete.

Other languages:
English • ‎российский • ‎українська
Constr.png The translation checking and actualizing
Модуль Ім'я Версія Ліцензія Джерело Мови Платформи Тип Автор Опис
DiamondBoards Diamond плати збору даних 2.1 GPL2 daq_DiamondBoards.so en,uk,ru,de x86 DAQ Роман Савоченко Надає доступ до "Diamond Systems" DAQ плат. Включає основну підтримку базових плат.

Модуль надає до OpenSCADA підтримку джерел даних, основаних на платах збору даних фірми Diamond Systems (http://diamondsystems.com). Модуль побудовано на основі універсального драйверу виробника плат. Універсальний драйвер доступний практично для всіх відомих програмних платформ, у вигляді бібліотеки. Універсальний драйвер було отримано за адресою http://www.diamondsystems.com/support/software та включено до дистрибутиву OpenSCADA, тому для збірки цього модуля не потрібно зовнішніх бібліотек. Потрібно тільки збірку модуля ядра Linux "dscudkp.ko" для роботи за перериванням та з FIFO.

Плати збору даних фірми Diamond Systems представляють з себе модулі розширення формфактору PC/104. Плати можуть містити: аналогові IO(входи/виходи), дискретні IO та лічильники. Комплектація плат може значно варіюватися. Можуть міститися тільки IO одного типу або ж всього потроху. Крім того, функцією збору даних можуть наділятися і системні плати цієї фірми. Наприклад, системна плата "Athena" містить: 16 AI, 4 AO, 24 DIO.

Модуль надає підтримку аналогових та дискретних IO у режимах синхронного та асинхронного доступу. Збір аналогових входів (AI) підтримується також у режимі за перериванням (за допомогою FIFO). Метод збору за перериванням дозволяє досягнути максимальної частоти опитування, апаратурою яка це підтримує. У випадку із процесорною платою "Athena" ця частота досягає 100 кГц. У процесі збору за перериванням дані отримуються пакетами основного періоду опитування та розташовуються у буфер архівів значень.

At.png У версії 2.0 цей модуль, згідно із завданням, було фактично повністю переписана за для забезпечення підтримки всього спектру плат збору даних фірми Diamond Systems. Отриманий модуль став першим, який підтримує роботу в усіх трьох режимах збору даних (синхронний, асинхронний, пакетний), додатково до того, що він є першим модулем збору даних системи OpenSCADA.

1 Об'єкт контролеру даних

На рівні об'єкта контролеру створюється загальне для всіх плат завдання обслуговування плат-параметрів. Приклад вкладки конфігурації об'єкту контролера наведено на рис.1.

Рис.1. Вкладка конфігурації об'єкта контролеру.

За допомогою цієї вкладки можна встановити:

  • Стан контролеру, а саме: статус, стани "Включено" та Запущено" та ім'я БД, яка містить конфігурацію.
  • Ідентифікатор, ім'я та опис об'єкту контролера.
  • Стан, в який переводити контролер при завантажені: "Включено" та "Запущено".
  • Ім'я таблиці для зберігання конфігурації параметрів контролеру.
  • Політику планування викликів та пріоритет завдання збору даних.

2 Об'єкт параметру-плати

Об'єкт параметру-плати безпосередньо містить конфігурацію окремо взятої плати та надає всі доступні на платі дані у вигляді атрибутів. Приклад вкладки "Параметр", конфігурації параметру-плати цілком, представлено на рис.2, а вкладку "Конфігурація", властивостей сигналів, наведено на рис.3.

Рис.2. Вкладка "Параметр", конфігурації параметру-плати цілком.

За допомогою цієї вкладки можна встановити:

  • Стан параметру, а саме: тип та стан "Включено".
  • Ідентифікатор, ім'я та опис параметру.
  • Стан, в який переводити параметр при завантажені: "Включено".
  • Тип, адреса та вектор переривання плати. Вектор переривання доступний лише для плат з аналоговими входами та FIFO.
  • Частота вимірювання на один канал, при опитуванні аналогових входів за перериванням. Доступна тільки для плат із аналоговими входами та FIFO. Ненульові та коректні значення цього та попереднього поля включають режим опитування AI за перериванням.
At.png Реальні значення цього поля можуть бути скинуті до ліміту частоти лічильника обслуговування AI за перериванням, під час перерахунку на один канал.
  • Режим асинхронного читання, з періодом об'єкта контролера. Працює і у режимі опитування AI за перериваннями для дискретних сигналів.
  • Режим відображення значення аналогових входів: "Код АЦП (ціле)", "Відсоток від шкали сигналу (реальне)" та "Напруга (реальне)". Режим "Напруга" може бути доступний не для всіх плат!
  • Обмеження на кількість аналогових параметрів що обробляються. Корисно при використанні меншої кількості каналів, але частіше. Особливо у режимі опитування за перериванням та керування режимом каналу SE(single-ended) та "Differential".
Рис.3. Вкладка "Конфігурація", властивостей сигналів.

За допомогою цієї вкладки можна встановити:

  • Інтервал сканування аналогових входів, визначає час між вибірками у режимі опитування AI за перериванням.
At.png Якщо запитана частота вибірки велика та великий інтервал, то результуюча частота може скидатися до отриманої із інтервалу сканування.
  • Конфігурація діапазону AI. У режимі опитування AI по перериванню використовується діапазон нульового входу, чому у дужках вказано "(всі входи)".
  • Конфігурація напрямку груп дискретних входів (каналів), для DIO, та режим інверсії окремих дискретних входів.

На рисунку 4 представлено приклад вкладки "Атрибути" для плати "DMM-32x-AT".

Рис.4. Вкладка "Атрибути" параметру-плати.

В таблиці 1 наведено перелік плат фірми "Diamond Systems", статус їх підтримки та тестування.

Таблиця 1 Властивості плат фірми "Diamond Systems"

Плата AI (16 біт) AO (12 біт) DIO (x8) DI (x8) DO (x8) Зауваження
DMM-16 16 4 0 1 1
Ruby-MM 0 8 3 0 0
Opal-MM 0 0 0 1 1
DMM 16 (12 bit) 2 0 1 1
Pearl-MM 0 0 0 0 2
Onyx-MM 0 0 6 0 0
Ruby-MM-416 0 4 (16 bit) 2 0 0
DMM-AT 16 (12 bit, 100 kHz, 512 FIFO) 2 0 1 1
DMM-16-AT 16 (100 kHz, 512 FIFO) 4 0 1 1
IR104 0 0 0 3 3
Prometheus 16 (100 kHz, 48 FIFO) 4 3 0 0
Hercules EBX 32 (250 kHz, 2048 FIFO) 4 5 0 0
Onyx-MM-DIO 0 0 6 0 0
Mercator 0 0 3 0 0
Athena 16 (100 kHz, 48 FIFO) 4 3 0 0 Verified
DMM-32x(-AT) 32 (250 kHz, 1024 FIFO) 4 3 0 0
GPIO-MM-11[12](DIO) 0 0 6 0 0
GPIO-MM-21 0 0 12 0 0
Poseidon 32 (250 kHz, 1024 FIFO) 4 3 0 0
Athena-II 16 (100 kHz, 2048 FIFO) 4 3 0 0
DMM-32dx(-AT) 32 (250 kHz, 1024 FIFO) 4 3 0 0 Verified
Helios 16 (100 kHz, 2048 FIFO) 4 5 0 0
Neptune 32 (250 kHz, 1024 FIFO) 4 4 0 0

3 Зауваження

Особливістю роботи збору AI за перериванням є синхронізація переключення каналів; вимірів за окремим, внутрішнім, лічильником та використання FIFO як проміжного буферу вимірювання. Звісно, що цей лічильник на деяке значення буде відрізнятися від лічильника реального часу, а FIFO потрібно встигати вичитувати. Природно що потрібне підлаштування-калібровка розходження надходження даних із годинником реального часу. В цілому реалізуються наступні механізми компенсації розходження лічильників та інших явищ:

  • Переповнення FIFO — у наслідку чого втрачається один кадр даних розміром у FIFO та відбувається зсув положення каналів у області даних, якщо розмір FIFO не вирівняно до кількості каналів, в додатку до розміру блоку вимірювань.
  • Втрата циклів — виклик задачі обробки блоків даних може статися через один або декілька циклів, в наслідок низького пріоритету та інших факторів. Результатом цього явища є переповнення (завертання) даних блоку вимірів та потрібно повністю перевстановити час даних у реальний час.
  • Різниця у лічильнику вимірювання та годинника реального часу — компенсується шляхом підлаштування реальної частоти вимірювань на розмір відхилення часу більш циклу обробки. Тут присутня похибка на час виклику задачі обробки та потрапляння на границю скидання частини буферу вимірювання (transfers threshold) на значення біля розмірності скидання буферу вимірювання, половина від періоду вимірювання.

4 Посилання