УкраїнськаEnglishmRussian
Вхід/Новий

Середовище виконання ПЛК LP-8x81 фірми ICP DAS на основі OpenSCADA

01.04.2010 16:25 Давність: 15 yrs

Автор: Роман Савоченко


ПЛК LP-8x81

Засновано: листопад 2009р

Версія: 1.0.0

Статус: GPL

Учасники: Роман Савоченко

Опис: Проект присвячено створенню середовища виконання ПЛК для контролерів серії LP-8x81 фірми ICP DAS.

Промислові контролери сімейства LP-8x81 фірми ICP DAS є першим продуктом з серії LinPAC, який побудовано на x86 сумісному процесорі, попередні контролери цього сімейства засновано на процесорі сімейства ARM. Крім x86 процесору ці контролери мають значні ресурси оперативної пам'яті та дискового простору. Все це дозволило розглядати ці контролери як перший кандидат з продукції ICP DAS для адаптації OpenSCADA у якості середовища виконання.

Основою для адаптації OpenSCADA у якості середовища виконання контролерів сімейства LP-8x81 стала потреба у створені АСУ ТП керування навантаженням шарових млинів помелу вугілля для ТЕЦ. Особливістю цього технологічного процесу (ТП) є наявність специфічних до ресурсів та функціям контролеру вимог при невеликому об'ємі параметрів. Крім того, вирішальним фактором було обмежене фінансування. Всім пред'явленим вимогам задовольнили контролери сімейства LP-8x81:

  • порівняно невисока ціна;
  • достатньо висока продуктивність для ПЛК;
  • архітектурна та програмна відкритість ПЛК;
  • промислове виконання та розширений температурний діапазон.

Метою даного проекту було створення середовища виконання на основі OpenSCADA, а також прошивки з ОС Linux та OpenSCADA для контролерів цього сімейства. Пред'являлися наступні вимоги до середовища виконання та прошивки:

  • підтримка модулів сімейства I-8000 у OpenSCADA, включаючи швидкий режим для швидких модулів аналогового вводу;
  • підтримка функцій спектрального аналізу сигналів у OpenSCADA;
  • включення до прошивки ядра ОС Linux з підтримкою таймеру реального часу високої роздільної здатності, низькою латентністю та розширенням жорсткого реального часу;
  • перезбір драйверів специфічного обладнання виробника для потрібного ядра;
  • формування упакованого штампу прошивки для надійної роботи у екстремальних умовах.

2. ПЛК LP-8x81

ПЛК (рис.1) конструктивно виконано за модульним принципом, де модулі встановлюються до кошика. Кошик сполучено з процесорним модулем та може мати 0, 3 або 7 слотів для модулів розширення. Модулі розширення можуть бути двох типів, а саме: модулі на паралельну та послідовну шини. Модулі на паралельній шині (I-8x) є швидкими. Модулі на послідовній шині (I-87x) встановлюються на шину інтерфейсу RS-485 та працюють зі швидкістю 115000 біт/с за протоколом DCON. Крім модулів безпосередньо у кошику контролер може розширюватися додатковими кошиками з модулями на послідовній шині (I-87x) через послідовний інтерфейси процесору.

ПЛК серії LP-8x81. (84 Кб)
Рис. 1. ПЛК серії LP-8x81.

Процесор контролера має наступні технічні характеристики:

CPU

AMD LX800 процесор (32-біт, 500 МГц)

Системна пам'ять

1 GB RAM

SRAM з подвійним живленням від батареї

512 КБ (зі збереженням протягом 5 років)

Flash

4 ГБ як IDE Master

EEPROM

16 КБ
Збереження даних: 40 років; 1,000,000 циклів видалення/запису.

CF карта

8 ГБ (підтримка до 32 ГБ)

64-біт Серійний Номер Обладнання

Наявний

Подвійний Watchdog таймеру

Наявний

VGA

640 x 480 ~ 1024 x 768

Ethernet порти

RJ-45 x 2, 10/100 Base-TX Ethernet Контролер (Авто-погодження, авто MDI/MDI-X, LED індикатор)

USB 1.1 (хост)

2

COM1

Внутрішні комунікації з модулями I-87K у слотах

COM2

RS-232 (RxD, TxD и GND); Не ізольований

COM3

RS-485 D2+,D2-;само-налаштування ASIC всередині

COM4

RS-232/RS-485 (RxD, TxD, CTS, RTS и GND для RS-232, Data+ и Data- для RS-485); Не ізольований

COM5

RS-232 (RxD, TxD, CTS, RTS, DSR, DTR, CD, RI и GND); Не ізольований

Робоча температура

-25 ~ +75 °C

3. Програмне оточення на основі OpenSCADA.

Вихідне програмне оточення представляє собою дистрибутив Linux з графічним оточенням Gnome та з встановленими драйверами спеціалізованого обладнання. Крім того, оточення містить компілятор "C" з LinPAC SDK, а також інтерпретатор мови Perl.

Враховуючи, що невідомо вихідного дистрибуту, який використано постачальником та як наслідок не омовлено можливість встановлення додаткового ПЗ, тоді використання такого оточення як є, по перше - обтяжливо, по друге - не може бути співставлено з наявними апаратними ресурсами. Крім того вихідне ядро Linux 2.6.18 далеке до пред'явлених вимог.

Виходячи з цих основних вимог, вирішено було створити повністю нове програмне оточення. В основу цього програмного оточення було покладено дистрибутив ALTLinux p5, ядро Linux 2.6.29-rt-up та OpenSCADA 0.6.4.2. Вибране ядро задовольняє всім пред'явленим вимогам, а дистрибутив ALTLinux p5 дозволяє збирати компактні прошивки під потрібні вимоги.

Вибір нового оточення поставив нас перед фактом відсутності вихідних текстів для драйверів специфічного обладнання постачальника. Цю проблему було вирішено сумісно з розробниками вихідного програмного оточення, які погодилися адаптувати та зібрати власні драйвера під потрібне ядро Linux. Архів цих модулів наявний тут.

Для реалізації підтримки обладнання контролерів LP-8x81 та модулів серії I-8000 було створено модуль DAQ.ICP_DAS для системи OpenSCADA. Модуль надає в систему OpenSCADA підтримку різноманітного обладнання фірми ICP DAS за посередництвом бібліотеки API фірми libi8k.a.

Прошивка програмного оточення створювалася у відповідністю з інструкцією тут. У доповнення до стандартних матеріалів було створено пакет з файлами потрібними для контролерів LP-8x81 kernel-modules-icp-rt-up-1.0.0-alt1.2.src.rpm. Крім того, профіль збірки прошивок було адаптовано на збірку для LP-8x81.

У процесі випробовування програмного оточення було виявлено, що стандартний драйвер мережевих контролерів "via-rhine" працює не коректно, а саме відбувається падіння швидкості мережі на порядок після нормальної роботи протягом від діб до тижнів. Проблему було вирішено адаптацією та збіркою драйвера "rhinefet" від VIA.

4. Заключення

У результаті було отримано та запущено у роботу прошивку програмного оточення, яка задовольняє всім поставленим вимогам. На цей час оточення працює на трьох контролерах LP-8781 та виконує функції:

  • швидкий збір даних вібродатчика по двох каналах на частоті 5 КГц;
  • спектральний аналіз сигналу вібродатчика та формування рівня завантаження шарового млина за двома каналами;
  • збір та видача даних за 18 аналоговими та 32 дискретними каналами загального призначення;
  • обчислення двох задач з алгоритмами загального значення, для керування млинами (період 500 мс);
  • обчислення двох задач з алгоритмами швидкого керування (період 100мс), для задач імпульсного керування;
  • обслуговування запитів з верхнього рівня (дві резервовані OpenSCADA - станції).

5. Посилання


14627