Содержание материала

Под программным обеспечением АСУ Р условимся понимать комплекс программ, предназначенных для выполнения машиной функций по решению вопросов управления ремонтом оборудования предприятий.
Программное обеспечение собственно ЭВМ состоит из двух основных видов. К первому виду относится программное обеспечение самой ЭВМ, управление ею. Это внутренние, «встроенные» программы, являющиеся посредником между пользователем и машиной и обеспечивающие эффективное управление ее памятью, процессором, внешними устройствами и информацией. Эта часть программного обеспечения называется операционной системой. Она является приложением к ЭВМ и поставляется вместе с ней. Ко второму виду программного обеспечения относятся индивидуальные программы для решения тех или иных прикладных задач.
В связи с тем что рассмотрение вопросов программного обеспечения первого вида прямо не входит в задачи АСУ Р и в Систему ТОР ЭО, обратим внимание на вторую часть программного обеспечения, на вопросы индивидуального прикладного программирования и коснемся основы машинных программ — языка программирования, а затем перейдем к рассмотрению программ для решения приведенных в § 5.2 конкретных задач АСУ Р.
ЭВМ устроена так, что не может сразу выполнять достаточно сложное действие, а производит его по строгой последовательности элементарных операций, объединенных в программу.
Программа — это определенная последовательность указаний, команд машине, предписывающая соответствующий порядок выполнения всего процесса выполнения поставленной задачи. Программирование же есть разработка и составление данной последовательности указаний, команд.
Команда — это предписание, которое определяет очередность действий процесса выполнения программы. В каждом предписании указываются операция, адреса операндов и некоторые служебные примечания. Операция — это то, что должна сделать машина согласно данной команде (переслать число из одной ячейки в другую, извлечь корень из числа, сложить или вычесть числа и т.д.). Операнд — это участник операции, то, над чем или с чем выполняется операция, номер некоторой ячейки, некоторое число. Операция, указываемая в команде, также представляется определенным числом — кодом операции.
Кодирование операций программы числами — трудоемкая и утомительная работа. Поэтому в современных ЭВМ стал использоваться язык символов — автокодов (язык АССЕМБЛЕР), или алгоритмический язык. При этом машина сама переводит с языка символов на цифровой язык машины, иначе говоря, транслирует. В символическом языке допускается использование некоторых слов, букв, знаков и т. д., записанных по соответствующим правилам вида языка. Совершенствование трансляторов привело наряду с другими объективными причинами к совершенствованию языка, к возможности записи программ в виде, максимально приближенном к виду математических выражений и естественной разговорной речи. При этом стало возможным применение операторов, которые в отличие от команд, всегда определяющих одно элементарное действие машины, могут реализовать ряд элементарных действий. Оператор в программе выступает как бы в виде целого предложения.
Оператор — это математическая формула, написанная в соответствии с правилами алгоритмического языка, или обозначение какого-либо действия машины (вывод какого-нибудь результата, чисел на печать и т. п.), или какое-либо указание транслятору. Применение операторов является признаком того, что мы имеем дело с языком высокого уровня (язык программирования в цифровых кодах команд — язык низкого уровня).
Приведем для примера программу решения простейшей задачи на языке высокого уровня БЕЙСИК. Предположим, что нам надо, чтобы машина вычислила сумму годовой прибыли — 3% суммы вклада 500 руб. Как задать машине решение этой задачи? Для этого необходимо:

  1. сообщить машине процент годовой прибыли;
  2. сообщить машине сумму начального вклада;
  3. дать машине команды умножить 500 на 3 и запомнить результат;
  4. дать машине команду написать ответ вместе с исходными данными.

Эта программа на языке БЕЙСИК выглядит следующим образом:

Что означают эти записи? Представленная программа содержит пять строк и директиву RUN. Каждая строка программы начинается с цифры — номера и содержит одну инструкцию, один оператор. Номера строк, числа могут быть произвольными, лишь бы были их возрастание, а также относительная гармоничность и логичность и была бы возможность внесения пропущенных или уточняющих инструкций, операторов. Здесь в программе LET А=3 означает, что машине приказывается выбрать ячейку памяти и записать туда число 3. LET В = 500 означает, что машине приказано выбрать ячейку памяти и записать туда число 500. LET С—А* В означает, что машине приказано умножить значения, а результат занести в ячейку С. PRINT А, В, С означает, что машине приказано напечатать текущее содержание ячеек А, В, С. END означает конец программы. Директива RUN (выполнить) означает, что машине указывается начать выполнение программы.
Прежде чем говорить о том, какие языки программирования рациональны при решении задач АСУ Р оборудования энергохозяйства предприятий, коснемся общности этих языков. Общими элементами языков высокого уровня являются алфавит языка, данные, структура и способ записи программ, операции над данными, управление последовательностью действий, операции запуска и трансляции программ.
Под алфавитом языка программирования понимают определенный набор символов — буквы, цифры, знаки и т. п.
Каждый символ представлен в машине определенным кодом, по которому он распознается транслятором. В алфавит входят также устойчивые сочетания — «иероглифы» (к примеру, END —конец, PRINT —печать и т.д.).
Под данными понимаются значения постоянные, которые не изменяются на протяжении работы всей программы, и переменные, которые могут принимать различные допустимые значения. Численные значения бывают целые, вещественные, комплексные; величины текстовые (символьные и строковые); данные логического типа (они принимают одно из двух значений, например истина или ложь). К данным относятся также массивы — совокупность данных, структуры данных — совокупность элементов данных, между которыми существуют некоторые отношения, файлы— организованный набор данных любого типа (например, строка, где собраны сведения о технических параметрах оборудования энергохозяйства или перечень нормативных документов Системы ТОР ЭО и т. д.).
Под структурой и способом записи программ понимают форму представления записи программы. Эти формы для различных языков различны. Приняты формы представления на бланках в виде свободной записи с разделителями, в виде блоков, в виде единой структуры из отдельных строк и др.
Под операцией над данными понимают арифметические операции (обычно для числовых данных — это сложение, вычитание, умножение, деление, возведение в степень), алгоритмические операции вычисления различных функций (синуса, логарифма и т.п.), логические операции (логическое сложение, логическое отрицание и др.), операции отношения (равно — не равно, больше — меньше, не больше— не меньше), операции объединения или сцепления (в результате этих операций из нескольких данных получается одно), операции преобразования данных из одного типа в другой (к примеру, преобразование числового данного в символьное).
Под управлением последовательностью действий понимают реализацию программы с помощью инструкций следования, повторения, выбора.
Под операциями запуска и трансляции программы понимают операции по введению программы в машину и операции по вызову программы — транслятора для преобразования исходных текстов в машинные коды и т. д.
Далее мы зададимся вопросом: какие языки программирования целесообразны к применению при решении наших задач, задач АСУ Р?
В настоящее время существует большое число различных языков высокого уровня (ФОРТРАН, PL = 1, КОБОЛ, АЛГОЛ, RPG, ПАСКАЛЬ, БЕЙСИК, МОДУЛА, АДА, СИ и др.). В Системе ТОР ЭО нет возможности и необходимости пытаться хотя бы частично раскрывать различные стороны этих языков. Скажем только, что те или иные языки возникли, исходя из объективной потребности решения различных практических задач. Задачи различного характера и находят отражение в специфике соответствующих языков. Так, ФОРТРАН зародился для решения задач вычислительного характера, для расчетов по формулам. Для составления программ решение задач такого типа рекомендуются ФОРТРАН и АЛГОЛ. КОБОЛ ориентирован на решение экономических задач (например, расчет заработной платы с получением годовой ведомости), для которых ФОРТРАН и АЛГОЛ не столь удобны. Язык RPG ориентирован на вывод различных сводок, отчетов и т. п.
В ремонтном производстве предприятий решают различные задачи организационно-технического и техникоэкономического плана. По типу решаемых задач возможно использование различных языков. Такая универсальность удобна при функционировании на предприятии АСУ П, уже ориентированной на какой-то определенный язык программирования. Однако при более строгом подходе к выбору языка программирования задач АСУ Р необходимо иметь в виду, что на выбор языка влияет кроме типа решаемых задач также тип используемой машины, тип АСУ Р, квалификация персонала, план использования ЭВМ в энергоремонтном производстве в перспективе, под которым следует понимать то, насколько широко и производительно в настоящем и будущем времени будет использоваться ЭВМ в энергетической службе. На данный момент, по мнению авторов, для энергоремонтных служб, решивших осваивать внедрение АСУ Р собственными силами, рационально использование малой вычислительной техники, мини и микроЭВМ и языков БЕЙСИК и ПАСКАЛЬ. Это мнение основывается на том, что сейчас все большее распространение получают микроЭВМ — машины, которые могут найти применение во вспомогательных ремонтных службах. Машины снабжаются трансляторами с языка БЕЙСИК. Используя эти машины и язык БЕЙСИК, можно достаточно быстро и эффективно решать стоящие перед этими службами задачи. На сегодня это самый распространенный, достаточно легкий язык программирования, позволяющий довольно быстро создавать рабочие программы. Язык программирования ПАСКАЛЬ хорош тем, что дает возможность эффективного обучения программированию. Это важно для тех ремонтных служб, которые решили прочно и надолго связать себя с использованием ЭВМ. Умение хорошо программировать будет залогом успешного решения стоящих перед ними задач в будущем. В языке ПАСКАЛЬ есть наряду с указанным и ряд других достоинств .
Персонал энергетических служб должен освоить тот или иной язык программирования. Когда на предприятии действует общезаводская АСУ П, АСУ Р действует как ее подсистема, нужды в агитации за выбор языка нет. Здесь обычно штат укомплектован достаточно опытными программистами и другими специалистами, которые совместно с ИТР ремонтных служб способны сориентироваться в квалифицированной постановке задач АСУ Р, выборе языка программирования соответствующих задач и их решении.
Разработка и составление программ задач АСУ Р — один из ответственных и важных этапов во всем комплексе работ. Здесь много своих профессиональных хитростей и тонкостей. Существуют различные инструкции и наставления программисту, правила программирования. Так, одним из правил начала программирования является четкое определение и постановка задачи, установление форм вводных и выводных данных и т. д.                                                                        
В настоящее время в составе единой системы программной документации действует комплекс государственных стандартов по вопросам программного обеспечения, в том числе и ГОСТ 19.201—78*, определяющий последовательность разработки программ. Стандарт устанавливает порядок разработки укрупненной структурной схемы, выбор языка программирования, разработку структурной схемы, запись программы на выбранном языке, занесение исходного описания на машинные носители, трансляцию, отладку и т. д.
Рассмотрим вопросы разработки программ по нашим задачам. Языком программирования здесь выбран ПАСКАЛЬ. В целях наглядности, поучительности и удобства формирование программ организуется в диалоговом режиме.

Рис. 5.9. Структурная схема программы PPRG — годового графика ремонта оборудования энергохозяйства предприятия ,
Структурная схема программы первой нашей задачи (рис. 5.9) содержит 12 блоков. Она отражает в укрупненном плане весь процесс формирования графика ремонта оборудования. Блок-схема показывает последовательность логических и других действий, которые должны произойти в процессе работы программы, а также взаимосвязь одной части программы с другой. Степень детализации структурной схемы может изменяться и зависит от целей и целесообразности детализации. Структурная схема с малой степенью детализации дает общее принципиальное представление о содержании процесса и будущей программы.

Рис. 5.10. Структурная схема программы PPR месячного графика ремонта оборудования энергохозяйства предприятия
Разработку такой структурной схемы следует выполнять
совместно с работниками ОГЭ, ответственными (со стороны ОГЭ) за внедрение задачи. Детализированная структурная схема раскрывает общие или полудетальные блоки и отдельные мелкие операции. На основании детализированной структурной схемы программист разрабатывает собственно программу.
Фрагменты программы PPRG приведены ниже:


В программу введены и используются следующие символьные обозначения: I, J — параметры циклов; Л — имя создаваемого файла; OUT — выходной файл; IL — число блоков в выходном файле; KST — число строк в выходной таблице; PRK — признак конца формирования таблицы; TIPO — тип оборудования; ZAVN — заводской номер оборудования; INVN — инвентарный номер оборудования; MEST —место нахождения оборудования; VRM —вид и трудоемкость ремонта.
Другие знаки, символы и операторы применены в соответствии с выбранным языком программирования ПАСКАЛЬ. Настоящая программа организована в диалоговом режиме. Имя файла, в который заносится информация, вводится пользователем на запрос программы.
<ВВЕДИТЕ ИМЯ ФАЙЛА>
При этом пользователь не должен указывать расширение файла, так как программа предусматривает стандартное расширение ДАТ. Программа PPRG не предусматривает ограничение на количество оборудования в файле. Информация, необходимая для формирования графика ремонта, вводится пользователем на запросы программы. Эти запросы соответствуют графам шапки таблицы: тип оборудования, заводской и инвентарный номера, место нахождения, вид и трудоемкость ремонта по месяцам и т.п.
В процессе получения информации об оборудовании программа производит формирование строки таблицы. После завершения формирования очередной строки программа выдает запрос
КОНЕЦ РАБОТЫ?
Если формирование таблицы не закончено, пользователю необходимо ввести символ 'Н', и программа продолжит свою работу, В противном случае пользователь должен ввести символ 'Д', и программа завершит свою работу.
Таким образом, в результате работы программы PPRG на дискете создает файл с именем, указанным пользователем и с расширением ДАТ, который содержит годовой график ремонта оборудования предприятия.
В качестве инструктивных указаний пользователю можно еще сказать, что запуск программы осуществляется командой
Вывод на печать осуществляется командой

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


В программу введены и используются следующие символические обозначения: I, J, L, М, N, К — параметры циклов; А — имя создаваемого файла; INP — входной файл; OUT —выходной файл; SOT —строка таблицы входного файла; REM — вид и трудоемкость ремонта; KSTO —число строк в выходной таблице; NM — номер месяца; IL, IL1 — число блоков во входном и выходном файлах.
Другие знаки, символы и операторы применены так же, как и в первой задаче, в соответствии с выбранным языком программирования ПАСКАЛЬ.
Для сохранения месячного графика на дискете в программе создается специальный выходной файл с тем же именем, что и входной, но с расширением REZ. Так как при формировании выходного файла необходимо просмотреть таблицы годового графика, программа запрашивает
число оборудования, указанное в годовом графике. Программа PPR предназначена для формирования графика ремонта на любой месяц, и поэтому в диалоговом режиме производится запрос номера требуемого месяца. Число оборудования (J) и номер месяца (NM) являются определяющими параметрами для формирования выходной таблицы.
Просмотр машиной годовой таблицы осуществляется в цикле по числу оборудования. Для удобства анализа каждая строка таблицы входного файла считывается в массив SOT, из которого выделяются символы REM, определяющие вид и трудоемкость ремонта оборудования на заданный месяц. Если в заданном месяце ремонт i-го оборудования отсутствует, т. е. выделенные символы REM представляют собой набор пробелов, то информация об этом оборудовании не заносится в выходную таблицу. В противном случае информация об оборудовании (вид оборудования, заводской и инвентарный номера, место нахождения, вид и трудоемкость ремонта) заносится в выходную таблицу месячного графика ремонта. После просмотра всей входной таблицы на экран выдается сообщение
СФОРМИРОВАН ВЫХОДНОЙ ФАЙЛ <ИМЯ> REZ
и программа заканчивает свою работу.
Таким образом, в результате работы программы PPR на дискете создается файл с именем, указанным пользователем, и с расширением REZ, который содержит месячный график ремонта оборудования предприятия.
В качестве инструктивных указаний пользователю укажем, что запуск программы в этом случае осуществляется командой
>RUN PPR
Вывод на печать осуществляется с помощью команды >TFP <ИМЯ> REZ
Представленные программы двух типовых (производственных) задач АСУ Р оборудования энергохозяйств могут быть применены на многих предприятиях без существенной переделки. В этом смысле забот для персонала ремонтных служб при решении данных задач вроде бы и нет. Однако еще раз отметим, что для тех ремонтных служб предприятий, где думают серьезно заниматься вопросами применения средств вычислительной техники для решения своих нужд, вопроса необходимости всестороннего освоения возможностей ЭВМ для этих целей быть не может. Следует постоянно углублять и расширять знания в области применения вычислительной техники, в том числе и на специальных учебных курсах.
Указанные задачи хорошо осваивать на малых машинах, микроЭВМ в диалоговом режиме. К числу подобных задач может быть отнесено, например, освоение программы так называемого редактора текстов (SCREEN, EDIK, К52 и др). Освоив эту программу, можно получить возможность использовать микроЭВМ как пишущую машинку с памятью, можно создавать и неограниченно корректировать текстовые документы, хранить в виде файлов различные виды документов (справок, отчетов и т.п.), выводить их на печатающее устройство и т. п.
Часть первой задачи можно решить в рамках данной программы редактора текстов и формировать годовой график ремонта, сохранить ее в памяти машины или тут же размножить в необходимом количестве экземпляров. Применение этой программы очень удобно, так как составление годового графика ремонта, как правило, происходит с неоднократными переделками и правками — редактированием.
Экранный редактор SCREEN позволяет создавать и редактировать текстовые файлы в рамках ОСДВК «Электроника Н МСО 1900.1» с дисплеем 15ИЭ-00-013 (ДВК-2, ДВК-2м). Редактор текстов SCREEN может быть использован на ЭВМ «Электроника-60», «Электроника 100-25», СМ-3, СМ-4 под управлением монитора SJ.
Для запуска SCREEN нужно набрать соответствующую команду:
— R SCREEN или

  1. RUN SCREEN или
  2. RUN SAV: SCREEN при этом на экране высвечивается вопрос

ВХОДНОЙ ФАЙЛ>
На этот вопрос нужно ответить именем входного файла. Далее процесс редактирования должен идти по правилам, предписанным SCREEN. В режиме редактирования пользователь с помощью команд SCREEN производит все необходимые изменения в графике ремонта или формирует новый график, при этом все изменения тут же появляются на экране. В процессе работы можно сдвигать наш график вниз или вверх, «стереть» ранее созданный текст и добавить новый, выполнить другие операции редактирования.
Рассмотренные примеры решения двух задач АСУ Р являются типичными задачами в системе ремонта оборудования предприятий по типу «систем ППР». По мере освоения этих и аналогичных задач можно решать и более сложные задачи.
Необходимо сказать, что приведенные программы можно применить и при решении аналогичных задач по функциям главного механика предприятия.