Имя: LP8x81 Основан: ноябрь 2009г Версия: 1.0.0 Статус: GPL Участники:Роман Савоченко Описание: Проект посвящён созданию среды исполнения ПЛК для контроллеров серии LP-8x81 фирмы ICP DAS. Материалы:ftp://ftp.oscada.org/OpenSCADA/PLC/LP8x81
Введение
Промышленные контроллеры семейства LP-8x81 фирмы ICP DAS являются первым продуктом из серии Lin PAC, который построен на x86 совместимом процессоре, предыдущие контроллеры этого семейства основаны на процессоре семейства ARM. Кроме x86 процессора рассматриваемые контроллеры обладают значительными ресурсами оперативной памяти и дискового пространства. Всё это позволило рассматривать данные контроллеры как первого кандидата из продукции ICP DAS для адаптации Open SCADA в качестве среды исполнения.
Основанием для адаптации Open SCADA в качестве среды исполнения контроллеров семейства LP-8x81 стала необходимость создания АСУ ТП управления нагрузкой шаровых мельниц помола угля для ТЭЦ. Особенностью данного технологического процесса (ТП) является наличие специфических к ресурсам и функциям контроллера требований при небольшом объёме параметров. Кроме того, решающим фактором было ограниченное финансирование. Всем предъявленным требования удовлетворили контроллеры семейства LP-8x81:
сравнительно невысокая цена;
достаточно высокая производительность для ПЛК;
архитектурная и программная открытость ПЛК;
промышленное исполнение и расширенный температурный диапазон.
Целью данного проекта было создание среды исполнение на основе Open SCADA, а также прошивки с ОС Linux и Open SCADA для контроллеров этого семейства. Предъявлялись следующие требования к среде исполнения и прошивке:
поддержка модулей семейства I-8000 в Open SCADA, включая быстрый режим для быстрых модулей аналогового ввода;
поддержка функций спектрального анализа сигналов в Open SCADA;
включение в прошивку ядра ОС Linux с поддержкой таймера реального времени высокого разрешения, низкой латентностью и расширением жёсткого реального времени;
пересборка драйверов специфичного оборудования производителя для нужного ядра;
формирования упакованного образа прошивки для надёжной работы в экстремальных условиях.
1. ПЛК LP-8x81
ПЛК (рис.1) конструктивно выполнен по модульному принципу, где модули устанавливаются в корзину. Корзина совмещена с процессорным модулем и может иметь 0, 3 или 7 слотов для модулей расширения. Модули расширения могут быть двух типов, а именно: модули на параллельной и последовательной шине. Модули на параллельной шине (I-8x) являются быстрыми. Модули на последовательной шине (I-87x) устанавливаются на шину интерфейса RS-485 и работают со скоростью 115000 бит/с по протоколу DCON. Кроме модулей непосредственно в корзине контроллер может расширяться дополнительными корзинами с модулями на последовательной шине (I-87x) через последовательные интерфейсы процессора.
Рис. 1. ПЛК серии LP-8x81.
Процессор контроллера имеет следующие технические характеристики:
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] (Rx D, Tx D и GND); Не изолирован
COM3
RS-485 [/dev/ttyS0] D2+,D2-;само-настройка ASIC внутри
COM4
RS-232/RS-485 [/dev/ttyS1] (Rx D, Tx D, CTS, RTS и GND для RS-232, Data+ и Data- для RS-485); Не изолирован
COM5
RS-232 [/dev/ttyS34] (Rx D, Tx D, CTS, RTS, DSR, DTR, CD, RI и GND); Не изолирован
Рабочая температура
-25 ~ +75 °C
2. Программное окружение на основе Open SCADA.
Исходное программное обеспечение представляет собой дистрибутив Linux с графическим окружением Gnome и с установленными драйверами специализированного оборудования. Кроме этого, окружение содержит компилятор "C" с Lin PAC SDK, а также интерпретатор языка Perl.
Учитывая, что неизвестен исходный дистрибутив, который использован поставщиком и как следствие не оговорена возможность установки дополнительного ПО, то использование такого окружения как есть, во-первых, затруднительно, во-вторых, не сопоставимо с доступными аппаратными ресурсами. Кроме того исходное ядро Linux 2.6.18 далеко до предъявленных требований.
Исходя из этих основных причин, решено было создать полностью новое программное окружение. В основу этого программного окружения лёг дистрибутив ALTLinux p5, ядро Linux 2.6.29-rt-up и Open SCADA 0.6.4.2. Выбранное ядро удовлетворяет всем предъявленным требования, а дистрибутив ALTLinux p5 позволяет собирать компактные прошивки под нужные требования.
Выбор нового окружения поставил перед фактом отсутствия исходных текстов для драйверов специфичного оборудования поставщика. Эта проблема была решена совместно с разработчиками исходного программного окружения, которые согласились адаптировать и собрать свои драйвера под нужное ядро Linux. Архив этих модулей доступен здесь.
Для реализации поддержки оборудования контроллеров LP-8x81 и модулей серии I-8000 был создан модуль DAQ.ICP_DAS для системы Open SCADA. Модуль предоставляет в систему Open SCADA поддержку различного оборудования фирмы 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.
3. Заключение
В результате была получена и запущена в работу прошивка программного окружения, удовлетворяющая всем поставленным требованиям. На данный момент это окружение работает на трёх контроллерах LP-8781 и выполняет функции:
быстрый сбор данных вибродатчика по двум каналам на частоте 5 КГц;
спектральный анализ сигнала вибродатчика и формирование уровня загрузки шаровой мельницы по двум каналам;
сбор и выдача данных по 18 аналоговым и 32 дискретным каналам общего назначения;
вычисление двух задач с алгоритмами общего назначения, для управления мельницами (период 500 мс);
вычисление двух задач с алгоритмами быстрого управления (период 100мс), для задач импульсного управления;
обслуживание запросов с верхнего уровня (две резервированные Open SCADA - станции).