Управляющая программа для станков с ЧПУ: разработка, типы, ошибки
Управляющая программа для станка с ЧПУ – составляющая станочного оборудования с числовым программным управлением. С ее помощью обеспечивается автономная или полуавтономная обработка заготовок. Этот компонент позволяет получить качественное и точное изготовление деталей, имеющих сложные формы. Разработка управляющей программы требует специальных навыков.
Предназначение
Управляющая программа обеспечивает контроль над станками на числовом программном управлении. без необходимости постоянного слежения. Она представляет собой комплекс команд, которые подаются рабочему оборудованию.
При помощи команд:
- перемещаются инструменты;
- перемещаются заготовки;
- контролируется скорость обработки.
Написание программы осуществляется под конкретные заготовки. Для ее создания необходимо установить на компьютер специальную программу. Наличие подобного софта позволит создать методики контроля самостоятельно при наличии базовых навыков.
Программное управление бывает дискретным и контурным. Первый вариант используется для обработки заготовок с простыми формами. Он позволяет выполнить базовые функции.
УП второго типа предназначен для сложной обработки. Он чаще всего используется на токарных и фрезерных станках. Обработка осуществляется в зависимости от характеристик конкретного прибора.
На их основе выполняются заданные функции.
Чтобы создать технологическую операцию, необходимо получить информацию о:
- поверхности детали;
- рабочих инструментах;
- величине припуска;
- числе проходов для каждой поверхности;
- режиме резания.
Также необходимо запомнить, в каком положении инструменты находились изначально, и по какой траектории они будут двигаться. Определение траектории вычисляется на основе координат опорных точек.
При помощи управляющей программы можно выполнить:
- токарные работы;
- фрезеровку;
- шлифовальные работы.
Его можно скачать в интернете бесплатно, или же воспользоваться платными приложениями. Платные приложения могут отличаться наличием дополнительных возможностей.
Создание
Методика создания УП включает несколько этапов. На первом этапе создания управляющей программы строится цифровая модель изделия. После этого проводится программный анализ. С его помощью модель можно разделить на точки, чтобы разработать систему координат. По ней будут двигаться инструменты и заготовка в ходе работы.
Создать программу без трехмерной модели изделия не получится. Данная задача выполняется специалистом. Также уже готовые модели можно скачать в интернете, но нет гарантии, что они подойдут для нужной работы.
При изготовлении программ для станков с ЧПУ можно использовать системы автоматизированного программирования, самыми популярными из которых являются:
- AutoCAD;
- NanoCAD;
- T-FlexCAD;
- ArtCam;
- SolidWorks.
При помощи программного обеспечения можно изменить характеристики будущего изделия. Чем больше будет собранного информации, тем более точной будет обработка. На завершающем этапе разрабатываются управляющие команды, которые будут объединены в файл.
Обработкой файла будет заниматься процессор. Информация с файла считывается последовательно. Поэтому команды выполняются друг за другом. Программу легко записать на обычном компьютере и подключить ее при помощи флешки. Затем она будет записана в память компьютера, управляющего станком, и использовать ее не понадобится. С самой программой можно будет осуществлять серийную разработку деталей.
Основной составляющей управляющих программ является G-код. Он состоит из числовых символов. Символы числовой системы могут быть различными командами:
- технологическими;
- геометрическими;
- подготовительными;
- вспомогательными.
Первый тип отвечает за определение рабочего инструмента, скорость обработки, включение и выключение прибора. Второй тип определяет и контролирует заданные координаты. Третий тип позволяет программе управлять станком, а также задает режимы производства. Последний тип включает и выключает отдельные механизмы. Разобраться в коде может технолог-программист.
При покупке оборудования следует инструкция, в которой указано, как правильно создавать числовое программное управление, и использовать различные типы команд.
Виды программ
При создании программы для станков необходимо учесть целый комплекс вопросов:
- на каких оборотах способен работать шпиндель;
- на каких скоростях он может работать;
- с какой производительностью способен работать станок;
- насколько может перемещаться рабочий инструмент;
- сколько инструментов может использовать станок.
Большинство вопросов связаны с характеристиками станка. Для определения необходимых данных достаточно воспользоваться инструкцией, которая следует вместе с оборудованием при его покупке.
Некоторые управляемые станки могут иметь дополнительные функции. Их также нужно учитывать при программировании, иначе обработка может осуществляться неточно.
Список дополнительных функций также имеется в инструкции.
Не существует универсальных программ для передачи команд станку. Список самых востребованных состоит из программ для:
- разработки трехмерных моделей;
- быстрого просмотра и редактирования трехмерных моделей;
- конвертации файлов из одного формата в другой;
- создания и предварительного просмотра УП;
- выполнения задач на станке.
Управляющие программы позволяют станкам изготовлять сложные изделия. Детали со сложной формы могут быть изготовлены из древесины, металла, камня. На специальных станках можно обработать менее используемые материалы.
Преимущества
Управляющая программа помогает упросить производственный процесс в несколько раз. На станках с ЧПУ не требуется больше одного оператора агрегата, и работает по простой методике. УП экономят время и повышают точность обработки.
Они используются при:
- изготовлении рекламных баннеров;
- производстве мебели;
- дизайнерском оформлении помещения;
- порезке и раскрое листового материала;
- изготовлении сувенирных изделий.
При помощи современных приложений составить управляющую программу может человек, не имеющий образования в области программирования.
Благодаря поддержке различных операционных систем, запустить УП можно практически на любом компьютерном устройстве, связанным со станком с системой числового программного управления.
Недостаток программных приложений заключается в периодическом возникновении ошибок.
Виды ошибок
Ошибки возникают чаще всего при разработке УП для обработки деталей, имеющих сложные формы. Наиболее частой причиной является недостаточная подготовка оператора-программиста. Поэтому УП должны разрабатываться подготовленными сотрудниками.
Ошибки бывают трех типов:
- герметического;
- технологического;
- перфорационного.
Первый вид ошибок возникает на этапе расчетов. В большинстве случаев они связаны с нарушением параметров заготовки, вычислении координат опорных точек, определения положения рабочих инструментов станочного прибора.
Технологические ошибки возникают, когда станок настраивается. Их причина заключается в неправильно заданной скорости, параметров обработки, и других команд, задаваемых для оборудования с ЧПУ. Третий тип ошибок возникает в перфорированной ленте или перфораторе.
Источник: https://VseOChpu.ru/upravlyayushhaya-programma-dlya-stankov-s-chpu/
Составление управляющих программ
ЧЕЛОВЕЧЕСКИЙ ФАКТОР
Задача подготовки управляющих программ, т. е. набора инструкций для управления станком, является весьма сложной. Программист должен уметь читать технические чертежи, знать
Рис 8.7. Сегмент управляющей программы обработки деталей.
Геометрию и тригонометрию и уметь перевести технологические инструкции (в том числе и те, что задают движение органов станка) в инструкции управляющей программы.
Режущий инструмент должен быть нормален к поверхности детали, а вычисление текущего положения центра инструмента может оказаться весьма трудоемкой задачей, особенно в случае применения кусочно-линейной интерполяции для обработки искривленных поверхностей.
Операционная нарта программиста | ||||||
Ось X | Ось Г | ОсьГ | Пода – ча | Спорість | Инструмент | Вслопоіа /пеленая операци оннамаг |
9,5625 | 3,6675 13,7250 | 4,8125 — — | 615 | 45 469 | 03 | 04 |
Существуют два способа подготовки управляющих программ: вручную и с помощью ЭВМ. При программировании вручную программист вычисляет траекторию режущего инструмента, учитывая геометрию обрабатываемой детали.
При составлении программы с помощью ЭВМ программист только описывает форму детали и траекторию движения режущего инструмента средствами языка высокого уровня; необходимые вычисления и составление управляющей программы производятся средствами ЭВМ под управлением специального программного обеспечения.
Ручная подготовка управляющих программ
Продемонстрировать процесс подготовки управляющих программ вручную можно на следующем примере. На техническом чертеже указаны все необходимые размеры детали. Программист получает информацию о типе режущего инструмента* величине подачи и скорости резания из технологической карты.
Например, в качестве режущего инструмента используемся че – тырехзаходная цилиндрическая фреза диаметром 0,5 дюйма. Скорость подачи обычно задается в дюймах на один оборот шпинделя на один зуб фрезы, а скорость резания поверхности—■ в футах'> в минуту.
Контроллер воспринимает значение величины подачи, выраженное в дюймах в минуту, а значение скорости вращения шпинделя — в оборотах в минуту. Следовательно, программист должен преобразовать значения указанных величин в соответствующие единицы.
Следующим шагом является вычисление перемещения режущего инструмента на каждом шаге (построение траектории режущего инструмента). После того как все точки траектории центра инструмента найдены, полученная информация должна быть преобразована в формат программы для системы ЧПУ.
Первая строка управляющей программы содержит символ останова и перемотки (%), указывающий на начало программы. При перемотке перфоленты головка считывающего устройства остановится именно на этом символе. Каждая из строк (блоков) программы начинается с буквы N, за которой следует номер строки, например N/0.
Буквой G кодируются подготовительные операции, выполняемые при подготовке стайка или контроллера к выполнению какой-либо операции. Например, G90 задает использование в программе абсолютных значений координат. Буквой М кодируется ряд операций.
Так, по команде МОЗ включается вращение шпинделя по часовой стрелке, а по команде М08 — подача охлаждающей жидкости.
В блоке вида N30G01X10000Y1500F55200 коды G01 предписывают контроллеру необходимость выполнения линейной интерполяции, коды X и Y указывают начальное положение режущего инструмента, а коды F и S содержат информацию о величине подачи и скорости вращения соответственно.
Блок вида N40G02X1100 Y2000I500J400 задает обработку поверхности типа дуги окружности, причем значения кодов I и J указывают координаты центра этой окружности. Последний кадр N50X0000Y0000M30 необходим для выведения режущего инструмента в точку начала координат. По команде МЗО происходит выключение станка и перемотка перфоленты с управляющей программой.
О 1 фут равен 30,48 см .—Прим. перев.
Составление управляющих программ с помощью ЭВМ
Языки программирования, используемые для составления управляющих программ на ЭВМ, созданы для облегчения труда программистов.
В настоящее время используется целый ряд таких языков: APT [19], COMPACT II [19], ЕХАРТ [48], ADAPT [24].
Программа, написанная на таком языке, состоит из четырех основных частей, содержащих операторы описания оборудования (условия резания), геометрии, движения и постпроцессорной обработки.
Операторы описания оборудования задают условия резания, операторы описания геометрии необходимы для описания геометрической формы детали, операторы описания движения задают траекторию движения режущего инструмента, а операторы постпроцессорной обработки влияют на формирование специфических для данного оборудования кодов.
Средства программного обеспечения языков программирования для ЧПУ состоят из процессора и набора постпроцессоров, позволяющих использовать один и тот же текст программы на исходном языке для получения управляющих программ для различных систем с ЧПУ.
Необходимые для этого изменения в программе касаются исключительно операторов постпроцессорной обработки, поскольку каждая система ЧПУ имеет собственный формат управляющих программ ч специальные требования к кодированию.
С помощью процессора выполняются интерпретация исходной программы и математические вычисления. В результате обработки исходной программы получают данные в некотором промежуточном формате, так называемые CL-дан – ные1'.
С помощью постпроцессоров осуществляется преобразование CL-данных в формат, приемлемый для конкретного станка с ЧПУ.
Хотя программа, написанная на языке высокого уровня указанным способом, кажется несколько длиннее, чем управляющая программа в кодах системы ЧПУ, составленная вручную, программа на языке высокого уровня для деталей сложной формы (когда необходима интерполяция искривленных поверхностей), полученная таким способом, обычно оказывается значительно короче. Составление управляющих программ на языке высокого уровня имеет следующие преимущества:
1) исключение ручных вычислений;
2) простота понимания и отладки;
3) простота внесения изменений;
” В тексте оригинала использован общеупотребительный термин «CL– Data» — сокращение от сочетания английских слов «CutterLocation» — положение режущего инструмента. — Прим. перев.
4) наличие дополнительных возможностей, например возможности работы с графическим интерфейсом.
Автоматическое построение чертежа детали и траектории движения режущего инструмента позволяет программисту контролировать корректность программы.
Графическое программирование для систем ЧПУ
Наличие средств интерактивной графики еще в большей степени упрощает задачу составления управляющих программ.
Система интерактивной графики позволяет программисту работать с графическими образами, а не с операторами языка или числами, что позволяет упростить процесс описания геометрической формы детали.
Интерактивная графическая система программирования для станков с ЧПУ функционально подобна САПР/АПС, но, как правило, не обеспечивает выполнения масштабирования, удаления невидимых линий, вращения изображений и других подобных функций.
Интегрированные САПР/АПС делают возможным подготовку управляющих программ для систем с ЧПУ. При использовании таких систем для подготовки программ описание геометрии детали, созданное проектировщиком, уже имеется в ЭВМ.
Конструкторская проработка изделия проводится в полном объеме, но невидимые линии не удаляют, а размерные линии на чертеж не наносят.
Большинство САПР/АПС позволяет также проверить корректность описываемой программой траектории движения режущего инструмента по ее графическому изображению.
Наиболее эффективный способ программирования для систем ЧПУ заключается в использовании САПР/АПС как в процессе разработки изделия, так и для составления управляющих программ.
Если конструкторский и технологический отделы используют различные САПР/АПС, каждую из систем следует оснастить пре – и постпроцессорами, соответствующими стандарту IGES') (см. гл. 6).
В противном случае описание геометрии детали требуется вводить вручную.
Проектирование качественного программного обеспечения интерфейса человек —ЭВМ не является жестким, статическим процессом. Характер и содержание каждого интерфейса варьируются в соответствии с конкретной областью его использования, и в группах разработчиков часто …
Существует целый ряд общих методов оценки эффективности для различных уровней характеристик человеко-машинных систем, однако оценка эффективности распознавания речи в сложней задаче управления, связанной с отображением информации, представляется задачей более трудной …
Соответствующая документация необходима для обеспечения эффективных и экономичных процедур разработки, использования и сопровождения программных систем в целях организации систематического обмена информацией между управленческим персоналом, разработчиками системы и пользователями на всех …
Источник: https://msd.com.ua/chelovecheskij-faktor/sostavlenie-upravlyayushhix-programm/
Большая Энциклопедия Нефти и Газа
Cтраница 1
Подготовка управляющих программ включает следующие основные этапы: разработку технологии автоматической обработки; программирование процесса обработки; отладку и редактирование управляющих программ. На первом этапе технологу приходится составлять сложные расчетно-технологические карты.
Трудоемкость этого этапа достигает 30 % от общей трудоемкости. Второй этап требует высокой программистской квалификации технолога.
Наименее трудоемким ( порядка 25 %), но весьма ответственным с точки зрения обеспечения требуемого качества обработки и высокой надежности системы ЧПУ является третий этап. [1]
Подготовку управляющей программы можно легко осуществить непосредственно у станка без больших затрат времени. [2]
Дляподготовки управляющей программы составляют расчет-но-технологическую карту на данную операцию.
Эта карта содержит полную информацию о выполняемой обработке в виде траектории движения инструмента по программе, перечень всех команд по управлению станком и количественные значения перемещений, скоростей и подач, размер инструмента ( например диаметр фрезы) и его номер, цену импульса на перемещение инструмента по осям координат, точность аппроксимации криволинейных участков, время разгона и торможения рабочего органа станка в конце каждого участка траектории. В нее записывают участки траектории с их характеристикой ( прямая, дуга окружности), указывают координаты опорной точки конца участка, подачу инструмента на данном участке ( в мм / мин) и частоту вращения шпинделя. Кроме опорных в данную карту заносятся контрольные точки, в которых предусматривается кратковременная остановка инструмента для проверки отработки программы рабочими органами станка. Ошибки и пропуски данных в расчетно-технологических картах не допускаются. Структура и форма этих карт пока не имеют единого образца. [3]
Автоматизацияподготовки управляющих программ для станков с программным управлением связана, в основном, с разработкой единой системы узко ориентированных языков для описания геометрии деталей и проектирования технологии их обработки с помощью ЦВМ.
Кроме того, необходима специальная периферийная аппаратура для универсальных ЦВМ, позволяющая ускорить отладку подготовленных программ.
Единая система математического обеспечения необходима и для систем непосредственного управления группами станков от единой ЦВМ, о которой упоминалось выше. [4]
Автоматизацияподготовки управляющих программ может производиться на различных уровнях. На первом уровне объектом автоматизации является наиболее трудоемкий этап подготовки программы – ее расчет с заполнением таблиц и кодировкой кадров. В условиях автоматизации этот этап выполняется на ЭВМ.
Его продолжительность сокращается в несколько раз – с 15 – – 20 ч до 20 – 30 мин, а расчет программы на ЭВМ длится всего около 5 мин.
Вместе с тем несколько сокращается и объем работы технолога-программиста: он разрабатывает технологический процесс с заполнением операционной карты, обозначает элементы обрабатываемой поверхности с указанием координат точек врезания и схода инструмента, назначает подачу, цену импульса и точность аппроксимации, а также производит роспись исходной информации о геометрии детали и технологии ее обработки для ввода в ЭВМ. Таким образом, этот этап, выполняемый вручную, становится лимитирующим. На последующих более высоких уровнях автоматизации подготовки управляющих программ трудоемкость этого этапа уменьшается в результате его частичного ( а в перспективе и более полного) выполнения на ЭВМ. [5]
Схема взаимодействия при диалоге технолога-проектировщика и ЭВМ. [6] |
Автоматизацияподготовки управляющих программ ( УП) для станков с ЧПУ. Автоматизация подготовки таких программ встречает определенные трудности в поиске рационального варианта из-за наличия трудноформализуемых правил и процедур. [7]
Приподготовке управляющих программ ручным методом технолог-программист записывает команды обработки детали на специальном бланке, называемом бланком записи управляющей программы.
Эти команды должны быть заданы очень точно, поскольку далее прямо с рукописного бланка перфорируется лента для ЧПУ.
Бланки записи управляющей программы имеют различный вид в зависимости от того, какой станок и какой формат перфоленты будут использованы. [8]
Приподготовке управляющих программ для станков с ЧПУ большое значение имеет правильный выбор и взаимная увязка систем координат. Система координат станка ( СКС), в которой определяется положение рабочих органов станка и других систем координат, является основной.
По стандартам все прямолинейные перемещения рассматривают в правосторонней прямоугольной системе координат X, Y, Z, Во всех станках положение оси Z совпадает с осью вращения инструмента; если при обработке вращается заготовка, – то с осью вращения заготовки.
На станках всех типов движение сверла из детали определяет положительное направление оси Z в СКС. Для станков, в которых сверление невозможно, ось Z перпендикулярна технологической базе. Ось X перпендикулярна оси Z и параллельна технологической базе и направлению возможного перемещения рабочего органа станка.
На токарных станках с ЧПУ ось X направлена от оси заготовки по радиусу и совпадает с направлением поперечной подачи ( радиальной подачи) суппорта. [10]
Приподготовке управляющих программ для станков с ЧПУ большое значение имеет правильный выбор и взаимная увязла систем координат. Система координат станка ( СКС), в которой определяется положение рабочих органов станка и других систем координат, является основной. [11]
Приподготовке управляющей программы перед знаком % начало программы может быть записана любая вступительная информация, которая не считывается УЧПУ, а необходимая наладчику и оператору станка. [12]
Системы дляподготовки управляющих программ станков и технологического оборудования с ЧПУ. Наиболее известными программами этой группы являются SmartCAM, CIM CAD, Cimplex, EUCLID, PEPS, DUCT, Спрут и др. Часто они выпускаются как специализированные пакеты для конкретных видов механообработки или имеют набор специализированных подпрограмм. [13]
Рассмотрены вопросыподготовки управляющих программ для автоматизированного оборудования, системы числового программного управления станками; даны примеры программирования обработки заготовок на металлорежущих станках с ЧПУ и для промышленных роботов; приведены системы автоматизированного программирования, средства подготовки и контроля управляющих программ для стгнков с ЧПУ. [14]
Чертеж детали для примера. [15] |
Страницы: 1 2 3 4
Источник: http://www.ngpedia.ru/id273389p1.html
Управляющие операторы языка высокого уровня следование
Управляющие операторы языка высокого уровня: • следование • ветвление • цикл • передача управления Реализуют логику выполнения программы ©Павловская Т. А. (НИУ ИТМО) 1
Блок (составной оператор) n Блок — последовательность операторов, заключенная в операторные скобки: n begin end n { } – в Паскале – в С-подобных языках n Блок воспринимается компилятором как один оператор и может использоваться всюду, где синтаксис требует одного оператора, а алгоритм — нескольких. n Блок может содержать один оператор или быть пустым. ©Павловская Т. А. (НИУ ИТМО) 2
Оператор «выражение» n Любое выражение, завершающееся точкой с запятой, рассматривается как оператор, выполнение которого заключается в вычислении выражения. i++; // выполняется операция инкремента a *= b + c; // выполняется умножение с присваиванием fun( i, k ); // выполняется вызов функции ©Павловская Т. А. (НИУ ИТМО) 3
Пустой оператор n n пустой оператор ; используется, когда по синтаксису оператор требуется, а по смыслу — нет: while ( true ); Это цикл, состоящий из пустого оператора (бесконечный) n ; ; ; Три пустых оператора ©Павловская Т. А. (НИУ ИТМО) 4
Операторы ветвления: n развилка (if) n переключатель (switch) ©Павловская Т. А. (НИУ ИТМО) 5
Условный оператор if if ( выражение ) оператор_1; [else оператор_2; ] if ( a d || a == 0) ) ++b; else { b *= a; a = 0; } if ( a
Пример y using System; -2 namespace Console. Application 1 { class Class 1 { static void Main() { Console. Write. Line( “Введите координату x” ); double x = Convert. To. Double(Console. Read. Line() ); 1 2 x -2 Console. Write. Line( “Введите координату у” ); double y = double. Parse(Console. Read. Line() ); if ( x * x + y * y
Пример 2 y 1 -2 -1 2 x if ( x = -2 && x = -1 && x = 1 && x = 2 ) y = 0; if ( x
Проверка вещественных величин на равенство n Из-за погрешности представления вещественных значений в памяти следует ее избегать, вместо этого лучше сравнивать модуль разности с некоторым малым числом. n float a, b; … n if ( a == b ) … // не рекомендуется! n if ( Math.
Abs(a – b)
Это минимально возможное значение переменной такое, что // надежно! 1. 0 + Epsilon != 1. 0 ©Павловская Т. А. (НИУ ИТМО) 9
Оператор выбора switch ( выражение ){ case константное_выражение_1: [ список_операторов_1 ] case константное_выражение_2: [ список_операторов_2 ] case константное_выражение_n: [ список_операторов_n ] [ default: операторы ] } ©Павловская Т. А. (НИУ ИТМО) 10
using System; namespace Console. Application 1 { class Class 1 { static void Main() { Console. Write. Line( “Введите 1 й операнд: ” ); double a = double. Parse(Console. Read. Line()); Console. Write. Line( “Введите знак” ); char op = (char)Console. Read(); Console.
Read. Line(); Console. Write. Line( “Введите 2 й операнд: ” ); double b = double. Parse(Console. Read.
Line()); Пример: Калькулятор double res = 0; bool ok = true; на четыре действия switch (op) { case '+' : res = a + b; break; case '-' : res = a – b; break; case '*' : res = a * b; break; case '/' : res = a / b; break; default : ok = false; break; } if (ok) Console. Write. Line( “Результат: ” + res ); else Console. Write. Line( “Недопустимая операция” ); }}} ©Павловская Т. А. (НИУ ИТМО) 11
Операторы цикла: § с предусловием – while § с постусловием – do § с параметром – for § перебора – foreach ©Павловская Т. А. (НИУ ИТМО) 12
Структура оператора цикла Начальные значения Усл-е Начальные значения Тело цикла Модиф-я параметра Усл-е ©Павловская Т. А. (НИУ ИТМО) 13
Цикл с предусловием while ( выражение ) оператор using System; namespace Console. Application 1 { class Class 1 { static void Main() { double Xn = -2, Xk = 12, d. X = 2, t = 2, y; Console. Write. Line( “| x | y |” ); double x = Xn; xn while ( x
Цикл с постусловием Удобно использовать для проверки ввода do оператор while выражение; using System; namespace Console. Application 1 { class Program { static void Main() { char answer; do { Console. Write. Line( “Купи слоника, а? ” ); answer = (char) Console. Read(); Console. Read. Line(); } while ( answer != 'y' ); } } } ©Павловская Т. А. (НИУ ИТМО) 15
Цикл с параметром for ( инициализация; выражение; модификации ) оператор; int s = 0; for ( int i = 1; i
Пример цикла с параметром using System; namespace Console. Application 1 { class Class 1 { static void Main() { double Xn = -2, Xk = 12, d. X = 2, t = 2, y; Console. Write. Line( “| x | y |”; for ( double x = Xn; x
Рекомендации по написанию циклов n Использовать do-while, если цикл обязательно требуется выполнить хотя бы один раз (например, при проверке ввода); n в остальных случаях, как правило, применять for.
n Не забывать заключать в блок тело цикла, состоящее более чем из одного оператора; n проверять, изменяется ли в теле цикла хотя бы одна переменная, входящая в условие продолжения цикла; n предусматривать аварийный выход из итеративного цикла* по достижению некоторого предельно допустимого количества итераций.
——* цикл, количество повторений которого невозможно вычислить заранее ©Павловская Т. А. (НИУ ИТМО) 18
Передача управления: § break § continue § return § goto § throw ©Павловская Т. А. (НИУ ИТМО) 19
Передача управления n оператор break — завершает выполнение цикла, внутри которого записан n оператор continue — выполняет переход к следующей итерации цикла n оператор return — выполняет выход из функции, внутри которой он записан n оператор goto — выполняет безусловную передачу управления n оператор throw — генерирует исключительную ситуацию. ©Павловская Т. А. (НИУ ИТМО) 20
Пример: вычисление суммы ряда Написать программу вычисления значения функции sin с помощью степенного ряда с точностью ε по формуле: ©Павловская Т. А. (НИУ ИТМО) 21
Пример: вычисление суммы ряда using System; namespace Console. Application 1 { class Class 1 { static void Main() { double e = 1 e-6; const int iter. Limit = 500; Console. Write. Line( “Введите аргумент: ” ); double x = Convert. To. Double(Console. Read.
Line()); bool error = false; // признак ошибки double c = x, y = c; // член ряда и сумма ряда for ( int n = 1; Math. Abs(c) > e; n++ ) { c *= – x * x / ((2 * n ) * ( 2 * n + 1 )); y += c; if ( n > iter. Limit ) { error = true; break; } if ( error ) Console. Write. Line( “Ряд расходится” ); else Console. Write.
Line( “Сумма ряда – ” + y ); }}} end. ©Павловская Т. А. (НИУ ИТМО) 22
Оператор return завершает выполнение функции и передает управление в точку ее вызова: return [ выражение ]; Оператор goto 1) goto метка; В теле той же функции должна присутствовать ровно одна конструкция вида: метка: оператор; 2) goto case константное_выражение; 3) goto default; ©Павловская Т. А. (НИУ ИТМО) 23
Обработка ошибок Возможные действия при ошибке: n прервать выполнение программы; n возвратить значение, означающее «ошибка» ; n вывести сообщение об ошибке и вернуть вызывающей программе некоторое приемлемое значение, которое позволит ей продолжать работу; n выбросить исключение. Исключения генерирует либо система выполнения, либо программист с помощью оператора throw. ©Павловская Т. А. (НИУ ИТМО) 24
Простая проверка ввода не // пример проверки формата вводимого значения: гуманно! double a; if (! double. Try. Parse(Console. Read. Line(), out a) ) {Console. Write.
Line(” Неверный формат “); return; } // при вводе более одного значения предпочтительнее // использовать механизм исключений // пример проверки допустимости значения: double a = double. Parse(Console.
Read. Line()); . . . if ( a
Проверка ввода с помощью цикла do-while using System; namespace Console. Application 1 { class Program { static void Main() { const int max_attempts = 3; int i = 0; do { Console. Write. Line( “Введите значение > 0: ” ); double a = double. Parse(Console. Read. Line()); ++i; if ( i >= max_attempts ) { … return; } } while ( a
Рекомендуемая структура обработки ошибок исходных данных ввод данных ошибка 1? ошибка 2? да да сообщение 1 выход сообщение 2 выход . . . основной поток вычислений ©Павловская Т. А. (НИУ ИТМО) НЕ в толще вложенных блоков! 27
Обработка исключений Исключительная ситуация, или исключение — это возникновение непредвиденного или аварийного события, которое может порождаться некорректным использованием аппаратуры.
Например, это деление на ноль или обращение по несуществующему адресу памяти. Исключения позволяют логически разделить вычислительный процесс на две части — обнаружение аварийной ситуации и ее обработка.
©Павловская Т. А. (НИУ ИТМО) 28
Некоторые стандартные исключения Имя Пояснение Arithmetic. Exception Ошибка в арифметических операциях или преобразованиях (является предком Divide. Be. Zero. Exception и Over. Flow. Exception) Divide. By. Zero. Exceptio Попытка деления на ноль n Format.
Exception Попытка передать в метод аргумент неверного формата Index. Out. Of. Range. Exce Индекс массива выходит за границы диапазона ption Invalid. Cast. Exception Ошибка преобразования типа Out. Of. Memory. Exceptio Недостаточно памяти для создания нового объекта n Over. Flow. Exception ©Павловская Т. А.
(НИУ ИТМО) Переполнение при выполнении арифметических операций 29
Оператор try Служит для обнаружения и обработки исключений. Оператор содержит три части: n контролируемый блок — составной оператор, предваряемый ключевым словом try. В контролируемый блок включаются потенциально опасные операторы программы.
Все функции, прямо или косвенно вызываемые из блока, также считаются ему принадлежащими; n один или несколько обработчиков исключений — блоков catch, в которых описывается, как обрабатываются ошибки различных типов; n блок завершения finally, выполняемый независимо от того, возникла ли ошибка в контролируемом блоке.
Синтаксис оператора try: try блок [ catch-блоки ] [ finally-блок ] ©Павловская Т. А. (НИУ ИТМО) 30
Механизм обработки исключений n Функция или операция, в которой возникла ошибка, генерируют исключение; n Выполнение текущего блока прекращается, отыскивается соответствующий обработчик исключения, ему передается управление. n В любом случае (была ошибка или нет) выполняется блок finally, если он присутствует. n Если обработчик не найден, вызывается стандартный обработчик исключения. ©Павловская Т. А. (НИУ ИТМО) 31
Пример 1: try { // Контролируемый блок } catch ( Overflow. Exception e ) { // Обработка переполнения } catch ( Divide. By. Zero. Exception ) { // Обработка деления на 0 } catch { // Обработка всех остальных исключений } ©Павловская Т. А. (НИУ ИТМО) 32
Иллюстрация генерации исключения Блок try что-нибудь вызов метода что-нибудь еще Блоки catch обработчик 1 обработчик 2 … обработчик всех ©Павловская Т. А. (НИУ ИТМО) что-нибудь вызов другого метода что-нибудь еще . . . А А ! ! ! генерация исключения п о и с к 33
Пример 2: проверка ввода if (u
Parse(Console. Read. Line() ); double i = u / r; Console. Write. Line( “Сила тока – ” + i ); } catch ( Format. Exception ) { Console. Write. Line( “Неверный формат ввода!” ); } catch // общий случай { Console. Write. Line( “Неопознанное исключение” ); } ©Павловская Т. А.
(НИУ ИТМО) 34
Оператор throw n throw [ выражение ]; Параметр должен быть объектом, порожденным от стандартного класса System. Exception. Этот объект используется для передачи информации об исключении его обработчику. Пример: throw new Divide. By. Zero. Exception(); ©Павловская Т. А. (НИУ ИТМО) 35
Базовые конструкции структурного программирования n Целью использования базовых конструкций является получение программы простой структуры.
Такую программу легко читать, отлаживать и при необходимости вносить в нее изменения.
n Особенностью базовых конструкций является то, что любая из них имеет только один вход и один выход, поэтому конструкции могут вкладываться друг в друга ©Павловская Т. А. (НИУ ИТМО) 36
Рекомендации по программированию – 1/2 n n n n Главная цель, к которой нужно стремиться, — получить легко читаемую программу возможно более простой структуры. Создание программы начинают с определения ее исходных данных и результатов (тип, диапазон).
Затем записывают на естественном языке (возможно, с применением обобщенных блок-схем), что именно и как должна делать программа. При кодировании необходимо помнить о принципах структурного программирования: программа должна состоять из четкой последовательности блоков — базовых конструкций.
Имена переменных должны отражать их смысл. Переменные желательно инициализировать при их объявлении. Следует избегать использования в программе чисел в явном виде (кроме 0 и 1). Программа должна быть «прозрачна» .
Для записи каждого фрагмента алгоритма используются наиболее подходящие средства языка. ©Павловская Т. А. (НИУ ИТМО) 37
Источник: http://present5.com/upravlyayushhie-operatory-yazyka-vysokogo-urovnya-sledovanie/
управляющая программа – это… Что такое управляющая программа?
- Управляющая программа — согласно ГОСТ 19781 90 системная программа, реализующая набор функций управления: управление ресурсами системы обработки информации; взаимодействие с внешней средой системы обработки информации; восстановление работы системы после проявления… … Финансовый словарь
- управляющая программа — Системная программа, реализующая набор функций управления, в который включают управление ресурсами и взаимодействие с внешней средой системы обработки информации, восстановление работы системы после проявления неисправностей в технических… … Справочник технического переводчика
- управляющая программа — 3.22 управляющая программа: Совокупность команд, определяющая заданное функционирование УРП в соответствии с регламентированной информацией от технических средств объекта или оператора. Источник: ГО … Словарь-справочник терминов нормативно-технической документации
- управляющая программа — valdymo programa statusas T sritis automatika atitikmenys: angl. control program; control routine; steering program; steering routine vok. Organisationsprogramm, n; Steuerprogramm, n rus. программа управления, f; управляющая программа, f pranc.… … Automatikos terminų žodynas
- управляющая программа — Программа, задающая действия робота по выполнению им требуемых функций … Политехнический терминологический толковый словарь
- управляющая программа в числовом программном управлении — управляющая программа Совокупность команд на языке программирования, соответствующая заданному алгоритму функционирования станка по обработке конкретной заготовки. [ГОСТ 20523 80] Тематики числовое программное управление Синонимы управляющая… … Справочник технического переводчика
- управляющая программа для режима реального времени — — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN control program for real timeCP R … Справочник технического переводчика
- управляющая программа, записанная в ОЗУ — — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN ROM monitor … Справочник технического переводчика
- главная управляющая программа — — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN master control programMCP … Справочник технического переводчика
- первичная управляющая программа — — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN primary control programPCP … Справочник технического переводчика
- Монитор (управляющая программа) — У этого термина существуют и другие значения, см. Монитор. Монитор (от лат. monitor напоминающий, предупреждающий, надзиратель, надсмотрщик) часть управляющей программы операционной системы, реализующая управление одной из фаз… … Википедия
Источник: https://dic.academic.ru/dic.nsf/eng_rus/339617/%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%8E%D1%89%D0%B0%D1%8F
Разработка управляющих программ
При разработке управляющей программы необходимо:
1) спроектировать маршрутную технологию обработки в виде последовательности операций с выбором режущих и вспомогательных инструментов и приспособлений;2) разработать операционную технологию с расчетом режимов резания и определением траекторий движения режущих инструментов;3) определить координаты опорных точек для траекторий движения режущих инструментов;4) составить расчетно-технологическую карту и карту наладки станка;5) закодировать информацию;6) нанести информацию на программоноситель и переслать в память устройства ЧПУ станка или вручную набрать на пульте устройства ЧПУ;
7) проконтролировать и при необходимости исправить программу.
Для программирования необходимы чертеж детали, руководство по эксплуатации станка, инструкция по программированию, каталог режущих инструментов и нормативы режимов резания.
Согласно ГОСТ 20999-83 запись элементов программы производится в определенном порядке в виде последовательности кадров и с использованием соответствующих символов.
Значения управляющих символов и знаков
Символ Значение
А Угол поворота вокруг оси XВ Угол поворота вокруг оси УС Угол поворота вокруг оси ZD Вторая функция инструментаБ Вторая функция подачиF Первая функция (скорость) подачиG Подготовительная функцияН Коррекция длины инструментаI Параметр угловой интерполяции или шаг резьбы параллельно оси XJ Параметр круговой интерполяции или шаг резьбы параллельно оси УК Параметр круговой интерполяции или шаг резьбы параллельно оси ZL Не определенМ Вспомогательная функцияN Номер кадраО Не определенР Третичная длина перемещения, параллельного оси XQ Третичная длина перемещения, параллельного оси УR Перемещение на быстром ходу по оси Z или третичная длина перемещения, параллельного оси ZS Функция (скорость) главного движенияТ Первая функция инструмента”U Вторичная длина перемещения, параллельного оси XV Вторичная длина перемещения, параллельного оси УW Вторичная длина перемещения, параллельного оси ZX Первичная длина перемещения, параллельного оси XY Первичная длина перемещения, параллельного оси У
Z Первичная длина перемещения, параллельного оси Z
ГТ Символ, управляющий перемещением действующей позиции печати в следующую (заранее определенную) знаковую позицию на той же строке; предназначен для управления устройствами печати при распечатке управляющей программы; устройство ЧПУ не воспринимается
ПС Символ, обозначающий конец кадра управляющей программы
% Знак, обозначающий начало управляющей программы (используется также для остановки носителя данных при обратной перемотке)
( Знак, обозначающий, что следующая за ним информация не должна отрабатываться на станке
) Знак, обозначающий, что следующая за ним информация должна отрабатываться на станке
+ Математический знак
– Математический знак. Десятичный знак
/ Знак, обозначающий, что следующая за ним информация до первого символа «Конец кадра» может отрабатываться или не отрабатываться на станке (в зависимости от положения органа управления на пульте управления устройства ЧПУ). Когда этот знак стоит перед символами «Номер кадра» и «Главный кадр», он действует на целый кадр управляющей программы
: Знак, обозначающий главный кадр управляющей программы
Если символы А, В, С, D, Е, Р, Q, R, U, V, W не применяются в значениях, указанных в таблице, они становятся неопределенными и могут быть использованы для специальных значений.
Каждый кадр управляющей программы должен содержать:- слово «Номер кадра»;- информационные слова или слово (допускается не использовать);- символ «Конецкадра»;
– символы табуляции (допускается не применять).
При использовании символов табуляции они проставляются перед каждым словом в кадре управляющей программы, кроме слов «Номер каХра».
Символ «Табуляция» обозначается точкой (.), «Конец кадра» — буквами ПС или принятыми символами, например *, $ и т.п.
Информационные слова в кадре рекомендуется записывать в такой последовательности:
1) слово (или слова) «Подготовительная функция»;2) слова «Размерные перемещения», которые рекомендуется записывать в такой последовательности символов: X, Y, Z, U, V, W, Р, Q, R, А, В, С;3) слова «Параметр интерполяции» или «Шаг резьбы» I, J, К;4) слово (или слова) «Функция подачи», которые относятся только к определенной оси и должны следовать непосредственно за словами «Размерное перемещение» по этой оси; слово «Функция подачи», относящееся к двум и более осям, должно следовать за словом «Размерное перемещение»;5) слово «Функция главного движения»;6) слово (или слова) «Функция инструмента»;
7) слово (или слова) «Вспомогательная функция».
Порядок и кратность записи слов с адресами D, Е, Н, U, V, W, Р, Q, R, используемых в значениях, отличных от принятых, указываются в формате конкретного устройства ЧПУ.
В пределах одного кадра управляющей программы не должны повторяться слова «Размерные перемещения» и «Параметр интерполяции» или «Шаг резьбы»; не должны использоваться слова «Подготовительная функция», входящие в одну группу.
После символа «Главный кадр» в управляющей программе должна быть записана вся информация, необходимая для начала или возобновления обработки. Этот символ используется для определения начала программы на носителе данных.
При необходимости режима «Пропуск кадра», например для осуществления наладочных переходов при наладке станка и исключения этих переходов после окончания наладки, перед символами «Номер кадра» и «Главный кадр» должен записываться символ «Пропуск кадра».
Каждое слово в кадре управляющей программы должно состоять из символа адреса (прописная буква латинского алфавита согласно табл.), математического знака «+» или «-» (при необходимости), последовательности цифр.
Источник: http://enciklopediya-tehniki.ru/avtomatizaciya-proizvodstva/razrabotka-upravlyayuschih-programm.html
Функции управляющих программ
Управляющие программы, используемые для СРВ, значительно меняются в зависимости от типа приложений. Небольшая система с малым числом запросов может иметь элементарную управляющую программу.
Зато система типа № 6 (Приложение № 1) с большим числом прикладных программ, с высокой производительностью и малым временем ответа потребует весьма сложного набора управляющих программ, написание которых займет много человеко-лет.
Управляющие программы создаются для координирования, обслуживания и расширения машинных элементов системы. Управляющие программы обрабатывают ввод и вывод, а также очереди сообщений и данных.
Они планируют выполнение работы в системе; могут определять приоритеты прикладных программ и выполнять для них необходимые функции внутреннего упорядочения; обрабатывают прерывания, а также имеют дело с ошибками и критическими условиями; координируют функции системы в условиях изменяющихся нагрузок.
Вычислительная машина, используемая для традиционной пакетной обработки, обычно выполняет повторяющийся цикл работ, который может быть детально спланирован и распределен по времени программистом. Длительности и объемы операций ввода и вывода обычно известны и могут быть сбалансированы друг с другом и с необходимой работой процессора.
В системах с непосредственной связью это не всегда так. Сообщения прибывают в случайные моменты времени и могут изменяться по объему и содержанию. Последовательность операций непредсказуема.
Тем не менее, данные должны обрабатываться в минимальное время и возможности машины использоваться в полной мере. В СРВ будут встречаться события, которые невозможно включить в заранее предсказанную временную последовательность.
Отказы устройств машины требуют немедленных аварийных мер и, возможно, автоматических процедур восстановления.
Кроме того, в большой СРВ объем и изменчивость получаемых сообщений могут быть такими, что, если необходимо поддержание разумной эффективности работы и требуемого времени ответа, то несколько сообщений должны находиться в системе одновременно. Эти сообщения могут требовать различных программ.
В силу этих причин управляющая программа используется для непрерывного планирования работ, распределения памяти и оценки приоритетности, поскольку это не может быть сделано заранее и жестко программистом.
Прикладные программы составляются для определенных приложений, тогда как управляющие программы могут использоваться для ряда различных применений. В этом отношении управляющие программы похожи на часть аппаратуры.
В больших системах, однако, требования меняются настолько от системы к системе, что большинство управляющих программ также должно быть переделано для каждого приложения.
В настоящее время ПО, разрабатываемое изготовителями ЭВМ, становится все более и более стандартным.
Управляющие программы координируют и распределяют во времени работу прикладных программ, а также выполняют служебные функции для них. Можно рассматривать прикладные программы как подпрограммы основной управляющей программы.
Управляющая система. Управляющие программы по возможности разрабатываются одной группой разработчиков и все вместе называются управляющей системой. Для этого набора программ должно быть написано руководство, которое программисты, работающие над прикладными программами, обязаны изучить.
В этом случае перед программистами стоит задача разработки программ не для обычной машины, а для машины, снабженной управляющей системой. В одних аспектах это упрощает их работу, в других ограничивает ее.
Например, программисты ограничены в использовании индексных регистров и ОП, но операции ввода-вывода уже запрограммированы и не требует затрат времени, как на обычных системах пакетной обработки.
Управляющие программы предоставляются изготовителем ЭВМ или разрабатываются пользователем. Это усложненные программы, и для большой системы их написание требует много времени и труда опытных программистов. Они тесно связаны с техническими средствами и не могут быть написаны на языках высокого уровня.
Более того, они должны быть четко определены до начала детальной проработки прикладных программ. Поэтому предоставление этих программ пользователю дает ему значительные преимущества. Часто, однако, бывает необходимым «подогнать» их к определенным приложениям.
Стандартизация управляющих программ для сложных СРВ затруднительна, и только часть из них может быть составлена в виде стандартных блоков.
У заказчика также может возникнуть необходимость в модификации управляющих программ. Если его система работает успешно, он, по всей вероятности, будет стремиться к расширению ее, если нет, то он пожелает изменить ее функционирование, что означает изменение в управляющих программах.
Поэтому можно посоветовать, чтобы в группе программистов пользователя кто-либо полностью разобрался в том, как эти программы построены и закодированы.
Прерывания. Различные виды прерываний находят широкое применение в СРВ.
Например, прибытие нового сообщения от оператора удаленного оконечного устройства может прервать ту работу, которую ЭВМ выполняет в этот момент, с тем чтобы записать это сообщение в ОП.
Конец поиска на устройстве внешнего ЗУ с произвольной выборкой вызывает прерывание, чтобы процессор мог начать чтение обнаруженной записи; и когда чтение заканчивается, опять возможно прерывание, чтобы процессору было известно, что запись можно использовать при обработке, а также что другая инструкция может быть дана этому устройству, если есть очередь.
Прерываться могут как управляющие, так и прикладные программы. Когда прерывание происходит, оно обслуживается программой высокого приоритета, которая обычно входит в управляющую систему.
Когда причина прерывания обработана, управление обычно передается в точку, в которой прерывание произошло. Но возможны и случаи, когда в определенных обстоятельствах управление в эту точку не возвращается.
Для того чтобы ЭВМ могла возобновить работу, которая выполнялась до момента возникновения прерывания, программа более высокого приоритета должна сохранить точные условия, которые существовали в тот момент.
Если эта программа изменяет какие-либо условия, она должна сделать это так, чтобы прерванная программа продолжала выполняться, как будто прерывания не было.
Управление линиями связи может представлять важную функцию для программ реального времени. Импульсы, поступающие по линии связи, аппаратурно превращаются в биты.
Из битов аппаратурно или программно компонуются знаки или слова, из которых затем программно формируются сообщения, готовые для обработки.
Это может происходить одновременно по многим линиям, которые поэтому должны постоянно сканироваться.
При компоновке знаков и слов программа не должна задерживать сканирование настолько, чтобы биты могли быть потеряны.
При выдаче информации выходные сообщения должны расчленяться на слова, знаки и затем на биты. Биты затем аппаратурно передаются по линии в виде импульсов. В передаваемые по линии сообщения включаются сигналы управления терминалами.
Если к линии присоединяется много терминалов, они не могут посылать сообщения одновременно. Обычно они должны ожидать команды из ЭВМ о возможности посылки сообщения. Эта команда является одним из управляющих сообщений.
Такие сообщения должны формироваться и посылаться в линию через определенные интервалы времени.
Управление линиями связи является обычно функцией управляющих программ. Программы для выполнения этих работ могут находиться в основной ЭВМ.
Часто для этой цели используется отдельное устройство управления линиями связи или мультиплексор связи с собственной ОП и хранимой программой.
Иногда к основной ЭВМ присоединяется небольшая вспомогательная ЭВМ, на которую возлагаются работы по управлению линиями связи и полной проверке сообщений перед выдачей их основной ЭВМ.
В типовой системе № 1 (Приложение № 2) устройство управления линиями не имеет собственной хранимой программы. Оно может прерывать работу ЭВМ, когда сформированы знак или слово, и ЭВМ считывает их.
В ЭВМ есть программа для компоновки сообщений из знаков и слов и для разбиения выходных сообщений при подготовке их к передаче.
Устройство управления линиями прерывает ЭВМ, когда ему необходимо получить следующее слово или знак для передачи.
А в типовой системе № 5 (Приложение № 3) мультиплексор связи имеет собственную. хранимую программу. Эта программа формирует законченное сообщение, производит проверку ошибок и пересылает подготовленные к обработке сообщения в ЭВМ.
Когда более чем одно устройство имеет собственную хранимую программу, координация их работы входит в функции управляющих программ. Программы в ЭВМ, управляющей линиями связи, могут рассматриваться как часть управляющих программ системы.
В типовой схеме № 6 (Приложение № 1) четыре ЭВМ имеют собственные хранимые программы.
Управляющие программы для этой системы должны координировать работу этих программ, обеспечивая правильную обработку прерываний, когда они прерывают друг друга, и управляя передачей данных от одной ЭВМ к другой.
Организация хранения и поиска данных на внешних ЗУ с произвольным доступом. Часто СРВ имеют внешние ЗУ большой емкости с произвольным доступом для поиска и обновления информации. Для организации хранения данных и поиска необходимы различные программы.
В коммерческой системе поиск некоторого элемента в таком ЗУ может занимать намного больше времени, чем обработка искомых элементов, и поэтому много операций с внешними ЗУ выполняется одновременно. В случае перекрытия во времени нескольких таких операций различной длительности управление становится затруднительным.
Окончание этих операций сигнализируется прерываниями, и это дополнительно усложняет управляющие программы
Данные могут непрерывно вставляться в массивы внешнего ЗУ и удаляться из них. При удалении остаются участки, которые не используются, тогда как при вставке данные не могут немедленно размещаться в удобных местах.
Массив в ЭВМ с вставками и удалениями надо периодически реорганизовывать, он переписывается, и при этом элементы располагаются в наиболее удобных позициях.
Источник: https://3ys.ru/programmnoe-obespechenie-sistem-realnogo-vremeni/funktsii-upravlyayushchikh-programm.html