Модуль: | 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: file:dscud5.91linux.tar.gz
Патч для сборки драйвера для ядра Linux 2.6.29, используемого при сборе данных по прерыванию: file:lastkernels.patch