Модуль | Ім'я | Версія | Ліцензія | Джерело | Мови | Платформи | Тип | Автор | Опис |
---|---|---|---|---|---|---|---|---|---|
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 кГц. У процесі збору за перериванням дані отримуються пакетами основного періоду опитування та розташовуються у буфер архівів значень.
У версії 2.0 цей модуль, згідно із завданням, було фактично повністю переписана за для забезпечення підтримки всього спектру плат збору даних фірми Diamond Systems. Отриманий модуль став першим, який підтримує роботу в усіх трьох режимах збору даних (синхронний, асинхронний, пакетний), додатково до того, що він є першим модулем збору даних системи OpenSCADA.
1 Об'єкт контролеру даних
На рівні об'єкта контролеру створюється загальне для всіх плат завдання обслуговування плат-параметрів. Приклад вкладки конфігурації об'єкту контролера наведено на рис.1.
За допомогою цієї вкладки можна встановити:
- Стан об'єкту контролеру, а саме: статус, "Ввімкнено", "Виконується" та ім'я сховища, яке містить конфігурацію.
- Ідентифікатор, ім'я та опис контролеру.
- Стан "Ввімкнено" та "Виконується", у який переводити об'єкт контролеру при запуску.
- Планування обчислення та пріоритет задачі опитування джерел даних.
2 Об'єкт параметру-плати
Модуль надає тільки один "Стандартний (std)" тип параметрів із назвою таблиці параметрів "DiamPrm_{CntrId}".
Об'єкт параметру-плати безпосередньо містить конфігурацію окремо взятої плати та надає всі доступні на платі дані у вигляді атрибутів. Приклад вкладки "Параметр", конфігурації параметру-плати цілком, представлено на рис.2, а вкладку "Конфігурація", властивостей сигналів, наведено на рис.3.
За допомогою цієї вкладки можна встановити:
- Стан параметру, а саме: тип та стан "Включено".
- Ідентифікатор, ім'я та опис параметру.
- Стан, в який переводити параметр при завантажені: "Включено".
- Тип, адреса та вектор переривання плати. Вектор переривання доступний лише для плат з аналоговими входами та FIFO.
- Частота вимірювання на один канал, при опитуванні аналогових входів за перериванням. Доступна тільки для плат із аналоговими входами та FIFO. Ненульові та коректні значення цього та попереднього поля включають режим опитування AI за перериванням.
- Реальні значення цього поля можуть бути скинуті до ліміту частоти лічильника обслуговування AI за перериванням, під час перерахунку на один канал.
- Режим асинхронного читання, з періодом об'єкта контролера. Працює і у режимі опитування AI за перериваннями для дискретних сигналів.
- Режим відображення значення аналогових входів: "Код АЦП (ціле)", "Відсоток від шкали сигналу (реальне)" та "Напруга (реальне)". Режим "Напруга" може бути доступний не для всіх плат!
- Обмеження на кількість аналогових параметрів що обробляються. Корисно при використанні меншої кількості каналів, але частіше. Особливо у режимі опитування за перериванням та керування режимом каналу SE(single-ended) та "Differential".
За допомогою цієї вкладки можна встановити:
- Інтервал сканування аналогових входів, визначає час між вибірками у режимі опитування AI за перериванням.
- Якщо запитана частота вибірки велика та великий інтервал, то результуюча частота може скидатися до отриманої із інтервалу сканування.
- Конфігурація діапазону AI. У режимі опитування AI по перериванню використовується діапазон нульового входу, чому у дужках вказано "(всі входи)".
- Конфігурація напрямку груп дискретних входів (каналів), для DIO, та режим інверсії окремих дискретних входів.
На рисунку 4 представлено приклад вкладки "Атрибути" для плати "DMM-32x-AT".
В таблиці 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) на значення біля розмірності скидання буферу вимірювання, половина від періоду вимірювання.