Модули/Платы Diamond Systems - OpenSCADAWiki

# Модули/Платы Diamond Systems

This page is a translated version of the page Modules/DiamondBoards and the translation is 90% complete.

English • ‎mRussian • ‎Українська

| 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 кГц. В процессе сбора по прерыванию данные получаются пакетами основного периода опроса и помещаются в буфера архивов значений.

В версии 2.0 этот модуль, согласно заданию, был фактически полностью переписан для обеспечения поддержки всего спектра плат сбора данных фирмы Diamond Systems. Полученный модуль стал первым, поддерживающим работу во всех трёх режимах сбора данных (синхронный, асинхронный, пакетный), в дополнении к тому, что он является первым модулем сбора данных системы OpenSCADA.

## 1 Объект контроллера данных

На уровне объекта контроллера создаётся общая для всех плат задача обслуживания плат-параметров. Пример вкладки конфигурации объекта контроллера приведён на рис.1.

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

In assistance with the tab you can set:

- State of the controller object, as follows: status, "Enabled", "Running" and the storage name containing the configuration.
- Identifier, name and description of the controller.
- The state "Enabled" and "Running", in which the controller object must be translated at start up.
- Policy of scheduling and priority of the data acquisition task.

## 2 Parameter-board's object

The module provides only one the "Standard (std)" type of the parameters with the parameters table name "DiamPrm_{CntrId}".

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

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

С помощью этой вкладки можно установить:

- Состояние параметра, а именно: тип и состояние "Включен".
- Идентификатор, имя и описание параметра.
- Состояние, в которое переводить параметр при загрузке: "Включен".
- Тип, адрес и вектор прерывания платы. Вектор прерывания доступен только для плат с аналоговыми входами и FIFO.
- Частота измерений на один канал, при опросе аналоговых входов по прерыванию. Доступен только для плат с аналоговыми входами и FIFO. Ненулевые и корректные значения этого и предыдущего поля включают режим опроса AI по прерыванию.

  Реальное значение этого поля может быть сброшено к лимиту частоты счётчика обслуживания AI по прерыванию, при пересчёте на один канал.

- Режим асинхронного чтения, с периодом объекта контроллера. Работает и в режиме опроса AI по прерыванию для дискретных сигналов.
- Режим отображения значения аналоговых входов: "Код АЦП (целое)", "Процент от шкалы сигнала (вещественное)" и "Напряжение (вещественное)". Режим "Напряжение" может быть доступен не для всех плат!
- Ограничение на количество обрабатываемых аналоговых параметров. Полезно при использовании меньшего количества каналов, но чаще. Особенно в режиме опроса по прерыванию и управления режимом канала SE(single-ended) и "Differential".

Рис.3. Вкладка "Конфигурация", свойств сигналов.

С помощью этой вкладки можно установить:

- Интервал сканирования аналоговых входов, указывает время между выборками в режиме опроса AI по прерыванию.

  Если запрошенная частота выборки большая и большой интервал, то результирующая частота может сбрасываться до полученной из интервала сканирования.

- Конфигурация диапазона 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 Ссылки

- Используемая версия Linux драйвера от Diamond systems
- Патч для сборки драйвера для ядра Linux 2.6.29, используемого при сборе данных по прерыванию

Modules/DiamondBoards/ru - GFDL | July 2026 | OpenSCADA 1+r3070