OpenSCADAWiki: Using/PLC/firmware ...

Home | Каталог | Изменения | Комментарии | Пользователи | Регистрация | Вход  Пароль:  
 

Прошивка и создание программного окружения ПЛК архитектуры x86

Архитектура x86 сравнительно недавно стала позиционироваться как встраиваемая и реальные решения на её основе, в этой области, редко обладают ресурсами (< i386), недостаточными для исполнения полноценной ОС и развитого окружения. По этой причине, а также по причине большей унификации архитектуры, индивидуальная сборка ядра Linux и базовых программ окружения ОС осуществляется достаточно редко, что обычно характерно для архитектуры ARM. Более интересным и практичным для x86, для широкого спектра оборудования, является сборка прошивок со сжатой корневой файловой системой (КФС). Однако по прежнему возможна индивидуальная сборка прошивок с помощью систем сборок вроде "BuildRoot" или "PTXDist", ниже. Также возможна и прямая установка дистрибутива Linux.

Инструменты и сборка рабочих окружений прошивок со сжатой КФС, на основе дистрибутива ALTLinux

Перед реализацией прошивки ПЛК, данного раздела, ставились следующие требования:


Учитывая вышеприведенные требования для создания прошивки был выбран инструмент создания дистрибутивов mkimage ALTLinux. mkimage — инструмент для сборки по шаблону образов основанной на Sisyphus системы. В качестве исходного набора шаблонов был взят набор шаблонов формирования дистрибутивов ALTLinux по адресу git://git.altlinux.org/people/boyarsh/packages/mkimage-profiles-desktop командой:

За основу формирования ПЛК-шаблона был взят стандартный "rescue", как наиболее компактный и близкий к целевой задаче ПЛК.


Первичная сборка осуществлялась на основе пакетной базы дистрибутива ALTLinux 5.1, где присутствует ядро реального времени от XENOMAI. Для получения ряда специфических пакетов нужно подключить репозиторий "ALTLinux 5.1" от проекта OpenSCADA:

rpm ftp://ftp.oscada.org/ALTLinux/5.1 openscada main

Сборка

В первую очередь создавалась конфигурация ПЛК без локального дисплея, в виду наличия оборудования такого типа и отсутствия оборудования для Touch-панелей.


Новый шаблон ПЛК был назван "plc" и тестировался на платах формфактора PC/104 MOPSlcdLX фирмы Kontron, ATH400-128 фирмы Diamond Systems и модульного ПЛК LP-8781 фирмы ICP DAS. Архив результирующего дерева mkimage с шаблоном "plc" можно загрузить здесь ftp://ftp.oscada.org/OpenSCADA/PLC (шаблоны и материалы отдельных контроллеров размещены в собственных директориях).


Ключевым моментом конфигурации нового шаблона стало написание скрипта инициализации (rc.sysinit), скрипта после-инсталляционной конфигурации образа прошивки и перечня пакетов в образе прошивки. Первый скрипт оформлен в виде пакета "startup-plc". Второй скрипт вложен в шаблоне "plc" по пути: "profiles/plс/image-scripts.d/01system". Перечень пакетов вложен в шаблоне "plc" по пути: "profiles/pkg/lists/plс.in".


Процедура создания прошивки из шаблона следующая:


В результате получаем выходную директорию в "profiles/out/" вида:

Инсталляция

Загружать прошивку можно на: USB-flash, HDD и SSD. Однако в случае с USB-flash может быть проблема с ожиданием инициализации USB-подсистемы и нужно будет немного "побегать" по диалогам загрузчика.


Файловая система может быть FAT или EXT2/3. В случае с EXT3 монтирование корня производится как EXT2, из-за проблем в инициализаторе. В случае с EXT2/3 нужно будет использовать не загрузчик syslinux, а extlinux, конфигурация которого впрочем почти ничем не отличается.


Далее монтируем носитель и размещаем на нём файлы из выходной директории, следующим образом.
В случае с FAT и syslinux:

В случае с EXT2/3 и extlinux:


Для обеспечения надёжного функционирования рабочие данные размещаются в файле "work" с файловой системой EXT3. Файловая система этого файла проверяется на целостность при инициализации. Создаётся этот файл следующим образом:


В случае с файловой системой EXT2/3 на целевом диске можно файл "work" не создавать. Тогда рабочие данные будут размещаться в директории root целевого диска.

 (2 Кб) Это ненадёжное решение, поскольку корневая файловая система целевого диска становится нестатичной, а проверять её нет возможности, ввиду раннего монтирования в "ro" и потенциальной ненадёжности проверки ФС, смонтированной в "ro", а так же невозможности перемонтировать как EXT3.

Следующим этапом является конфигурация и инициализация загрузчика. Для конфигурации загрузчика нужно отредактировать файл "syslinux/syslinux.cfg" или "extlinux/extlinux.conf" следующим образом:


В случае выбора идентификации загружаемого раздела по индивидуальному идентификатору, узнать его для нашего раздела можно командой: blkid.


В случае с меткой эта задача чуть сложнее поскольку делается она для разных файловых систем по разному.


Для файловых систем EXT2/3 это делается утилитой e2label. Например, так: $ e2label /dev/sdb1 PLС


Для файловой системы FAT это делается набором утилит из комплекта mtools или с помощью parted, что проще. С помощью mtools это делается следующим образом:


Теперь можем инициализировать загрузчик:


На этом с загрузкой и инициализацией прошивки всё. Если полученный диск не грузится то:

Результат

В результате получаем прошивку размером от 30 до 100Мб, удовлетворяющую фактически всем заявленным требованиям и обеспечивающую:

OpenSCADA

В качестве среды исполнения ПЛК используем систему OpenSCADA. Для данного случая возьмём сборку с отдельными пакетами на каждый модуль и укажем для установки виртуальный пакет "openscada-plc", который содержит зависимости на все пакеты OpenSCADA, обычно используемые для данной конфигурации. Пакет графической библиотеки GD2 был пересобран без поддержки формата графического файла "xpm" и получил название "libgd2-noxpm". Пересборка делалось для того чтобы исключить тяжелые зависимости на библиотеки графического интерфейса XOrg.


В результате получилась среда исполнения ПЛК с поддержкой:


Конфигурация OpenSCADA запускается в режиме демона, в локали "en_US.UTF-8" (ещё доступны локали "ru_RU.UTF-8" и "uk_UA.UTF-8"), с использованием локальной БД SQLite, предоставляя по умолчанию сетевые сервисы:

Детали реализации

В этом разделе рассмотрим детали дерева ОС прошивки, скрипт инициализации "rc.sysinit.plc" и скрипт подготовки дерева ОС прошивки.


Для построения прошивки ПЛК использовался следующий перечень пакетов:


Перечень модулей ядра Linux, стадии предварительной инициализации, с целью уменьшения размера образа инициализации был уменьшен до списка:


В скрипте подготовки дерева были добавлены функции:


Скрипт инициализации (rc.sysinit.plc) был наделён функциями:


В результате этих мероприятий таблица монтирования конечного дерева ПЛК приняла вид:

Настройка графического интерфейса

Один из вариантов прошивки собирается с графическим интерфейсом, который, однако, нужно настроить для получения автоматического запуска со средой визуализации OpenSCADA. Кроме того нужно отметить, что прошивка с графическим интерфейсом не содержит всех драйверов и может потребоваться её пересборка под нужное оборудование.


После загрузки и входа в консоль нужно сконфигурировать XServer, автоматический графический вход, запуск графического окружения и автоматический запуск OpenSCADA из окружения IceWM:

Пакетная база ALTLinux T6

Следующим этапом в создании прошивок стал переход на пакетную базу дистрибутива ALTLinux T6. В целом процедура создания прошивки была сохрана, с рядом изменений, но при этом были добавлены некоторые улучшения и расширения:


Поскольку появилась возможность легко доустанавливать нужные пакеты прямо из репозитория то отпала необходимость в отдельной сборке прошивок с GUI. Т.е. можно легко доустановить нужный оконный менеджер (WM) или окружение рабочего стола с необходимыми драйверами, чем создавать отдельную прошивку с ограниченным перечнем драйверов.


Скрипт "startup-plc" оказался ненужен в новых прошивках поскольку перемонтирование на запись корневой ФС "root" осуществляется ранее, на стадии первичной инициализации. Скрипт "profiles/plс/image-scripts.d/01system" переименован в "profiles/plс/image-scripts.d/init1-PLC", несколько изменён и расширен. Перечень пакетов прошивки остался в "profiles/pkg/lists/plс.in" и несколько изменён.


Для получения ряда специфических пакетов нужно подключить репозиторий "ALTLinux T6" от проекта OpenSCADA:

rpm ftp://ftp.oscada.org/ALTLinux/t6 openscada main

Процедура создания прошивки из шаблона фактически не изменилась:

# Создание скрипта конфигурации "configure"
$ ./autoconf
# Конфигурация сборщика для генерации образов дисков. Ключ "--with-imagetype" можно установить в "iso", или опустить,
# для создания комбинированного ISO-образа
$ ./configure --with-distro=kdesktop --with-branding=altlinux-kdesktop --with-version=6.0 --with-language=en_US --with-imagetype=flash
# Сборка образа
$ make plc.cd


Содержимое выходной директории с образом и установка прошивки на файловую систему FAT и EXT2/3/4 отличается только переименованием файла архива ФС с "plc" в "live". Установка ISO-образа на USB-flash, HDD, SSD выполняется командой dd:

$ dd if=LP8x81-ALTLinuxT6-OpenSCADA_0.8.0.6-i586-plc.iso of=/dev/sd{x} bs=4096

Вместо файла "work" нужно создать раздел EXT3 с меткой "alt-live-storage", если это не ISO-образ. Создавать новый раздел можно с помощью fdisk, если FAT раздел был создан не на всём доступном пространстве диска, или с помощью parted, где раздел FAT можно уменьшить. За деталями создания раздела отошлём к документации на fdisk или parted.


Конфигурация файлов "syslinux/syslinux.cfg" и "extlinux/extlinux.conf" не изменилась, кроме смены имени архива ФС с "plc" на "live".


В результате получаем прошивку размером от обеспечивающую:


Для построения прошивки ПЛК использовался следующий перечень пакетов:


Перечень модулей ядра Linux, стадии предварительной инициализации, был несколько изменён и составил:


Скрипт подготовки дерева "profiles/plс/image-scripts.d/init1-PLC" выполняет функции:

Ядро реального времени

Для ряда задач ПЛК важным, часто и критическим, критерием окружения является его уровень обеспечения реального времени (RealTime), т.е. возможность работы задач согласно приоритетам реального времени и обеспечение реакции на события согласно этим приоритетам.


Ядро Linux само по себе предоставляет POSIX политики планирования в реальном времени "SCHED_FIFO" и "SCHED_RR" с диапазоном приоритетов (0...100). Однако важный критерий "Частота таймера и время реакции на него" до версий ядер Linux 2.6.24 были очень низки, по меркам систем реального времени. В современных ядрах Linux (> 2.6.24) обеспечена поддержка таймеров высокого разрешения (HPET), что уменьшило время реакции на таймер до уровня 100 микросекунд, однако стабильность этого времени реакции не обеспечена. Для обеспечения стабильности реакции на таймер на уровне 60 микросекунд, а также ряда других критериев реального времени, на данный момент, нужно ядро собирать с одним из расширений реального времени.


В дистрибутивах ALTLinux замечено ядро 2.6.29-rt-up, которое собрано с расширением реального времени XENOMAI. В других дистрибутивах, например OpenSuSE замечены даже продукты с такими расширениями.


На данный момент более высокие показатели реального времени обеспечивает расширение The Real Time Preempt Patch, при включении полной поддержки (CONFIG_PREEMPT_RT), процесс сборки и результаты работы Linux ядер с которым будут отслеживаться в этом разделе.


Для тестирования уровня реального времени тех или иных ядер будем пользоваться утилитой "Cyclictest", типовая строка вызова и аргументы будут такимим: "$ cyclictest -t1 -c1 -p 80 -n -i 200 -l 100000". Где:


Пара измерений для ядер Linux общего назначения:

kernel-image-rt-up-2.6.29

Данное ядро содержится в дистрибутиве ALTLinux 5.1, а также перенесено в локальный репозиторий проекта OpenSCADA, для ALTLinux T6. Это ядро собрано с расширением XENOMAI и AUFS, что позволяет использовать его в прошивках с упакованной КФС, что и сделано для ПЛК LP-8x81.


Результаты тестов этого ядра:


Как видно из результатов теста, патч XENOMAI не обеспечивает достойного уровня реального времени при использовании стандартных механизмов планирования реального времени POSIX, в то время как ядра версии 3 даже без наличия особый расширений реального времени обеспечивают заметно лучший результат.


Необходимость сборки именно этого ядра с патчем/параметром CONFIG_PREEMPT_RT стоит по причине наличия ряда бинарных модулей от ICP_DAS, для "LP8x81". Также стоит вопрос сборки ядра 2.6.33 по той-же причине, но для "LP8x81 Atom". Предварительные сборки ядер 2.6.29 и 2.6.33 выявили ряд проблем, которые будут тут описаны. Рассматривается также вариант сборки современного ядра с CONFIG_PREEMPT_RT, а затем запрос на сборку бинарных модулей у "ICP DAS".


Процесс сборки и тестирования:

  1. Патчи CONFIG_PREEMPT_RT и AUFS времён 2.6.29 конфликтуют на функции "debug_mutex_set_owner()", в CONFIG_PREEMPT_RT удалена — заменена на "mutex_set_owner()".
  2. При сборке выявлен ряд проблем с "# typedef void irqreturn_t;" — заменено на "#include <linux/irqreturn.h>".
  3. Первый запуск с CONFIG_PREEMPT_RT, но без AUFS, прошёл успешно — результат выше.
  4. Запуск с AUFS выявил проблему выделения памяти AUFS в "aufs_mmap()" — рабочий код AUFS взят целиком из предыдущей сборки "rt-up-2.6.29.alt2".
  5. Запуск с AUFS выявил проблему зависание на корне ФС в AUFS, похоже из-за возможности зацикливания/блокирования RT-задачи — установлено CONFIG_PREEMPT_NONE, на LP8781 и "AMD Turion" проблем не выявлено (возможно эта проблема из-за отсутствия HPET на PLX8).
  6. На первый взгляд ядро работает нормально, но замечено соскальзывание на непрерывное нарастание времени запаздывания.
  7. Выполнена адаптация ядра для бинарной совместимости с модулями "slot" и "icp" от ICP_DAS. Модуль "8250_linpac" падает при загрузке, а "icpdas_8250" имеет множество неразрешённых символов — нужно эти модули пересобирать или пробовать интерфейсы > COM2 инициализировать через setserial — модули пересобраны, спасибо Golden Wang (тех. поддержка ICPDAS).
  8. Новое ядро установлено под высокую нагрузку, конфигурацией проекта САУ шаровых барабанных мельниц:
    • Сбой сети с драйвером "via_rhine", после 4 суток работы — сбой ожидаем, собран драйвер "rhinefet", испытание продолжено.
    • На драйвере "rhinefet" система под нагрузкой проработала три недели. Однако замечено, что прерывание 11, на котором висит почти всё стандартное оборудование (USB, Ethernet и может ещё чего), отключается и сеть работает в режиме "Pool", что медленнее. Возможно отключение этого прерывания происходит и с "via_rhine", а он не может работать в режиме "Pool", почему и пакеты в/из сети не ходят. Проблема связана со сбоем и генераций необработанных прерываний одним из оборудования на прерывании 11.
    • Исправлено исключением отключения прерываний с помощью параметра ядра Linux "noirqdebug".
    • Адаптация успешно завершена и прошивки на основе этого ядра готовы к промышленной эксплуатации!
    • 01.03.2015: Вместо функции EnableWDT() использовано EnableSysWDT(), в виду ограничения до 30 секунд и циклических перегрузок если не загружается за 30 секунд (до трёх перегрузок).
    • 17.03.2015: При участии службы поддержки ICP_DAS исправлена проблема драйвера последовательных интерфейсов более COM2, приводящая к "замораживанию" ядра Linux (похоже в виду блокирования прерываний) после закрытия одного порта и активности на хотя-бы одном другом.
    • 29.07.2015: Обнаружена ещё одна проблема с сетью с похожими симптомами отключения прерывания 11, но: прерывание 11 не отключается и все остальные устройства на нём работают, воспроизводится только на конфигурациях с использованием обоих интерфейсов сети, причём возможно "затормаживание" только одного из них. Проблема решается только перегрузкой "заторможенного" сетевого интерфейса, командой: ifdown eth0; ifup eth0. Для обнаружения и перезапуска рекомендуется на уровне OpenSCADA добавлять контроль трафика и непосредственную перегрузку интерфейса по его отсутствию.
    • 21.11.2016: Драйвер "rhinefet" адаптирован на предмет предотвращения блокирования прерываний и выключения вектора прерываний поскольку режим SHARE используется. На данный момент драйвер работает однако 19.12.2016 также было замечено замедление сети с двумя этими адаптерами после более двух недель работы.
     (2 Кб) Т.е. это оборудование сломано для работы двух адаптеров и в этом ПЛК вы можете использовать только один, для стабильной работы!

 (2 Кб) Полученное ядро, переименовано в "kernel-image-rt1-up-2.6.29.alt1", можно использовать для PLC с HPET или таймером высокого разрешения, а также в "LP-8x81" и "LP-8x81 Atom" (только одно ядро)!

kernel-image-rt-up-2.6.33

Сборка ядра версии 2.6.33 нужна для контроллеров фирмы "ICP DAS" LP-8x81 и LP-8x81 Atom по причине наличия именно для него, с патчем CONFIG_PREEMPT_RT, бинарных драйверов "ICP DAS", для LP-8x81 Atom.


Результаты тестов этого ядра:


Процесс сборки и тестирования:

  1. Сборка ядра из исходников "ICP DAS" (2.6.33.7) и конфигурацией, наследованной с ядра 2.6.29 (исходные тексты содержат подозрительно много *.rej файлов, а также "staging/comedi" несобираемый) — грузится и в целом работает; модули "ipic" и "slot" грузятся; модуль "8250_linpac" падает в функции "platform_device_add"; ряд программ зависает на операциях с ФС, с сообщением: "task openscada:2153 blocked for more than 120 seconds".
  2. Замена AUFS на версию из 2.6.29-rt1 — падает в rtmutex прямо на загрузке; замена на официальную из git показала тот-же результат, исходно использован патч "aufs+sqfs4lzma-2.6.33.patch" от DLink.
  3. Сборка оригинального ядра с патчами CONFIG_PREEMPT и AUFS — проблема снова с AUFS, но теперь он "/sbin/mingetty" в конце найти не может.
  4. Сборка оригинального 2.6.33.9 ядра с патчами CONFIG_PREEMPT и AUFS — проблемы те-же.
  5. Сборка из исходников "ICP DAS" (2.6.33.7) для SMP — модуль OpenSCADA DAQ.JavaLikeCalc падает по непонятной причине.
  6. Сборка оригинального ядра с патчами CONFIG_PREEMPT и AUFS для SMP — та-же проблема, что и без SMP, разве только не сразу, а на примерно пятом потоке.

 (2 Кб) На данный момент ядро 2.6.33 в связке с CONFIG_PREEMPT_RT и AUFS нерабочее. Следовательно если нужна будет работа на "LP-8x81 Atom" то рекомендуется использовать исходное Linux окружение, собрав и установив OpenSCADA туда.

Diamond Systems ATH400, DMM32

Платы от "Diamond Systems" стали первыми на который тестировалась и стабилизировалась OpenSCADA. Первой платой стал одноплатный компьютер Документ PDFATH400 формфактора PC/104, представлена на рисунке ниже. На этом компьютере окружение ОС, по началу, устанавливалось традиционным способом, а затем согласно изложенной выше концепции создания прошивки.


Аппаратные характеристики платы:

Центральный процессор: VIA Eden 400-660MHz
Оперативная память: 128MB, запаяно на плату
Постоянная память: IDE (44) порт с UDMA-33
Видео подсистема: S3 Savage 4 Chipset с расширенным 3D/2D видео; поддерживаются плоские панели, CRT и LCD
Аудио подсистема: присутствует
Интерфейсы/порты: 10/100Mbps Ethernet; 4 RS-232 последовательных порта; 4 USB 1.1 порта; PS/2 клавиатура и мышь
Источник питания: +5VDC ±10% @ 2A
Рабочие условия: -40 ... +85°C
DAQ: 16AI (16 бит, 100 кГц), 4AO, 24DIO, 2CNTR

Первой задачей этой платы и OpenSCADA была реализация функции высокочастотного (10 КГц * 8 каналов) архиватора сигналов газового компрессора для изучения явления помпажа на Анастасиевской ГЛКС.


Второй задачей стал прототип ПЛК узлов электроподстанций. Уже для этой задачи прошивка собиралась на основе новой пакетной базы. В рамках этой задачи модуль опроса данных плат "Diamon Boards" был унифицирован для поддержки всех плат производителя.


Diamond ATH400–128 (181 Кб)

Второй платой стала плата УСО Документ PDFDMM32-AT, представлена на рисунке ниже. Плата использовалась для создание макетов и эмуляторов поля технологического ПО. Плата имеет характеристики:

Источник питания: +5VDC ±10% @ 200mA
Рабочие условия: -40 to +85°C
DAQ: 32AI (16 бит, 200 кГц), 4AO, 24DIO, 2CNTR

Diamond DMM-32X-AT (153 Кб)

Исследование шумовых свойств высокоимпедансных входов плат от Diamond Systems в различных условиях сведено в таблице ниже:

Условия Внешний БП: Уровень шума, мВ [Гц] Внутренний БП: Уровень шума, мВ [Гц] Примечания
(10 кГц, ±0.625 В, 20 мкс), Заземлены-32 0.08 [-]
(10 кГц, ±5 В, 20 мкс), Заземлены-32 0.5 [-] 0.35 [-]
(10 кГц, ±5 В, 20 мкс), Заземлены-31, Нагрузка ∞ 5 [50, 270] 18 [50, 150]
(10 кГц, ±5 В, 20 мкс), Заземлены-31, Нагрузка 1мОм 10 [50, 270]
(10 кГц, ±5 В, 20 мкс), Заземлены-31, Нагрузка 100кОм 7 [150, 50, 270] 7 [-]
(10 кГц, ±5 В, 20 мкс), Заземлены-31, Нагрузка 10кОм 4.5 [100] 6 [-]
(10 кГц, ±5 В, 20 мкс), Заземлены-31, Нагрузка 1кОм 0.9 [150] 1 [-]
(10 кГц, ±5 В, 20 мкс), Заземлены-31, Нагрузка 100Ом 0.5 [-] 0.5 [-]

Kontron MOPSlcdLX

MOPSlcdLX представляет собой одноплатный компьютер формфактора PC/104, представлен на рисунке ниже. Данный компьютер привлёк внимание по причине сравнительно небольшой цены, за счёт обычного диапазона эксплуатации и меньшего энергопотребления и как следствия меньшего нагрева.


Аппаратные характеристики платы:

Центральный процессор: AMD LX800™ 500 MHz, безвентиляторный
Оперативная память: DDR-RAM-SODIMM сокет
Постоянная память: IDE (44) порт
Видео подсистема: встроенная графика с поддержкой вывода на плоские панели, CRT и LCD
Аудио подсистема: нет
Интерфейсы/порты: 10/100Mbps Ethernet (Intel® 82551ER); 2 RS-232 последовательных порта; 2x USB 2.0; PS/2 клавиатура и мышь, Floppy, LPT
Источник питания: +5VDC ±10% @ 1A
Рабочие условия: 0 ... 60°C

Плата использовалась для опробования создания станций/панелей оператора с OpenSCADA, в подобном окружении. В последствии всплыл ряд проблем с этой платой:


На данный момент, на основе этой платы, готовится "Программный осциллограф", для чего на неё успешно загружена современная прошивка с ядром "std-def" и доустановлена плата DMM-32X-AT, о которой выше.


PLC (90 Кб)

Tri-M VSX104

VSX104 представляет собой одноплатный компьютер формфактора PC/104, представлен на рисунке ниже. Данный компьютер привлёк внимание по причине небольшой цены и низкого энергопотребления (< 2Вт) и как следствия меньшего нагрева. Однако в виду использования на ней процессора "Vortex86SX-300 МГц" требуется особый подход к формированию окружения ОС, поскольку использован набор инструкций i486 и отсутствует математический сопроцессор.


Аппаратные характеристики платы:

Центральный процессор: DM&P SoC Vortex86SX-300 МГц
Оперативная память: 128 МБ DDR2 RAM распаяно на плате
Постоянная память: слот CompactFlash Type I, microSD и 2 порта EIDE (Ultra DMA 100)
Видео подсистема: нет
Аудио подсистема: нет
Интерфейсы/порты: 10/100Mbps Ethernet; 4 RS-232 последовательных порта; 2x USB 2.0; PS/2 клавиатура и мышь, LPT, Резервирование, SPI
Источник питания: +5VDC ±10% @ 370mA
Рабочие условия: -40 ... 85°C
DAQ: 1 порт 16-битного GPIO

На данный момент решений на этой плате нет, однако планируется собрать для неё окружение, возможно для автономной системы учёта.


VSX104 (225 Кб)

 (2 Кб) Перенаправление интерфейса BIOS на COM-порт можно принудительно включить заземлением 10 пина COM-порта.

ICOP VDX-6354D

VDX-6354D представляет собой одноплатный компьютер формфактора PC/104, представлен на рисунке ниже. Данный компьютер построен на процессоре "DM&P SoC CPU Vortex86DX- 800MHz", который производительнее "Vortex86SX-300 МГц" в предыдущем разделе, однако и энергопотребление этой платы уже не 2, а 4 Вата больше на странице проекта


 (23 Кб)

ICP DAS LP-8x81

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


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

Avalue Сенсорная панель FPC-1701

Фирма Avalue, совместно с её дистрибютером в России фирмой ElTech, предоставляет широкий спектр панельных ПК, которые могут использоваться начиная с обычных офисных моноблоков и заканчивая промышленными сенсорными панелями в фронтальном исполнении класса IP65. В виду использования стандартного оборудование запуск и работа OpenSCADA на них не вызывает проблем больше на странице проекта.


 (214 Кб)

iROBO-3000a

iROBO-3000a представляет из себя безвентиляторный промышленный компьютер с установленным Intel Atom D425 1.8 GHz с VGA, 2xGb LAN, 4xCOM, 4xUSB, 1GB RAM, 1x2.5" SATA HDD 120GB, Mini-PCIe, 4x4 DIO, CF слот, SIM Card слот, Audio, WDT, рабочий диапазон температур -5...+55°С. Производительности данного компьютера достаточно для выполнения как функций сервера сбора, контроля и управления, так и функций станции визуализации. Однако ввиду использования непроизводительного процессора семейства "Atom" выполнение математических моделей технологических процессов потребует всех ресурсов процессора. Например, при исполнении математической модели АГЛКС процессор нагружается на 86%. Контроллер имеет сертификат "УкрСЕПРО", что может быть важным для многих пользователей на территории Украины.


iROBO-3000a (541 Кб)

Рабочее окружение OpenSCADA для этого компьютера строилось на основе пакетной базы дистрибутива ALTLinux T6, а также свежесобранного окружения рабочего стола Trinity (TDE). Сборка окружения осуществлялась на основе вышеописанной концепции с помощью обновлённого профиля "mkimage". В новый профиль также была добавлена цель "plc", однако её суть изменилась, фактически став копией цели "live", что стало возможным благодаря внедрению на этапе первичной инициализации прозрачного монтирования раздела с меткой "alt-live-storage" как отражения упакованной файловой системы с произвольным доступом на модификацию. В целом это позволило создать фиксированное ядро прошивки с базовым набором программного окружения размером 300Мб и возможностью свободного расширения путём доустановки нужных пакетов из дистрибутива.


В качестве окружения рабочего стола было выбрано "Trinity" по причине наличия проблемы фонового артефактинга в связке XOrgServer 1.10 + Qt4, а также малой ресурсоёмкости TDE при высокой развитости и стабильности.


Архив профилей сборки нового окружения получил название mkimage-profiles-6-kdesktop.tgz, а последняя сборка прошивки ALTLinux_6-OpenSCADA_0.8.1-TDE_3.5.13.1-i586-flash.tar.

Advantech PCA-6753, PPC-L126

Фирма Advantech выпускает широкий спектр оборудования для автоматизации, начиная от панельных ПК и заканчивая модулями сбора данных ADAM.


В рамках проекта системы сбора и визуализации котла №1 цеха ТЭЦ в руки попал панельный ПК PPC-L126 и индустриальный ПК на шасси IPC-6608, с процессорной платой PCA-6753.


Индустриальный ПК "PCA-6753" имеет следующие характеристики:

Центральный процессор: Мало-потребляющий NS GXm-200 МГц (безвентиляторный)
Оперативная память: 64 МБ DIMM SDRAM
Постоянная память: SSD DiskOnChip® 2000, IDE (40 pin, UDMA 33, 256МБ IDE Flash)
Видео подсистема: CX5530 VGA/LCD и 18-бит LCD TFT
Аудио подсистема: нет
Интерфейсы/порты: 10/100Mbps Ethernet (RTL-8139); RS-232 + RS-232/422/485 последовательные порты; 2 x USB 1.1 (хост), IR порт; LPT; Floppy
Источник питания: +5VDC ±10% @ 1.54A
Рабочие условия: 0 ... 60°C

ПЛК PCA-6753F в системном блоке IPC-6608. (68 Кб)

Данный контроллер является уже достаточно старым и низкопроизводительным для современного программного обеспечения однако для задач среды исполнения ПЛК он ещё годится и на него была успешно загружена прошивка на основе пакетной базы ALTLinux 5.1. При этом о реальном времени речь не велась, в виду отсутствия таймера высокого разрешения (HPET).


Панельный ПК "PPC-L126" имеет следующие характеристики:

Центральный процессор: VIA Eden 667 MHz
Оперативная память: Два 168-pin DIMM сокет (128 МБ)
Постоянная память: CompactFlash типа I/II, IDE (44 pin, UDMA 33/66/100, 10 ГБ)
Видео подсистема: VIA Savage4 2D/3D/Video, сенсорный экран 12.1", фронтальная панель: IP65/NEMA4
Аудио подсистема: AC97 Ver. 2.0
Интерфейсы/порты: 10/100Mbps Ethernet (RTL-8139); 3 x RS-232 + RS-232/422/485 последовательные порты; 2 x USB 1.1 (хост); PS/2 клавиатура и мышь; LPT
Источник питания: 19VDC @ 3.3A
Рабочие условия: 0 ... 40°C

PPC-L126 (18 Кб)

Панельный ПК также обладает малыми ресурсами для запуска современного графического окружения, поэтому для установки на него использовался дистрибутив "ALTLinux T6" с рядом мероприятий по оптимизации:


Приведенные мероприятия позволили втиснуться в 128 МБ оперативной памяти и получить при этом развитое и производительное графическое окружение. Для настройки сенсорного экрана ELO использовался пакет с драйвером "elographics" — "xorg-drv-elographics". В конфигурационный файл "xorg.conf" добавлена секция:


 
Много файлов (6).[Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]