Имя: ПЛК Основан: октябрь 2008г Участники:Роман Савоченко Описание: Проект посвящён созданию: среды исполнения, прошивки и аппаратных конфигураций специализированных ПЛК. Рассмотрены встраиваемые системы на основе архитектуры x86 и ARM, а также отдельное оборудование встраиваемых решений:
Современные системы автоматического управления технологическими процессами (АСУ ТП) являются достаточно сложными. Условно иерархию АСУ ТП можно разделить на два уровня: нижний и верхний уровень. Нижний уровень АСУ ТП содержит полевое оборудование (датчики и исполнительные механизмы), а также программируемые логические контроллеры (ПЛК). Верхний уровень представляет из себя систему оперативной визуализации и контроля за технологическим процессом — 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 в рамках окружения ПЛК:
сбор данных различного спектра оборудования в синхронном, асинхронном или блочных режимах;
пользовательские процедуры обработки данных и выдачи управляющих воздействий на Java-подобном языке высокого уровня и на формальном языке блочных схем (Soft-logic);
архивирование данных, начиная от временных буферов в памяти и заканчивая полноценными архивами на файловой системе или в БД различной дискретизации и глубины;
интеграция в инфраструктуру АСУ ТП путём реализации стандартных протоколов взаимодействия (ModBus, SNMP, OPC UA ...);
интеграция с СУБД для экспорта данных, хранения конфигурации или архивов;
свободная конфигурация и администрирование сети ПЛК как посредством оперативного интерфейса станции администрирования, так и посредством Web-интерфейса;
возможность реализации панелей оператора с интерфейсом контроля и управления на встроенной Touch-панели;
предоставление Web-интерфейсов оперативного и диспетчерского контроля.
* — Включает в себя двукратное время вызова функции gettimeofday().
** — Вход в процедуру на языке JavaLikeCalc также означает вход в критическую секцию и запрос на чтение RW замка т.е. данное время в основном отражает продуктивность этой операции. Это время исключено из соответствующих значений в колонках с JavaLikeCalc.
Разница во времени вычисления при прямом вызове математической операции и из виртуальной машины JavaLikeCalc связана с влиянием частоты ядра процессора (частоты, на которой оно работает) и которым выполняется часть команды до передачи её математическому сопроцессору и со скоростью памяти. Производительность математического сопроцессора обычно не связана непосредственно с производительностью и частотой ядра основного процессора или скоростью памяти.
Методика измерений в таблице выше следующая:
Оценка времени вычисления операций общего блокирования критической секции, "sin(Pi)" и "pow(Pi,2)", во второй, третьей и четвёртой колонках. Данные операции выбраны как показательные, для оценки производительности сопроцессора и общих манипуляций с вещественными числами. Значения в квадратных скобках характеризуют степень накладных расходов при вычислении внутри виртуальной машины OpenSCADA и производительность целочисленных вычислений вокруг образцовых операций. Т.е. основное значение характеризует производительность процессора в операциях с плавающей точкой (математический сопроцессор или эмуляция), а в квадратных скобках — в целочисленных операциях (центральный процессор), как разница времени операций с плавающей точкой. Методика измерения:
обеспечиваем стабильность частоты центрального процессора, путём установки политики её управления в ПРОИЗВОДИТЕЛЬНОСТЬ;
запускаем OpenSCADA без нагрузки, проект по умолчанию или с пустой конфигурацией, c конфигуратором UI.QTCfg, UI.WebCfg или UI.WebCfgD;
переходим во вкладку "Исполнить", устанавливаем "Включено", вводим значения аргументам "X" в 3.14159 и "Степень" в 2 (для "pow()"), устанавливаем количество запусков в 1000 (для большей репрезентативности можно увеличить, порядками, до общего времени операции не более 10 секунд);
нажимаем "Исполнить" и получаем время исполнения;
производим вычисления несколько раз, нажимая "Исполнить", добиваясь минимального значения;
фиксируем минимальное значение, которое делим на 1000 (количество запусков) и получаем основное значение времени одного вычисления в микросекундах;
во вкладке "Программа" вводим текст команды ПУСТО, "y=sin(3.14159)", и затем "y=pow(3.14159, 2)";
переходим во вкладку "Исполнить" и выполняем то-же самое, что в пунктах "d."-"g.";
полученный результат записываем во второй колонке и считаем вспомогательным, в квадратных скобках, для третьей и четвёртой.
Комплексная оценка производительности, четвёртая колонка, осуществляется путём исполнения модели технологического процесса (ТП) АГЛКС на целевой архитектуре. Данный тест может исполняться только на вычислительных системах со сравнительно высокой производительностью (или с количеством ядер более одного), которые способны исполнять модель, и с устройством вывода графической информации (дисплей), случай исполнения сервера визуализации не рассматривается. Основное значение нагрузки процессора характеризует исполнение динамической модели ТП, а дополнительное добавляет формирование и исполнение графического интерфейса. Методика измерения:
обеспечиваем стабильность частоты центрального процессора, путём установки политики её управления в ПРОИЗВОДИТЕЛЬНОСТЬ;
запускаем эмулятор терминала (например, "konsole"), где набираем "top", нажимаем Shift+H (смотрим процесс в целом) и Shift+P (сортируем по нагрузке на процессор);
снимаем показания в колонке "%CPU" напротив процесса "openscada", отбираем типовое значение для нескольких обновлений и фиксируем его как основное значение;
В этом разделе содержится информация о производительности хранилищ, с которыми и на которых работали и работают решения OpenSCADA. Action source page doesn't exist yet(/Using / PLC / storages?)
Приложение 3. Решения ПЛК
В этом разделе содержится информация о моделях ПЛК реально построенных или проектируемых на основе разработанной среды исполнения и прошивки ПЛК. Action source page doesn't exist yet(/Using / PLC / solve?)