Модуль: | DiamondBoards |
Ім'я: | Diamond плати збору даних |
Тип: | DAQ |
Джерело: | daq_DiamondBoards.so |
Версія: | 2.1 |
Автор: | Роман Савоченко |
Опис: | Надає доступ до "Diamond Systems" DAQ плат. Включає основну підтримку базових плат. |
Ліцензія: | GPL |
Модуль надає в систему 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 кГц. У процесі збору за перериванням дані отримуються пакетами основного періоду опитування та розташовуються у буфер архівів значень.
На рівні об'єкта контролеру створюється загальне для всіх плат завдання обслуговування плат-параметрів. Приклад вкладки конфігурації об'єкту контролера наведено на рис.1.
За допомогою цієї вкладки можна встановити:
Об'єкт параметру-плати безпосередньо містить конфігурацію окремо взятої плати та надає всі доступні на платі дані у вигляді атрибутів. Приклад вкладки "Параметр", конфігурації параметру-плати цілком, представлено на рис.2, а вкладку "Конфігурація", властивостей сигналів, наведено на рис.3.
За допомогою цієї вкладки можна встановити:
За допомогою цієї вкладки можна встановити:
На рисунку 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біт) | 2 | 0 | 1 | 1 | |
Pearl-MM | 0 | 0 | 0 | 0 | 2 | |
Onyx-MM | 0 | 0 | 6 | 0 | 0 | |
Ruby-MM-416 | 0 | 4 (16 біт) | 2 | 0 | 0 | |
DMM-AT | 16 (12 біт, 100КГц, 512 FIFO) | 2 | 0 | 1 | 1 | |
DMM-16-AT | 16 (100КГц, 512 FIFO) | 4 | 0 | 1 | 1 | |
IR104 | 0 | 0 | 0 | 3 | 3 | |
Prometheus | 16 (100КГц, 48 FIFO) | 4 | 3 | 0 | 0 | |
Hercules EBX | 32 (250КГц, 2048 FIFO) | 4 | 5 | 0 | 0 | |
Onyx-MM-DIO | 0 | 0 | 6 | 0 | 0 | |
Mercator | 0 | 0 | 3 | 0 | 0 | |
Athena | 16 (100КГц, 48 FIFO) | 4 | 3 | 0 | 0 | Перевірено |
DMM-32x(-AT) | 32 (250КГц, 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КГц, 1024 FIFO) | 4 | 3 | 0 | 0 | |
Athena-II | 16 (100КГц, 2048 FIFO) | 4 | 3 | 0 | 0 | |
DMM-32dx(-AT) | 32 (250КГц, 1024 FIFO) | 4 | 3 | 0 | 0 | Перевірено |
Helios | 16 (100КГц, 2048 FIFO) | 4 | 5 | 0 | 0 | |
Neptune | 32 (250КГц, 1024 FIFO) | 4 | 4 | 0 | 0 |
Особливістю роботи збору AI за перериванням є синхронізація переключення каналів; вимірів за окремим, внутрішнім, лічильником та використання FIFO як проміжного буферу вимірювання. Звісно, що цей лічильник на деяке значення буде відрізнятися від лічильника реального часу, а FIFO потрібно встигати вичитувати. Природно що потрібне підлаштування-калібровка розходження надходження даних із годинником реального часу. В цілому реалізуються наступні механізми компенсації розходження лічильників та інших явищ:
Використана версія Linux драйвера від Diamond systems: dscud5.91linux.tar.gz
Патч для збірки драйверу для ядра Linux 2.6.29, використаного при зборі даних за перериванням: lastkernels.patch