Гл1_06 (1031608), страница 13
Текст из файла (страница 13)
ОднакоСохраняемые переменныеСАУ с такой структурой теряют в гибкости программирования, не допускают перепрограммироваОЗУния на ходу и сложнее в отладке. Обычно так организована память у ПЛК, чтобы резидентно органиПеременныезовать память у промышленного компьютера, нужно принимать специальные меры. Далеко не каждаяСтруктура на логическом уровнепроцессорная плата и не каждая система разработки программного обеспечения сможет поддержатьБазовая систематакие изыски.ввода-выводаПрограммное обеспечение (ПО) развитыхБазовая операционнаясистем автоматического управления на логическомсистемауровне должно быть хорошо структурировано и наПроцессы пользователястроиться как ряд взаимно охватывающих оболочек(рис.1.33).
Это облегчает написание и отладку отдельных элементов управляющей программы,Рис. 1.33.обеспечивает переносимость программ и позволяетраспараллеливать работы по созданию ПО, что, вконечном итоге, сокращает сроки разработки и повышает качество работ. Каждая внутренняяРябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им.
Н. Э. Баумана, V_Ryabov@mail.ru49оболочка оказывает услуги внешней, причем связаны только два уровня и перескок черезуровень недопустим. Идеология такого иерархического разбиения взаимодействия будет рассмотрена нами в следующем разделе.Ядром ПО являются машинные коды, организующие элементарные операции взаимодействия с объектом. На этом уровне реализуются операции дискретного и аналоговогоконтроля (ДК и АК) и управления (ДУ и АУ). Это контроль, установка и сброс отдельныхбитов, непосредственно связанных с объектом управления, проведение аналогово-цифровогои цифро-аналогового преобразования и ряд других неизменных утилит, которые обычно зашиваются в ПЗУ или РПЗУ. Аналогом такого ядра является система BIOS персональныхкомпьютеров клона PC.На втором уровне расположен слой базовой операционной системы (БОС).
Такойслой бывает явно выражен и развит у универсальных и специализированных контроллеров. Вкачестве примера можно привести свободно программируемые контроллеры ПЛК фирмыСименс или семейство SPS Festo фирмы Фесто и др. У промышленных компьютеров здесьчасто работает какая-либо широко распространенная универсальная операционная система.Реально операционная система сама распадается на ряд уровней, но мы не будем проводитьздесь такую детализацию.На этом слое реализуются следующие функции:1.
Поддержка выполнения программ пользователя. БОС в современных контроллерахреализует процессный подход к программированию и поддерживает многозадачность привыполнении программ пользователя. Многозадачность реализуется за счет согласованногопараллельного или квазипараллельного, при наличии единственного микропроцессора вконтроллере, выполнения управляющих программ.
Управляющая программа состоит из отдельных процессов и потоков, объединенных единой физико-химической природой и, следовательно, едиными переменными. Поток разделяется на отдельные кванты - непрерывно выполняющиеся части программы.Различают исключающую многозадачность, когда отдельные кванты процесса формируются принудительно диспетчером системы и кооперативную или добровольную многозадачность, когда кванты сами передают управление диспетчеру, а он анализирует очередьквантов и запускает тот, условия запуска которого выполнены. В сложных системах управления, когда обрабатываются большие массивы информации, применяют обычно какие либооперационные системы реального времени общего назначения (UNIX, LINUX, модификацииWindows), либо специализированные операционные системы и среды реального времени, вкоторых используется исключающая многозадачность.
Такие системы и среды более благоприятно реагируют на ошибки, весьма вероятные в сложных управляющих программах и защищают отдельные задачи от взаимного несанкционированного изменения данных.Если базовая операционная система является однозадачной, например, пока еще широко используемая в промышленных компьютерах Flesh-DOS 6.22, создается дополнительный уровень ядра реального времени RTKernel.Кроме поддержки многозадачности слой БОС содержит и подключает библиотекустандартных процедур и функций (БСП), которая включает унифицированные, наиболееупотребляемые подпрограммы, например утилиты ПИД-регулирования и т.п.2.
Сетевые функции. Для работы в сети БОС содержит протоколы обмена, реализующиеподдержку процессов обмена сообщениями между процессами и микроконтроллерами управляющей сети САУ. Более детально эти функции будут рассмотрены в следующем разделе.3. Защита от программных и аппаратных сбоев. Если напряжение на линии питанияконтроллера падает ниже некоторого предела, генерируется системное прерывание, по которому содержимое памяти микроконтроллера копируется в специальную зону энергонезависимого ОЗУ. При дальнейшем падении генерируется системный сброс, и при повторномРябов Владимир Тимофеевич.
Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru50включении питания система способна восстановить свое состояние и продолжить выполнение управляющей программы, если это необходимо. Для защиты от программных сбоевобычно предусматривают систему WD (Watch Dog). При правильной работе система периодически генерирует сигнал WDI, фронтом или срезом которого сбрасывается WD-таймерсупервизорной схемы, защищающей микроконтроллер от программных и аппаратных сбоев.Если система потеряет управление и сигналов WDI не будет, генерируется сброс микроконтроллера и программа возвращается в БОС.4. Поэтапная отладка программного обеспечения. БОС поддерживает ввод программ вОЗУ, их пошаговое исполнение, вывод содержимого регистров и трассировку переменных накаждом шаге, ввод точек останова.На третьем уровне расположен слой программ пользователя (ПП), который содержитнабор программ для реализации основных целевых функций САУ, функций коррекции цели и сервисных функций.
Основные целевые функции поддерживают управление технологическим процессом, функции коррекции цели - процесс перепрограммирования цикла, сервисные функции обеспечивают условия для оптимального протекания технологии, поддерживают надлежащую безотказность, ремонтопригодность и долговечность технологическоймашины. Это основной уровень, на котором создается программное обеспечение САУ.На четвертом уровне содержатся параметры настройки программ пользователя,обеспечивающие реализацию конкретных технологических режимов обработки.
Этот слойсоздается при реализации функций коррекции цели и существует, когда такие функции предусмотрены. На рис. 1.33 этот слой не показан.Нами рассмотрена некоторая обобщенная структура программного обеспечения систем автоматического управления.Методы и средства программирования различных контроллеров, безусловно, различны. Одно дело - сложные центральных контроллеры и другое - специальные локальные микроконтроллеры, управляющие отдельным достаточно автономным устройством. Центральные контроллеры должны иметь развитый и сложный человеко-машинный интерфейс (ManMachine Interface, MMI) и часто предназначены для выполнения супервизорных функций(SCADA, Supervisory Control And Data Acquisition) в АСУ ТП.
Таким контроллерам допустимо работать в так называемом «мягком» реальном времени, структура их программногообеспечения является гибкой, они непосредственно не определяют параметры конкретнойтехнологии, а лишь переопределяют уставки (заданные параметры) процессов для локальныхконтроллеров. Для программирования и поддержки выполнения управляющих программ таких контроллеров применяют специализированные объектно-ориентированные языки и среды (Genesis, Genie, QNX-Momentics и др.) и универсальные (Windows) либо специализированные (QNX/Neutrino, Linux, VxWorks и др.) операционные системы (ОС). Достаточно подробный обзор таких систем приведен в [1, 2, 3].Если центральный контроллер берет хотя бы часть целевых функций на себя, недопустимо ждать, когда ОС загрузится в течение минуты (и даже десяти секунд).
И дело здесь не впервоначальном включении, а в том, что программные сбои из-за множества причин всегдавозможны. Ошибки оператора, сбои в питании, помехи – от этого можно защитится, но следует быть готовым к их проявлениям. Есть надежные средства обнаружения и устраненияпрограммных сбоев, но они связаны с перезагрузкой программного обеспечения. В этом случае предпочтительнее выбирать специализированные ОС, разработанные на основе микроядра (QNX/Neutrino, Linux), когда возможно при трансляции создавать компактные программы,способные к автономной работе без поддержки полномасштабной ОС, либо, если есть возможность, полностью резидентные системы с заданной физической структурой программного обеспечения.Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им.
Н. Э. Баумана, V_Ryabov@mail.ru51Международный стандарт МЭК 61131-3 определяет языки разработки программногообеспечения ПЛК, на основе которых созданы инструментальные среды для их программирования, как специальные, предназначенные для конкретных типов, так и универсальные. Такфирма Siemens на основе этого стандарта поставляет специальные средства разработки ПОдля своих контроллеров Siemens LOGO, Siemens SIMATIC и Siemens PC.
Фирма 3S (SmartSoftware Solutions) поставляет универсальную среду CoDeSys, включающую редакторы дляввода программ на определенных стандартом шести языках программирования, компиляторы, генерирующие исполняемый машинный код и широкий набор средств отладки и сопровождения.Все языки делятся на символьные и графические.Символьные языки ориентированы как на профессиональных программистов, так испециалистов в предметных областях, знакомых с общими основами программирования.Язык IL (cписок инструкций) - низкоуровневый язык, применяемый для реализацииособо критичных по времени модулей проекта.
Характеризуется высоким временем разработки и требует углубленного знания структуры контроллера; широко используется при оптимизации. Этот язык схож с типовым ассемблером и каждый его исполняемый оператортранслируется в машинный код используемого микропроцессора или микроконтроллера.Язык ST, STL (cтруктурированный текст, язык структурированного текста). В системепрограммирования Siemens применена аббревиатура немецкого языка SCL. Из-за разных аббревиатур иногда возможна путаница, так язык Список инструкций IL на немецком обозначают также STL, поэтому далее мы будем придерживаться английских аббревиатур и всегдаприводить имя языка на русском.
Структурированный текст – высокоуровневый Pascal-образный язык, наиболее широко применяющийся в настоящее время для разработки проектовПО ПЛК. Сокращает время разработки, удобен как для реализации алгоритмов, так и сложных математических вычислений. Приведенный в начале раздела пример кванта вполне иллюстрирует этот язык.Графические языки ориентированы на специалистов в предметных областях и позволяют им свои профессиональные знания и умения применить для программирования ПЛК.Язык LD (контактно-релейные схемы) предназначен для разработчиков МП САУ,имеющих большой опыт разработки контактно-релейных систем.