Программирование управляющих вычислительных машин


Категория Автоматизация судов

В традиционных устройствах автоматизации, таких, как логические устройства управления, выполнение той или иной функции достигается, как известно, путем соответствующего соединения различных функциональных элементов. В этих случаях говорят об устройствах с постоянным программированием. При этом реализуемые таким путем функции ограничены узкими пределами.

В противоположность этому цифровая вычислительная машина представляет собой высокоорганизованное устройство обработки информации, которая при крайне ограниченной вариации своей материальной части допускает большое многообразие возможных операций в несравненно более широком диапазоне. Соответствующая функция обеспечивается при этом программированием запоминающего устройства, т. е. путем чистых операций со средствами программирования (вспомогательными программами). Таким образом, вопрос о программировании приобретает в связи с применением управляющих вычислительных машин решающее значение. Ниже дается краткий обзор возникающих при этом проблем. Более подробный анализ вопроса приводится в специальной литературе.

Общая структура программ.

Программы, необходимые для применения управляющей вычислительной машины, могут быть подразделены на:
— стандартные программы;
— программы применения;
— вспомогательные программы.

Для возможности упорядоченного решения разнообразных задач в первую очередь необходим ряд программ, предназначенных для решения типовых задач независимо от специального назначения машины. Здесь речь идет о так называемых стандартных программах, разрабатываемых специально для материальной части данной вычислительной машины и поставляемых изготовителями машин вместе с ними.

Собственные функции управляющей вычислительной машины определяются так называемыми программами применения или процесса. Эти программы могут быть различными в зависимости от процесса и постановки задачи.

К вспомогательным программам относятся, во-первых, различные программы тестов для постоянной проверки функциональной способности установки. Такая проверка имеет особое значение при работе вычислительной машины по замкнутому контуру. Тесты по части программ, например для контроля за предельными величинами, для корректировок данных измерений и т. д., могут осуществляться без особых дополнительных мероприятий. В других же случаях необходимые входные величины машины сами не могут обеспечить и их приходится соответствующим образом моделировать. Это относится, например, к тесту программ управления неустойчивыми процессами, а также к программам, обратную связь которых через установку приходится – заменять эквивалентной (моделирующей) схемой.

Далее к вспомогательным программам относятся программы обслуживания аппаратуры ввода и вывода, программы конвертирования (перекодирования), программы копирования и изменения, а также программы перевода (трансляторы).

Техника подпрограмм. Оказывается, что для обеспечения как универсальной эксплуатации, так и выполнения отдельных специальных функций управляющая вычислительная машина должна иметь ряд подпрограмм, которые могут быть использованы для решения разных задач. Таким образом, представляется возможным иметь набор стандартных подпрограмм, из которых формируется требуемая программа. При этом главная программа содержит специальные команды для вызова соответствующей стандартной подпрограммы. В случае применяемых замкнутых подпрограмм после их отработки дается команда на возврат к главной программе или на переход к другой подпрограмме. Таким образом, отработка программ ведется в нескольких плоскостях и приводит к «переплетению» различных частей программы.

Главное преимущество стандартной программной техники заключается в том, что каждую подпрограмму надо записывать и вводить в запоминающее устройство только один раз.

Программирование в истинном масштабе времени. Работа управляющей вычислительной машины в связанном режиме отличается от работы обычной цифровой вычислительной машины методом отработки программы. В цифровой вычислительной машине программы отрабатываются последовательно; поэтому здесь говорят об отработке программы с разделением времени. В противоположность этому отработка программы в управляющей вычислительной машине должна происходить синхронно с ходом процесса. Этот вид работы называют программированием в истинном масштабе времени (realtime programming). Необходимость работы машин в истинном масштабе времени становится особенно убедительной при следящем или программном управлении техническими процессами. Здесь в определенных местах программы должны быть обеспечены выдержки времени, по истечении которых проверяется выполнение предшествующих операций.

Для реализации таких выдержек времени во многих случаях используется счетная программа, в ходе которой мгновенное время снимается с абсолютных часов и к нему прибавляется предусмотренное время выдержки.

Параллельное программирование. Ввиду централизованной обработки информации управляющие вычислительные машины должны в большинстве случаев выполнять одновременно несколько задач, как, например, контроль за отклонением параметров до предельных значений, пересчет данных измерений, расчет исполнительных воздействий и т. д. Эти задачи выполняются различными частями программы, которые многократно переплетены между собой во времени. Такая организация программы называется параллельным программированием.

Продолжительность каждой из отрабатываемых частей программы до переключения на другую часть программы в нормальном случае рассчитывается таким образом, чтобы подключенные периферийные устройства, которые работают, как правило, намного медленнее вычислительной машины, обеспечивались в нужной последовательности достаточной информацией.

Этот нормальный цикл прерывается, как только через прерывающую часть системы (interrupt) включается отработка предпочтительной части программы, например исследование аварийных сигналов. В этом случае обработка действующей программы прекращается до тех пор, пока не будут отработаны все другие части программы с большим приоритетом.

В периоды свободного машинного времени могут осуществляться также и дополнительные программы (расчет обобщенных показателей, метеорологические расчеты, инвентаризация складов, расчет заработной платы, функциональные тесты и т. д.).

Необходимой предпосылкой для реализации такой комплексной работы вычислительной машины, позволяющей более полно использовать ее вычислительную производительность, является возможность отсоединения центрального устройства от периферийных устройств.

Этой цели служат буферные регистры для ввода и вывода, а также автономное устройство управления периферийными устройствами, обеспечивающее автоматическое выполнение ими своих функций.

Языки программ. Наиболее прямой формой программирования является преобразование алгоритмизованной задачи в последовательность машинных команд вычислительного устройства. Применяемый для этого язык программирования называется машинным языком. Он определяется соответствующим типом машины. Программирование на машинном языке представляет собой чрезвычайно сложную и трудоемкую задачу.

Уже давно делаются попытки создать для программ более высокоорганизованные языки, которые были бы более удобны для использования человеком. Особый интерес в этой связи представляют так называемые проблемно-ориентированные языки программ. Их команды называют макрокомандами.

Преимущества языков программ заключаются в их универсальности, а также в упрощении работы по программированию. Кроме того, здесь меньше вероятность ошибок. Однако ввиду того, что необходимы специальные программы-трансляторы по-английски assembler, compiler) для перевода проблемно-ориентированного языка на машинный язык данной вычислительной машины, возникает до полнительная потребность в емкости запоминающего устройства (памяти) и машинном времени. Тем не менее с повышением производительности вычислительных машин этот недостаток будет иметь все меньшее значение.

Для научно-технических расчетов наиболее широкое распространение получили программные языки АЛГОЛ и ФОРТРАН. В противоположность этому для целей контроля и управления процессами разработаны лишь отдельные индивидуальные системы программ. При этом к проблемно-ориентированному программному языку для управляющих вычислительных машин предъявляется требование, чтобы программа могла разрабатываться на основе диаграммы потока сигналов или схемы прохождения программы с применением встречающихся здесь функциональных блоков. Макрокоманды для таких систем программирования, как правило, содержат:
— номер соответствующего функционального блока;
— тип функции (например, сравнение предельных значений, интегрирование, установка выдержки времени);
— указание параметров (например, значения постоянной времени, предельной величины);
— номер предшествующего или следующего функционального блока.

Рис. 1. Элементы схемы реализации программы (диаграммы потока сигналов):
а — символ операции; б — символ разветвления (тест); в — символ соединения; г — символ разделения.

Схема реализации программы. Важным вспомогательным средством для наглядного представления структур программ служат схемы реализации программы (диаграммы потока сигналов, структурные диаграммы). Важнейшими элементами схем реализации программы являются следующие.
а) Неразветвленная операция . При наличии входного состояния е проводится определенная операция О, окончание которой приводит к однозначному выходному состоянию а. При этом символ может выражать одну или несколько операций. Поэтому, например, операции ввода — вывода, временные операции, а также операции, выполняемые в подпрограмме, часто различаются дополнительной характеристикой.
б) Разветвление (тест). Если при состоянии происходит или не происходит определенного события Е (Е = ?), то имеет место условное решение. Если результат теста оказывается положительным, то в X возникает выходное состояние а; в противном случае это состояние появляется на выходе Y. Безусловное решение имеет место, если разветвление программы происходит на основании решений, принимаемых в других местах программы.
в) Соединение. Соединение нескольких ветвей программы обозначается узлом (точкой).
г) Места разделения (места переходов, границ). Начало и конец программы, а также места переходов (пересечения программ) обозначаются кружками. В первом случае в них вписываются обозначения «начало» и «конец», а при пересечении программ всегда одинаковые буквы (например, от 1 до 1).

Рис. 2. Схема реализации программы контроля за процессом (проверка предельных величин).

Схемы реализации программ могут успешно применяться также и для воспроизведения функций, выполняемых без вычислительных машин (например, управление по схеме последовательности операций).

Каждая измеренная величина ту после записи проверятся в первую очередь по нижнему предельному значению мин /. Если величина не выходит за это предельное значение, то классифицируется нарушение нижнего предела и соответствующая информация (например, число 1) направляется в память. В другом случае производится переход к проверке верхнего предела.

При превышении верхнего предельного значения макс в ячейку памяти также направляется информация (например, цифра 2). После окончания проверки измеренной величины производится переход к следующей величине mj + 1.

После проверки всех измеренных величин проводится тест, который должен показать, имело ли вообще место нарушение предельных значений и, следовательно, надо ли вызывать программу печати нарушений. Если это так, то производится соответствующий вызов программы, которая обеспечивает опрос ячеек памяти, а также печать мест измерений с нарушениями, включая другие необходимые данные (превышение или снижение, время и т. д.).


Читать далее:

Категория Автоматизация судов