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

Среда исполнения ПЛК LP-8x81 фирмы ICP DAS на основе OpenSCADA

01.04.2010 16:18 Давность: 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. Ссылки


4540