Имя: LP8x81 Основан: ноябрь 2009г Версия: 1.0.0 Статус: GPL Участники: Роман Савоченко Описание: Проект посвящён созданию среды исполнения ПЛК для контроллеров серии LP-8x81 фирмы ICP DAS. Материалы: ftp://ftp.oscada.org/OpenSCADA/PLC/LP8x81 |
Промышленные контроллеры семейства 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 в слотах [/dev/ttySA0] |
COM2 | RS-232 [/dev/ttySA1] (RxD, TxD и GND); Не изолирован |
COM3 | RS-485 [/dev/ttyS0] D2+,D2-;само-настройка ASIC внутри |
COM4 | RS-232/RS-485 [/dev/ttyS1] (RxD, TxD, CTS, RTS и GND для RS-232, Data+ и Data- для RS-485); Не изолирован |
COM5 | RS-232 [/dev/ttyS34] (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" c сохранением ядра Linux 2.6.29-rt-up, что позволило:
В результате была получена и запущена в работу прошивка программного окружения, удовлетворяющая всем поставленным требованиям. На данный момент это окружение работает на трёх контроллерах LP-8781 и выполняет функции: