From OpenSCADAWiki
Jump to: navigation, search
This page is a translated version of the page Modules/ICP DAS and the translation is 100% complete.

Other languages:
English • ‎российский • ‎українська
Constr.png The translation checking and actualizing
Модуль Имя Версия Лицензия Источник Языки Платформы Тип Автор Описание
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.

Модуль предоставляет в систему 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.

Рис.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. Вкладка конфигурации параметра.

Вкладка конфигурации параметра (рис.2) в целом одинакова для всех групп модулей/плат и содержит:

  • Состояние параметра, а именно: тип и состояние "Включен".
  • Идентификатор, имя и описание параметра.
  • Состояние, в которое переводить параметр при загрузке: "Включен".
  • Тип модуля/платы.
  • Адрес модуля/платы, в случае работы на не главной последовательной шине (в десятичном виде от 0 до 255) или шине ISA.
  • Слот модуля, в случае работы с устройствами серии I-8xxx и I-87xxx, установленных в корзину ПЛК.
  • Контроль CRC для модулей серии I-87xxx на последовательной шине.
  • Дополнительные параметры модуля, в зависимости от шины и конкретной платы/модуля.

В соответствии с настройками параметра осуществляется формирование и опрос атрибутов (рис.3).

Рис.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 должна грузиться после запуска синхронизации времени.

Рис.4. Вкладка "LinPAC" конфигурации контроллеров серии "LP-8xxx".
Рис.5. Атрибуты параметра "LP-8xxx".

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мА.
Рис.6. Вкладка "Конфигурация" модулей I-8014 и I-8017.

2.1.3 Инверсия значений дискретных входов и выходов

Для модулей дискретного входа и выхода, во вкладке "Конфигурация" (рис.7), предоставляется функция выборочной инверсии канала, что очень удобно при последующей работе с каналом.

Рис.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).

Рис.8. Основная вкладка параметра абстрактного модуля "I-87xxx".

2.2.2 Выбор типа канала для AI

Для модулей аналогового ввода доступна возможность выбора режима/усиления, что осуществляется из списка (рис.9), если для модуля он указан, или прямым указанием кода режима. Установленные режимы сохраняются и хранятся в самом модуле.

Рис.9. Вкладка "Конфигурация" модуля аналоговых входов.

2.2.3 Хостовый сторожевой таймер и значения по умолчанию при включении и срабатыванию таймера

Модулями с выходами, аналоговыми или дискретными, обычно предоставляется функция хостового сторожевого таймера. А именно установка значения выходов в безопасное состояние при отсутствии активности обмена с хоста в течении указанного интервала времени. Также модули позволяют установить значения выходов при включении.

На рисунке 10 представлена вкладка модуля аналоговых выходов с функциями:

  • установка и контроль состояния сторожевого таймера модуля;
  • установка и контроль значения выходов модуля при включении;
  • установка и контроль значения выходов модуля при срабатывании хостового сторожевого таймера.
Рис.10. Вкладка "Конфигурация" модуля аналоговых выходов.

2.3 Платы на шине ISA

Платы данного типа устанавливаются на шину ISA персонального компьютера. Для работы с этими платами необходима сборка и запуск драйверов-модулей ядра Linux. В таблице 3 приведены свойства плат "ICP DAS" на шине ISA, реализуемых в OpenSCADA.

At.png Функция счётчиков на данный момент не реализована в 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_ADGCR
IXISA_ADMXCR
IXISA_ADMCR
IXISA_ADSTCR

IXISA_AO{0...1} IXISA_DI{L,H} IXISA_DO{L,H}

IXISA_8254C{0...2}
IXISA_8254CR

A-812

IXISA_AI (16,12)
IXISA_ADGCR
IXISA_ADMXCR
IXISA_ADMCR
IXISA_ADSTCR

IXISA_AO{0...1} IXISA_DI{L,H} IXISA_DO{L,H}

IXISA_8254C{0...2}
IXISA_8254CR

A-821

IXISA_AI (16,12)
IXISA_ADGCR
IXISA_ADMXCR
IXISA_ADMCR
IXISA_ADSTCR

IXISA_AO IXISA_DI{L,H} IXISA_DO{L,H}

IXISA_8254C{0...2}
IXISA_8254CR

A-822

IXISA_AI (16,12)
IXISA_ADGCR
IXISA_ADMXCR
IXISA_ADMCR
IXISA_ADSTCR

IXISA_AO{0...1} IXISA_DI{L,H} IXISA_DO{L,H}

IXISA_8254C{0...2}
IXISA_8254CR

A-823

IXISA_AI (16,12)
IXISA_ADGCR
IXISA_ADMXCR
IXISA_ADMCR
IXISA_ADSTCR

IXISA_AO{0...1} IXISA_DI{L,H} IXISA_DO{L,H}

IXISA_8254C{0...2}
IXISA_8254CR

A-826

IXISA_AI (16,16)
IXISA_ADGCR
IXISA_ADMXCR
IXISA_ADMCR
IXISA_ADSTCR

IXISA_AO{0...1} IXISA_DI{L,H} IXISA_DO{L,H}

IXISA_8254C{0...2}
IXISA_8254CR

DIO-144

IXISA_CN{0...5}P{A...C}
IXISA_CN{0...5}CR

Tested!
DIO-24

IXISA_P{A...C}
IXISA_CR

DIO-48 IXISA_CN{1...2}P{A...C}

IXISA_CN{1...2}CR
IXISA_8254C{0...2}
IXISA_8254CR

DIO-64 IXISA_DIO_{A...D} IXISA_DIO_{A...D} IXISA_8254C{0...5}

IXISA_8254CR
IXISA_8254CR1

DIO-96

IXISA_CN{0...3}P{A...C}
IXISA_CN{0...3}CR

ISO-730

IXISA_IDIO_{A...B}
IXISA_DIO_{A...B}

IXISA_IDIO_{A...B}
IXISA_DIO_{A...B}

ISO-813

IXISA_AI (32)
IXISA_ADGCR
IXISA_ADMXCR
IXISA_ADSTCR

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}
IXISA_8254CR
IXISA_8254CS

3 Ссылки