Модуль | Имя | Версия | Лицензия | Источник | Языки | Платформы | Тип | Автор | Описание |
---|---|---|---|---|---|---|---|---|---|
ICP_DAS | Оборудование ICP_DAS | 1.9 | GPL2 | daq_ICP_DAS.so | en,uk,ru,de | x86,ARM | DAQ | Роман Савоченко | Предоставляет реализацию поддержки оборудования "ICP DAS". Включает поддержку основных I-87xxx DCON модулей, I-8xxx быстрых модулей и плат на шине ISA. |
Модуль предоставляет в систему OpenSCADA поддержку различного оборудования фирмы "ICP DAS" (http://www.icpdas.com, http://ipc2u.ru) посредством библиотеки API libi8k.a от фирмы, для модулей I-87xxx и I-8xxx, и прямых ioctl вызовов к модулям ядра, для плат на шине ISA.
Большинство оборудования фирмы "ICP DAS" работает посредством последовательных интерфейсов и протокола DCON, однако часть нового оборудования, например, серия I-8xxx работает на параллельной шине, а другая часть, устанавливается в слоты параллельной шины (I-87xxx), доступны по последовательному интерфейсу и протоколу DCON, однако не адресуются прямо, а требуют вызова специализированной команды выбора слота. Доступ к оборудованию, использующему прямые запросы по протоколу DCON, может быть осуществлён модулем DAQ.DCON. Поддержка остального оборудования не добавлялась в модуль DAQ.DCON, а реализовывалась в данном модуле по причине наличия библиотеки API фирмы "ICP DAS" только для платформ x86_32 и ARM(OABI, HardFloatFPA), что вносит ограничения на доступ к оборудованию фирмы "ICP DAS" и другому оборудованию по протоколу DCON на иных аппаратных платформах.
Причиной создания данного модуля стали работы с контроллером фирмы "ICP DAS" LP-8781 серии "LinPAC" с целью реализации среды исполнения PLC на основе системы OpenSCADA.
Библиотека API фирмы "ICP DAS" для платформ x86_32 -> libi8k.a и ARM(OABI, HardFloatFPA) -> libi8k_arm.a размещена вместе с исходными текстами данного модуля и не требует отдельной инсталляции.
Contents
1 Контроллер данных
Для добавления источника данных "ICP DAS" создаётся и конфигурируется контроллер в системе OpenSCADA. Пример вкладки конфигурации контроллера данного типа изображен на рис.1.
From this 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.
- Bus, on which the modules/boards are placed. If you specify a serial interface (COM {X}), then access is made under the protocol DCON. If the main controller bus is LP-8xxx the access is made through the parallel bus API or mixed. Bus ISA set allow select boards for bus ISA, from configured boards list.
- Transport through which requests to the serial bus performed. It's allowed on field "Bus" set to "COM {X}". If set "<ICP DAS>" then used the serial requests API from "ICP DAS", by default.
- Data transfer rate for the serial interface. It is indicated for the not main bus and transport "<ICP DAS>".
- Serial request tries.
2 Parameters
The module provides only one the "Standard (std)" type of the parameters with the parameters table name "ICPDASPrm_{CntrId}". There accessible three groups of modules/boards depending from selected bus:
- ISA — boards on ISA;
- I-87xxx — modules on serial bus and with protocol DCON, for example into LinPAC;
- I-8xxx — modules on parallel bus, for example into LinPAC.
Вкладка конфигурации параметра (рис.2) в целом одинакова для всех групп модулей/плат и содержит:
- Состояние параметра, а именно: тип и состояние "Включен".
- Идентификатор, имя и описание параметра.
- Состояние, в которое переводить параметр при загрузке: "Включен".
- Тип модуля/платы.
- Адрес модуля/платы, в случае работы на не главной последовательной шине (в десятичном виде от 0 до 255) или шине ISA.
- Слот модуля, в случае работы с устройствами серии I-8xxx и I-87xxx, установленных в корзину ПЛК.
- Контроль CRC для модулей серии I-87xxx на последовательной шине.
- Дополнительные параметры модуля, в зависимости от шины и конкретной платы/модуля.
В соответствии с настройками параметра осуществляется формирование и опрос атрибутов (рис.3).
2.1 Модули серии I-8xxx
Модули серии I-8xxx устанавливаются в слот параллельной шины корзины контроллера, например, серии LinPAC. В таблице 1 приведены свойства модулей "ICP DAS" серии I-8xxx, реализуемых в OpenSCADA.
Таблица 1 Свойства модулей серии I-8xxx
Модуль | AI | AO | DI | DO | Замечания |
---|---|---|---|---|---|
I-8014 | i8014W_ReadAI() or i8014W_ReadFIFO() for mode FIFO(Magic) | Tested! | |||
I-8017 | I8017_GetCurAdChannel_Float_Cal() | Tested! | |||
I-8024 | I8024_VoltageOut | ||||
I-8037 | DO_16, DO_16_RB | ||||
I-8040 | DI_32 | ||||
I-8041 | DO_32, DO_32_RB | ||||
I-8042 | DI_16 | DO_16, DO_16_RB | Tested! | ||
I-8046 | DI_16 | ||||
I-8048 | DI_8 | ||||
I-8050 | DIO_DI_16 | DIO_DO_16 | |||
I-8051 | DI_16 | ||||
I-8052 | DI_8 | ||||
I-8053 | DI_16 | ||||
I-8054 | DI_8 | DO_8, DO_8_RB | |||
I-8055 | DI_8 | DO_8, DO_8_RB | |||
I-8056 | DO_16, DO_16_RB | ||||
I-8057 | DO_16, DO_16_RB | ||||
I-8058 | DI_8 | ||||
I-8060 | DO_8 (6), DO_8_RB | ||||
I-8063 | DI_8 (4) | DO_8 (4), DO_8_RB | |||
I-8064 | DO_8, DO_8_RB | ||||
I-8065 | DO_8, DO_8_RB | ||||
I-8066 | DO_8, DO_8_RB | ||||
I-8068 | DO_8, DO_8_RB | ||||
I-8069 | DO_8, DO_8_RB | ||||
I-8077 | DIO_DI_16 | DIO_DO_16 |
2.1.1 Настройка контроллеров серии LP-8xxx
Для конфигурации свойств контроллеров серии LP-8xxx предусмотрена вкладка "LinPAC" на странице контроллера (рис.4), а также параметр "LP-8xxx" (рис.5). В параметре "LP-8xxx" можно получить информацию о серийном номере контроллера, версии SDK, значении DIP и поворотного переключателя. Во вкладке "LinPAC" можно установить значение сторожевого таймера контроллера. Сторожевой таймер контроллера выключается установкой нулевого значения. Обновление значения сторожевого таймера осуществляется в задаче контроллера и с её периодичностью, следовательно зависание задачи опроса приводит к перезапуска контроллера! Значение сторожевого таймера должно быть больше полного времени загрузки системы, до загрузки OpenSCADA, при этом OpenSCADA должна грузиться после запуска синхронизации времени.
2.1.2 Модуль I-8014 и I-8017
Быстрые модули аналогового ввода, работающие на параллельной шине.
Модуль I-8014 формально обеспечивает скорость доступа к данным по одному каналу в 250 КГц посредством FIFO, однако ввиду заложенного аппаратного-программного ограничения не позволяет достичь скорости более 100 КГц на канал при сканировании в реальном времени, за счёт низкой скорости чтения из FIFO. При этом чтение данных FIFO осуществляется c большими потерям ресурсов процессора на высоких частотах сбора, а именно это 9.5 микросекунд на измерение.
Модуль I-8017 формально обеспечивает скорость доступа к данным по одному каналу в 130 КГц, однако ввиду заложенного аппаратно-программного ограничения не позволяет достичь скорости более 33 КГц на канал при сканировании нескольких каналов в реальном времени (за счёт переключения). При этом ожидание данных осуществляется в глухом цикле, что приводит к большим потерям ресурсов процессора на высоких частотах сбора.
Модулями предоставляется шестнадцать атрибутов аналоговых входов ai{x} и по восемь признаков нарушения верхней ha{x} и нижней la{x} границ, для I-8017. Также модулями предоставляется вкладка "Конфигурация" с расширенной настройкой (рис.6):
- Количество обрабатываемых параметров — указывает сколько входов обслуживать. Характерен в режиме быстрого сбора данных и используется для ограничения количества обрабатываемый каналов соразмерно используемым ресурсам процессора.
- Периодичность быстрого сбора данных (сек) — указывает с какой периодичностью осуществлять быстрый сбор данных для количества каналов, указанных ранее. Режим быстрого сбора данных отключается указанием нулевого периода.
- Режимы усилений входов, отдельно для каждого входа определяет усиление из ряда: +-1.25В, +-2.5В, +-5В, +-10В и +-20мА.
2.1.3 Инверсия значений дискретных входов и выходов
Для модулей дискретного входа и выхода, во вкладке "Конфигурация" (рис.7), предоставляется функция выборочной инверсии канала, что очень удобно при последующей работе с каналом.
2.2 Модули серии I-87xxx
Модули серии I-87xxx устанавливаются в слот последовательной шины корзины контроллера, например, серии LinPAC. В таблице 2 приведены свойства модулей "ICP DAS" серии I-87xxx, реализуемых в OpenSCADA.
Таблица 2 Свойства модулей серии I-87xxx
Модуль | AI | AO | DI | DO | Счётчики | Замечания |
---|---|---|---|---|---|---|
I-87005 | #AA (8); TP: $AA7CiRrr ($AA8Ci) | @AADODD (8), @AADI | ||||
I-87013 | #AA (4); TP: $AA7CiRrr ($AA8Ci) | |||||
I-87015 | #AA (7); TP: $AA7CiRrr ($AA8Ci) | |||||
I-87016 | #AA (2); TP: $AA7CiRrr ($AA8Ci) | |||||
I-87017 | #AA (8); TP: $AA7CiRrr ($AA8Ci) | |||||
I-87017DW | #AA (16); TP: $AA7CiRrr ($AA8Ci) | |||||
I-87017ZW | #AA (20); TP: $AA7CiRrr ($AA8Ci) | Tested! | ||||
I-87018 | $AA3; #AA (8); TP: $AA7CiRrr ($AA8Ci) | |||||
I-87018ZW | $AA3; #AA (10); TP: $AA7CiRrr ($AA8Ci) | |||||
I-87019RW | $AA3; #AA (8); TP: $AA7CiRrr ($AA8Ci) | Tested! | ||||
I-87019ZW | $AA3; #AA (10); TP: $AA7CiRrr ($AA8Ci) | |||||
I-87022 | #AAN(Data) (2), $AA8N; W: ~AA0-5 | |||||
I-87024 | #AAN(Data) (4), $AA8N; W: ~AA0-5 | Tested! | ||||
I-87026 | #AAN(Data) (2), $AA8N; W: ~AA0-5 | |||||
I-87026PW | #AA (6); TP: $AA7CiRrr ($AA8Ci) | #AAN(Data) (2), $AA8N; W: ~AA0-5 | @AADI (2) | @AADODD (2), @AADI | ||
I-87028 | #AAN(Data) (8), $AA8N; W: ~AA0-5 | |||||
I-87037 | @AA(Data) (16), @AA; W: ~AA0-5 | |||||
I-87040 | @AA (32) | #AAN (32) | Tested! | |||
I-87041 | @AA(Data) (32), @AA; W: ~AA0-5 | Tested! | ||||
I-87042 | @AA (16) | @AA(Data) (16), @AA; W: ~AA0-5 | ||||
I-87046 | @AA (16) | #AAN (16) | ||||
I-87051 | @AA (16) | #AAN (16) | ||||
I-87052 | @AA (8) | #AAN (8) | ||||
I-87053 | @AA (16) | #AAN (16) | ||||
I-87054 | @AA (8) | @AA(Data) (8), @AA; W: ~AA0-5 | #AAN (8) | |||
I-87055 | @AA (8) | @AA(Data) (8), @AA; W: ~AA0-5 | #AAN (8) | |||
I-87057 | @AA(Data) (16), @AA; W: ~AA0-5 | |||||
I-87058 | @AA (8) | #AAN (8) | ||||
I-87059 | @AA (8) | #AAN (8) | ||||
I-87061 | @AA(Data) (16), @AA; W: ~AA0-5 | |||||
I-87063 | @AA (16) | @AA(Data) (16), @AA; W: ~AA0-5 | #AAN (16) | |||
I-87064 | @AA(Data) (8), @AA; W: ~AA0-5 | |||||
I-87065 | @AA(Data) (8), @AA; W: ~AA0-5 | |||||
I-87066 | @AA(Data) (8), @AA; W: ~AA0-5 | |||||
I-87068 | @AA(Data) (8), @AA; W: ~AA0-5 | |||||
I-87069 | @AA(Data) (8), @AA; W: ~AA0-5 |
2.2.1 Абстрактный модуль серии I-87xxx
Кроме поддержки модулей в таблице 2 данной группой модулей предоставляется реализация абстрактного модуля "I-87xxx" при выборе которого пользователю предоставляется возможность указать количество и типы основных сигналов подключенного модуля: AI, AO, DI, DO и Счётчики. Данная функция также избирательно доступна для модулей, содержащих сигналы AO и Счётчики и позволяет ограничить число обслуживаемых каналов, с целью уменьшения трафика на последовательном интерфейсе.
Абстрактный модуль "I-87xxx" можно использовать для модулей "ICP DAS" серии I-7xxx на "чистой" последовательной шине.
Поля указания количества сигналов и их типов предоставляются в основной вкладке страницы конфигурации объекта параметра (рис.8).
2.2.2 Выбор типа канала для AI
Для модулей аналогового ввода доступна возможность выбора режима/усиления, что осуществляется из списка (рис.9), если для модуля он указан, или прямым указанием кода режима. Установленные режимы сохраняются и хранятся в самом модуле.
2.2.3 Хостовый сторожевой таймер и значения по умолчанию при включении и срабатыванию таймера
Модулями с выходами, аналоговыми или дискретными, обычно предоставляется функция хостового сторожевого таймера. А именно установка значения выходов в безопасное состояние при отсутствии активности обмена с хоста в течении указанного интервала времени. Также модули позволяют установить значения выходов при включении.
На рисунке 10 представлена вкладка модуля аналоговых выходов с функциями:
- установка и контроль состояния сторожевого таймера модуля;
- установка и контроль значения выходов модуля при включении;
- установка и контроль значения выходов модуля при срабатывании хостового сторожевого таймера.
2.3 Платы на шине ISA
Платы данного типа устанавливаются на шину ISA персонального компьютера. Для работы с этими платами необходима сборка и запуск драйверов-модулей ядра Linux. В таблице 3 приведены свойства плат "ICP DAS" на шине ISA, реализуемых в OpenSCADA.
Функция счётчиков на данный момент не реализована в OpenSCADA.
Таблица 3 Свойства плат на шине ISA
Модуль | AI | AO | DI | DO | DIO | Счётчики | Замечания |
---|---|---|---|---|---|---|---|
A-626 | IXISA_AO{0...5} | IXISA_DI_{A...B} | IXISA_DO_{A...B} | ||||
A-628 | IXISA_AO{0...7} | IXISA_DIO_{A...B} | IXISA_DIO_{A...B} | ||||
A-8111 |
IXISA_AI (8,12) |
IXISA_AO{0...1} | IXISA_DI{L,H} | IXISA_DO{L,H} |
IXISA_8254C{0...2} |
||
A-812 |
IXISA_AI (16,12) |
IXISA_AO{0...1} | IXISA_DI{L,H} | IXISA_DO{L,H} |
IXISA_8254C{0...2} |
||
A-821 |
IXISA_AI (16,12) |
IXISA_AO | IXISA_DI{L,H} | IXISA_DO{L,H} |
IXISA_8254C{0...2} |
||
A-822 |
IXISA_AI (16,12) |
IXISA_AO{0...1} | IXISA_DI{L,H} | IXISA_DO{L,H} |
IXISA_8254C{0...2} |
||
A-823 |
IXISA_AI (16,12) |
IXISA_AO{0...1} | IXISA_DI{L,H} | IXISA_DO{L,H} |
IXISA_8254C{0...2} |
||
A-826 |
IXISA_AI (16,16) |
IXISA_AO{0...1} | IXISA_DI{L,H} | IXISA_DO{L,H} |
IXISA_8254C{0...2} |
||
DIO-144 |
IXISA_CN{0...5}P{A...C} |
Tested! | |||||
DIO-24 |
IXISA_P{A...C} |
||||||
DIO-48 | IXISA_CN{1...2}P{A...C} |
IXISA_CN{1...2}CR |
|||||
DIO-64 | IXISA_DIO_{A...D} | IXISA_DIO_{A...D} | IXISA_8254C{0...5} IXISA_8254CR |
||||
DIO-96 |
IXISA_CN{0...3}P{A...C} |
||||||
ISO-730 |
IXISA_IDIO_{A...B} |
IXISA_IDIO_{A...B} |
|||||
ISO-813 |
IXISA_AI (32) |
||||||
ISO-AD32 | <FIFO> | ||||||
ISO-C64 | IXISA_DO_{A...H} | ||||||
ISO-DA16 | ? | ||||||
ISO-P32C32 | IXISA_DIO_{A...D} | IXISA_DIO_{A...D} | |||||
ISO-P64 | IXISA_DI_{A...H} | ||||||
P16R16DIO | IXISA_DI_{A...B} | IXISA_DO_{A...B} | |||||
P8R8DIO | IXISA_DI (8) | IXISA_DO (8) | |||||
TMC-10 | IXISA_DI_{A...B} | IXISA_DO_A |
IXISA_8254C{0...2} |
3 Ссылки
- Специальные модули ядра Linux 2.6.29-rt-up для контроллеров LP-8x81
- Специальные модули ядра Linux 2.6.29-rt1-up для контроллеров LP-8x81
- Драйвер производителя (VIA) для сети контроллеров LP-8x81
- Патч для сборки сетевого драйвера "rhinefet" на Linux 2.6.29-rt
- Патч для сборки сетевого драйвера "rhinefet" на Linux 2.6.29-rt1
- Набор драйверов Linux для ISA плат