Ім'я: LP8x81 Засновано: листопад 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 для контролерів цього сімейства. Пред'являлися наступні вимоги до середовища виконання та прошивки:
ПЛК (рис.1) конструктивно виконано за модульним принципом, де модулі встановлюються до кошика. Кошик сполучено з процесорним модулем та може мати 0, 3 або 7 слотів для модулів розширення. Модулі розширення можуть бути двох типів, а саме: модулі на паралельну та послідовну шини. Модулі на паралельній шині (I-8x) є швидкими. Модулі на послідовній шині (I-87x) встановлюються на шину інтерфейсу RS-485 та працюють зі швидкістю 115000 біт/с за протоколом DCON. Крім модулів безпосередньо у кошику контролер може розширюватися додатковими кошиками з модулями на послідовній шині (I-87x) через послідовний інтерфейси процесору.
Процесор контролера має наступні технічні характеристики:
CPU | AMD LX800 процесор (32-біт, 500 МГц) |
Системна пам'ять | 1 GB RAM |
SRAM з подвійним живленням від батареї | 512 КБ (зі збереженням протягом 5 років) |
Flash | 4 гБ як IDE Master; Читання: 8 МБ/c; Запис: 4 МБ/c |
EEPROM | 16 КБ Збереження даних: 40 років; 1,000,000 циклів видалення/запису. |
CF карта | 8 ГБ (підтримка до 32 ГБ); Читання: 29 МБ/c; Запис: 19, 13(233x) МБ/c |
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 |
Початкове програмне забезпечення представляє собою дистрибутив Linux з графічним оточенням Gnome та з встановленими драйверами спеціалізованого обладнання. Крім того, оточення містить компілятор "C" з LinPAC SDK, а також інтерпретатор мови Perl.
Враховуючи, що невідомо вихідного дистрибуту, який використано постачальником та як наслідок не омовлено можливість встановлення додаткового ПЗ, тоді використання такого оточення як є, по перше - обтяжливо, по друге - не може бути співставлено з наявними апаратними ресурсами. Крім того вихідне ядро Linux 2.6.18 далеке до пред'явлених вимог.
Виходячи з цих основних вимог, вирішено було створити повністю нове програмне оточення. В основу цього програмного оточення було покладено дистрибутив ALTLinux 5.1, ядро Linux 2.6.29-rt-up та OpenSCADA 0.6.4.2. Вибране ядро задовольняє всім пред'явленим вимогам, а дистрибутив ALTLinux 5.1 дозволяє збирати компактні прошивки під потрібні вимоги.
Вибір нового оточення поставив нас перед фактом відсутності вихідних текстів для драйверів специфічного обладнання постачальника. Цю проблему було вирішено сумісно з розробниками вихідного програмного оточення, які погодилися адаптувати та зібрати власні драйвера під потрібне ядро 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.
З часом збірку прошивки для LP-8x81 було здійснено на основі пакетної бази дистрибутиву "ALTLinux T6" зі збереженням ядра Linux 2.6.29-rt-up, що дозволило:
У результаті було отримано та запущено у роботу прошивку програмного оточення, яка задовольняє всім висунутим вимогам. На цей час оточення працює на трьох контролерах LP-8781 та виконує функції: