OpenSCADAWiki: Using/PLC ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of Using/PLC from 2017-06-05 16:03:37..

OpenSCADA в программируемом логическом контроллере (ПЛК)

Имя: ПЛК
Основан: октябрь 2008г
Участники: Роман Савоченко
Описание: Проект посвящён созданию: среды исполнения, прошивки и аппаратных конфигураций специализированных ПЛК. Рассмотрены встраиваемые системы на основе архитектуры x86 и ARM, а также отдельное оборудование встраиваемых решений:

PLC (90 Kb)


Contents

Введение

Современные системы автоматического управления технологическими процессами (АСУ ТП) являются достаточно сложными. Условно иерархию АСУ ТП можно разделить на два уровня: нижний и верхний уровень. Нижний уровень АСУ ТП содержит полевое оборудование (датчики и исполнительные механизмы), а также программируемые логические контроллеры (ПЛК). Верхний уровень представляет из себя систему оперативной визуализации и контроля за технологическим процессом — SCADA-система. ПЛК являются ответственной частью АСУ ТП, которая выполняет функцию сбора данных полевого оборудования, вычисление и выдачу регулирующих, блокировочных и других воздействий на регулирующие органы полевого оборудования.


OpenSCADA является открытой реализацией SCADA-системы, которая основана на модульной архитектуре, что позволяет строить конечные решения под различные требования. Целевым назначением OpenSCADA являются системы верхнего уровня, однако высокая степень модульности, и как следствие масштабируемости, позволяет решать широкий круг задач смежных областей.

Программируемые логические контроллеры

Рынок ПЛК насыщен широким спектром изделий различной архитектуры и конструкции. Архитектурно ПЛК можно разделить на три условные группы:


Жёстко-программируемые ПЛК обычно строятся на основе одно-кристальных микроЭВМ или микросхемах программируемой логики. Программа таких контроллеров или прошивается единоразово, предоставляя возможность программной параметризации, или же формируется специализированными средами, наделёнными функциями компиляции бинарной прошивки среды исполнения с пользовательской программой, например ISaGRAF и LabView. В качестве представителя такого ПЛК можно в пример привести модули распределённого УСО фирмы Advantech.


Высокоинтеллектуальные коммерческие ПЛК обычно строятся на базе более мощного оборудования с архитектурой, близкой к полноценному ПК. Основным отличием от стандартного ПК-совместимого ПЛК является закрытая программная, а часто и аппаратная архитектуры. Программное окружение таких контроллеров обычно основывается на операционной системе реального времени, планирующей несколько пользовательских потоков с разделением их по приоритетам. Пользовательское программирование таких ПЛК осуществляется работой в фирменном программном окружении, формирующем, в качестве результата, бинарный код потока ПЛК. В качестве представителя такого оборудования можно привести ПЛК серии S7 фирмы Siemens.


ПК-совместимые ПЛК с открытым доступом — это группа скорее не ПЛК, прямо совместимых с ПК, а ПЛК, которые не имеют интегрированной среды исполнения и часто поставляемых без операционной системы. Архитектура таких ПЛК может быть различной, начиная от экономичных решений архитектуры x86 и заканчивая архитектурными решениями ARM и MIPS. Среду исполнения таких ПЛК обычно формируют из ПО того же класса, что и в случае с жёстко программируемыми ПЛК, в виде исполняемого бинарного файла под одну из распространённых, масштабируемых или специализированных ОС (DOS, QNX, Linux, WinCE, VxWorks). Часто встречаются и специализированные под задачу решения. В качестве представителей этого класса можно рассматривать ПЛК формфактора PC/104.


Варианты конструктивного исполнения ПЛК можно условно разделить на моноблочные и модульные. Моноблочные ПЛК предоставляют фиксированную конфигурацию УСО, специализированную под ограниченный круг задач. Модульные конструкции предоставляют возможность лёгкого расширения конфигурации УСО под нужную задачу. Существуют также и гибридные конструкции, представляющие из себя моноблок, способный расширять своё УСО за счёт внешних блоков УСО, подключаемых по одному из стандартных интерфейсов, например, по RS-485.

OpenSCADA как среда исполнения ПЛК

Архитектура системы OpenSCADA позволяет создавать конечные решения под различные требования и ресурсы путём модульного расширения. Эта возможность оказывается полезной в свете ограниченности ресурсов ПЛК. Кроме того, учитывая постоянное развитие аппаратного обеспечения, а также непрерывное повышение интеграции и экономичности современных микропроцессорных решений, OpenSCADA позволяет последовательно расширять функциональность ПЛК, сохраняя преемственность со старыми решениям. Например, на основе системы OpenSCADA можно строить решения с минимальными требованиям на уровне: CPU 100 МГц, память и флешь-диск по 30 Мб.


Как было отмечено выше, ресурсы современных ПЛК могут колебаться достаточно в больших пределах, причём ПЛК фиксированного типа, построенные на однокристальных микроЭВМ, всё дальше вытесняются в узко-специализированные области развитыми ПК-архитектурами. Такая тенденция делает всё более интересной возможность создания унифицированной открытой платформы для реализации среды исполнения ПЛК на основе унифицированных ПК-платформ.


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


Перечислим функции, решаемые OpenSCADA в рамках окружения ПЛК:


Action source page doesn't exist yet(/Using / PLC / firmware?)


Action source page doesn't exist yet(/Using / PLC / firmware ARM?)

Приложение 1. Вычислительная производительность процессорных систем

Action source page doesn't exist yet(/Using / PLC / performance?)

* — Включает в себя двукратное время вызова функции gettimeofday().
** — Вход в процедуру на языке JavaLikeCalc также означает вход в критическую секцию и запрос на чтение RW замка т.е. данное время в основном отражает продуктивность этой операции. Это время исключено из соответствующих значений в колонках с JavaLikeCalc.

 (2 Kb) Разница во времени вычисления при прямом вызове математической операции и из виртуальной машины JavaLikeCalc связана с влиянием частоты ядра процессора (частоты, на которой оно работает) и которым выполняется часть команды до передачи её математическому сопроцессору и со скоростью памяти. Производительность математического сопроцессора обычно не связана непосредственно с производительностью и частотой ядра основного процессора или скоростью памяти.

Методика измерений в таблице выше следующая:

  1. Оценка времени вычисления операций общего блокирования критической секции, "sin(Pi)" и "pow(Pi,2)", во второй, третьей и четвёртой колонках. Данные операции выбраны как показательные, для оценки производительности сопроцессора и общих манипуляций с вещественными числами. Значения в квадратных скобках характеризуют степень накладных расходов при вычислении внутри виртуальной машины OpenSCADA и производительность целочисленных вычислений вокруг образцовых операций. Т.е. основное значение характеризует производительность процессора в операциях с плавающей точкой (математический сопроцессор или эмуляция), а в квадратных скобках — в целочисленных операциях (центральный процессор), как разница времени операций с плавающей точкой. Методика измерения:
    1. обеспечиваем стабильность частоты центрального процессора, путём установки политики её управления в ПРОИЗВОДИТЕЛЬНОСТЬ;
    2. запускаем OpenSCADA без нагрузки, проект по умолчанию или с пустой конфигурацией, c конфигуратором UI.QTCfg, UI.WebCfg или UI.WebCfgD;
    3. открываем объект функции "sin()", а затем "pow()", модуля библиотеки математических функций;
    4. переходим во вкладку "Исполнить", устанавливаем "Включено", вводим значения аргументам "X" в 3.14159 и "Степень" в 2 (для "pow()"), устанавливаем количество запусков в 1000 (для большей репрезентативности можно увеличить, порядками, до общего времени операции не более 10 секунд);
    5. нажимаем "Исполнить" и получаем время исполнения;
    6. производим вычисления несколько раз, нажимая "Исполнить", добиваясь минимального значения;
    7. фиксируем минимальное значение, которое делим на 1000 (количество запусков) и получаем основное значение времени одного вычисления в микросекундах;
    8. переходим к объекту модуля внутренних вычислений OpenSCADA (DAQ.JavaLikeCalc);
    9. создаём там объект библиотеки функций "test", а в ней функцию "test", которую включаем;
    10. во вкладке "Программа" вводим текст команды ПУСТО, "y=sin(3.14159)", и затем "y=pow(3.14159, 2)";
    11. переходим во вкладку "Исполнить" и выполняем то-же самое, что в пунктах "d."-"g.";
    12. полученный результат записываем во второй колонке и считаем вспомогательным, в квадратных скобках, для третьей и четвёртой.
  2. Комплексная оценка производительности, четвёртая колонка, осуществляется путём исполнения модели технологического процесса (ТП) АГЛКС на целевой архитектуре. Данный тест может исполняться только на вычислительных системах со сравнительно высокой производительностью (или с количеством ядер более одного), которые способны исполнять модель, и с устройством вывода графической информации (дисплей), случай исполнения сервера визуализации не рассматривается. Основное значение нагрузки процессора характеризует исполнение динамической модели ТП, а дополнительное добавляет формирование и исполнение графического интерфейса. Методика измерения:
    1. обеспечиваем стабильность частоты центрального процессора, путём установки политики её управления в ПРОИЗВОДИТЕЛЬНОСТЬ;
    2. из меню окружения рабочего стола запускаем модель АГЛКС;
    3. запускаем эмулятор терминала (например, "konsole"), где набираем "top", нажимаем Shift+H (смотрим процесс в целом) и Shift+P (сортируем по нагрузке на процессор);
    4. снимаем показания в колонке "%CPU" напротив процесса "openscada", отбираем типовое значение для нескольких обновлений и фиксируем его как основное значение;
    5. возвращаемся к окну OpenSCADA и запускаем среду визуализации, а затем проект интерфейса "АГЛКС".
    6. возвращаемся в эмулятор терминала и снимаем дополнительное значение, как в пункте "d.".

Полученные результаты можете выслать на адрес электронной почты для помещения в эту таблицу!

Приложение 2. Производительность хранилищ (встроенные, HDD, SSD, CF, SD, ...)

В этом разделе содержится информация о производительности хранилищ, с которыми и на которых работали и работают решения OpenSCADA.
Action source page doesn't exist yet(/Using / PLC / storages?)

Приложение 3. Решения ПЛК

В этом разделе содержится информация о моделях ПЛК реально построенных или проектируемых на основе разработанной среды исполнения и прошивки ПЛК.
Action source page doesn't exist yet(/Using / PLC / solve?)

Ссылки


Referring pages: Doc/BCM2835
HomePageEn/Using/PLC/firmware
HomePageUk/Using/PLC/firmware
Using/Irkutsk
Using/KramWater
Using/KramatorskBallMills
Using/LP5xxx
Using/LP8x81
Using/NokiaLinux
Using/PLC
Works/Tests/VCA


 
There are no files on this page.[Display files/form]
There is no comment on this page. [Display comments/form]