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" з метою реалізації середовища виконання ПЛК на основі системи 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 здійснюється з великими втратами ресурсів процесору на високих частотах збору, а саме це 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 Посилання