| Модуль: | DiamondBoards |
| Ім'я: | Diamond плати збору даних |
| Тип: | DAQ |
| Джерело: | daq_DiamondBoards.so |
| Версія: | 2.1 |
| Автор: | Роман Савоченко |
| Опис: | Надає доступ до " |
| Ліцензія: | 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