Модуль | Имя | Версия | Лицензия | Источник | Языки | Платформы | Тип | Автор | Описание |
---|---|---|---|---|---|---|---|---|---|
ICP_DAS | Оборудование ICP_DAS | 1.8 | GPL2 | daq_ICP_DAS.so | en,uk,ru,de | x86,ARM | DAQ | Роман Савоченко | Предоставляет реализацию поддержки оборудования "ICP DAS". Включает поддержку основных I-87xxx DCON модулей, I-8xxx быстрых модулей и плат на шине ISA. |
Contents
[hide]Модуль предоставляет в систему 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 размещена вместе с исходными текстами данного модуля и не требует отдельной инсталляции.
1 Контроллер данных
Для добавления источника данных "ICP DAS" создаётся и конфигурируется контроллер в системе OpenSCADA. Пример вкладки конфигурации контроллера данного типа изображен на рис.1.
С помощью этой вкладки можно установить:
- Состояние контроллера, а именно: статус, состояния "Включен" и Запущен" и имя БД, содержащей конфигурацию.
- Идентификатор, имя и описание контроллера.
- Состояние, в которое переводить контроллер при загрузке: "Включен" и "Запущен".
- Имя таблицы для хранения конфигурации параметров контроллера.
- Политику планирования вызовов и приоритет задачи сбора данных.
- Шина на которой расположены модули/платы. Если указан последовательный интерфейс (COM {X}), то доступ производится по протоколу DCON. В случае указания мастер шины контроллера LP-8xxx доступ производится через API параллельной шины или смешано. Указание ISA шины позволяет выбирать платы для шины ISA, из перечня сконфигурированных плат.
- Транспорт, через который осуществляются запросы к последовательной шине. Доступен при установке поля "Шина" в "COM {X}". Если указано "<ICP DAS>" то используется API последовательных запросов от "ICP DAS", по умолчанию.
- Скорость передачи данных для последовательного интерфейса, указывается для неглавной последовательной шины и транспорта "<ICP DAS>".
- Количество попыток последовательных запросов.
2 Параметры
Модуль предоставляет только один тип параметров — “Стандарт(std)” и три группы модулей/плат, доступные в зависимости от выбранной шины:
- ISA — платы на шине ISA;
- I-87xxx — модули на последовательной шине и с протоколом DCON, например в LinPAC;
- I-8xxx — модули на параллельной шине, например в 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 Boards on bus ISA
The type boards installed on bus ISA of personal computer. For work with this boards you need build and start drivers-modules for Linux kernel. Into table 3 listed properties boards "ICP DAS" on bus ISA, which implemented into OpenSCADA.
Counters function is not currently implemented into OpenSCADA.
Table 3 Properties of boards on bus ISA
Module | AI | AO | DI | DO | DIO | Counters | Notes |
---|---|---|---|---|---|---|---|
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 Links
- Special modules for Linux kernel 2.6.29-rt-up for controllers LP-8x81
- Special modules for Linux kernel 2.6.29-rt1-up for controllers LP-8x81
- The driver from VIA for network of controllers LP-8x81
- The patch to build network driver "rhinefet" for Linux 2.6.29
- The patch to build network driver "rhinefet" for Linux 2.6.29-rt1
- Drivers set for Linux for ISA boards