Module: | DiamondBoards |
Name: | Diamond cards of data acquisition |
Type: | DAQ |
Source: | daq_DiamondBoards.so |
Version: | 2.1.0 |
Author: | Roman Savochenko, Maxim Lysenko (2009) |
Description: | Provides an access to "Diamond Systems" DAQ boards. Includes main support for all generic boards. |
License: | GPL |
The module provides for the system OpenSCADA support of dynamic data sources, based on the cards for data acquisition of Diamond Systems company (http://diamondsystems.com). The module based on the universal driver of the manufacturer of the boards. Universal driver is available for almost all known software platforms in the form of a library. Universal driver has been received at http://www.diamondsystems.com/support/software and it was included in the distribution kit of OpenSCADA, therefore, for the building of the module external libraries are not required. You need only an assembling of the Linux kernel module "dscudkp.ko" for working by interrupts and with FIFO.
The boards of data acquisition of Diamond Systems represent the modules of expansion of the PC/104 form-factor. Boards may include: analog IO (input/outputs), digital IO, and counters. Complete set of cards can vary greatly. There can be contained only one type of IO or some mix. In addition, the function of data acquisition can be given to the system boards of this company. For example, the motherboard "Athena" contains: 16 AI, 4 AO, 24 DIO.
The module provides support for analog and digital IO into synchronous and asynchronous access modes. Analog inputs (AI) acquisition supports also into an interruption mode (by FIFO assistance). The method of the acquisition on interruption allows to achieve maximum frequency of interrogation which it is supported by the hardware. In the case of "Athena" system board the frequency achieves 100 kHz. In acquisition on interruption process the data becomes by packages of the main acquisition period and places into an archives buffer.
On the controller's object level creates generic task for all board-parameters processing. Example of the tab of configuration of the controller's object shown in Figure 1.
In assistance with the tab you can set:
A parameter-board's object same has a configuration of concrete board and provides available on the board data by attributes. Example of the tab "Parameter", configuration of the parameter-board at all, shown on Figure 2, and the tab "Configuration", signals properties, shown on Figure 3.
In assistance with the tab you can set:
In assistance with the tab you can set:
On the Figure 4 shown an example of tab "Attributes" for board "DMM-32x-AT".
Into the table 1 shown a list of boards of firm "Diamond Systems", their support status and testing.
Table 1 Properties of firm "Diamond Systems" boards
Board | AI (16 bit) | AO (12 bit) | DIO (x8) | DI (x8) | DO (x8) | Notes |
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 |
Specific in operation by the AI acquisition by interrupts is the channels switching sync; measuring by different, external, counter and using FIFO for intermediate measuring buffer. Sure, this counter will different to some value from the real-time clock and the FIFO need to be have time to it reading. Course it is need to adjust-calibrate the data receipts with the real-time clock. At all implemented next mechanisms of the counters walk difference and other effects:
Used version the Linux driver from Diamond systems: dscud5.91linux.tar.gz
The patch for build driver at kernel Linux 2.6.29, used for data gathering by interrupt: lastkernels.patch