- •1. Системы автоматического управления
- •1.1. Элементы систем автоматического управления
- •2. Первичные преобразователи (датчики)
- •2.1. Свойства и разновидности измерительных преобразователей
- •2.2. Измерительные цепи
- •2.3. Контактные резистивные преобразователи
- •2.4. Реостатные и потенциометрические преобразователи
- •2.5. Электромагнитные первичные преобразователи
- •3.2.6. Емкостные первичные преобразователи
- •2.7. Пьезоэлектрические преобразователи
- •2.8. Тензометрические преобразователи
- •2.9. Оптические преобразователи
- •2.10. Тепловые преобразователи
- •2.11. Терморезисторы
- •3.1. Электронные усилители
- •3.2. Магнитные усилители
- •3.3. Электромашинные усилители
- •3.4. Гидро- и пневмоусилители
- •3.4. Корректирующие устройства
- •5.1. Электромагнитные реле
- •5.2. Электромеханические муфты
- •5.3. Логические элементы
- •6. Аналого-цифровые и цифроаналоговые преобразователи
- •7. Задающие устройства
- •8. Исполнительные устройства
- •8.1. Управляемые исполнительные электродвигатели постоянного тока
- •8.2. Двигатели переменного тока
- •8.3. Электромагниты
- •8.4. Синхронные шаговые двигатели
- •8.5. Гидравлические серводвигатели
- •8.6. Пневматические серводвигатели
- •9.1. Электропривод
- •9.2. Гидропривод
- •9.3. Пневмопривод
- •10. Системы автоматического регулирования
- •10.1. Регуляторы
- •10.2. Средства управления
- •10.3. Микропроцессоры и эвм в системах управления
- •10.4. Устройства сопряжения эвм с объектом управления
- •11. Программное обеспечение систем управления
- •11.1. Математическое обеспечение эвм
- •11.2. Алгоритмы
- •11.3. Операционная система
- •11.4. Программирование
- •11.5. Программируемые логические контроллеры
- •11.6. Системы числового программного управления
11.3. Операционная система
Для упрощения процесса создания программного обеспечения программу пишут не в командах, которые способен выполнить центральный процессор (ЦП), а на языке программирования, более понятном человеку. Чтобы такая программа могла быть выполнена, в памяти ЭВМ должен находиться интерпретатор команд языка, на котором написана программа, обеспечивающий общение программы с электронными компонентами ЭВМ.
Операционная система (ОС) — комплекс взаимосвязанных управляющих и обслуживающих программных средств, обеспечивающих автоматическое управление ресурсами ЭВМ при выполнении задач. Под задачей будем понимать последовательность двоичных кодов инструкций ЦП и системных вызовов-запросов со стороны задачи к ОС на обмен с внешними устройствами (ВУ).
Операционная система, с одной стороны, управляет микросхемами, контроллерами и т.д., с другой — обеспечивает выполнение задач и является промежуточным звеном между программным обеспечением (ПО) и непосредственным исполнителем — техническими средствами. На рис. 61 приведена структура типичной ОС.
Основой ОС является ядро, обеспечивающее:
распределение ОЗУ под одну или несколько задач;
распределение времени ЦП между этими задачами;
обеспечение обмена сообщениями между задачами;
выполнение системных вызовов от задач на обмен с ВУ;
Ядро содержит файловую систему — единый механизм обмена
данными со всеми внешними устройствами, когда любое устрой-
Рис. 61. Типовая
структура операционной системы (ОС)
ство рассматривается как хранилище одного или нескольких файлов (файл — это совокупность байтов, имеющая свое имя).
Для обеспечения связи универсального ядра с конкретными ВУ ядро дополняется драйверами, выполняющими функцию посредников между ядром файловой систем и ВУ. Драйверы — это стандартные программы ввода-вывода, которые учитывают детали конструкции контроллера и ВУ и позволяют сделать само ядро компактным и независимым от конструкции ВУ.
В состав ОС входит интерпретатор команд — задача, принимающая с дисплея команды управления О С на удобном человеку языке, переводящая их в форму, понятную ядру, и передающая их ядру.
Кроме того, в состав ОС, как правило, входят инструменты для создания, компиляции или интерпретаций прикладных программ на языках высокого уровня и средства о бслуживания самой ОС и аппаратной части ЭВМ.
Перечисленные выше элементы относятся к системному ПО, так как выполняют функции обслуживания системы. Программы, связанные непосредственно с использованием ЭВМ в практических целях, в частности с управлением, составляют прикладное ПО.
11.4. Программирование
Создание задач требует программирования операций обработки данных в двоичных кодах инструкций ЦП, для обеспечения обмена с внешними устройствами требуется правильное оформление системных вызовов к ядру ОС. Эго является чрезвычайно трудоемкой и квалифицированной работой. Требование сокращения затрат на программирование обусловило создание инструментов, позволяющих программировать на языках высокого уровня, перерабатывать исходную программу в задачу, пригодную для данной ОС, и выполнять задачу в ОС.
Существует два основных подхода к решению этой проблемы. Первым из них является создание и запуск задачи-интерпретатора. Интерпретатор принимает из исходной программы по одному оператору языка высокого уровня, расшифровывает содержание оператора и запускает один из своих модулей, ответственный за выполнение этого оператора. При выполнении операторов интерпретатор общается с ОС: выдает системные вызовы, получает ответы на них, реагирует на сигналы от ОС.
Программа для интерпретатора с языка BASIC, составленная по рассмотренному выше алгоритму, имеет следующий вид:
10 PRINT "Введите число замеров";
20 INPUT N%
30 I%=1
40 S=0
50 PRINT "Введите замер", 1%;
60 INPUT X
70 S=S+X
80 I%=I%+1
90 IF I%<=N% THEN GOTO 50
100 S=S/N%
110 PRINT "Среднее арифметическое"; S
120 END
Для повышения наглядности текста программы применяют комментарии, сопровождающие операторы языка программирования, а сами операторы располагают структурированно, с отступами:
REM Программа вычисления среднего арифметического AVERAGE. BAS
REM При работе требуется ввести с клавиатуры:
REM а) число замеров N%,
REM б) по очереди значения замеров X.
REM Среднее арифметическое вычисляется по формуле
REM Х'= (X1+Х2+...+XN)/N
REM Результат выдается на экран.
10 PRINT "Введите число замеров";
20 INPUT N%
REM Подготовка цикла ввода и накопления значений замеров
REM 1% — счетчик цикла,
REM S — сумматор
30 1%=1
40 S=0
45 REM Цикл ввода и накопления значений замеров
50 PRINT "Введите замер", 1%;
60 INPUT X
70 S=S+X
80 I%=I%+1
90 IF I%<=N% THEN GOTO 50 :REM Проверка
правила завершения цикла
100 S=S/N% :REM Вычисление
среднего арифметического
110 PRINT "Среднее арифметическое"; S :REM Вывод результата на экран 120 END
Тексты программ, оформленные таким образом, не нуждаются в дополнительном описании и блок-схемах, понятны не только автору, но и его коллегам, что уменьшает число ошибок, повышает производительность и качество программирования и снижает стоимость программ. Комментарии не учитываются при выполнении программы и не влияют на скорость обработки данных.
Особенностью интерпретаторов является независимое выполнение отдельных операторов. При выполнении приведенной программы интерпретатор N раз расшифрует операторы ввода X и сложения чисел и выполнит их, причем основная часть времени уйдет на многократную расшифровку одних и тех же операторов.
Интерпретаторы широко используются ввиду простоты их создания и малой требовательности к ресурсам ЭВМ. Так, первые микроЭВМ вместо громоздкой ОС имели только встроенный в ПЗУ интерпретатор с языка BASIC, вполне удовлетворявший нужды обычного пользователя. Работа УЧПУ также базируется на последовательной интерпретации команд управляющей программы.
Не будет преувеличением утверждать, что основой управления на базе микропроцессоров является именно интерпретация программ.
Для решения сложных задач обработки данных, требующих много времени работы ЦП, интерпретация неприемлема. Программу на языке высокого уровня типа FORTRAN или С подвергают предварительной переработке — трансляции или компиляции, во время которой выполняется анализ программы как единого целого, производится ее эквивалентное преобразование с целью сокращения повторов, оптимизации последовательности выполнения операций и т.д., после чего программа переводится в коды команд процессора. Результатом трансляции является задача, общающаяся с ОС без посредников, например расчетная задача, или интерпретатор BASIC, или интерпретатор команд ОС.
После перевода алгоритма в операторы языка программирования начинается наиболее трудоемкий этап создания программы — ее отладка. Ошибки, допущенные в операторах, могут быть грубыми, нарушающими правила написания операторов (такие ошибки находит интерпретатор или транслятор и указывает на них программисту). Значительно сложнее найти и исправить ошибки, связанные с логикой работы программы, так как здесь требуется творческое участие самого программиста. Кроме того, сами трансляторы и интерпретаторы, являющиеся также программами, содержат недоработки, документация к ним, как правило, неполная.
Поэтому наиболее ответственным этапом создания программ является их тестирование, во время которого программа испы- тывается на наиболее «неудобных» исходных данных или в наиболее «неудобных» условиях для выявления скрытых ошибок и дефектов (а не для демонстрации работоспособности программы, как принято считать). Завершающим этапом является создание инструкций и другой документации для пользователей программы.
Качество документации во многом определяет эффективность использования программы. Так как пользователями программ являются, как правило, люди, далекие от программирования, все большее значение принимает простой, понятный сценарий общения с программой — интерфейс пользователя. Так, на экран системы управления должен выдаваться лишь необходимый минимум сообщений, ввод команд оператора по возможности должен осуществляться путем выбора пунктов меню, а не вводом текста с клавиатуры. Дополнительные возможности предоставляют цвет и звук, но чрезмерное их использование утомляет оператора и может привести к авариям.
