Часть1 (1028410), страница 12
Текст из файла (страница 12)
С точкиПРОЦЕСС "A"зрения программиста потоки объединяются вкритерий началапроцесс общей памятью. Объединение ряда поКВАНТтоков в один процесс с одной стороны упрощаетот другихпотоков, процессовобмен информации между ними, поскольку онисинхроквантмогут иметь доступ к общим глобальным переинтерквантСобытиеэкстраквантменным. С другой, усложняется процесс компиДействиеляции и отладки программного обеспечения, полокальноескольку транслироваться потоки должны с одиСобытиеДКнаковыми объявлениями глобальных переменАКДействиеных.
Усложняется и переносимость программДУАУногообеспечения при переходе на другие конСобытиетроллеры.ДействиесистемноеПотоки и входящие в них кванты состок другимпотокам,ятизпоследовательностисобытий и действий.СобытиепроцессамСобытие может быть системным или локальДействиеным.Потоки состоят из отдельных квантов,физически защищенная памятькоторые по способу перезапуска делят на синхрокванты, перезапускаемые через заданныеинтервалы времени и интеркванты, запускаеИНТЕРФЕЙС ПРОГРАММНОГОмые внешними системными событиями.
КванИ АППАРАТНОГО ОБЕСПЕЧЕНИЯты перезапускаются диспетчером задач, вхоРис. 1.25.дящим в состав программного обеспечения, впорядке очереди в соответствии с предписанными им условиями запуска. Особую группу могут составлять экстракванты, запускаемыедиспетчером задач вне очереди.Загрузка процессора существенно зависит от способа запуска квантовВопросы к экзамену.1. Последовательный процесс – основная структурная единица программного обеспечения САУ. Основные понятия и определения.2. Преимущества описания работы технологической машины совокупностью взаимодействующих потоков.1.5.
Структура программного обеспечения и основы программированиямикроконтроллеровПрежде чем приступить к обсуждению структуры программного обеспечения микроконтроллера отметим, что оно всегда разбивается на управляющие коды и константы, которые должны быть неизменны при работе программы и переменные данные.38Структура программного обеспечения может быть рассмотрена на физическом и логическом уровне (рис. 1.26). В первом случае принимается во внимание, в какой зоне памятирасположены управляющие коды и переменные программного обеспечения, во втором рассматривается их взаимосвязь, взаимодействие и иерархическая подчиненность.Кроме того, структура на обеих уровнях может быть жесткой (резидентной), когдауправляющие коды и константы размещены в репрограммируемой постоянной памяти, сохраняемые константы – энергонезависимом оперативном запоминающем устройстве ОЗУ,локальные переменные, утеря значений которых при сбоях не может вызывать принципиальных (не подлежащих восстановлению) ошибок – в «штатном» ОЗУ.
Энергонезависимое ОЗУне теряет содержания при пропадании питания, штатное ОЗУ – это область памяти, не защищенная от обесточивания.При гибкой (перезагружаемой) структуре программное обеспечение при инициализации системы загружается в оперативную память и структурируется в ней должным образом.Программное обеспечение САУ Здесь еще можно отследить, чтобы коды, константы и сохраняемые переменные были при загрузкеС жесткой структурой (резидентное) размещены в энергонезависимом ОЗУ, но операС гибкой структурой (загружаемое) тивно размещать управляющие коды в РПЗУ ужене удается.Структура на физическом уровнеСистемы с резидентной структурой памятиРПЗУбыстро(за миллисекунды) восстанавливаются поУправляющие кодыслесбоев,поскольку не требуется перезагружатьКонстантыпамять или объем перегрузки минимален. Процессы пользователя, благодаря этому прекрасно подЭнергонезависимое ОЗУдерживаются в жестком реальном времени.
ОднакоСохраняемые переменныеСАУ с такой структурой теряют в гибкости программирования, не допускают перепрограммироваОЗУния на ходу и сложнее в отладке. Обычно так организована память у ПЛК, чтобы резидентно органиПеременныезовать память у промышленного компьютера, нужно принимать специальные меры. Далеко не каждаяСтруктура на логическом уровнепроцессорная плата и не каждая система разработки программного обеспечения сможет поддержатьБазовая систематакие изыски.ввода-выводаПрограммное обеспечение (ПО) развитыхБазовая операционнаясистем автоматического управления на логическомсистемауровне должно быть хорошо структурировано и наПроцессы пользователястроиться как ряд взаимно охватывающих оболочек(рис.1.26).
Это облегчает написание и отладку отдельных элементов управляющей программы,Рис. 1.26.обеспечивает переносимость программ и позволяетраспараллеливать работы по созданию ПО, что, вконечном итоге, сокращает сроки разработки и повышает качество работ. Каждая внутренняяоболочка оказывает услуги внешней, причем связаны только два уровня и перескок черезуровень недопустим. Идеология такого иерархического разбиения взаимодействия будет рассмотрена нами в следующем разделе.Ядром ПО являются машинные коды, организующие элементарные операции взаимодействия с объектом.
На этом уровне реализуются операции дискретного и аналогового контроля (ДК и АК) и управления (ДУ и АУ). Это контроль, установка и сброс отдельных битов,непосредственно связанных с объектом управления, проведение аналогово-цифрового и циф-39ро-аналогового преобразования и ряд других неизменных утилит, которые обычно зашиваются в ПЗУ или РПЗУ. Аналогом такого ядра является система BIOS персональных компьютеров клона PC.На втором уровне расположен слой базовой операционной системы (БОС). Такойслой бывает явно выражен и развит у универсальных и специализированных контроллеров. Вкачестве примера можно привести свободно программируемые контроллеры ПЛК фирмыСименс или семейство SPS Festo фирмы Фесто и др.
У промышленных компьютеров здесьчасто работает какая-либо широко распространенная универсальная операционная система.Реально операционная система сама распадается на ряд уровней, но мы не будем проводитьздесь такую детализацию.На этом слое реализуются следующие функции:1. Поддержка выполнения программ пользователя. БОС в современных контроллерахреализует процессный подход к программированию и поддерживает многозадачность привыполнении программ пользователя. Многозадачность реализуется за счет согласованногопараллельного или квазипараллельного, при наличии единственного микропроцессора в контроллере, выполнения управляющих программ. Управляющая программа состоит из отдельных процессов и потоков, объединенных единой физико-химической природой и, следовательно, едиными переменными.
Поток разделяется на отдельные кванты - непрерывно выполняющиеся части программы.Различают исключающую многозадачность, когда отдельные кванты процесса формируются принудительно диспетчером системы и кооперативную или добровольную многозадачность, когда кванты сами передают управление диспетчеру, а он анализирует очередьквантов и запускает тот, условия запуска которого выполнены. В сложных системах управления, когда обрабатываются большие массивы информации, применяют обычно какие либооперационные системы реального времени общего назначения (UNIX, LINUX, модификацииWindows), либо специализированные операционные системы и среды реального времени, вкоторых используется исключающая многозадачность. Такие системы и среды более благоприятно реагируют на ошибки, весьма вероятные в сложных управляющих программах и защищают отдельные задачи от взаимного несанкционированного изменения данных.Если базовая операционная система является однозадачной, например, пока еще широко используемая в промышленных компьютерах Flesh-DOS 6.22, создается дополнительный уровень ядра реального времени RTKernel.Кроме поддержки многозадачности слой БОС содержит и подключает библиотекустандартных процедур и функций (БСП), которая включает унифицированные, наиболееупотребляемые подпрограммы, например утилиты ПИД-регулирования и т.п.2.
Сетевые функции. Для работы в сети БОС содержит протоколы обмена, реализующиеподдержку процессов обмена сообщениями между процессами и микроконтроллерами управляющей сети САУ. Более детально эти функции будут рассмотрены в следующем разделе.3. Защита от программных и аппаратных сбоев. Если напряжение на линии питанияконтроллера падает ниже некоторого предела, генерируется системное прерывание, по которому содержимое памяти микроконтроллера копируется в специальную зону энергонезависимого ОЗУ. При дальнейшем падении генерируется системный сброс, и при повторномвключении питания система способна восстановить свое состояние и продолжить выполнение управляющей программы, если это необходимо.
Для защиты от программных сбоевобычно предусматривают систему WD (Watch Dog). При правильной работе система периодически генерирует сигнал WDI, фронтом или срезом которого сбрасывается WD-таймер супервизорной схемы, защищающей микроконтроллер от программных и аппаратных сбоев.Если система потеряет управление и сигналов WDI не будет, генерируется сброс микроконтроллера и программа возвращается в БОС.404.
Поэтапная отладка программного обеспечения. БОС поддерживает ввод программ вОЗУ, их пошаговое исполнение, вывод содержимого регистров и трассировку переменных накаждом шаге, ввод точек останова.На третьем уровне расположен слой программ пользователя (ПП), который содержитнабор программ для реализации основных целевых функций САУ, функций коррекции целии сервисных функций. Основные целевые функции поддерживают управление технологическим процессом, функции коррекции цели - процесс перепрограммирования цикла, сервисные функции обеспечивают условия для оптимального протекания технологии, поддерживают надлежащую безотказность, ремонтопригодность и долговечность технологической машины. Это основной уровень, на котором создается программное обеспечение САУ.На четвертом уровне содержатся параметры настройки программ пользователя,обеспечивающие реализацию конкретных технологических режимов обработки.
Этот слойсоздается при реализации функций коррекции цели и существует, когда такие функции предусмотрены. На рис. 1.26 этот слой не показан.Нами рассмотрена некоторая обобщенная структура программного обеспечения систем автоматического управления.Методы и средства программирования различных контроллеров, безусловно, различны.
Одно дело - сложные центральных контроллеры и другое - специальные локальные микроконтроллеры, управляющие отдельным достаточно автономным устройством. Центральные контроллеры должны иметь развитый и сложный человеко-машинный интерфейс (ManMachine Interface, MMI) и часто предназначены для выполнения супервизорных функций(SCADA, Supervisory Control And Data Acquisition) в АСУ ТП. Таким контроллерам допустимоработать в так называемом «мягком» реальном времени, структура их программного обеспечения является гибкой, они непосредственно не определяют параметры конкретной технологии, а лишь переопределяют уставки (заданные параметры) процессов для локальных контроллеров.