3 Туманов М.П. Технические средства автоматизации и управления: цифровые
средства
обработки
информации
и
программно...
51 downloads
206 Views
743KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
3 Туманов М.П. Технические средства автоматизации и управления: цифровые
средства
обработки
информации
и
программное
обеспечение, под ред. А.Ф. Каперко: Учебное пособие. – МГИЭМ. М., 2005, 71 с. ВВЕДЕНИЕ Общие сведения о цифровых средствах обработки информации и программном обеспечении в системах автоматизации и управления (СаИУ). В современных условиях имеется устойчивая тенденция увеличения доли цифровых методов обработки, передачи и хранения информации. Под такими цифровыми
методами
понимаются
все
методы,
которые
связаны
с
преобразованием информации в цифровую форму для последующей обработки с использоваием компьютерной техники. Заметим, что не бывает на 100% цифровых систем, включающих в себя процессы окружающей природы, так как в таких системах обязательно имеются звенья преобразователей аналоговых и непрерывных процессов в цифровую форму. Лишь в системах виртуальной реальности возможны полностью цифровые системы. Однако, системы виртуальной реальности бессмысленны сами по себе, без участия человека. А как только учитывается наличие человека, любая система перестаёт быть полностью цифровой. Кроме таких цифровых методов имеются стремительно устаревающие цифровые устройства, основанные на применении дискретных цифровых элементов низкой степени интеграции с жёсткой логикой работы без программного управления. Но их эпоха заканчивается, так как практически все задачи, решаемые на их основе, могут быть гораздо эффективнее (по всем показателям эффективности) решены с помощью микропроцессорной техники. Поэтому в дальнейшем будем
подразумевать лишь
цифровые средства
обработки информации, основанные на применении компьютерной техники Цифровые методы хранения и передачи информации также чрезвычайно полезны в тех случаях, когда необходимо производить эффективное сжатие объёмной информации для последующего долговременного её хранения или
4 передачи по каналам в реальном времени. Например, при создании и эксплуатации архивов видео- и аудиоматериалов для on-line информационных ресурсов. Ключевым здесь является и то, что цифровой образ информации может сохраняться в течение неограниченного времени практически без потери качества и так же надёжно передаваться по каналам связи. С общепринятой в теории информации точки зрения это непривычно. Обычно считается, что при передаче информации по каналу вносятся неизбежные искажения но, на самом деле, методы помехоустойчивого кодирования, уменьшают вероятность потери полезной информации до пренебрежимо малых величин. Эти методы позволяют без потерь восстановить полезную информацию даже в условиях существенных потерь в кодах при передаче. Достигается это ценой увеличения длины кодовых комбинаций, то есть, за счёт увеличения объёма передаваемой информации. Тенденции перехода на цифровые методы, безусловно, наблюдаются и в гораздо более узких прикладных областях.
В частности, они в значительной
степени затрагивают и область технических средств автоматизации. В этой области идёт смена поколений технических средств обработки информации и информационного обмена. Сами по себе эти средства могут непосредственно не затрагивать
традиционные
предметные
области
автоматизации:
датчики,
приводы, регуляторы, однако, меняют всю среду существования средств автоматизации в целом. При этом пока ещё имеются проверенные временем технические
решения,
в
которых
удельная
доля
микропроцессорных,
микроконтроллерных устройств недостаточна, но сами решения отлажены и в своих областях применения могут ещё долгое время быть использованы. Такими решениями,
например,
являются
локальные
аналоговые
регуляторы,
предназначенные для управления некоторыми, не особенно точными (порядка 3%-5%), процессами.
5 ГЛАВА 1. Цифровые средства обработки информации в САиУ. § 1.1 Основные тенденции развития вычислительных средств САиУ. Многие
датчики
и
приводы
по-прежнему
являются
аналоговыми
устройствами по сути своей работы. Для этих классов приборов имеется применение
там,
где
отсутствуют
условия
необходимой
высококвалифицированной инженерной поддержки, обычно требующейся при внедрении цифровой техники. Здесь причина кроется не в высокой надёжности аналоговой техники,- как раз надёжность цифровой техники существенно выше, чем аналоговой, а в том, что для полноценной эксплуатации требуется наличие современных знаний и квалификации в области программирования, системной администрации и аналогичных областях. Исторически, цифровые методы обработки информации внедряются
в
технические средства САиУ примерно в течение такого же периода, что и в офисную
технику,
хотя
и
несколько
меньшими
темпами.
В
период,
предшествующий бурному развитию микропроцессорной техники (до 80-х годов 20 го века), было разработано и внедрено огромное количество технических устройств,
обладавших,
в
общем,
вполне
удовлетворительными
характеристиками. Но все они имели один существенный недостаток: жёсткость логической
структуры,
недостаточную
воспроизводимость
характеристик.
Постепенно становилось ясно, что только использование перепрограммируемых и
универсальных
устройств
обеспечит
будущее
технических
средств
автоматики. Причём не специальных программируемых устройств, а болееменее универсальных, переконфигурируемых. На этом этапе произошло разделение путей развития на две линии: • на основе универсальных ЭВМ; • на основе более простых ЭВМ, но зато более оптимизированных для требуемой задачи и поэтому не уступающих в эффективности при использовании в рамках именно этой задачи. За 25 лет развития ясно, что оба эти подхода имеют право на жизнь. Более того, именно их сочетание и обеспечивает то желаемое качество, которое сегодня обыденно, но 20 лет назад показалось бы абсолютной фантастикой.
6 Опыт разработки и производства современных, в том числе, военных систем позволяют говорить о серьёзном прорыве традиционных подходов к управляющим спецсистемам. Современные проекты объединяет следующее для их создания широко использованы готовые аппаратные и программные технологии
открытого
типа,
ранее
широко
апробированные
и
стандартизованные на рынке общепромышленных гражданских приложений. За последние 10-12 лет, по разным оценкам, доля глобального рынка военных полупроводниковых электронных компонентов упала с 17% до 3% и менее. То есть фактически абсолютное большинство новейших «военных» компьютерных систем сегодня отражают лучшие технологические достижения из мира общегражданских, общепромышленных аппаратных и программных технологий. В перспективе эта тенденция, видимо, будет только усиливаться. Если сравнить уровень самой техники общего применения в областях офисных приложений и в областях автоматизации (а также специальной техники, в том числе, военной), то общее отставание в области автоматизации может быть оценено в 1-2 поколения средств вычислительной техники. Причина такого отставания
заключается
автоматизации, предъявляются
а
в
не
том,
обычно
широкораспространённой
в
что
консерватизме к
более офисной
техническим высокие
разработчиков средствам
требования,
вычислительной
средств
автоматизации чем
технике.
к
Кроме
более того,
контроллеры средств автоматизации обычно вынуждены работать в гораздо более жёстких условиях эксплуатации. Цена сбоя в системе автоматического управления также может быть гораздо выше, чем в других информационных системах, так как объект управления нуждается в управлении постоянно и в реальном времени. Возвращаясь к цифровым методам и средствам обработки информации в САиУ, заметим, что этих системах обычно имеется большое количество разнообразных датчиков и преобразователей информации физических величин таких, как температура, давление, расход жидкостей, скорость и т.п. Эти датчики преобразуют исходную физическую величину в некоторую стандартную величину, например, стандартный диапазон напряжения (0-1В.). В дальнейшем встаёт задача преобразования этой промежуточной величины в цифровую форму. В последнее время появилось и стремительно развивается новое поколение датчиков, в которых имеются встроенные контроллеры, осуществляющие такое
7 преобразование. Такой интеллектуальный датчик сам становится элементом вычислительной сети. Он становится микро-эвм, поддерживающей сетевой протокол и передающей данные уже в преобразованном в цифровую форму виде. Часто в контроллере такого датчика производится предварительная цифровая обработка
сигнала,
например,
коррекция
систематической
погрешности
преобразователя, предварительная фильтрация случайных помех, а также контроль работоспособности.
Как бы то ни было, но тенденция развития здесь
однозначная - всё больше технических средств САиУ становятся чисто цифровыми. Среди датчиков появляются такие, в которых преобразование происходит непосредственно в цифровую форму, причём, непосредственно подготовленную к передаче по каналу связи. Так же могут быть устроены и другие составные части САиУ. Цифровыми и интеллектуальными (со встроенными микроконтроллерами) могут являться исполнительные устройства, каналы связи, задатчики воздействий, фильтры и т.п. Кроме перепрограммируемости, это даёт повышение надёжности за счёт гибкости конфигураии. К настоящему времени количество компьютеров, используемых для управления процессами производства, выросло от 1 млн. в 1980г. и более 10 млн. в 2000г. до более, чем 50 млн. в 2003г. 50 млн. 5 млн. 500000 50000 5000 500 50
1960
Рис. 1. 1 Видно,
что
1970
1980
1990 2000
Рост числа применений ЭВМ в задачах управления. рост
числа
ЭВМ
в
задачах
управления
практически
экспоненциальный. При этом учитываются факты использования в решении задачи управления, а не общее число процессоров. Если учитывать число процессоров, то рост оказывается гораздо более быстрым - барьер 1млрд, процессоров давно пройден!
8 § 1.2 ЭВМ общего назначения. Это такая архитектура вычислительных средств и программного обеспечения, которая позволяет единообразно решать большинство возникающих технических задач, включая задачи сопряжения с ЭВМ широкой номенклатуры внешних устройств, дачтиков. Следует иметь в виду, что использование ЭВМ общего назначения упрощает и ускоряет процесс разработки стандартного проекта в области автоматизации, однако, конечное решение обычно не оказывается оптимальным ни в смысле технических требований надёжности, ни в смысле экономической эффективности. Обычно ЭВМ общего назначения включает в себя стандартный набор компонентов: Центральный процессор (один или несколько) и арифметический сопроцессор. Быстродействующее
запоминающее
устройство
(возможно,
энергонезависимое). Внешние (дисковые) накопительные устройства различной природы. Мультимедийные (графическое и звуковое) устройства. Терминал пользователя (дисплей). Средства ввода (клавиатура, мышь и т.п.) Средства сетевой поддержки. Возможность
подключения
дополнительных
интерфейсных
устройств, в том числе, и в виде контроллеров, присоединяемых к шине ЭВМ. Возможность установки разнообразного программного обеспечения вместо имеющегося в стандартной поставке (или в дополнение к нему), в том числе, возможность изменения микропрограмм (BIOS). Последние два свойства чрезвычайно важны, так как соответствуют открытости архитектуры такой ЭВМ. Именно открытость архитектуры PC совместимых компьютеров в 80-е годы 20века сыграла решительную роль в повсеместном распространени этой техники, а не конкурентов на базе более совершенных, но менее открытых процессоров и периферии. В качестве примера можно привести, скажем, линию Power PC, для которой характерно существенно более высокое быстродействие при гораздо меньших тактовых частотах, но более высокая цена
9 и, главное, закрытость архитектуры. Свойство открытости архитектуры является непременным условием универсальности при широком применении. На сегодняшний день этим требованиям в основном удовлетворяют типовые персональные РС-совместимые компьютеры и контроллеры на базе их архитектуры. Именно на такой базе часто строят системы автоматики, если к ним не предъявляются повышенные требования. Часто ПК используют на начальном этапе
проектирования
системы,
когда
требуется
ускоренно
получить
работоспособную версию системы, необходимую для дальнейшей разработки. Обычно таким разработкам присущи следующие характерные недостатки: •
невысокая надёжность как аппаратной, так и программной части;
•
узкий температурный диапазон, особенно в сторону отрицательных температур;
•
низкое качество исполнения материнских плат и плат контроллеров;
•
повышенный уровень помех и пульсаций по шинам питания, что усложняет задачу подключения точных устройств.
Тем не менее, ПК с успехом используются в качестве интеллектуальных измерительных приборов. Например, осциллограф на базе ПК позволяет, помимо удобного и наглядного отображения процессов, вести их запись на диск для протоколирования и передавать по сети обобщающую информацию для диспетчерского управления более высокого уровня. На рис.1.2 приведена типичная структура распределённой САиУ в области энергетики [СТА 1.2003 стр.41 ], хотя эта структура вообще типична для современных САиУ, использующих все три уровня САиУ.
10
Рис. 1.2 Структура системы диспетчерского контроля и управления (СДКУ) в энергетике. Очевидно сочетание совершенно разнородных средств ВТ разных уровней, связанных в сеть (также разнородную). § 1.3 Специализированные ЭВМ и вычислительные комплексы (ВК). Это
ЭВМ,
особенности,
имеющие
функциональные
позволяющие
использовать
возможности их
для
и
конструктивные
эффективного
решения
ограниченного класса задач в определённых условиях окружающей среды. Отличия от ЭВМ общего назначения могут быть разнообразными, например:
11 процессор со специальной (эффективной в конкретном случае) системой команд. Типичный
пример
-
процессоры
цифровой
обработки
сигналов
(DSP),
эффективные в задачах цифровой фильтрации в составе комплекса обработки данных ультразвуковой локации. За счёт этого удаётся:
повысить надёжность;
снизить стоимость;
повысить быстродействие;
Вычислительный комплекс прикладную задачу. В
(ВК) - это комплекс средств ВТ, решающий
ВК могут входить разнородные компоненты. Обычно
приходится применять специализированные вычислительные средства: или (проблемно-ориентированные) специализированные ЭВМ и ВК для оптимизации окончательного решения при проектировании САиУ. Другой примером специализированной ЭВМ в составе ВК является, совокупность нижнего и среднего уровней системы автоматизации на основе соответственно локальных контроллеров и ПК. Ниже
в
Таблице1.1
приведена
классификация
различных
типов
вычислительных средств. В качестве параметров классификации выбраны наиболее значимые для задач автоматизации. Иные параметры, которые могут меняться в широких пределах (к примеру, объём ОЗУ или объём дисковой системы) в зависимости от конфигурации, не рассматриваются, так как не являются определяющими.
12
Тип ЭВМ
Производительность Мflops/c.
Наличие Flash дисков, ОЗУ и ROM
ЭВМ общего назначения
>1000
Диски
PCI 10/100/ 132 1000 Mб./сек. Мб./сек.
нет
10-5
Диски
PCI 10/100 132 Мб./сек. Mб./сек.
нет
10-5
до 10
Диски и ОЗУ
PCI 132 Mб./сек.
16-24 бит
10-5
Управляющие ЭВМ и ВК
100
Диски и ОЗУ
Индустриальные ПК
<1000
Диски и ОЗУ
Микро-ЭВМ и микроконтроллеры
Программ ная эмуляция
ОЗУ и ROM
Рабочие станции
Специализирован ные ЭВМ и ВК
Таблица 1.1
1000
6
Максим. скорость вводавывода
Сеть
10/100/ 1000/ 10000 Мб./сек.
Надёж спец. -ность АЦ/ ЦА (отказ/ каналы сек.)
ISA или 33Кб/ PCI сек., 8 или 8-14 бит 10/100 132 Мб./сек. Mб./сек. ISA или 33Кб/ PCI сек., 8 или 8-14бит 10/100 132 Мб./сек. Mб./сек. 115.2 Кбод
на базе RS8-12 бит 232/485
10-6
10-6
10-8
13 § 1.4
Управляющие ЭВМ (УВМ), управляющие ВК (УВК) и промышленные
(индустриальные) ПК. УВМ и УВК характеризуются набором возможностей работы в режиме реального времени. Эти возможности касаются как подсистемы ввода-вывода, так и свойств операционной системы. Также следует отметить возможности обнаружения сбоев и быстрого восстановления после них. Промышленные (индустриальные) ПК - это специально спроектированные ПК, совместимые со стандартными архитектурно и программно, но отличающиеся конструктивным
исполнением.
Цель
-
повышение
надёжности,
помехозащищённости и расширения диапазона параметров окружающей среды нормального функционирования (температурный диапазон и т.п.). Преимущество таких ПК - возможность отладки программного обеспечения на обычных ПК. § 1.5
Рабочие станции.
Обычно это персональные компютеры, находящиеся на рабочих местах сотрудников, решающих конкретную задачу с помощью ЭВМ. Поэтому рабочие станции
оборудованы
всеми
необходимыми
устройствами
ввода-вывода.
Обычно рабочие станции входят в сеть, в которой также имеются мощные серверы, поставляющие информационные ресурсы и необходимое сетевое программное
обеспечение,
хранение
которого
на
рабочих
станциях
нецелесообразно. Обычно рабочие станции не предназначены для работы в реальном времени и используются на диспетчерском уровне САиУ и на рабочих местах разработчиков. § 1.6 Микро-ЭВМ и микроконтроллеры. С развитием микрокомпьютеров цена одноплатной ЭВМ (с возможностями мини-компьютера 1975 г.) в 2000 г. упала до 150 долл. и вычислительные мощности стало возможно наращивать модулями, стоимостью, не превышающей 50 долл. за изделие. Это означало, что цифровое управление в принципе могло быть реализовано в любом объекте независимо от его масштабов. Микро-ЭВМ
дали
толчок
совершенствованию
управляющего
оборудования: они заменяют аналоговые регуляторы даже в одноконтурных системах управления. Сконструированы иерархические системы управления с
14 большим
количеством
микропроцессоров
и
спроектированы
регуляторы
специального назначения на базе микро-ЭВМ. В настоящее время во всём мире выпускается огромная номенклатура микро-ЭВМ, предназначенных для задач управления и являющихся, по существу, техническими средствами автоматизации. Однако необходимо всё же разделить всё множество таких управляющих микро-ЭВМ на две группы: • микро-ЭВМ,
наследующие
архитектуру
персональных
компьютеров,
обычно совместимых с ними не только через внешние интерфейсы, но и на уровне всей архитектуры и программного обеспечения; • микроконтроллеры,
которые
берут
своё
начало
от
более
узкоспециализированных микропроцессорных платформ (Intel MCS-51, Motorola 68x, PIC- контроллеров, ряда процессоров цифровой обработки сигналов и др.). Первоначально, в силу крайне ограниченных вычислительных мощностей этих устройств, казалось, что их ниша будет примыкать к классическим аппаратным средствам систем управления. Но теперь подобные устройства уже мало в чём уступают микро-ЭВМ, их мощности вполне достаточно, чтобы решать довольно сложные задачи управления.
ГЛАВА 2. Сетевые компоненты САиУ. § 2.1 Эталонная модель архитектуры открытых систем. Современная тенденция развития информационных систем, а к их числу, в конечном итоге, принадлежат и системы автоматики заключается в том, что структура
системы
должна
удовлетворять
следующим
требованиям,
не
выполнение которых делает систему значительно менее живучей и неспособной к эффективному развитию и совершенствованию: 9 система должна обладать открытой архитектурой; 9 система должна быть распределённой. Оба эти желательные свойства системы известны давно, но лишь с развитием микропроцессорной экономически
техники
оправданно
и
сетевых
строить
технологий
системы
стало
автоматики
возможно
и
действительно
15 удовлетворяющие этим двум требованиям. Стало целесообразным выделять в общей структуре системы отдельные локальные задачи, решение которых поручать
локальным
контроллерам.
Контур
управления,
таким
образом,
замыкается на нижнем уровне. Сеть же позволяет контроллерам в качестве аргументов для вычисления управляющего вектора использовать переменные других контроллеров, обеспечивая связанность системы управления в целом. Такая архитектура существенно увеличивает производительность, надежность и масштабируемость систем. Международная организация по стандартизации (ISO) в1984 г. сформулировала модель взаимодействия открытых систем (OSI), выделив семь уровней такого взаимодействия. Предполагается, что следование этой модели способно огранизовать и процесс создания системы в целом, причём структура такой системы будет "открытой" в том смысле, что будет являться хорошо структурированной, понятной специалисту не только в данной узкой прикладной
области,
но
и
вообще
специалисту
широкого
профиля
по
информационным системам. Важнейшим фактором является и то, что снижаются затраты на создание программного обеспечения, так как оно становися более или менее стандартизованным. Сопровождение такого программного обеспечения также осуществлять проще, что в конечном итоге повышает надёжность всей системы. 7. Прикладной уровень 6. Представительский уровень 5. Сеансовый уровень 4. Транспортный уровень 3. Сетевой уровень 2. Канальный уровень 1. Физический уровень
Рис. 2.1 Эталонная модель взаимодействия открытыхсистем (OSI).
16 Таким образом, эталонная модель взаимодействия открытых систем на самом деле декларирует не только взаимодействие, но и архитектуру таких систем. Всякая открытая система является иерархически построенной,
и внутренняя
архитектура системы подобна (в силу модели OSI) глобальной архитектуре, в которую
входит
множество
подсистем.
Это
означает,
что
программное
обеспечение для систем любого уровня создаётся на общих принципах и является достаточно универсальным. Предполагается, что непосредственная связь между физически (не логически) различными системами или подсистемами осуществляется на физическом уровне. Кроме того, в идеальном случае каждый из семи
уровней должен взаимодействовать непосредственно лишь с двумя
прилежащими к нему уровнями. При нарушении этого требования окажется невозможным
гарантировать
правильное
использование
программного
обеспечения при его переносе на другие системы, кроме того, становится проблематичным обслуживание аппаратно-программных комплексов, так как они приобретают уникальные, нестандартные свойства. Более подробно уровни модели взаимодействия открытых систем (снизу вверх) означают следующее:
1. Физический уровень (нижний). Отвечает за физическую среду передачи: кабели, разъемы, согласование линий связи, электрическое преобразование сигналов.
2. Канальный уровень. На этом уровне основная задача - логическое управление линией передачи, управление доступом к сети, обнаружение ошибок передачи и их исправления путём повторной посылки пакетов.
3. Сетевой уровень. Отвечает за адресацию пакетов данных, связывает физические сетевые адреса и
логические имена, осуществляет выбор
маршрута (маршрутизацию) доставки данных.
4. Транспортный уровень. Здесь осуществляется создание пакетов данных и гарантированная доставка этих пакетов. При необходимости используются процедуры восстановления потерянных данных.
5. Сеансовый уровень. Сеанс связи означает, что между абонентами сети установлено логическое соединение, определены логические имена, контролируются права доступа.
6. Представительский уровень.
На этом уровне происходит
преобразование рабочей информации в логическую и физическую форму,
17 наиболее пригодную для дальнейшей передачи в сети. Здесь имеется ввиду такие процедуры, как сжатие, шифрование, преобразование форматов данных.
7. Прикладной уровень (уровень приложений). Уровень программ пользователя. Верхний уровень, непосредственно взаимодействующий с пользователем.
Структура уровней такова, что замена аппаратной части сказывается лишь на уровнях 1 и 2, вышестоящие уровни этой замены не должны заметить.
§ 2.2 Локальные управляющие вычислительные сети. Для передачи информации в системах автоматики всё шире используются не традиционные каналы связи, такие, как специализированные многожильные кабели, выделенные телефонные каналы и т.п. а локальные сети. В принципе, существенная разница при этом заключается не столько в виде физической среды передачи информации (кабеле), сколько в гораздо более сложных и эффективных
способах
кодирования,
сжатия
информации,
а
также
в
универсальности. К сожалению, современные решения, применяемые для построения локальных и глобальных информационных сетей (Internet) не всегда оказываются приемлемыми в силу нескольких причин, основные из которых: ¾ не
гарантированное
время
доставки
информации,
что
малоприемлемо для систем реального времени; ¾ сложность
некоторых
аппаратных
решений,
особенно
для
скоростных сетей. В силу этого не будем останавливаться на стандартных решениях, а рассмотрим специальные сети, характерные для систем автоматики. Foundation Fieldbus (далее FF) — самый молодой и быстро растущий стандарт на промышленную сеть. Он вобрал в себя самые современные технологии построения управляющей сети масштаба предприятия. Практически стандарт определяет два уровня сети. На нижнем уровне (Н1) в качестве физической среды передачи данных за основу взят стандарт IEC 611582, который позволяет использовать сеть FF на взрывоопасных производствах с возможностью запитки датчиков непосредственно от канала связи. Скорость передачи информации на уровне H1 составляет 31,5 кбит/с. На верхнем уровне
18 (бывший H2) в настоящее время, как правило, используется FF HSE (High Speed Ethernet), основанный, как видно из названия, на сети Ethernet со скоростью 100 Мбит/с. На физическом уровне интерфейсы Н1 Foundation Fieldbus и PROFIBUSPA используют одинаковую витую пару, одинаковые уровни сигналов и скорости передачи и позволяют оконечным устройствам запитываться непосредственно от канала связи. Более того, два этих протокола могут одновременно уживаться на одном и том же физическом участке сети. Fieldbus является примером специализированной сети. Часто в системах автоматики используют сегменты обычных локальных и глобальных сетей. Невозможно провести четкую и однозначную границу между локальными и глобальными сетями. Большинство локальных сетей имеет выход в глобальную сеть, но характер передаваемой информации, принципы организации обмена, режимы доступа к ресурсам внутри локальной сети, как правило, сильно отличаются от тех, что приняты в глобальной сети. И хотя все компьютеры локальной сети в данном случае включены также и в глобальную сеть, специфики локальной сети это не отменяет. Возможность выхода в глобальную сеть остается всего лишь одним из ресурсов, разделяемых пользователями локальной сети. По локальной сети может передаваться самая разная цифровая информация: данные, изображения, телефонные разговоры, электронные письма и т.д. Кстати,
именно
задача
передачи
изображений,
особенно
полноцветных
динамических изображений, предъявляет самые высокие требования к быстродействию сети. Чаще всего локальные сети используются для разделения (то есть совместного использования) таких ресурсов, как дисковое пространство, принтеры и выход в глобальную сеть, но это всего лишь незначительная часть тех возможностей, которые предоставляют средства локальных сетей. Например, они позволяют осуществлять обмен информацией между компьютерами разных типов. Абонентами (узлами) сети могут быть не только компьютеры, но и другие устройства, например принтеры, плоттеры, сканеры. Локальные сети дают возможность
организовать
систему
параллельных
вычислений
на
всех
компьютерах сети, что позволяет многократно ускорить решение сложных математических задач. С их помощью можно также управлять работой сложной технологической
системы
или
исследовательской
установки
с
нескольких
19 компьютеров одновременно. Упомянем о таких важнейших понятиях теории сетей, как сервер и клиент. Сервером называется абонент (узел) сети, который предоставляет свои ресурсы другим абонентам, но сам не использует ресурсы других абонентов, то есть служит только сети. Серверов в сети может быть несколько, и совсем не обязательно сервер - это самый мощный компьютер. Выделенный сервер - это сервер, занимающийся только сетевыми задачами. Невыделенный сервер может заниматься помимо обслуживания сети и другими задачами. Специфический тип сервера - это сетевой принтер. Клиентом называется абонент сети, который только использует сетевые ресурсы, но сам свои ресурсы в сеть не отдает, то есть сеть его обслуживает. Компьютер-клиент также часто называют рабочей станцией. 9 В принципе, каждый компьютер может быть одновременно как клиентом, так и сервером. 9 Под сервером и клиентом часто понимают также не сами компьютеры, а работающие на них программные приложения. В этом случае то приложение, которое только отдает ресурс в сеть, является сервером, а то приложение, которое только пользуется сетевыми ресурсами, является клиентом. Топологии локальных сетей. Под топологией (компоновкой, конфигурацией, структурой) компьютерной сети обычно понимается физическое расположение компьютеров сети друг относительно друга и способ соединения их линиями связи. Важно отметить, что понятие топологии относится прежде всего к локальным сетям, в которых структуру связей можно легко проследить. В глобальных сетях структура связей обычно скрыта от пользователей и не слишком важна, так как каждый сеанс связи может производиться по своему собственному пути. Топология определяет требования к оборудованию тип используемого кабеля, возможные и наиболее удобные методы управления обменом, надежность работы, возможности расширения сети. И хотя выбирать топологию пользователю сети приходится нечасто, знать об особенностях основных топологий, их достоинствах и недостатках, наверное, надо всем.
20 Следует также иметь ввиду, что при упоминании о топологии сети могут подразумевать совершенно разные понятия, относящихся к различным уровням сетевой архитектуры: Физическая топология (то есть схема расположения компьютеров и
9
прокладки кабелей). В этом смысле, например, пассивная звезда ничем не отличается от активной звезды, поэтому ее нередко называют просто «звездой». Логическая
9
топология
(то
есть
структура
логических
связей
и
вытекающих из них способов распространения сигналов). Информационная топология (пути распространения информации по
9 сети).
Существует три основных топологии сети: •
шина
(bus),
ключаются
при
к
компьютера
которой
одной
все
линии
одновременно
компьютеры
связи
и
параллельно
информация
передается
всем
от
под
каждого
остальным
ком-
пьютерам:
Рис. 2.2
•
звезда
(star),
теру
присоединяются
ры,
причем
нию связи:
Рис. 2.3
при каждый
которой
к
одному
остальные из
них
центральному
периферийные
использует
свою
компью компьюте
отдельную
ли
21 •
кольцо
(ring),
при
которой
каждый
компьютер
передает
ин
формацию всегда только одному компьютеру, следующему в цепочке, а получает информацию только от предыдущего в цепочке компьютера, и эта цепочка замкнута в «кольцо»:
Рис. 2.4
На практике нередко используют и комбинации базовых топологий, но большинство сетей ориентированы именно на эти три. Рассмотрим теперь кратко особенности перечисленных сетевых топологий. § 2.3 Топология "шина" ("общая шина" ). Топология «шина» (или, как ее еще называют, «общая шина») самой своей структурой предполагает идентичность сетевого оборудования компьютеров, а также равноправие всех абонентов. При таком соединении компьютеры могут передавать только по очереди, так как линия связи единственная. В противном случае передаваемая информация будет искажаться в результате наложения (конфликта,
коллизии).
Таким
образом,
в
шине
реализуется
режим
полудуплексного (half duplex) обмена (в обоих направлениях, но по очереди, а не одновременно). В топологии «шина» отсутствует центральный абонент, через которого передается вся информация, что увеличивает ее надежность (ведь при отказе любого центра перестает функционировать вся управляемая этим центром система}. Добавление новых абонентов в шину довольно просто и обычно возможно даже во время работы сети. В большинстве случаев при использовании шины требуется минимальное количество соединительного кабеля по сравнению с другими топологиями. Правда, надо учесть, что к каждому компьютеру (кроме двух крайних) подходит два кабеля, что не всегда удобно.
22 Так как разрешение возможных конфликтов в данном случае ложится на сетевое оборудование каждого отдельного абонента, аппаратура сетевого адаптера при топологии «шина» получается сложнее, чем при других топологиях. Однако из-за широкого распространения сетей с топологией «шина» (Ethernet, Arcnet) стоимость сетевого оборудования получается не слишком высокой. Шине не страшны отказы отдельных компьютеров, так как все остальные компьютеры сети могут нормально продолжать обмен. Может показаться, что шине не страшен и обрыв кабеля, поскольку в этом случае мы получим две вполне работоспособные
шины.
Однако
из-за
особенностей
распространения
электрических сигналов по длинным линиям связи необходимо предусматривать включение на концах шины специальных согласующих устройств - терминаторов, показанных на рисунке в виде прямоугольника. Без включения терминаторов сигнал отражается от конца линии и искажается так, что связь по сети становится невозможной. Так что при разрыве или повреждении кабеля (например, мышами, которые почему-то очень любят грызть кабели сети) нарушается согласование линии связи, и прекращается обмен даже между теми компьютерами, которые остались соединенными между собой. Подробнее о согласовании будет рассказано в специальном разделе книги. Короткое замыкание в любой точке кабеля шины выводит из строя всю сеть. Любой отказ сетевого оборудования в шине очень трудно локализовать, так как все адаптеры включены параллельно, и понять, какой из них вышел из строя, не так-то просто. При прохождении по линии связи сети с топологией «шина» информационные сигналы ослабляются и никак не восстанавливаются, что накладывает жесткие ограничения на суммарную длину линий связи, кроме того, каждый абонент может получать из сети сигналы разного уровня в зависимости от расстояния до передающего абонента. Это предъявляет дополнительные требования к приемным узлам сетевого оборудования. Для увеличения длины сети с топологией «шина» часто используют несколько сегментов (каждый из которых представляет собой шину), соединенных между собой с помощью специальных восстановителей сигналов - репитеров, или повторителей:
23
Рис. 2.5
Однако, такое наращивание длины сети не может продолжаться бесконечно, так как существуют еще и ограничения, связанные с конечной скоростью распространения сигналов по линиям связи. § 2.4 Топология «звезда» «Звезда» - это топология с явно выделенным центром, к которому подключаются все остальные абоненты. Весь обмен информацией идет исключительно через центральный компьютер, на который таким образом ложится очень большая нагрузка. Понятно, что сетевое оборудование центрального абонента должно быть существенно более сложным, чем оборудование периферийных абонентов. О равноправии абонентов в данном случае говорить не приходится. Как правило, именно центральный компьютер является самым мощным, и именно на него возлагаются все функции по управлению обменом. Никакие конфликты в сети с топологией «звезда» в принципе невозможны, так как управление полностью централизовано, конфликтовать нечему. Если говорить об устойчивости звезды к отказам компьютеров, то выход из строя периферийного
компьютера
никак
не
отражается
на
функционировании
оставшейся части сети, зато любой отказ центрального компьютера делает сеть полностью неработоспособной. Поэтому должны приниматься специальные меры по повышению надежности центрального компьютера и его сетевой аппаратуры. Обрыв любого кабеля или короткое замыкание в нем при топологии «звезда» нарушает обмен только с одним компьютером, а все остальные компьютеры могут нормально продолжать работу. В отличие от шины, в звезде на каждой линии связи находятся только два абонента: центральный и один из периферийных. Чаще всего для их соединения используется две линии связи, каждая из которых передает информацию только в одном направлении. Таким образом, на каждой линии связи имеется только один
24 приемник и один передатчик. Все это существенно упрощает сетевое оборудование по
сравнению
с
шиной
и
избавляет
от
необходимости
применения
дополнительных внешних терминаторов. Проблема затухания сигналов в линии связи также решается в «звезде» проще, чем в «шине», ведь каждый приемник всегда получает сигнал одного уровня. Серьезный недостаток топологии «звезда» состоит в жестком ограничении количества абонентов. Обычно центральный абонент может обслуживать не более 8-16 периферийных абонентов. Если в этих пределах подключение новых абонентов довольно просто, то при их превышении оно просто невозможно. Правда, иногда в звезде предусматривается возможность наращивания, то есть подключение вместо одного из периферийных абонентов еще одного центрального абонента (в результате получается топология из нескольких соединенных между собой звезд). Рассмотренная "звезда" носит название активной, или истинной, звезды. Существует также топология, называемая пассивной звездой, которая только внешне похожа на звезду:
Рис. 2.6
В настоящее время она распространена гораздо больше, чем активная звезда. Достаточно сказать, что она используется в самой популярной на сегодняшний день сети Ethernet. В центре сети с данной топологией помещается не компьютер, а концентратор, или хаб (hub), выполняющий ту же функцию, что и репитер. Он восстанавливает приходящие сигналы и пересылает их в другие линии связи. Хотя схема прокладки кабелей подобна истинной или активной звезде, фактически мы имеем дело с шинной топологией, так как информация от каждого компьютера одновременно передается ко всем остальным компьютерам, а
25 центрального абонента не существует. Естественно, пассивная звезда получается дороже обычной шины, так как в этом случае обязательно требуется еще и концентратор.
Однако
она
предоставляет
целый
ряд
дополнительных
возможностей, связанных с преимуществами звезды. Именно поэтому в последнее время пассивная звезда все больше вытесняет истинную шину, которая считается малоперспективной топологией. Можно выделить также промежуточный тип топологии между активной и пассивной звездой. В этом случае концентратор не только ретранслирует поступающие на него сигналы, но и производит управление обменом, однако сам в обмене не участвует. Большое достоинство звезды (как активной, так и пассивной) состоит в том что все точки подключения собраны в одном месте, что позволяет легко контролировать работу сети, а также ограничивать доступ посторонних лиц к жизненно важным для сети точкам подключения. К каждому периферийному абоненту в случае звезды может подходить как один кабель (по которому идет передача в обоих направлениях), так и два кабеля (каждый из них передает в одном направлении), причем вторая ситуация встречается чаще. Общим недостатком для всех топологий типа «звезда» является значительно больший, чем при других топологиях, расход кабеля. Например, если компьютеры расположены в одну линию, то при выборе топологии «звезда» понадобится в несколько раз больше кабеля, чем при топологии «шина». Это может существенно повлиять на стоимость всей сети в целом. § 2.5 Топология «кольцо» «Кольцо» - это топология, в которой каждый компьютер соединен линиями связи только с двумя другими: от одного он только получает информацию, а другому только передает. На каждой линии связи, как и в случае звезды, работает только один передатчик и один приемник. Это позволяет отказаться от применения внешних терминаторов. Важная особенность кольца состоит в том, что каждый компьютер ретранслирует (восстанавливает) приходящий к нему сигнал, то есть выступает в роли репитера, поэтому затухание сигнала во всем кольце не имеет никакого значения, важно только затухание между соседними компьютерами кольца. Четко выделенного центра в данном случае нет, все компьютеры могут быть одинаковыми. Однако довольно часто в кольце выделяется специальный абонент, который управляет обменом или контролирует обмен. Понятно, что наличие такого
26 управляющего абонента снижает надежность сети, так как выход его из строя сразу же парализует весь обмен. Строго говоря, компьютеры в кольце не являются полностью равноправными (в отличие, например, от шинной топологии). Одни из них обязательно получают информацию от компьютера, ведущего передачу в данный момент, раньше, а другие позже. Именно на этой особенности топологии и строятся методы управления обменом по сети, специально рассчитанные на «кольцо». В этих методах право на следующую передачу (или, как еще говорят, на захват сети) переходит последовательно к следующему по кругу компьютеру. Подключение новых абонентов в «кольцо» обычно совершенно безболезненно, хотя и требует обязательной остановки работы всей сети на время подключения. Как и в случае топологии «шина», максимальное количество абонентов в кольце может быть довольно велико (до тысячи и больше). Кольцевая топология обычно является самой устойчивой к перегрузкам, она обеспечивает уверенную работу с самыми большими потоками передаваемой по сети информации, так как в ней, как правило, нет конфликтов (в отличие от шины), а также отсутствует центральный абонент (в отличие от звезды). Так как сигнал в кольце проходит через все компьютеры сети, выход из строя хотя бы одного из них (или же его сетевого оборудования) нарушает работу всей сети в целом. Точно так же любой обрыв или короткое замыкание в любом из кабелей кольца делает работу всей сети невозможной. Кольцо наиболее уязвимо к повреждениям кабеля, поэтому в этой топологии обычно предусматривают прокладку двух (или более) параллельных линий связи, одна из которых находится в резерве. В то же время крупное преимущество кольца состоит в том, что ретрансляция сигналов каждым абонентом позволяет существенно увеличить размеры всей сети в целом (порой до нескольких десятков километров). Кольцо в этом отношении существенно превосходит любые другие топологии. Недостатком кольца (по сравнению со звездой) можно считать то, что к каждому компьютеру сети необходимо подвести два кабеля. Иногда топология «кольцо» выполняется на основе двух кольцевых линий связи, передающих информацию в противоположных направлениях. Цель подобного решения - увеличение (в идеале - вдвое) скорости передачи
27 информации. К тому же при повреждении одного из кабелей сеть может работать с другим кабелем (правда, предельная скорость уменьшится). § 2.6 Другие топологии Кроме трех рассмотренных основных, базовых топологий нередко применяется также сетевая топология «дерево» (tree), которую можно рассматривать как комбинацию нескольких звезд. Как и в случае звезды, дерево может быть активным, или истинным и пассивным. При активном дереве в центрах объединения нескольких линий связи находятся центральные компьютеры, а при пассивном - концентраторы. Применяются и комбинированные топологии, среди которых наибольшее распространение получили звездно-шинная и звезднокольцевая. В звездно-шинной (star-bus) топологии используется комбинация шины и пассивной звезды. В этом случае к концентратору подключаются как отдельные компьютеры, так и целые шинные сегменты, то есть на самом деле реализуется физическая топология «шина», включающая все компьютеры сети. В данной топологии может использоваться и несколько концентраторов, соединенных между собой и образующих так называемую магистральную, опорную шину. К каждому из концентраторов подключаются отдельные компьютеры или шинные сегменты. Пользователь получает возможность гибко комбинировать премущества шинной и звездной топологий, а также легко изменять количество компьютеров, подключенных к сети. В случае звездно-кольцевой (star-ring) топологии в кольцо объединяются не сами компьютеры, а специальные концентраторы, к которым в свою очередь подключаются компьютеры с помощью звездообразных двойных линий связи. В действительности все компьютеры сети включаются в замкнутое кольцо, так как внутри концентраторов все линии связи образуют замкнутый контур.
Данная
топология позволяет комбинировать преимущества звездной и кольцевой топологий. Например, концентраторы позволяют собрать в одно место все точки подключения кабелей. Топология сети определяет не только физическое расположение компьютеров, но, что гораздо важнее, характер связей между ними, особенности распространения сигналов по сети. Именно характер связей определяет степень отказоустойчивости сети, требуемую сложность сетевой аппаратуры, наиболее подходящий метод управления обменом, возможные типы сред передачи (каналов связи), допустимый размер сети (длина линий
28 связи и количество абонентов), необходимость электрического согласования и многое
другое.
Более
того,
физическое
расположение
компьютеров,
соединяемых сетью, вообще довольно слабо влияет на выбор топологии. § 2.7 Моноканалы. Методы доступа к моноканалам и технические средства доступа. Моноканал реализует естественную потребность объединить большое количество абонентов сети с помощью универсальной и экономичной среды передачи данных. Если каждый абонент может быть связан с каждым, то при обычной
(не
сетевой)
архитектуре
"точка-точка"
пропорциональна квадрату числа абонентов!
стоимость
линий
связи
В противоположность этому
при использовании сетевой архитектуры стоимость затрат на оборудование складывается из стоимости устройств доступа (по числу абонентов) и стоимости общей сети. При этом чем больше абонентов, тем сетевая архитектура более выгодна с точки зрения затрат.
моноканал д о с т у п
д о с т у п
Абонент сети N 1
Абонент сети N 2
............ ......
д о с т у п
Абонент сети N k
Рис. 2.7 ¾ эталонной
Моноканал является основой моноканальной сети. В базовой модели
взаимодействия
открытых
систем
(OSI)
моноканал
представляется физическим и отчасти канальным уровнями OSI. Состоит он из одного или нескольких параллельно расположенных общих звеньев, блоков доступа и абонентских звеньев. Через общее звено каждый блок данных передается сразу всем абонентским системам. Создается это звено на основе витой пары, плоского кабеля, коаксиального кабеля, оптического кабеля либо радиоканала. На концах сегментов кабеля устанавливаются устройства,
29 называемые терминаторами. Чаще всего роль терминатора выполняет резистор с сопротивлением, равным волновому сопротивлению кабеля. При этом сигналы на концах кабеля рассеиваются и не происходит отражения волн, приводещее к возникновению стоячих волн в кабеле. Общий принцип согласования сопротивления
(волновые)
различных
сегментов
кабеля
и
устройств,
подключённых к кабелю, должны быть равны. Абонентское звено является частью моноканала, обеспечивающей его подключение к абонентской системе. Среди моноканалов выделяют два вида. Физическим
является
моноканал,
монопольно
использующий
физические
средства соединения общего звена. В отличие от этого, частотный моноканал использует только одну либо пару частотных полос этих средств. В случае, если общее звено имеет несколько паралельных друг другу кабелей, повышается его пропускная способность и возрастает надежность передачи. Абонентские системы осуществляют прием блоков данных из моноканала следующим образом. Каждый абонент, получив блок информации, просматривает его адрес. Направленный ему блок используется для обработки. Благодаря этому, блок может передаваться одной, нескольким либо всем абонентским системам. О последнем случае говорят, что осуществляется широковещание данных. К
общему
звену
моноканала
подключается
значительное
число
абонентских систем. Поэтому возникает проблема множественного доступа. Имеется ввиду проблема передачи. Несколько абонентов могут работать одновременно на приём, но не могут бесконфликтно одновременно работать на передачу. Решение этой проблемы обеспечивает принцип функционирования моноканала. Эти принципы доступа будут рассмотрены ниже. Общее звено моноканала может быть пассивным, например, состоять из коаксиального кабеля. Однако размеры такого звена ограничены. Поэтому часто используются
большие
обеспечивающие
активные
регенерацию
моноканалы,
(восстановление)
содержащие сигналов.
повторители, Использование
повторителей позволяет значительно увеличивать размеры звена. В зависимости от размеров, топологии, пропускной способности и других характеристик, выделяют несколько типов моноканала: шина, магистральный моноканал, древовидный моноканал. Особую структуру имеет моноканал в распределенной двойной шине с очередями. Шины используются в основном
30 внутри вычислительных систем, так как оказываются слишком дорогими при больших протяжённостях. Общее звено магистрального моноканала чаще всего создается на основе витой пары, плоского кабеля, коаксиального кабеля, оптического канала или радиоканала. Моноканал состоит из одного либо нескольких параллельно идущих общих звеньев, блоков доступа и абонентских звеньев. Обычно моноканал состоит из сегментов локальной сети, длина которых допускает использование физических средств соединения без повторителей, усиливающих сигналы. Такие сегменты соединяются друг с другом. Магистральные моноканалы используются в сети Ethernet. Магистральные радиоканалы именуют Радио Релейными Линиями (РРЛ). Методы управления доступом к моноканалам. Для обеспечения доступа к моноканалу существует несколько методов. Ниже рассматриваются основные, наиболее часто применяемые. 9
Среда
ArcNet
(Attached
resource
computer
Network)
была
разработана Datapoint Corporation в 1977 году. Первые платы ArcNet были выпущены в 1983году. Это простая, гибкая, недорогая сетевая архитектура для сетей масштаба группы. Организует логическое кольцо, используя общую шину. По логическому кольцу передается маркер. Устройство, получившее маркер, имеет право на передачу порции данных в канал. Стандартный кадр ArcNet может содержать до 508 байтов данных. В ArcNet Plus эта величина увеличена до 4096 байтов. Принимает данные то устройство, чей адрес указан в блоке данных. Каждому подключенному устройству присваивается номер. Последовательность обхода маркера определяется номерами устройств. Первые сети ArcNet использовали скорость передачи 2.5 Мбит/с. Скорость передачи ArcNet Plus доведена до 20Мбит/с. Внешне может выглядеть как звезда и как общая шина. В первом случае общая шина реализуется внутри концентратора. 9
Технология Token Ring (маркерное кольцо) основана на передаче
маркера по физическому кольцу. Она была запатентована в 1981г. Устройство, владеющее маркером, имеет право передать кадр. Передаваемый кадр добавляется (цепляется) к маркеру. В более поздних версиях к маркеру могут подцепить свои кадры несколько станций. Величина кадра практически не ограничена. В кадре указываются адреса передатчика и приемника. Кадр
31 принимает то устройство, которому он адресован. После принятия кадра устройство делает в нем пометку о приеме и отправляет с маркером дальше по кольцу. Передатчик, получив свой кадр, удаляет его из кольца. Внешне Token Ring может выглядеть как кольцо или как звезда. В последнем случае кольцо должно быть реализовано внутри концентратора. Достоинством технологии Token Ring является большая устойчивость к высоким нагрузкам на канал, относительно стабильное время доступа к каналу. Недостатком является повышенная сложность и стоимость. Технология FDDI является развитием Token Ring применительно к оптоволоконному кольцу. Технология Ethernet основана на методе доступа CSMA/CD (carrier
9
sense multiple access with collision detection) - множественный доступ с контролем несущей и обнаружением конфликтов. Ее прообразом явилась технология пакетной радиосети ALOHA. Первые сети Ethernet были выпущены фирмой Xerox в 1975г. Сеть Ethernet использует магистральный высокоскоростной моноканал, организованный в виде общей шины. Каждая станция, имеющая данные для передачи, отслеживает состояние канала (прослушивает канал). Если канал свободен, станция передает кадр в канал. Если одновременно две станции начали
передачу
кадра
в
канал,
происходит
столкновение
передач
(конфликт, коллизия). В этом случае на каждой станции случайным образом разыгрывается интервал времени, через который она может начать передачу. С большой вероятностью этот интервал времени будет разным у всех конфликтующих станций. Поэтому одна из них начнет передачу первой. Внешне Ethernet может выглядеть как общая шина или звезда. В последнем случае общая шина реализуется внутри концентратора. Обычная скорость передачи 10 и 100Мбит/c.
Основные
соотношением
достоинства
параметров
Ethernet
связаны
цена/производительность.
с
благоприятным
Основной
недостаток
заключается в резком увеличении времени доступа к каналу и снижении производительности канала при превышении 50% рубежа загрузки. В сети любой конфигурации имеются сетевые адаптеры - физические устройства
доступа.
В
настоящее
время
в
сетях
Ethernet
наиболее
распространены адаптеры, обеспечивающие скорость 100Мб./сек. Этой скорости достаточно даже для трансляции потокового видео. В ближайшем будущем стандартом станет скорость 1Гб./сек. и более.
32 Коаксиальные оптоволокну
локальные
вследствие
сети
уступают
непрактичности
место
(высокая
витым
парам
вероятность
и
отказа
соединителей и просто высокая стоимость). § 2.8 Способы защиты (шифрования) информации в сети. Не рассматривая способы физического шифрования сигналов в сети на нижних уровнях OSI таких, как сетевые протоколы и т.п., перейдём к способам защиты информации от несанкционированного доступа. К таким методам относятся методы хеширования и шифрования информации. Существует множество алгоритмов хеширования и шифрования. В первую очередь они предназначены для сокрытия "секретной", с точки зрения безопасности, информации, например паролей. Алгоритм хеширования - это последовательность математических преобразований, в результате которых из некоторой двоичной последовательности m переменной длины получается уникальная двоичная последовательность фиксированной длины h. Функция H(m),
реализующая
такой
алгоритм,
называется
хеш-функцией.
В
математических обозначениях - h=H(m). Чтобы Н(m) можно было назвать хеш-функцией, она должна удовлетворять нескольким условиям одновременно: 9 обрабатывать битовые последовательности переменной длины; 9 выдавать в качестве результата битовую последовательность фиксированной длины; 9 достаточно просто вычисляться при любой входной информации; 9 обладать свойством необратимости (one-way), когда для заданного значения h нельзя найти х такое, что H(x)=h; 9 быть однозначной (collision-free). С криптографической точки зрения, последние два свойства хеш-функций наиболее важны, так как обеспечивают несовпадение хешированных форм, например паролей разных пользователей, и усложняют залачу вскрытия этих паролей. Поэтому такого рода функции довольно широко применяются в компьютерных системах для обеспечения безопасности при передаче и хранении информации. Они применяются, в частности, в приложениях,
33 обеспечивающих электронную подпись (diqital signature). В таких приложениях текст
сообщения
обычно
обрабатывается
с
помощью
хеш-функции,
а
результат последней шифруется по какому-либо алгоритму, что и дает цифровую подпись. Этот подход позволяет ускорить вычисление подписи, поскольку она вычисляется не для всего длинного сообщения, а для его хеша фиксированной
длины.
В
операционных
системах
сейчас
наиболее
популярны хеш-функции MD2, MD4, MD5 и SHA. Первые три разработаны Рональдом Л. Райвес-том (Ronald L. Rivest) в 1989, 1990 и 1991 годах соответственно, а последняя опубликована NIST (National Institute of Standards and Technology) в 1993 году. MD2. Обрабатываемое сообщение (message) дополняется так, чтобы его длина была кратна 16 байтам (эта операция выполняется всегда). Затем с помощью некоторой таблицы чисел, сконструированной из цифр числа π= 3.1416…, для сообщения вычисляется 16-байтная контрольная сумма (checksum). Она добавляется к исходной информации, после чего суммарная байтовая последовательность (блоками по 16 байтов) заново обрабатывается с применением упомянутой выше таблицы. В результате получается 16-байтовая последовательность - «выжимка» из сообщения (message digest). Алгоритм MD2 оптимизирован для 8-битных аппаратных архитектур и на 32-битных платформах обычно не используется. MD4. В алгоритме MD4 сообщение дополняется так, чтобы его длина (в битах) плюс 64 нацело делилась на 512, затем к нему прибавляется 64-битовое значение его исходной длины. Полученная таким образом битовая последовательность (длина ее кратна 512 битам) обрабатывается блоками по 512 битов с помощью некоторой итерационной процедуры, причем каждый блок модифицируется тремя разными способами. Результатом процедуры работы является 128-битовая последовательность — message digest. Алгоритм MD4 оптимизирован для 32-битных аппаратных платформ и работает довольно быстро. Однако, как показали исследования, он недостаточно устойчив к атакам по методу криптографического анализа.
34 MD5. Очень похож на MD4 и по способу дополнения исходного сообщения, и по способу его обработки, и по размеру вычисляемой битовой последовательности (те же 128 битов). Но каждый 512-битный блок подвергается не трем,
а
четырем
циклам
преобразований.
Поэтому
алгоритм
работает
медленнее, чем MD4, но обеспечивает большую защищенность вычисляемого результата.
Так
же,
как
MD2
и
MD4,
опубликован
как
свободно
распространяемый (public domain) алгоритм.
SHA.
Алгоритм SHA (Secure Hash Algorithm) опубликован как федеральный
стандарт США (Federal Information Processing Standard, FIPS PUB 180). Последовательность преобразований, которым в рамках данного алгоритма подвергается исходное сообщение, в целом аналогична используемым в MD4 и MD5. Однако получаемая «выжимка» имеет длину в 160 битов (20 байтов), что обеспечивает алгоритму большую устойчивость к взлому методом перебора. В исходном варианте SHA был обнаружен некий изъян (flaw), поэтому в 1994 году алгоритм был подправлен. Более поздняя модификация получила название SHA-1.
Алгоритмы шифрования. Хеширование
является
необратимой
математической
операцией.
В
противоположность этому, шифрование - обратимая операция. В ходе шифрования из
некоторого
исходного
сообщения
с
помощью
ключа
получается
закодированное сообщение, которое можно затем расшифровать,
т.
е.
восстановить в исходном виде. Если для прямой и обратной операции применяется один и тот же ключ, то алгоритм шифрования называется симметричным (или алгоритмом с секретным ключом). В качестве примера симметричных алгоритмов назовем DES, RС2, RC4, RC5, BLOWFISH, IDEA, ГОСТ 28147-89. Довольно популярны также методы несимметричного шифрования или шифрования с открытым ключом. В этих методах используются два неодинаковых ключа, причем сообщение, зашифрованное одним ключом из пары, расшифровывается только другим ключом из этой же пары, и наоборот.
35 Применяя такие несимметричные алгоритмы, Вы избегаете начального обмена секретными ключами, поэтому они более удобны для обмена секретной информацией между пользователями в компьютерной сети. В рамках метода шифрования с несимметричными ключами отправитель и получатель информации сначала обмениваются своими открытыми ключами. Отправитель шифрует сообщение с помощью открытого ключа получателя, а получатель может расшифровать это сообщение, используя свой закрытый ключ, который известен только его владельцу. Получатель сообщения также может
использовать
открытый
ключ
отправителя,
чтобы
зашифровать
пересылаемое тому сообщение. Расшифровать его можно только с помощью парного закрытого ключа. Самой популярной системой шифрования с открытым ключом на сегодняшний день является, видимо, RSA. Кроме методов использования ключей, алгоритмы различаются также и способами обработки исходной информации. В так называемых блочных алгоритмах данные преобразуются блоками определенного размера (обычно 64
бита
и
более).
Другие
алгоритмы
предназначены
для
поточного
шифрования — побайтового или побитового — передаваемой информации и обычно работают очень быстро (заметно быстрее алгоритмов блочного шифрования). Рассмотрим некоторые алгоритмы шифрования. DES. Один из самых распространенных алгоритмов шифрования — DES (Data Encryption Standard) — разработан в середине 70-х годов. Он используется во многих криптографических системах (в США DES имеет статус федерального стандарта). Это блочный алгоритм шифрования с симметричным ключом. Ключ состоит из 64 битов, но лишь 56 из них применяются непосредственно при шифровании. Оставшиеся 8 предназначены для контроля четности: они устанавливаются так, чтобы каждый из 8 байтов ключа имел нечетное значение. Шифруемая информация обрабатывается блоками по 64 бита, причем каждый блок модифицируется с помощью ключа в итерационной процедуре, включающей 16 циклов. При шифровании сообщения, состоящего из нескольких блоков, могут применяться несколько режимов работы DES. Они позволяют усилить защиту информации и различаются способом обработки
36 исходных фрагментов. В простейшем случае (режим Electronic Code Book, ECB) 64-битовые фрагменты шифруются ключом независимо друг от друга. При длине ключа в 56 битов алгоритм считается устойчивым к взлому с применением различных методов криптографического анализа (по крайней мере для программных реализаций). Для большей надежности можно задействовать алгоритм Triple-DES. Последний имеет несколько модификаций, суть которых сводится к применению трех последовательных операций DES-шифрования (или шифрования вперемежку с расшифровкой) с помощью двух или трех различных ключей. Поскольку DES — федеральный стандарт США, его обычно не используют
в
программных
продуктах,
предназначенных
для
экспорта.
Для
получения быстрого разрешения на экспорт в них обычно применяют алгоритмы RC2 и RC4, разработанные все тем же Рональдом Райвестом из фирмы RSA Data Security, Inc. Однако в этом случае длина ключа обычно не превышает 40 битов. RC2. RC2 является алгоритмом шифрования блоков информации (размером 64 бита) с симметричным ключом, длина которого может меняться (от 1 до 128 байтов). Изменяя длину ключа, пользователь программы, основанной на RC2, может увеличивать или уменьшать устойчивость зашифрованной информации к взлому. Ключ шифрования вначале модифицируется с помощью таблицы, построенной из цифр числа π =3.1416…, а затем используется на этапе шифрования
блока
«перемешивания»
информации.
(«mixing»)
и
2
Последний цикла
включает
«взбалтывания»
16
циклов
(«mashing»),
запускаемых в определенной последовательности. Алгоритм оптимизирован для 16-битных компьютеров и при одинаковой длине ключа работает вдвоевтрое быстрее DES — по крайней мере в программной реализации. Поэтому фирма RSA рассматривает RC2 как альтернативу DES. Как и в случае DES, для шифрования
нескольких
последовательных
блоков
можно
применять
различные режимы, в том числе — «сцепления» блоков (cipher block chaining, CBC).
37 RC4. Это алгоритм поточного шифрования, в котором входные данные шифруются побайтно с помощью ключа, длину которого можно варьировать в зависимости от желаемой скорости обработки и степени защиты информации (естественно, при увеличении первой вторая уменьшается). Алгоритм работает очень
быстро,
поэтому
обычно
применяется
в
тех
приложениях,
где
необходимо шифровать непрерывно передаваемые (например, по сети) данные. По своей сути это генератор псевдослучайных чисел, которые затем комбинируются с шифруемой информацией с помощью операции XOR (исключающее ИЛИ). До недавнего времени алгоритмы RC2 и RC4 были коммерческим секретом фирмы RSA. RC2 опубликован в документах IETF (см. RFC2268) в январе 1998 года. В Интернете также доступен алгоритм (он опубликован в качестве предварительного документа IETF), который, как утверждается, эквивалентен RC4. ГОСТ 28147-89. Принятый в 1989 году Российский стандарт криптографического преобразования данных является блочным алгоритмом, в котором информация обрабатывается блоками по 64 бита. При обработке используется ключ, состоящий из восьми 32-битных элементов; таким образом, общая длина ключа — 256 битов. Алгоритм построен по примерно тем же принципам, что и DES, однако число циклов преобразования исходной информации равно 32. Кроме циклов
шифрования алгоритм
предусматривает
так называемые циклы
имитовставки. Целью последних является преобразование шифруемой информации, позволяющее в дальнейшем обнаружить внесение в нее случайных или преднамеренных изменений. Алгоритм ГОСТ 28147-89 считается устойчивым к взлому и применяется ныне в ряде программных и аппаратных средств криптографической защиты в нашей стране. RSA. Один из первых и весьма популярный алгоритм шифрования с открытым ключом — разработан основателями фирмы RSA (Rivest, Shamir, Adleman) в конце 70-х годов и назван по первым буквам их фамилий. Алгоритм основан на возведении
в степень
(по модулю) чисел, полученных из
шифруемой
информации и ключа. Степень устойчивости зашифрованной информации к взлому, а также невозможность по открытому ключу восстановить закрытый определяются трудностью факторизации (т. е. разложения на простые
38 множители) больших чисел и зависят от длины ключа. Для достижения криптографической устойчивости метода RSA (как и других методов с открытым ключом), сравнимой с устойчивостью симметричных методов шифрования, эта длина должна быть довольно велика. Сейчас ключи длиной 512 битов рассматриваются как недостаточно устойчивые, поэтому в криптографическом программном обеспечении рекомендуются 768- или 1024-битные ключи. С другой стороны, все те же экспортные ограничения правительства США на криптографические программные продукты требуют, чтобы максимальная длина ключа для несимметричных алгоритмов шифрования не превышала 512 битов. RSA работает гораздо медленнее алгоритмов с секретным ключом (вроде DES или RC2), поэтому обычно не применяется для шифрования всей передаваемой информации. Вместо этого используется комбинированный подход: сначала сообщение кодируется с помощью некоторого ключа по алгоритму типа DES, а затем ключ зашифровывается с применением RSA и передается вместе с закодированным сообщением. Это позволяет достичь высокой скорости обработки информации и в то же время обеспечивает надежную ее защиту.
39 ГЛАВА 3. Программного обеспечения САиУ. § 3.1 Структура программного обеспечения (ПО). Программное обеспечение САиУ является такой же неотъемлемой частью современной системы, как и аппаратное обеспечение. От правильности проектирования и использования ПО зависят все основные показатели качества и надёжности системы автоматики в целом. ¾ Часть программного обеспечения - системное ПО обычно поставляется фирмой и рассчитано на конкретную вычислительную платформу, используемую в конкретной СаИУ. ¾ Функционально
близко
к
системному
программному
обеспечению
находится специальное программное обеспечение, предназначеное не для автоматического управления, а
для оперативного
наблюдения за
ходом процессов в системе, ведения архивов, отчётов, наглядного представления текущих параметров процессов, организации виртуальных измерительных приборов, дисплеев и т.п. Это - SCADA системы (System Control And Data Aquisition). Эти системы обычно не работают в жёстком реальном времени. Имеется достаточное количество таких готовых систем (например, система Trace Mode или система UltraLogik ).
В целях
обеспечения независимости от производителя а также в целях повышения надёжности и проблемной ориентированности часто такие системы создают специально. ¾ Другая часть программного обеспечения - драйверы устройств должна быть результатом согласования фирм-разработчиков устройств и фирмразработчиков
системного
ПО.
Чаще
всего
такое
согласование
достигается путём следования стандартам разработки драйверов. Однако, к сожалению, часто эта часть программного обеспечения оказывается недостаточно качественной. Во всяком случае, инженер по автоматике проектировщик
всей
САиУ
обязан
уделять
этому
аспекту
особое
внимание. ¾ Наконец,
имеется
ещё
один
тип
программного
обеспечения,
предназначенного для решения либо конкретных вычислительных задач, возникающих в данной САиУ, или для управления специальными
40 (нестандартными)
устройствами.
Это
прикладное
программное
обеспечение вынужден создавать разработчик конкретной САиУ. При этом часто приходится использовать язык ассемблера, так как требуется высокое быстродействие и предсказуемость поведения программы. Особенно это справедливо при программировании специализированных контроллеров, непосредственно связанных с объектоми управления.
Важнейшим свойством программного обеспечения САиУ является его иерархичность. Можно выделить, по крайней мере, три уровня иерархии:
9 уровень диспетчерского управления; 9 прикладной
уровень управления, на котором происходит решение
сложных вычислительных задач, выработка целей, сложная обработка (возможно, в реальном времени) измерительной информации; 9 уровень локальных контроллеров (локальных САУ). Диспетчерская информация
Диспетчерская информация
Прикладное программное обеспечение
ПО SCADA- системы
Операционная система реального времени ПО Драйверы устройств
Сеть
Рис. 3.1
ПО Контроллера
Объект управления
Сеть
41 § 3.2 Операционные системы, системное программное обеспечение. Возможность работы в реальном времени, обеспечение высокого
уровня
надежности при работе, поддержка стандартов на все виды интерфейсов - все эти требования позволяют выделить промышленные вычислительные системы в отдельный класс. Основное требование (помимо надёжности), предъявляемое к вычислительным системам данного класса, - это гарантированное время реакции на произошедшее событие. Из данного условия сразу можно выделить отличительные качества промышленных вычислительных систем: максимально возможная адаптация вычислительного блока к датчикам и
9
периферийным устройствам; использование
9
распространенных
и
проверенных
и
отработанных
промышленных стандартов (как правило, VME), что позволяет обеспечить совместимость большого разнообразия оборудования и унифицировать протоколs взаимодействия с ним; использование
9
операционных
систем
реального
времени
(ОСРВ),
гарантирующих выработку сигналов обратной связи за фиксированный промежуток времени. Что такое операционная система реального времени (ОСРВ) и зачем она нужна в системах автоматизации? Как и всякая другая опрерационная система, ОСРВ выполняет следующие основные функции, необходимые при использовании средств вычислительной техники в автоматике: 9 обеспечение бесконфликтного взаимодействия множества параллельных задач (процессов) с аппаратурой; 9 бесконфликтное разделение общих ресурсов вычислительной системы (память, диски и т.п.); 9 обеспечение безопасной передачи данных между процессами в защищённых адресных пространствах; 9 обеспечение стандартных средств доступа к ресурсам, чтобы программисту не надо было писать соответствующие коды; 9 обеспечение стандартных телекоммуникаций и сетевой поддержки; 9 поддержание службы времени (системных и сетевых таймеров); 9 создание вычислительной среды повышенной надёжности;
42 Но именно ОСРВ эти функции выполняет за гарантированное и известное время. Сущестуют разные структуры ОСРВ (монолитные, на основе микроядра, объектноориентированные), но главное заключается в том, что любая ОС отделяет собой аппаратуру от исполняемых задач, гарантируя стандартные надёжные методы доступа к ней, и обеспечивает взаимодействие между задачами.
Задача 2 Задача N
Задача 3
Задача 1
Операционная система Стандартный и надёжный интерфейс
Рис. 3.2
Аппаратура, каналы связи
В свою очередь,
сама ОС может быть построена, как единый блок программного
обеспечения, а может быть модульной. Частным случаем модульного построения является архитектура микроядра. Главное здесь заключается в том, что в основе ОС лежит компактное, быстрое ядро, которое может быть легко размещено в ПЗУ. Другие дополнительные модули ОС добавляются по мере необходимости (в частности, могут оперативно заменяться и дорабатываться).
Задача 1
Задача N
Рис. 3.3
Операционная система на основе микроядра Файлы
.
Память
Сеть
Микроядро
.....
Менеджер задач
43 Модульное построение ОС имеет при этом один важный недостаток - при интенсивном использовании функций (вызовов) операционной системы скорость её работы является не самой высокой, по крайней мере, ниже, чем системы с монолитной архитектурой. Это происходит из-за того, что дополнительные, не находящиеся в ядре, функции ОС вызываются, как процессы, при этом происходит переключение задач в многозадачном режиме, а на это может потребоваться значительно больше времени.
Модульная ОС - переключение задач
Монолитная ОС - одна задача
Микроядро
…..
Компоненты
….
Рис. 3.4
§ 3.3 Обзор операционных систем реального времени. Многие современные операционные системы, способные обрабатывать "на лету" поступающие запросы (за счет распараллеливания, оптимизации ввода-вывода и оптимального планирования), в какой-то степени можно отнести к операционным системам реального времени. Как правило, такие операционные системы являются клонами ОС UNIX, где основным принципом построения ОС является разделение времени с целью предоставить каждому пользователю свой ресурс. По своей структуре ядро классических систем UNIX имеет достаточно большой размер, иногда не очень гибкую структуру, а главное, не позволяют получать откликов в течение заранее определенного интервала времени. Главный критерий, по которому операционные системы можно разделить на обычные и операционные системы реального времени, - это детерминированная, строго определенная задержка времени ожидания или прерывания, необходимое процессу, прежде чем он получит управление. В ОСРВ различают два основных элемента - это время отклика и детерминизм. Время отклика определяет, как часто система может "отвечать" в среднем. Детерминизм - это показатель наибольшей задержки системы (или, по-другому, предсказуемость времени реакции). например
DOS,
являются
Некоторые операционные системы,
недетерминированными
и
поэтому
непригодны
для
использования в реальном масштабе времени. Системы реального времени также
44 делятся на "soft real-time" и "hard real-time" - мягкое реальное время (МРВ) и жёсткое реальное время (ЖРВ). Для МРВ-систем возможная потеря внешнего события (прерывания) без оказания серьезного влияния на систему в целом. Потерянное прерывание в ситуации с ЖРВ имеет серьезные последствия. Например, система исключения столкновений на авиалиниях, которая "потеряет" аварийную ситуацию может оказаться слишком "накладной". Граница между МРВ и ЖРВ размыта. Можно понимать разницу между ними, как различие в поведении функции штрафа за задержку в обслуживании: в системе МРВ эта функция растёт не очень резко, а в системе ЖРВ функция штрафа может иметь практически разрывный характер, при котором время отклика, превышающее некоторое Тmax. является неприемлемым в силу слишком высокого штрафа. Таким образом, принципиального теоретического различия между ЖРВ и МРВ нет, различие скорее количественное. Также следует совершенно отчётливо понимать, что ЖРВ не связано с абсолютными значениями времени реакции ОС, так как есть процессы с характерными временами работы, исчисляющимися
сотыми
долями
секунды
(например,
в
энергетических
системах), а есть такие, для которых характерные постоянные времени равны часам (тепловые процессы). Штраф
Жёсткое РВ
Мягкое РВ
Рис. 3.5 Тmax.
Время отклика
Большинство систем реального времени поддерживает индустриальные стандарты VME, POSIX 1, TCP/IP, NFS и Motif. В настоящее время интерес к операционным
Спецификация POSIX - стандарт, разработанный IEЕЕ (Institute of Electrical and Electronics Engineers), для определения интерфейса высокого уровня операционной системы для обеспечения совместимости программ на уровне исходных кодов и независимости их от платформ. POSIX - это интерфейс переносимых операционных систем для компьютерных платформ. Он основыван на операционной системе UNIX. Данная спецификация является частью стандарта ISO/TEC 9945 и определяем интерфейс системных программ (API) для разработки открытых систем или переносимых кодов для ОС UNIX. Наиболее важные частные стандарты: POSIX 1003.1 - определение ОС; POSIX 1003 1b - расширение реального времени; POSIX 1003.1с - многопоточное расширение. 1
45 системам реального времени очень велик. Об этом говорит большое число проектов, направленных на разработку коммерческих и свободно распространяемых версий ОСРВ. В настоящее время известно множество ОС реального времени. Постоянно также появляются проекты новых таких систем. Ниже предлагается список операционных реального времени. Это список коммерческих продуктов [по материалам журнала СТА 1990-2004г.г.].
Таблица 3.1 основана на результатах опроса фирм-
разработчиков, и только в случае, если фирма не ответила на опросный лист, автором использовалась информация из общедоступных источников. При составлении таблицы применялся принцип «одна фирма - один продукт». Если фирма предлагает несколько продуктов, то в таблицу вносился либо основной из них, либо они перечислялись через запятую. Несколько однотипных продуктов представлялись
своим
основным
именем.
Например,
название
OSE
соответствует целой серии родственных операционных систем: OSE Auric, OSE Basic, OSE Classic и OSE Delta. Bo всех таких случаях таблица содержит интегральные характеристики продуктов компании как с точки зрения их возможностей, так и в плане списка поддерживаемых микропроцессоров. В
таблицу
не
вошли
различные
средства
разработки,
кросс-системы,
компиляторы и другие вспомогательные программные средства, как правило, предлагаемые разработчиками в нагрузку к своей операционной системе или ядру. Разумеется, на характеристиках рассматриваемых программных продуктов сказалась история их создания и те предметные области, для применения в которых они предназначались. Например, RTEMS имеет чисто военное прошлое, тесно связанное с проектом языка Ada. OSE - это одна из немногих операционных
систем,
имеющая
сертификат
соответствия
уровню
SIL3
международного стандарта по безопасности IEC-1508 (МЭК-1508). Она хорошо подходит для применения в особо ответственных и отказоустойчивых системах. REACT является расширением реального времени для операционной системы общего назначения IRIX, a PowerTV предназначена для применения в системах мультимедиа. Этот перечень можно продолжать и дальше, иллюстрируя то богатство выбора, которое открывается перед разработчиками или системными интеграторами, занятыми в области промышленной автоматизации и других сферах, где необходима работа в реальном времени.
46
47
48
49 Рассмотрим более подробно некоторые из них, как наиболее характерные и часто применяемые. Ниже приведены основные, наиболее распространённые в настоящее время производители ОС РВ и сами операционные системы. Каждая
из
ведущих
фирм-производителей,
выпускающих
промышленные компьютеры, обязательно имеет сегодня версию своей операционной системы для работы в реальном масштабе времени. Для компании Hewlett-Packard (HP) - это HP RT, для компании SGI - это ОС REACT, а для систем фирмы Motorola - это целое семейство различных ОС РВ. Среди них можно назвать LynxOS компании Lynx Real-Time Systems Inc. Или многозадачную систему OS-9 фирмы Microware Systems Corporation. Ниже в таблице 3.2 приведены основные инженерные характеристики ОСРВ жёсткого реального времени.
1
Lynx OS
2
QNX
Сертификат
Многозадачность, приоритетность
Posix 1003.1, X Windows, Motif Posix 1003.1, X Windows, Motif
Защищённая приоритетная многозадачность Защищённая приоритетная многозадачность
Возможность работы из ПЗУ Ядро может заружаться из ПЗУ Ядро может заружаться из ПЗУ
Поддержка АРI пользователя
Поддержка сети
Основные платформы
Стандартная библиотека С
TCP/IP
Intel, 680xx, Power PC
Средства Watcom
TCP/IP, FLEET
Intel
3
OS-9
Posix 1
65535 процессов и 65535 приоритетов
Ядро может заружаться из ПЗУ
Средства Ultra C и C++ от Microware
4
HP-RT
Posix 1003.1
Приоритетная многозадачность
-
Стандартные компиляторы
Приоритетная многозадачность
Ядро может заружаться из ПЗУ
Стандартные компиляторы
5
VxWorks/ Tornado
Posix 1003.1
TCP/IP, в том числе, Wireless OS и средства встроенных Webсерверов Сетевая загрузка TCP/IP
680xx для OS-9. OS-9000переносимая версия для других платформ PA-RISC Intel, 680xx, Power PC
Таблица 3.2 § 3.4 Можно ли использовать ОС на основе ядра Windows NT как ОС РВ? Ряд операционных систем (NT 4, Windows 2000, Windows XP), основанных на ядре NT, широко применяются в офисных приложениях и демонстрируют вполне достойную надёжность. Наличие огромного объёма программного обеспечения и армии разработчиков позволяет, в принципе, полагать, что при надлежащей модификации кода операционной системы её можно будет применять и в промышленных приложениях. Было бы желательно иметь одну и ту же ОС на всех уровнях индустриальной иерархии.
50 Выясним, тем не менее, удовлетворяет ли
NT основным требованиям,
предъявляемым к ОС РВ. Эти требования нами уже рассмотрены выше, напомним их: 9 Требование 1: ОС должна быть прерываемой и предсказуемой. То есть, планировщик ОС должен иметь возможность прервать любой процесс и предоставить ресурс процессу,
которому он более необходим. ОС (и
аппаратура) должны также обеспечивать прерывания на уровне обработки прерываний. 9 Требование 2: ОС должна обеспечивать предсказуемые механизмы синхронизации задач. Так как задачи разделяют данные (ресурсы) и должны сообщаться друг с другом, представляется логичным, что должны существовать механизмы блокирования и коммуникации. Процессы не разделяют одно и то же пространство памяти. Процессы сообщаются через потоки (pipes) и разделяемую память. Оба эти механизма
обычно
используют
файловую
систему,
а
ее
поведение
-
непредсказуемо в том смысле, что время реакции может меняться в широких пределах, кроме того, файлы являются объектами совместного доступа, поэтому могут блокироваться. 9 Требование
3:
Должна
существовать
система
наследования
приоритетов. Наследование приоритета означает, что блокирующий ресурс процесс наследует приоритет процесса, который он блокирует (разумеется, это справедливо лишь в том случае, если блокируемый процесс имеет более высокий приоритет). 9 Требование 4: Поведение ОС должно быть известно (предсказуемо). Времена
выполнения
системных
вызовов
и
временные
характеристики
поведения системы в различных обстоятельствах должны быть известны разработчику прикладного программного обеспечения и пользователю. Поэтому производитель ОСРВ должен приводить следующие характеристики: - задержку прерывания (т.е. время от момента прерывания до момента запуска задачи), она должна быть предсказуема и
согласована с требованиями
приложения; - максимальное время выполнения каждого системного вызова. Оно должно быть предсказуемо и независимо от числа объектов в системе; - максимальное время маскирования прерываний драйверами и ОС;
51 - системные уровни прерываний, уровни прерываний драйверов устройств, их временные характеристики и т.д. Удовлетворяют ОС Windows NT этим требованиям? Windows NT - многозадачная система с абсолютным приоритетом. В Windows NT понятие приоритета весьма сложное. Имеется два класса приоритетов для процессов - класс реального времени и динамический класс. Процессы класса реального времени имеют фиксированный приоритетный уровень, который может быть изменен только в приложении, тогда как приоритеты процессов динамического класса меняются планировщиком в зависимости от типа работы, выполняемой процессом (интерактивный или не интерактивный). Только первый класс предсказуем и потому может быть использован в ОС РВ. Процесс имеет базовый приоритетный уровень, который может быть изменен только самим приложением. Приоритет нити в процессе лежит в диапазоне +-2 к уровню базового приоритета и еще может принимать два граничных значения. Например, нити (задачи) процесса с базовым уровнем приоритета 24 (класс реального времени) могут иметь приоритеты от 22 до 26, а также 16 и 31. Однако имеется одна проблема: приоритетных уровней мало. Большинство современных ОС РВ допускают по крайней мере 256 приоритетов. Почему это проблема? Ответ очевиден: чем больше приоритетов - тем более предсказуема система. Процессу в Windows NT предоставляется только 5 (7 с учетом граничных) приоритетных уровней для нитей. Поэтому многим из них придется делить один и тот же уровень. Предсказуемость будет весьма невысокой, если нужно будет обрабатывать более одного или двух критических событий. Можно возразить, что это могут делать разные процессы. Но и тогда общее число приоритетов - лишь 16. Кроме того, время переключения контекста между нитями из разных процессов много больше, чем между нитями одного процесса, ибо они функционируют в разных адресных пространствах.
Это - существенный
недостаток. Другая проблема, связанная с приоритетами в Windows NT, обусловлена особенностями реализации некоторых системных вызовов, относящихся к GUI. Они обрабатываются синхронно (вызвавшая нить приостанавливается до завершения
системного
вызова)
процессом,
не
принадлежащим
классу
процессов реального времени. Значит, нить более низкого приоритета из класса реального времени может задержать выполнение более приоритетной.
52 Проведено несколько простых тестов. Создан процесс, принадлежащий классу реального времени, который имел нить, выполняющую системные вызовы, использовался системный вызов QuerryPerformanceCounter до и после каждого синхронизирующего вызова для измерения времени его выполнения. Тесты были выполнены на Pentium 100 с 24MB RAM. Например, для системного вызова типа "совместная блокировка" получено среднее время выполнения 35 мксек. При этом максимальное время
достигло нескольких миллисекунд! Эти задержки
были следствием прерываний либо от диска либо от сети (тестируемая машина была подсоединена к сети), так как иных видов деятельности не было. Понятно,что несмотря на мощный API, основное ядро и администратор ввода/вывода не приспособлены для обработки событий прикладного уровня в режиме реального времени. ОС РВ взаимодействует с внешним миром через аппаратуру компьютера. Внешние события, поступающие в систему в виде прерываний, обрабатываются драйверами устройств. Windows NT взаимодействует с аппаратурой через драйвер устройств ядра. Это логично, ибо процессы функционируют в различных адресных пространствах и не имеют прямого доступа к устройствам. Так как большинство приложений реального времени имеет дело со специфическими внешними событиями, разработчикам приходится писать драйверы устройств ядра, чтобы обеспечить доступ к аппаратным средствам. Драйвер устройства отвечает за обработку прерывания, генерируемого устройством, которым он управляет. Чтобы повысить ответственность ОС за обработку был разработан оригинальный механизм. Прерывания обрабатываются в два этапа. Во-первых, прерывание очень быстро обрабатывается ISR (Interrupt Service Routine). После этого работа завершается выполнением процедуры DPC (Deffered Procedure Call). Это порождает следующую последовательность событий:
Происходит прерывание. Процессор сохраняет PC, SP и вызывает диспетчер. ОС сохраняет контекст и вызывает ISR.
Драйвер
устройства
выполняет
в
кратчайшее
время
наиболее
критическую часть ISR (чтение/запись запросов от устройства).
Драйвер устройства вызывает функцию DPC (на самом деле это очередь, обрабатываемая администратором ввода-вывода).
Драйвер устройства выходит из ISR. ОС восстанавливает контекст. Процессор восстанавливает PC и SP.
53
Исполнение
приостановленного
вызова
DPC
происходит
на
приоритетном уровне DISPATCH\_LEVEL. Это уровень программного прерывания. Как мы видим, обработка прерываний в Windows NT достаточно сложна. При этом ISR должна работать как можно быстрее. Поэтому большинство драйверов выполняют большую часть работы в DPC (который может прерываться только ISR), замедляя работу других DPC, так как все они обрабатываются на одном приоритетном уровне. Документация на драйверы устройств Windows NT говорит, что "ISR может прерываться ISR более высокого приоритетного уровня и теми DPC, которые имеют более высокий приоритет, чем пользовательская и системная нити". Но так как все DPC имеют один и тот же приоритетный уровень и так как при проектировании драйвера устройства следует делать ISR как можно короче, перенося большую часть работы в DPC. При выполнении вашему DPC придется ждать пока не будут завершены все остальные DPC. Поэтому ваше приложение будет зависеть от драйверов устройств, обслуживающих другие приложения. В Windows NT ISR очень быстрая, поэтому прерывания не блокируются надолго, однако ISR делает очень мало работы. Большая часть работы перекладывается на DPC. Заметим также, что именно в DPC доступны многие из тех системных функций, которые недоступны в рамках ISR. В Windows NT все процессы функционируют в своих адресных пространствах. Это может быть достигнуто только с использованием страничной виртуальной памяти. Это очень хорошо для бизнес-приложений, но для ОС РВ, которая должна реагировать на внешние события в течение предсказуемых интервалов времени, это порождает неопределенность в момент, когда система должна получить страницу памяти с диска. Поэтому Windows NT дает возможность запирать страницы в памяти с помощью вызова функции VirtualLock. Но ядро все равно может отпирать страницы не активного процесса и переписывать их на диск. Однако на уровне драйвера устройства своппинг может быть исключен. Для встраиваемых систем требование к памяти является ключевым вопросом. Windows NT расходует больше памяти по сравнению с другими ОС, имеющимися на рынке. Мы показали, таким образом, что Windows NT в своем оригинальном виде, ориентированном главным образом на классические приложения, не являются хорошей платформой для приложений реального времени:
54 9 число приоритетов реального времени слишком мало для ОС РВ; 9 не решена проблема инверсии приоритетов (для процессов класса реального времени); 9 для встраиваемых приложений слишком велики требования по памяти; драйверы
устройств
имеют
очень
медленные
DPC
и
допускают
прерывания другими DPC. Windows NT можно использовать только в следующих случаях: ¾ ОС
мягкого
РВ,
которые
допускают
нарушение
временных
ограничений (время от времени); ¾ в простых системах, где число типов событий невелико (благодаря этому увеличивается предсказуемость DPC); ¾ нагрузка на CPU всегда остается малой (системные DPC имеют время для выполнения); ¾ используется мало драйверов, алгоритм которых неизвестен, или, по крайней мере, качество этих драйверов гарантировано; Но в случае ОС жёсткого РВ даже не стоит поднимать вопрос об использовании Windows NT в исходном виде. Что следует изменить в Windows NT, чтобы стало возможным ее использование в ОС жесткого РВ? o Класс процессов реального времени должен иметь большее число приоритетов. o Должна быть перестроена вся система прерываний: использование DPC хорошая идея, но нужно обеспечить для них больше приоритетных уровней;
приоритеты
DPC
должны
быть
абсолютными,
а
не
относительными. o Драйверы от третьих поставщиков и драйверы устройств должны быть конфигурируемыми (например, по приоритетному уровню ISR и DPC). В настоящее время появляются такие доработанные версии NT с учётом потребностей жёсткого реального времени.
55
§ 3.5 Прикладное программное обеспечение. Принципы программирования для САиУ. Вопрос о прикладном программном обеспечении САиУ является чрезвычайно широким, таким же, как и спектр задач, решаемых конкретными системами. Остановимся лишь на некоторых важнейших аспектах классификации этого ПО. С точки зрения инженера, создающего комплекс средств САиУ, - прикладное программное обеспечение можно разбить на следующие важнейшие группы: 9 дополнение к операционной системе (драйверы и т.п.); 9 программы управления, снятия (получения), передачи данных, обработки данных, планирования и т.п., то есть прикладные вычислительные задачи; 9 программное
обеспечение
программного
локальных
обеспечения
регуляторов.
часто
Эта
создаётся
часть для
специализированных микроконтроллеров и поэтому имеет свои особенности. Важно
также
учитывать
то
обстоятельство,
что
для
создания
этих
разнородных частей прикладного программного обеспечения используются совершенно разные методы программирования. Наиболее традиционной частью являются прикладные вычислительные задачи. Решать эти задачи стремятся традиционными
методами
и
для
этого
стараются
использовать
программирование на языках высокого уровня, не упуская при этом из видимости тот факт, что работа программы должна вестись в реальном времени. Обычно удаётся здесь обойтись программированием на языке С, С++, Pascal, привлекая для этого (по возможности быстродействия) интегрированные среды типа Visual C, Builder или Delphi. 9 Если
это
удаётся,
современного
то
имеется
программного
возможность
обеспечения,
создания
мощного
удовлетворяющего
всем
требованиям к интерфейсам пользователя. 9 Непреодолимым барьером здесь может оказаться отсутствие требуемых средств разработки ПО для конкретной ОСРВ. В настоящее время для всех популярных ОСРВ имеются, по крайней мере, компиляторы языка С. Это существенно облегчает работу программиста.
56 При создании программного обеспечения для локальных контроллеров важно придерживаться следующих принципов: 9 При разработке проекта САиУ стараться обеспечить однородность вычислительной платформы, что позволит в дальнейшем упростить программирование. В настоящее время целесообразно
в
локальных
реально это означает, что
системах
использовать
не
специализированные микроконтроллеры, а PC-совместимые контроллеры. Это требование, конечно, не является императивным, так как имеется достаточное количество примеров, когда наиболее эффективны
именно
специализированные контроллеры. Например, в задачах цифровой обработки сигналов используются понимать,
что
специальные DSP-процессоры. Но при этом следует
обслуживание
узкоспециализированного
программного
обеспечения часто накладно. 9 При разработке микропрограмм для локальных контроллеров тщательно обосновывать выбор контроллеров, исходя из перспективности той или иной микроконтроллерной платформы. Причём, основным аспектом является
не
экономический,
так
как
стоимость
современных
микроконтроллеров стремительно снижается, а системный. Использование устаревающих контроллеров нецелесообразно. Кросс-средства программирования для различных контроллеров существенно отичаются с точки зрения
универсальности,
стандартизованности
и
ориентированности
на
интеграцию в состав более сложных иерархических систем. Библиотеки программ, созданные для микроконтроллеров, с трудом поддаются повторному использованию и передаче другим пользователям, часто оказывается проще создать программы заново. К сожалению, объектноориентированный подход здесь применим далеко не всегда, так как влечёт резкое увеличение объёмов кодов. 9 Альтернативой традиционному программированию микроконтроллеров, в принципе, является технология Java, предполагающая сетевую загрузку исполняемых
программ
(апплетов)
в
контроллеры.
Здесь
следует
отметить, что это не вполне безопасно и не всегда надёжно. Международная Электротехническая Комиссия (МЭК) в 1993 г. утвердила стандарт IEC 1131 часть 3 (IEC 1131-3). Этот международный стандарт входит в группу
IEC
1131
стандартов,
которые
охватывают
различные
аспекты
57 использования
программируемых
логических
контроллеров
(ПЛК
-
PLC).
Назначение IEC 1131-3 - стандартизация существующих языков ПЛК [1]. Стандарт IEC 1131-3 оказался настолько актуален, что ждать его адаптации не хватило сил: функции поддержки и внедрение стандарта на рынке взяла на себя независимая
организация
PLCOpen,
состоящая
из
производителей
и
пользователей программного обеспечения (ПО), ориентированного на IEC 11313. В результате деятельности PLCOpen на рынке ПО появилась серия сертифицированных средств программирования ПЛК, - средств, которые достаточно широко и небезуспешно внедряются в промышленности. В целом, это воспринимается как очередной прогрессивный шаг в рамках концепции "открытых систем". Стандарт IEC 1131-3 описывает синтаксис и семантику пяти языков программирования ПЛК. Эти языки не являются чем-то совершенно новым, а лишь
обобщают
то,
что
широко
известно
в
области
автоматизации
промышленных объектов: ¾ SFC (Sequential Function Chart) - графический язык, используемый для описания алгоритма в виде набора связанных пар: шаг (step) и переход (transition). Шаг представляет собой набор операций над переменными. Переход
-
набор
логических
условных
выражений,
определяющий
передачу управления к следующей паре шаг-переход. По внешнему виду описание на языке SFC напоминает хорошо известные логические блоксхемы
алгоритмов.
SFC
имеет
возможность
распараллеливания
алгоритма. Однако, SFC не имеет средств для описания шагов и переходов, которые могут быть выражены только средствами других языков стандарта (например, условными операторами Pascal - язык ST). Поэтому любая реализация языка SFC - это просто
начальное
представление логики алгоритма. ¾ LD (Ladder Diagram) - графический язык программирования, являющий-ся стандартизованным вариантом класса языков релейно-контактных схем. Логические выражения на этом языке описываются в виде реле, которые широко применялись в области автоматизации в 60-х годах, дополненный дискретными устройствами: таймерами, счетчиками и т.п.
58 ¾ FBD (Functional Block Diagram) - графический язык по своей сути похожий на LD. Вместо реле в этом языке используются функциональные блоки, функциональное назначение которых гораздо шире. Сюда входят такие блоки, как ПИД - регулятор, фильтр и т.п. По сути дела, FBD является наиболее естественным способом описания структуры САУ с точки зрения инженера по автоматике. FBD поддерживается многими современными системами проектирования и SCADA-системами. ¾ ST
(Structured
Text)
-
текстовый
высокоуровневый
язык
общего
назначения, по синтаксису ориентированный на Паскаль. Фактически, это обычное программирование на языке высокого уровня. ¾ IL (Instruction List) - текстовый язык низкого уровня. В дополнение к языку ST - это программирование фактически на Ассемблере. Это необходимо в случае разработки драйверов и критических ко времени программ. Перечисленные
языки
IEC
1131-3
используются
ведущими
фирмами
изготовителями ПЛК, имеют длительную историю применения, достаточно распространены и известны пользователям. Но, к сожалению, имеются многочисленные модификации, несущественные по смыслу, но влекущие определенные неудобства при работе с ПЛК различных фирм-изготовителей. С этой точки зрения, стандарт IEC 1131-3 несомненно прогрессивен, поскольку позволяет сделать процедуру внедрения конкретной платформы автоматизации более эффективной. С другой
стороны, в области автоматизации работает значительное
количество инженеров-программистов, для которых более привычными являются обычные
блок-схемы
достаточно
алгоритмов,
эффективно
с
отобразить
помощью
которых,
необходимые
конечно,
алгоритмы.
можно Видимо
постепенно будет достигнуто некоторое компромиссное решение, учитывающее как потребности автоматчиков-непрограммистов, так и навыки программистов. В качестве примера рассмотрим (по данным фирмы "ПЛК Системы" [ ]) решение на языке RLL (реализации языков
LD и FBD) задачи управления
технологическим участком, схема которого приведена ниже. Многие задачи управления могут быть описаны, как последовательность событий.
59 Управляющая программа должна проверять порядок выполнения событий. Она не только выполняет обычные операции управления, но и учитывает возможные неисправности и критические ситуации. Рассмотрим простой пример.
Рис. 3.6
Работа пресса на конвейере
¾ Оператор нажал кнопку пуска. ¾ Проверяется наличие заготовки.
кнопка пуска
Если она есть, то процесс продолжается. Если
нет -
конвейер двигается до появления заготовки. ¾ Заготовка
фиксируется
зажимом. ¾ Деталь прессуется. ¾ Зажим освобождает деталь и она выходит из-под пресса.
зажимное устройство
¾ Процесс продолжается, если выбран автоматический (циклический) режим, иначе останавливается. Вот как выглядит блок-схема последовательности описанных выше операций. Разбиение программы на логические блоки
Ожидание пуска
Проверка наличия
Фиксация детали
детали
Прессование детали детали
Освобождение конвейера на шаг
Продвижение
Рис. 3.7 Для определенности дальнейшего описания, поставим а соответствие каждому сигналу нашего примера Х-образ дискретного ввода и Y-прообраз дискретного вывода:
60 СИГНАЛИЗАЦИЯ Кнопка пуска Датчик наличия детали под прессом Концевик фиксации заготовки Концевик освобождения детали Нижний концевик пресса Верхний концевик пресса Шаг конвейера Переключатель режима Кнопка останова
УПРАВЛЕНИЕ X0 X1 X2 X3 X4 X5 X6 X7 X8
Зажимное устройство Пресс Движение конвейера
Y0 Y1 Y2
Решение на языке RLL До появления программируемых логических контроллеров (ПЛК) проблемы управления решались с помощью реле к переключателей, жестко соединенных в релейно-контактные схемы. Более 30 лет назад стали искать способ, позволяющий легко и быстро вносить изменения в логику управления не меняя монтажа. Так появились ПЛК. Разработчика "новой" технологии были хорошо знакомы с решением задач управления с помощью реле и переключателей, поэтому имело смысл имитировать релейно-контактные схемы в созданном специально для ПЛК языке программирования RLL. Вот почему программы на
RLL
похожи на релейно-
контактные схемы. Справа показан пример части программы на RLL, реализующей управление по алгоритму, описанному на предыдущей странице. Вертикальная линия слева символизирует шину питания, а положение контактов и состояния обмоток реле определяют происходящие действия, которые в релейно-контактных схемах принято называть блокировками. Здесь хорошо просматриваются отдельные цепи контактов, подающие питание на обмотки реле - ступени. Программа на RLL, имитирующая релейно-контактную схему, "просматривает" контакты и обмотки каждой ступени слева направо, а сами ступени сверху вниз. Это нормальный порядок действий в RLL. Программа на RLL в графическом представлении выглядит как ступени своеобразной лестницы, ведущей вниз. Отсюда происходит название языка программирования RLL (Relay Ladder Logic- релейно-лестничная логика).
61 Нетрудно видеть, что "контакты реле" (нормально замкнутые и разомкнутые) фактически означают не только сами контакты, но и некоторые логические условия, при выполнении которых на каждой "ступеньке лестницы" происходит некоторое действие. После этого производится переход к следующей ступени вниз.
………….. ………………………… Рис. 3.8 Далее, рассмотрим развитие языка RLL - язык RLLPLUS получающийся добавлением к контактам реле функциональных блоков. Команды, сохраняя простоту релейно-контактных схем, снимают многие проблемы, связанные с большим количеством блокировок. Вводится понятие стадии и перехода на стадию (это - фактически метки ступеней лестницы и переходы на них). Ниже показана реализация алгоритма блок-схемы на RLLPLUS. Каждой стадии соответствует реле S, устанавливающееся при активизации стадии и сбрасывающееся при ее деактивизации. В каждом цикле контроллер просматривает, какие реле S активны и задействует логику только в этих стадиях. Если стадия неактивна, контроллер пропускает ее логику. аким образом, поделив ступени программы на стадии и активизируя их определенным образом, можно задавать
последовательность
операций,
отличную
от
нормальной
62 последовательности
RLL. Программа обретает структуру, независимо от
конкретного содержания логики внутри стадий.
Рис. 3.9
63 § 3.6
Инструментальные средства разработки, отладки и сопровождения
программного обеспечения. Говоря о современных инструментальных средствах, следует сразу же отметить
важнейшую
тенденцию:
наиболее
перспективными
являются
интуитивно-понятные разработчику средства визуального проектирования. В любой предметной области, в том числе и в автоматике, визуальные средства предполагают, что проектировщик (или пользователь) не должен писать практически никакого кода программы ни на одном из языков программирования. Вместо этого он производит размещение тех или иных наглядных графических образов (обычно пиктограмм) на рабочем поле. Эти образы представляют собой отображение некоторых стандартных блоков, алгоритмов, устройств. Соединяя эти образы в соответствии с требуемой структурой, и задавая свойства отдельных компонент, пользователь быстро получает требуемое представление своей системы. Практически избежать программирования удаётся за счёт объектно-ориентированного
характера
такой
модели,
при
котором
необходимые коды программ уже инкапсулированы в стандартных блоках. То есть программирование заменяется заданием параметров (обычно числовых) в стандартных алгоритмах. Многочисленные преимущества такого подхода очевидны. Более того, большинство современных, в том числе и профессиональных, программных комплексов в различных областях техники, обработки изображений, звука и т.п. созданы именно в этом виде. Сложнейшие, но стандартные процедуры, при этом
легко
реализуются.
(программного кода)
Возникает
возможность
использования
опыта
предыдущих разработчиков без его изучения. Фирмы-
производители систем автоматизации предоставляют огромные библиотеки таких
функций
(классов),
и
создаётся
обманчивое
впечатление,
что
программирование вообще не нужно, что кто-то сторонний всё сделает за специалиста по автоматике. Это мнение старательно поддерживается и фирмами-производителями. Но именно здесь заключается и слабая сторона такого подхода. Реально имеются две негативные стороны использования стандартных библиотек функций (классов):
64 закрытость исходных кодов (и в смысле недоступности, и в
9
том смысле, что пользователь не заинтересован глубоко разбираться в чужих кодах); неоптимальность кодов именно для той конкретной ситуации,
9 в
которой
находится
данный
разработчик
системы
автоматики
("универсальное - значит не оптимальное"). Эти два пункта реально приводят к тому, что пользователь- разработчик автоматической системы не может гарантировать надёжность работы всей стистемы, так как в неё входят закрытые компоненты, и не может гарантировать оптимальности в смысле быстродействия работы критичных к этому параметру частей системы. Таким образом, чисто визуальные методы программирования ограниченно пригодны в случае хорошо известных задач, не критичных, кроме того, к быстродействию и надёжности всей системы. Не следует думать, что таких задач мало. Типичной из них является создание некоторых SCADA - систем, то есть таких
систем,
которые
в
основном
предназначены
для
диспетчерского
отображения разнородной информации, в состав которых входит достаточно ненадёжный элемент: человек-оператор. В таких системах, особенно в случае, когда
реальное
быстродействие
объекта
управления
гораздо
выше
быстродействия человека- оператора, последнему отводится лишь роль более или менее пассивного наблюдателя, принимающего лишь стратегические решения. И практика показывает, что для подобных систем применение визуальных средств и объектно-ориентированных подходов в программировании эффективно. В качестве примера можно привести систему TraceMode. Наряду со специализированными визуальными средствами програм-мирования, широко распространено и применение таких визуальных сред, как Delphi или Builder
от фирмы Borland, Visual C++ от Microsoft и т.п. Множество подобных
средств стремительно растёт, привлекая всё новые и новые подходы в программировании, исчерпывающий их обзор на сегодняшний день практически невозможен. Чтобы добиться абсолютно предсказуемого поведения программного обеспечения с учётом работы в реальном времени разработчик автоматических систем всё же вынужден в ряде случаев создавать собственное программное обеспечение. Наиболее целесообразный подход здесь следующий:
65 9 по
мере
возможности
пользоваться
языками
высокого
уровня,
позволяющими быстро создавать и отлаживать программное обеспечение; 9 и лишь в явных случаях нехватки быстродействия или надёжности использовать программирование на Ассемблере. Именно такой подход позволяет инженеру в области автоматики решить сразу две задачи:
обеспечить реальную возможность передачи исходных кодов программ другим разработчикам, в том числе, и при смене вычислительной платформы;
добиться существенной экономии времени разработки программного обеспечения. Известно, что наиболее "расточительно" в этом смысле программирование на языке низкого уровня - Ассемблере.
Стандартными средствами во всех случаях являются специальные программные продукты,
предназначенные
для
разработки
программного
обеспечения:
редакторы, трансляторы, компоновщики, отладчики. Их имеется великое множество, использование того или иного из них в значительной степени является результатом выбора на основе личных пристрастий разработчика. Следует
отметить,
однако,
что
наиболее
целесообразно
использовать
специальные интегрированные среды разработки, объединяющие все эти средства. Такие среды разработки имеются практически для всех языков программирования, в том числе, и для ассемблеров микроконтроллеров. В завершении темы следует отметить типичный пример грамотного и эффективного
подхода
при
создании
программного
обеспечения
систем
реального времени, когда в основной программе, написанной, скажем, на языке С++, имеются вставки на чистом Ассемблере в критических секциях кода, то есть в тех местах, где требуется повышенная скорость и надёжность работы. Возможность создания таких ассемблерных вставок обеспечена интегрированной средой и тем простым фактом, что в процессе компиляции программы всё равно имеется этап её перевода (автоматического) в текст на Ассемблере. Просто этот текст при автоматическом переводе может оказаться не оптимальным. Но зато ассемблерная вставка не переводится вообще, а используется в готовом виде. Отметим, что для языка С, например, мера эффективности автоматической генерации ассемблерного кода оценивается коэффициентом, примерно равным
66 2. То есть отличие полученного текста программы от оптимального в смысле быстродействия примерно в 2 раза. Сопровождение
программного
обеспечения
-
это
возможность
гарантировать передачу программных комплексов, их переналадку в случае необходимости,
исправление
обнаруженных
ошибок,
устранение
сбоев.
Возможность сопровождени программного обеспечения зависит от следующих основных факторов: 9 обеспечение разработчиком сервисных услуг; 9 наличия доступной технической документации, в том числе, открытых кодов программ. Далеко не всегда имеются такие открытые разработчиком коды программ; 9 использование при разработке доступных другим разработчикам и пользователям средств (интегрированнных сред и т.п.); 9 минимизация
зависимости
программного
обеспечения
от
личности
разработчика (часто бывает так, что понять чужую программу, даже при наличии исходных текстов, очень трудно). Ключевым в этом вопросе является использование современных промышленных методов создания программного обеспечения.
От правильного выбора программного продукта, удовлетворяющего требованиям сопровождения, часто зависит судьба всей системы автоматики и эффективности вложения средств. Специфические
средства
программирования
отдельных
фирм-
производителей средств автоматизации. Некоторые производители, например, китайская
фирма
Octagon
Systems
включают
поддержку
разработки
прикладного программного обеспечения средствами, находящимися в ПЗУ контроллеров.
Такой
подход
позволяет
оперативно
перепрограммировать
контроллеры даже в том случае, когда отсутствует специальная среда программирования, нет сетевой поддержки переноса программных модулей и даже отсутствуют дисковые устройства, пригодные для переноса программы. Решение фирмы
Octagon Systems заключается в том, что во флэш-памяти
контроллера имеется интерпретатор языка CAMBasic, полностью совместимого например,
со
стандартным
Microsoft
Basic,
но
имеющим
существенно
расширенную систему команд, включающих множество нестандартных команд,
67 пригодных для использования в системах управления, метрологических системах и т.п. Конкретно, кроме 133 стандартных совместимых команд, CAMBasic имеет 93 дополнительные команды, специально ориентированные на выполнение следующих операций: 9 групповой или индивидуальный опрос состояния каналов дискретного ввода; 9 переключение каналов дискретного ввода; 9 ввод аналоговых сигналов; 9 вывод аналоговых сигналов; 9 управление приводами; 9 измерение интервалов времени; 9 формирование интервалов времени и импульсных последователь-ностей; 9 специальная поддержка клавиатуры и многострочных индикаторных панелей; 9 поддержка видеомониторов SVGA. Кроме того, CAMBasic поддерживает в фоновом режиме обмен через сеть и обслуживает прерывания клавиатуры. Ниже приведены для ознакомления некоторые из расширенного множества команд.
AUTORUN .................. Автоматический запуск CAMBasic-программы ВСС .......................….. Возврат результата операции ИСКЛЮЧАЮЩЕЕ ИЛИ над байтами блока памяти BCD ..........................…Преобразование двоичного в 4-позиционное двоичнодесятичное значение BIN ......................….....Преобразование двоично-десятичного в двоичное значение BIN$ ......................…...Возврат двоичного представления строковой переменной BIT ...........................…Чтение или запись заданного бита по адресу ввода-вывода CLEAR DISPLAY ...….Очистка индикаторной панели CLEAR TIMER ..........…Сброс программного таймера CONFIG AIN..............…Уcтaновкa драйвера для АЦП по заданному адресу CONFIG AOT ..........…..Установка драйвера для ЦАП по заданному адресу CONFIG ВАUD...........Установка параметров заданного последовательного порта
68 CONFIG COM$ .......... Настройка последовательного порта CONFIG COUNT.......... Hacтpoйкa программного счетчика CONFIG DISPLAY ...... Настройка индикаторной панели CONFIG KEYPADS...... Настройка клавиатуры CONFIG РIO................. Настройка портов программируемого параллельного интерфейса 82С55 CONFIG TIMER .......... Установка программного таймера COUNT........................Boзвpaт содержимого программного счетчика CRC ............................Возврат контрольной суммы блока памяти DEC ............................Быстрое уменьшение на единицу числовой переменной DELAY ........................Задержка исполнения программы DEV ...........................Возврат среднеквадратичного отклонения элементов массива DINP ..........................Ввод 16-разрядного значения по адресу ввода-вывода DISPLAY ....................Вывод на индикаторную панель DOSINT ......................Вызов программного прерывания DOS DOUT .........................Вывод 16-разрядного значения по адресу ввода-вывода ОРЕЕК ....................... Чтение 16-разрядного значения по адресу памяти ОРОКЕ.......................Сохранение 16-разрядного значения по адресу памяти ERROR ......................Возврат кода ошибки или вызов исключения EXIT DO ......................Безусловное завершение цикла DO EXIT FOR ....................Безусловное завершение цикла FOR INC.............................. Быcтpoe увеличение на единицу числовой переменной IDENT ........................ Объявление идентификационного кода сетевого узла КЕУРАD$....................Ввод кода нажатой клавиши MAXVAL......................Boзврaт максимального значения элементов массива MEAN ........................ Возврат среднего значения элементов массива ON ВIТ........................Установка условия передачи программного управления (перехода) по состоянию линии порта ввода-вывода ON COUNT..................Уcтaновкa условия перехода по состоянию программных счетчиков ON ERR ......................Установка процедуры обработки ошибки ON INP ...................... Установка условия перехода по состоянию порта вводавывода ON КЕУРАD$.............. Установка условия перехода по нажатию клавиши
69 ON ТIСК......................Установка условия перехода по состоянию программного таймера POLY ..........................Возврат значения полиномиальной операции над переменной. Коэффициентами полинома являются элементы массива PRINT$ ...................... Вывод строки символов в устройство QUIT............................ Boзвpaт в DOS RMS............................ Boзвpaт среднеквадратичного значения элементов массива зим............................ Возврат суммы элементов массива UNNEW ...................... Отмена по возможности последней команды NEW VARSEG...................... Возврат сегментной составляющей адреса переменной Дополнительные особенности: 9
Создание части программы на языке С.
9
70 сообщений об ошибках для обнаружения неправильных действий.
9
Отсутствие лицензионных ограничений.
9
При покупке микроконтроллера, содержащего встроенную систему программирования и исполнения приложений CAMBasic, пользователь получает лицензию на применение и перепродажу данного изделия. После перепродажи микроконтроллера лицензия переходит новому владельцу.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 1. Олифер В.Г., Олифер Н.А. Компьютерные сети. С-пб.: "Питер", 1999. -666с. 2. Новиков Ю.В., Кондратенко С.В. Локальные сети. М.:"Эком", 2000, -311с. 3.
Современные
технологии
автоматизации.
(журнал
промышленной автоматизации). М.: "Прософт", 1999-2004г.
в
области
70 ОГЛАВЛЕНИЕ ВВЕДЕНИЕ…………………………………………………………………………….3 ГЛАВА 1. Цифровые средства обработки информации в САиУ………..5 § 1.1 Основные тенденции развития вычислительных средств САиУ. § 1.2 ЭВМ общего назначения………………………………………………….. 8 § 1.3 Специализированные ЭВМ и вычислительные комплексы (ВК).10 § 1.4
Управляющие ЭВМ (УВМ), управляющие ВК (УВК) и промышлен-
ные (индустриальные) ПК…………………………………………………………13 § 1.5
Рабочие станции…………………………………………………………….13
§ 1.6 Микро-ЭВМ и микроконтроллеры……………………………………….13 ГЛАВА 2. Сетевые компоненты САиУ…………………………………………14 § 2.1 Эталонная модель архитектуры открытых систем…………………14 § 2.2 Локальные управляющие вычислительные сети…………………..17 § 2.3 Топология "шина" ("общая шина" )………………………………………21 § 2.4 Топология «звезда»………………………………………………………….23 § 2.5 Топология «кольцо»…………………………………………………………..25 § 2.6 Другие топологии………………………………………………..……………27 § 2.7 Моноканалы. Методы доступа к моноканалам и технические средства доступа……………………………………………………………………28 § 2.8 Способы защиты (шифрования) информации в сети…………….32 ГЛАВА 3. Программного обеспечения САиУ………………………………….39 § 3.1 Структура программного обеспечения (ПО). § 3.2 Операционные системы, системное программное обеспечение..41 § 3.3 Обзор операционных систем реального времени…………………………43 § 3.4 Можно ли использовать ОС на основе ядра Windows NT как ОС РВ?…………………………………………………………………………….49 § 3.5 Прикладное программное обеспечение. Принципы программирования для САиУ…………………………………………………………………..55 § 3.6 Инструментальные средства разработки, отладки и сопровождения программного обеспечения………………………………………..63 БИБЛИОГРАФИЧЕСКИЙ СПИСОК………………………………………………69