![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Вопрос 158 Программное обеспечение САиУ. Принципы выбора программного обеспечения
Специфика промышленного применения накладывает свой отпечаток на используемое программное обеспечение. Можно сформулировать следующие основные требования к программному обеспечению. Оно должно быть достаточно надежным. Очевидно, что многие новации последнего времени, типа структурного программирования, объектно-ориентированных языков, CASE-технологий, появились в результате стремления писать все более сложные программы с меньшим количеством ошибок. Программное обеспечение должно быстро реагировать на какие-либо внешние события или изменения в параметрах управляемых процессов. Системы, работающие в соответствии со вторым требованием, часто называют системами реального времени. Типовое время реагирования на внешние воздействия, необходимое современным индустриальным системам, составляет десятки микросекунд. Программные средства должны быть удобны в использовании, соответствовать решаемой задаче, иметь логичный интерфейс. Данные требования должны предъявляться вообще к любому программному продукту. Для систем сбора данных и управления выработаны определенные правила. Они не стандартизированы, но все же разработчики известных систем их придерживаются. Основная преследуемая цель — минимизация ошибок персонала по вине путаного интерфейса. Программные средства должны позволять переконфигурацию «на ходу», давать возможность изменения настроек системы (форм представления, графиков, мнемосхем) и условий обработки информации о технологическом объекте (шкал, уставок, размерностей и т.д.) в конкретной подсистеме, не прерывая и не мешая другим подсистемам. Важным свойством программного обеспечения является выборочное резервирование. Это одно из самых ресурсоемких, но обязательных требований для систем повышенной ответственности. Однако на практике не вся управленческая информация требует резервирования, поэтому резервирование должно быть выборочным, настраиваемым. Программное обеспечение должно обеспечивать свойство масштабируемости системы. Система управления должна обладать способностью работать как с малым, так и с очень большим количеством параметров, эффективно использовать аппаратные ресурсы. Программное обеспечение должно обеспечивать возможность внешнего доступа к информации о работе системы сбора данных и управления. Для решения многих задач (например, для расчета финансово-экономических показателей) требуется доступ к информации, получаемой системой сбора данных и управления в ходе работы. Этот доступ должен быть оперативным, простым, но с разграничением прав (экономист не должен иметь возможности управлять объектом). Какой бы ни была интенсивность работы «внешних» пользователей, никакого влияния на работоспособность системы управления они оказывать не должны. Система управления должна обладать свойством расширяемости. Под расширяемостью понимается возможность дополнительного добавления новых типов контроллеров, новых типов рабочих мест, новых форм хранения информации и т.д., т.е. возможность развития системы в будущем. Очевидно, что система должна быть модернизируемой. Очень часто ошибки при модернизации одной из подсистем (обычно с целью оптимизации) приводят к появлению ошибок в других подсистемах. Проблема усугубляется тем, что системы подобной сложности создаются не одним человеком, а целой группой разработчиков. Процесс управления должен быть многозадачным. Это требование часто (но не всегда) предъявляется к программному обеспечению систем управления. Оно проистекает из подчас чрезвычайно сложной и многоуровневой природы управляемых процессов, когда необходимо одновременно реализовать сложные алгоритмы управления различными аспектами или частями реального объекта. По каждой задаче выполняется определенная доля работы по управлению объектом, и все задачи делят ресурсы вычислительной системы в зависимости от своего приоритета и от внешних и внутренних событий, конкретно с ними связанных. Существует целый ряд алгоритмов распределения ресурсов между задачами, рассмотрение которых, впрочем, выходит за рамки данной работы. Другим тесно связанным с многозадачностью понятием является многопоточность. Под этим термином, как правило, понимают возможность выполнения в рамках одной задачи нескольких независимых процессов (потоков команд), которые в отличие от задач пользуются общими участками кода и данных. Названным требованиям должны удовлетворять все уровни программного обеспечения системы. Условно можно разделить программное обеспечение на три уровня. 1. Базовая система ввода-вывода (BIOS). 2. Операционная система и драйверы (ОС). 3. Собственно прикладные программы. BIOS осуществляет непосредственную связь между аппаратурой и программным обеспечением верхних уровней. Ведущие фирмы-поставщики BIOS ориентируются в основном на рынок офисных компьютеров и не применяют специальных мер для обеспечения требований индустриальных приложений. Основная опасность при обращении к BIOS —это возможность запрета прерываний на достаточно долгое время, в результате чего может быть пропущена важная информация от быстродействующих датчиков или телекоммуникационных устройств. Операционная система выполняет базовые функции связи с оператором, запуска программ, распределения памяти, поддержки файловой системы и т.п. Создатель системы автоматизации, как правило, встает перед выбором: или использовать многозадачное ядро реального времени, работающее над DOS, или перейти на другую операционную систему. В первом случае используются самодельные или коммерчески распространяемые библиотеки программ, реализующие функции многозадачной ОС, например RTKernel. Во втором случае открывается богатый выбор операционных систем, разработанных специально для применения в системах «жесткого» реального времени. Эти ОС часто так и называют операционными системами реального времени. На рынке существует несколько десятков операционных систем реального времени. У нас известны такие ОС, как QNX, OS 9000, VxWorks, iRMX, VRTX, Nucleus и др. Существует два подхода к переносимости программного обеспечения: первый — поддержка одной ОС одновременно нескольких аппаратных платформ, второй — обеспечение стандартного интерфейса между прикладными программами и ОС. В качестве такого стандарта часто используют программный интерфейс, разработанный для UNIX-подобных операционных систем и получивший название POSIX (Portable Operating System Interface for UNIX). To есть ваша программа, написанная в соответствии со стандартом POSIX, должна надежно работать на любой аппаратной платформе при условии применения POSIX совместимой операционной системы. При проектировании ОС реального времени все чаще используется идеология микроядра, которая увеличивает надежность программного обеспечения и позволяет использовать только те компоненты операционной системы, которые необходимы в каждом конкретном случае. Так, микроядро одной из самых распространенных операционных систем QNX имеет размер менее 10 Кбайт. Модуль, ответственный за файловую систему, например, запускается как одна из задач и может быть легко удален. Все драйверы также функционируют как независимые задачи, т.е. если в вашей встроенной системе не используются файловые операции или отсутствуют интерфейсы с какими-либо внешними устройствами, вы можете просто не включать в состав операционной системы, функционирующей в вашем изделии, соответствующие модули, высвобождая тем самым память для более эффективного выполнения приложений. Что же касается таких операционных систем, как Windows NT и OS/2, то эти новейшие операционные системы оказывают определенное давление на рынок операционных систем реального времени. Тем не менее обе системы ориентированы на офисное применение и не могут обеспечить скорость отклика на внешние воздействия, сравнимую со скоростью специализированных ОС реального времени. Кроме общей неразвитости механизмов управления приоритетами могут возникать проблемы некоторой непредсказуемости поведения этих ОС. Например, совершенно неожиданно система может инициировать массированный свопинг на диск, забирая для этого мероприятия практически все ресурсы. Вот почему чувствительные к задержкам задачи, типа обмена данных в мультимедиа-приложениях, оформляются в виде драйверов. Так что пока Windows NT и OS/2 можно использовать только в задачах «мягкого» реального времени, а то, что количество их дистрибутивных дискет превосходит число пальцев на обеих руках, не внушает оптимизма разработчикам встраиваемых систем, где каждый мегабайт на счету. Однако системы на базе Windows NT широко используются как ОС для терминалов в дополнение к автономно действующим контроллерам (например, в системах Honeywell). He так давно Microsoft выпустила на рынок ОС Windows СЕ для встраиваемых приложений. Немного особняком стоит программное обеспечение, предназначенное для эксплуатации на верхнем уровне систем автоматизации, например в диспетчерских электростанций, пультах управления сложными агрегатами и т.д. С середины 80-х годов ряд фирм-разработчиков программных систем приступили к разработке и выпуску универсальных и открытых пакетов прикладных программ для компьютерных операторских станций, предназначенных не для конкретной микропроцессорной системы, но приспособленных для применения в разных программно-технических и сетевых средах. Свойство открытости состоит в том, что пакет прикладных программ поддерживает совокупность интерфейсов и драйверов, позволяющих использовать пакет для широкого класса микропроцессорных контроллеров, систем и сетей передачи данных, содержит средства разработки новых (не предусмотренные разработчиком) интерфейсов и драйверов для микропроцессорных приборов и сетей. Он позволяет расширять функциональные возможности систем в соответствии с заданиями на конкретные проекты — путем подключения программ пользователя. Программные системы и пакеты прикладных программ, обеспечивающие работу компьютерных операторских станций, в литературе получили наименование SCADA-программы (аббревиатура SCADA означает Supervisory Control And Data Acquisition — сбор данных, наблюдение и управление). SCADA-программы обеспечивают реализацию основных функций операторских станций в реальном времени: собирают текущую технологическую информацию от контроллеров или других приборов и устройств, связанных непосредственно или через сеть с операторской станцией; проводят необходимую первичную обработку измерительной информации, а также вычислительную и логическую обработку технологических данных в операторских станциях; осуществляют архивизацию и хранение текущей информации и ее дальнейшую обработку. Эти программы обеспечивают визуализацию текущей и исторической информации на дисплеях (в формах динамизированных мнемосхем, гистограмм, анимационных изображений, таблиц, трендов, аварийных сообщений и т. д.). Они реализуют печать отчетов и протоколов в задаваемых формах — по времени или по запросу оператора, осуществляют регистрацию аварийных ситуаций в моменты их возникновения и вывод аварийных сообщений на экран или на внешние устройства, реализуют ввод команд и сообщений оператора, их отработку или передачу в контроллеры и другие устройства. SCADA-npoграммы реализуют подключение и организацию взаимодействия прикладных программ пользователя с переменными базы данных реального времени и командами оператора, осуществляют информационные сетевые взаимодействия между узлами системы управления. Каждая SCADA-программа содержит в своем составе две базовые подсистемы: 1) инструментальную подсистему разработки (Development Kit), 2) исполнительную подсистему (Runtime), поддерживающую работу программного обеспечения операторских станций в реальном времени. Инструментальная подсистема применяется при разработке программ операторских станций проектантами и системными интеграторами. Каждый экземпляр инструментальной подсистемы многократно используется для разработки операторских станций в разных проектах; применяется также эксплуатационниками на предприятиях для коррекции и модернизации программного обеспечения станций. Исполнительная подсистема поддерживает, как правило, работу программного обеспечения отдельной станции. Инструментальная система технически тоже может поддерживать в реальном времени работу операторской станции. Очевидно, что она же может быть использована и в качестве исполнительной системы. В некоторых специализированных SCADA-программах инструментальная и исполнительная системы не разделены и представляют собой единое целое. В тексте обзора возможность использования инструментальной системы в качестве исполнительной по умолчанию не оговаривается. Главными функциями SCADA-программ являются отображение технологического процесса в виде мнемосхем, сигнализация об аварийных ситуациях, ведение системного журнала, обеспечение общего управления процессом со стороны оператора и т.п. Многие системные интеграторы или подразделения АСУ крупных предприятий, как правило, имеют свои наработки в этой области. В то же время есть фирмы, специализирующиеся на разработке универсальных SCADA-программ, таких, как Genesis (Iconics), FixDmacs (Intellution), InTouch (Wonderware). Из отечественных разработок хотелось бы отметить программу TraceMode (Adastra Research Group). Граница между программными обеспечениями классов SCADA и HMI весьма условная, поэтому многие системы SCADA могут работать в качестве интерфейса НМ1 для систем нижнего уровня. В последнее время получает распространение программное обеспечение класса MES (Manufacturing Execution Systems), основной задачей которого является оптимизация управления производством в целом, включая планирование запасов комплектующих, расписание технологических процессов и т.д. Системы MES, с одной стороны, взаимодействуют с системами SCADA, образуя единую систему управления производством, с другой стороны, — часто интегрируются в систему планирования и управления предприятием в целом.
|