Некоторая последовательность инструкций которая может вызываться в нескольких местах программы

�����: ���������� ����������������

7.1. ������� ��������� ���������

��������� ��������� � ������������ ���������� ������������� ����������������� ����� ���������. ������������� ������������ ��������� ��������� �������� ��������� ����������; ������ ��������� �������� �����; �������� ���������� ������ ��������� ��� ���������� ����� �� ������������ � ������ ���������� ������.

����� ��������� ������������������ ���������� ��������� ��������� � ���������� ������ ���������. ����� ������������ �� ����������� ������� ����� � ������ �� ����������� ���� ����������, � ����������� ������ ���������������� ����������������� �������� ��� ����������� �����������. ����� �������, ����������� �������� ����������� ��������� ������������������ ���������� ������������ ��� � ������������ ��� ��� � �������� ����������� ������ � ��� ������, ��� ����������� ��������������� ������������������ ����������. ������������ � ��������� ������������������ ����������, ������� ����� ���������� � ���������� ������ ���������.

�������� ������������ (������� ��� ���������) ������� �� ���� ������: ��������� � ����. ��������� �������� ������������� ������������. ���� ������� �� ����� ��� ���������� ����������. ������������� ������������ ������������ � �������� ����������� ������ � ��� ������ ���������, ��� ����������� ��������������� ������������������ ����������.

���� �� ������ �������� �������� � ����� ������� ����� ������, ���� �� �� ��� �� ���������� ������ � ���������������� �������. � ���������������� ��������� � �������, ���������� ��������������, �������� ����� �� ��� �������� ��������������� ������������ � ��������� ����������������, ������� ��������� �������� ������� �� ����� � �������� ������ ������������.

��������� � ��� �� ������ ������ ���������� ������������ ������, �� �, ��� ����� �����, �������� ���������� ��������� �� ��������� ���������, ��������� ��������, ������������ �� ���������. ���������� �� ����� ����������� ��� ��������� ���������, �������� ���� ��������� ������ � ������ �������� ��-�� ������� ����� ������. ���������� �� ������������ ���������� ��� ��� ����������������, ��� � ��� ����������� ���������. ������� ���������� ��������� ������������������ ���������� � ���� ������������, ���� ���� ������������ ������������ ���������� �, �������������, ����������� �����, ��������� � ����������� ������ ���������.

�������������� ���������� � ���������� (������� ���������� � ������������ � ���������) ��� �� ��������, ������� ������ ������������� ���������, �������� � ��������� ���������. � ���������� ���������, � ��������� � �� ���� ��� �������������� ���������, ���������� ��������������� ��� ��� ������� � ����������������. ��������� ���������� (�� ������ �������� ���������������� ��� ���������� �����������), ������������ ������ ���������, �� ����� ������ �� �� ���������. � ��������� ����������� ����� �����������, ���� ���� ������� ������� �������� ����� ����������. ��������� ��������� ��� ������������ ��������� �������, � ������� ������� �������������� ������� ������������� ��� ���������� ��������� ����������.

��������, �������� ����� ������� ���������������� ������� � ���������� �������� �� ��������� ��������: ��������������� �������� �� ����������, � ��������������� �������� � �� ��������� ����������. �� ������ ����� ���� ������������ ����� ��������������, ��� ������� ������� ����� �������� � ������� ����� ������; ��������� ������������������ ��������� �������� �������; ��������� ������������ ��������� �������� ����������, � �����-���� ������ ����� ������� � �����, �� ������� ����� ����������� ���������.

��������� ���������� ��������� ����������� �������������� ����������� �� �������������� ���������� ������ � �������� ���������, ������� ������ ���������� � �������� �����. ������ ���� ������������ �������������� ��������������� ������� �����������. � �������� ���� ������ ����� ������������, ��� ��������� ������������ �������� � ��� ������ ���� �� ������, ��� ������������ �������� �������� � ������� ��������� �������. � ���� ������ ���� ��� ��������� ���������� ����� ������������ ������� ������������ ������.

���� ������ � ��������� ������������ � ������������� �������� � ����������� ��������� ����������� ����������� ������, �� ����� ����� ��� ������� ����� ����� ���������������� ��� ���������� (������ ����). � ��������, �������� ����� ������ � ������� ������, ����� ����������� ������� ������� ��������� � ��� ������������ �������������� ������ �/��� ���� ����������������, � ����� �������� ��������� ������������������ ���������� � ������������ ���������, �������� ��� �������� ������. ������������ ��������� ����� ������������ �� ��������� ������ �������� ��������. ����� ����� �������� �� ����������� �������� ������ � ��������� ���������� ��������� ���������� ���������� (����� �����).

�� �������� ���������� ��������� ������� �� ������� �������� ������ � ����� ����������� (������ ���� ��� ����� �����). ������ ��� ��������������� ����� ���������� ���������� ����� ������ ����������. � ������ �������, ��� ��������� ��������� � ��������� ���������� ����������� ������������ �������� �������� ����������� ������.

��� ������ ��������� ������������� ���������, ������� ������� ��������� � ��������, ���������� �� �� �������� �������� ������������������� ���������� ��� ������ ������. � ����������� �����, ����� ������������ ���� � ������ ���� ������� ��� ���������. ������ ����� ������������� ��� ���������� ��������� �������� ��������� ��������������� ������ �����������.

Содержание

  • Что называется управляющей программой?
  • Что входит в состав кадра управляющей программы?
  • Что такое кадр управляющей программы?
  • Для чего в начале программы находятся Код начала программы (%) и номер программы?
  • Какой вид контроля осуществляет проверку управляющей программы?
  • Что такое структура программы?
  • Какие символы может содержать слово в кадре управляющей программы?
  • Что понимают под кадром управляющей программы какого рода информацию он содержит?
  • Для чего предназначены м коды?
  • Для чего нужны номера кадров?
  • Для чего нужна строка безопасности?
  • Что такое УП в чпу?
  • В чем разница между кодами м03 и м04?
  • Для чего применяется ускоренное перемещение?

управляющая программа — 3.22 управляющая программа: Совокупность команд, определяющая заданное функционирование УРП в соответствии с регламентированной информацией от технических средств объекта или оператора.

Что называется управляющей программой?

Управляющей программой называется сумма команд, составленных на языке программирования. Она должна соответствовать заданному алгоритму работы станка, ведущему обработку конкретной заготовки. … Каждый кадр этой программы состоит из одного шага обработки и может обозначаться номером кадра (№1 №2 … №20 и т.

Что входит в состав кадра управляющей программы?

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

Что такое кадр управляющей программы?

Кадр управляющей программы (кадр) — составная часть УП, вводимая и отрабатываемая как единое целое и содержащая не менее одной команды. … Слово УП (слово) — составная часть кадра УП, содержащая данные о параметре процесса обработки заготовки и другие данные по выполнению управления.

Для чего в начале программы находятся Код начала программы (%) и номер программы?

В самом начале УП обязательно должен находиться код начала программы % и номер программы (например, О0001). Два этих первых кадра не влияют на процесс обработки, тем не менее они необходимы для того, чтобы СЧПУ могла отделить в памяти одну программу от другой.

Какой вид контроля осуществляет проверку управляющей программы?

Параметры проверки устанавливаются в окне «Check NC-program» (Контроль кодирования управляющей программы) (рис.

Что такое структура программы?

Структура программы — искусственно выделенные программистом взаимодействующие части программы. … Подпрограмма — некоторая последовательность инструкций, которая может вызываться в нескольких местах программы. Описание подпрограммы (функции или процедуры) состоит из двух частей: заголовка и тела.

Какие символы может содержать слово в кадре управляющей программы?

Если символы A, B, C, D, E, P, Q, R, U, V и W не используются для управления станком по прямому назначению, то они могут применяться для программирования каких-то специальных функций, присущих данной системе ЧПУ. Кадр представляет собой следующий в иерархии после слова элемент текста управляющей программы.

Что понимают под кадром управляющей программы какого рода информацию он содержит?

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

Для чего предназначены м коды?

Коды с адресом М называются вспомогательными и предназначены для управления режимами работы станка. …

Для чего нужны номера кадров?

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

Для чего нужна строка безопасности?

Строкой безопасности называется кадр, содержащий G-коды, которые переводят СЧПУ в определенный стандартный режим, отменяют ненужные функции и обеспечивают безопасную работу с управляющей программой.

Что такое УП в чпу?

Управляющая программа (УП) — это записанная на программоноситель в закодированном цифровом виде маршрутное операционная технология на конкретную деталь с указанием траекторий движения инструмента. …

В чем разница между кодами м03 и м04?

Единственная разница между двумя этими М-кодами заключается в направлении вращения. Код М03 отвечает за прямое (по часовой стрелке), а М04 – за обратное вращение шпинделя (против часовой стрелки). … Нужная передача для соответствующего диапазона скоростей вращения шпинделя выбирается автоматически или с помощью М-кодов.

Для чего применяется ускоренное перемещение?

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

Интересные материалы:

Как добиться здорового блеска волос?
Как добраться до океанариума Крокус Сити?
Как добраться от Красной Поляны до пляжа?
Как долго будут расти волосы?
Как долго держит аккумулятор холода?
Как долго держит холод холодильник?
Как долго держится Бразильское выпрямление волос?
Как долго держится капсульное наращивание волос?
Как долго держится химия?
Как долго держится Нанопластика волос?

7.3. РЕТРОСПЕКТИВНОЕ ПРОЕКТИРОВАНИЕ ДЕМОНСТРАЦИОННОЙ ПРОГРАММЫ MCALC ФИРМЫ «BORLAND INC.»

Согласно ретроспективно проведенного системного анализа (см. гл. 2), фирма «Borland Inc.» приняла решение о реализации демонстрационного примера программы электронной таблицы. Вполне возможно сгенерировать множество вариантов реализации электронной таблицы, начиная от варианта со всеми клетками в одном окне и кончая, например, вариантом Excel. Однако фирма «Borland Inc.» избрала вариант с прокруткой информации клеток в окне, изменением адресов клеток при вставках строк и столбцов, а также при их удалении. В проект введены требования разработки некоммерческого изделия. Размер таблицы ограничен 100–100 клетками. В программе отсутствует функция копирования клеток. Избранная сложность реализуемого варианта соответствует многофайловому проекту. Программа имеет функции поддержки вывода на дисплей, ввода с клавиатуры; в ней реализован интерпретатор формул с математическими функциями; для сохранения информации таблицы используется файл сложной организации, рассмотренный в гл. 3. Все это позволяет продемонстрировать возможности компилятора.

Программа Mcalc 1985–1988 гг. (Turbo Pascal 5.0) состоит из следующих файлов:

• mcalc.pas — файл основной программы;

• mcvars.pas — файл глобальных описаний;

• mcdisply.pas — файл подпрограмм работы с дисплеем;

• mcmvsmem.asm — ассемблерный файл подпрограмм запоминания в оперативной памяти информации экрана, а также восстановления ранее сохраненной информации экрана;

• mcinput.pas — файл подпрограмм ввода данных с клавиатуры;

• mcommand.pas — файл подпрограмм, обслуживающих систему меню и действий, выбранных посредством меню;

• mcutil.pas — файл вспомогательных подпрограмм;

• mcparser.pas — файл интерпретатора арифметических выражений формул клеток.

Все файлы закодированы с соблюдением развиваемых стандартов оформления. Так, в файлах mcdisply.pas, mcinput.pas описания прототипов подпрограмм выполнены с использованием более раннего синтаксиса языка программирования, что говорит об их заимствовании из программ, написанных ранее; при этом можно выявить их небольшое модифицирование (рефакторинг).

Хотя фирма «Borland Inc.» занимается разработкой компиляторов, файл mcparser.pas также является заимствованным из UNIX YACC utility и лишь частично модифицированным. Остальные файлы являются оригинальными.

Ассемблерный файл mcmvsmem.asm является искусственно добавленным. Цель его добавления — демонстрация возможности использования ассемблерных вставок. Содержащиеся в нем алгоритмы вполне можно было бы реализовать на языке Pascal. Более того, можно было бы вообще обойтись без реализованных в нем подпрограмм, правда, при этом были бы видны некоторые задержки вывода информации на экран.

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

Рассмотрим организацию файла mcvars.pas, содержащего в основном описание структуры внутренних данных программы. Файл содержит описания в секции interface. Секция implementation пустая.

В начале файла содержится код, который в зависимости от наличия сопроцессора транслируется в одном из двух вариантов:

{$IFOPT N+}

{Есть встроенный сопроцессор}

type

Real = Extended; {Замена типа Real на Extended}

const

EXPLIMIT = 11356; {Предельное значение аргумента экспоненты}

SQRLIMIT = 1Е2466;{Предельное значение аргумента SQRT}

….

{$ELSE}

const 

{Тип Real не переопределен}

EXPLIMIT = 88; {Предельное значение аргумента экспоненты}

SQRLIMIT = 1E18; {Предельное значение аргумента SQRT}

….

{$ENDIF}

Описания констант содержат следующие блоки:

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

— блок парных строк текстов меню и «горячих» клавиш выбора тем меню;

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

MAXCOLS = 100; { Maximum is 702 } {Размер таблицы}

MAXROWS = 100;

MINCOLWIDTH = 3; {Минимальная ширина столбца}

MAXCOLWIDTH = 77; {Максимальная ширина столбца}

….

— блок описания цветов всех полей экрана, модификация констант которого позволяет оперативно изменять цвета;

— основные константы, мнемоника имен которых облегчает восприятие текстов программы

HIGHLIGHT = True; {Подсвеченная текущая клетка}

NOHIGHLIGHT = False; {Неподсвеченная клетка}

{Атрибут содержимого клетки}

ТХТ = 0;

VALUE = 1;

FORMULA = 2;

….

{Разрешенные буквы}

LETTERS: set of Char = [‘A’..’Z’, ‘a’..’z’];

— коды управляющих клавиш клавиатуры.

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

Далее следуют описания типа информации содержимого табличной клетки и типа указателя на клетку:

type

CellRec = record

Error: Boolean;

case Attrib: Byte of

TXT: (T: IString);

VALUE: (Value: Real);

FORMULA: (Fvalue: Real;

Formula: IString);

end;

CellPtr = ^CellRec; {Указатель на клетку}

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

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

MAXCOLS*MAXROWS*[SizeOf(Istring)+SizeOf(Extened)] = 100*100*[80+10] = 900K

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

Cell: array [1..MAXCOLS, 1..MAXROWS] of CellPtr;

CurCell: CellPtr; {Указатель на текущую клетку}

Format: array [1..MAXCOLS, 1..MAXROWS] of Byte;

LeftCol, RightCol, TopRow, BottomRow,

{Позиционирование}

CurCol, CurRow, LastCol, LastRow: Word;

….

Следует отметить, что выделение отдельного массива форматов информации клеток является не оправданным. Практичнее ввести байт информации формата клетки в тип CellRec.

Сравните этот проект структуры данных с проектом структуры данных электронной таблицы, представленной в гл. 3.

Для составления оставшейся проектной документации выполним трассировку программы. После двойного нажатия клавиши начинает исполняться настроечный код, содержащийся в файлах *.TPU, и далее начинают выполняться операторы основной программы program Mcalc, находящейся в файле mcalc.pas.

В результате исследований была выявлена схема иерархии модулей программы, изображенная на рис. 7.3–7.5. Расшифровка обозначений схемы иерархии представлена в табл. 7.1.

Рис. 7.3. Фрагмент схемы иерархии основных модулей программы

Рис. 7.4. Схема иерархии модуля RedrawScreen

Рис. 7.5. Сокращенная схема иерархии модуля Run

Таблица 7.1

Расшифровка обозначений схемы иерархии

Имя модуля Файл Назначение модуля
Act Mclib Обрабатывает информацию введенной строки, занося ее в клетку
CenterColString Mcutil Рассчитывает X координату центрируемой в поле вывода строки
ChangeAutoCalc Mclib Устанавливает автоматический и ручной режимы рекалькуляции таблицы
ChangeFormDisplay Mclib Устанавливает режим видимости значений формул или текста формул
ClearInput Mcdisplay Очищает на экране поле строки ввода
ClrScr Crt Очищает информацию в окне экрана
DisplayCell Mclib Выводит на экран информацию клетки
DisplayScreen Mclib Отображает на экране внутреннюю информацию таблицы
EditCell Mcommand Осуществляет редактирование содержимого клетки
EditString Mcinput Редактор текстовой строки
EgaInstalled Mcdisplay Функция, определяющая наличие видеокарты EGA
FillChar Dos Присваивает элементам массива значение символа
GetCursor Mcdisplay Считывает толщину курсора в переменную
GetInput Mcinput Получив первый введенный символ, продолжает ввод информации клетки
GetKey Mcinput Формирует слово расширенного кода клавиши
GetSetCursor Mcdisplay Считывает толщину курсора в переменную и устанавливает новую толщину курсора
GotoXY Mcdisplay Перемещает курсор в соответствии с заданными координатами дисплея
InitColorTable Mcdisplay Инициализирует массив пересчета цветов для монохромного монитора
InitDisplay Mcdisplay Инициализирует видеокарту на работу в режиме 80-25
InitVars Mcutil Инициализирует значения основных переменных программы
Intr Dos Вызывает прерывание MS DOS
LoadSheet Mcommand Загружает информацию таблицы из файла
MainMenu Mcommand Реализует выбор тем меню программы
Mcalc Mcalc Главная программа
ParamCount Dos Счетчик полей командной строки запуска программы Mcalc
ParamStr Dos Возвращает значения заданного поля командной строки запуска программы Mcalc
PrintCol Mcdisplay Выводит значение координаты колонки таблицы
PrintFreeMem Mcdisplay Выводит на экран значение остатка свободной памяти
PrintRow Mcdisplay Выводит значение координаты строки таблицы
ReadKey Mcinput Считывает короткий код одной нажатой клавиши
Recalc Mclib Осуществляет перерасчет значений формул клеток таблицы
RedrawScreen Mclib Отображает на экране всю информацию таблицы
Run Mcalc Главный цикл программы
Scroll Mcdisplay Прокручивает информацию экрана в указанном направлении; устанавливает цвет фона освободившейся части экрана
SetBottomRow Mcdisplay Выводит на экран столбец с номерами строк таблицы
SetColor Mcdisplay Устанавливает цвет вывода строк на экран
SetCursor Mcdisplay Устанавливает заданную толщину курсора
SetRightCol Mcdisplay Выводит на экран строку с наименованиями столбцов таблицы
ShowCellType Mcdisplay Выводит на экран надпись о типе текущей клетки таблицы
TextMode Dos Переводит экран в указанный текстовый режим
Window Crt Определяет окно на экране дисплея
Write Оператор вывода языка Pascal
WriteXY Mcdisplay Осуществляет вывод заданного числа символов заданной строки по заданным координатам дисплея

Рассмотрим функциональное описание основного ядра программы. В файле mcutil.pas исполняется рудиментарный, оставшийся от прежних разработок код:

HeapError:= @HeapFunc;

В файле mcdisplay.pas последовательно выполняются подпрограммы: InitDisplay, GetSetCursor, Window, EGAInsalled.

Процедура InitDisplay инициализирует видеокарту на работу в режиме 80 25 при помощи вызова прерывания 10h и вызовом процедуры InitColorTable инициализирует массив пересчета цветов для монохромного монитора. Последний массив используется при вызовах процедуры SetColor.

Процедура GetSetCursor при помощи процедуры GetCursor считывает толщину курсора в переменную OldCursor и при помощи процедуры SetCursor устанавливает новую толщину курсора (NOCURSOR).

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

Присваиванием CheckBreak:= False запрещается использование клавиши немедленного завершения программы.

Вывод начальной заставки осуществляется следующими вызовами подпрограмм. Процедурами SetColor и ClrScr производится очистка окна программы. Двойным вызовом процедур SetColor и WriteXY выводятся две строки начальной заставки. Несмотря на отсутствие курсора, отрабатывается рудиментарный вызов «сокрытия» курсора GotoXY(80,25). При помощи функции GetKey осуществляется ожидание нажатия пользователем любой клавиши.

Процедурами SetColor и ClrScr производится очистка окна программы.

Вызовом процедуры InitVars инициализируются значения основных переменных программы. Массивы инициализируются значениями по умолчанию вызова процедуры FillChar.

Присваиванием Changed:= False указывается факт неизменности информации клеток таблицы после момента инициализации переменных для запрещения срабатывания автосохранения.

Вызовом процедуры RedrawScreen производится отображение на экране всей информации таблицы.

Если значение ParamCount = 1, то в командной строке MS DOS вызова программы было указано имя файла таблицы. В этом случае выполняется процедура LoadSheet, которая загружает информацию таблицы из файла с именем файла, полученном при помощи вызова функции ParamStr.

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

При завершении выполнения программы последовательно производится установка цвета экрана, вызовом TextMode переводится экран в текстовый режим, запомненный в переменной OldMode, и, наконец, вызовом SetCursor восстанавливается толщина курсора, запомненная в переменной OldCursor.

Работа процедуры RedrawScreen заключается в последовательном выводе на экран информации:

• процедурой SetRightCol выводится на экран строка с наименованиями столбцов таблицы;

• процедурой SetBottomRow выводится на экран колонка с номерами строк таблицы;

• процедурами GotoXY и Write выводятся надписи в верхней строке экрана, хотя имеется более удобная процедура WriteXY;

• выводится число остатка байт памяти;

• процедурой DisplayScreen отображается на экране внутренняя информация таблицы.

Внешний вид программы Mcalc приведен на рис. 7.6.

Работа процедуры Run начинается с установления переменной главного цикла Stop:= False и выполнения процедуры Clearlnput. Главный цикл программы выполняется до изменения значения переменной Stop на True. Такое изменение возможно лишь при выборе пользователем темы меню Quit — завершение работы с программой.

Внутри главного цикла последовательно выполняются следующие действия:

— при помощи процедуры DisplayCell выводится на экран подсвеченная клеточным курсором текущая клетка (клетка А1 на рис. 7.6);

— при помощи процедуры ShowCellType выводится в нижнем левом углу экрана надпись типа текущей клетки таблицы (см. рис. 7.6);

— оператором Input:= GetKey в переменную Input вводится код символа клавиши, нажатой пользователем;

— выполняются действия отработки клавиши, нажатой пользователем.

Действия отработки клавиши, нажатой пользователем, представляют собой цепочку альтернативных действий, реализованную структурой ВЫБОР. Сначала отрабатываются действия «горячих» клавиш. В секции default (если клавиша не была «горячей») вызовом процедуры Getlnput начинается занесение информации в текущую клетку таблицы. Процедура Getlnput, занеся символ Input в редактируемую строку, первоначально вызывает EditString — редактор текстовой строки информации клетки и затем вызывает процедуру Act, которая обрабатывает информацию введенной строки, занося ее в клетку.

Рис. 7.6. Внешний вид программы Mcalc

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

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

Выполнение основной программы Mcalc начинается с запуска нового модуля Starting подготовительных действий программы. Модуль Starting является монитором последовательного исполнения модулей InitDisplay, Greeter, InitVars.

Новый модуль InitDisplay теперь является монитором последовательного исполнения модулей GetSetMode, GetCursor, SetCursor, Egalnstalled, Window, InitColorTable.

У нового модуля GetSetMode явно в качестве входного параметра указывается новый устанавливаемый видеорежим, а на выходе — старый видеорежим. Такая организация предпочтительнее прямого вызова Intr, поскольку по списку формальных параметров ясно видно назначение модуля. Реализация двух функций по выявлению и установке видеорежимов в одном модуле здесь вполне оправдана, поскольку все они реализуются вызовом одного прерывания.

Не является оправданным использование модуля с двумя функциями GetSetCursor, который являлся монитором последовательного исполнения модулей GetCursor, SetCursor. Этот модуль исключен из проекта. Все функции вывода начальной заставки переданы новому модулю Greeter.

Из модуля RedrawScreen исключен вызов модуля DisplayScreen. Это позволило избежать повторного вызова модуля DisplayScreen в модуле LoadSheet. Также исправлена ошибка использования операторов Write для вывода информации на экран путем использования вызовов процедуры WriteXY.

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

If (not(HotKey(Input)) and (ConditionalKey(Input)))

then

GetInput(Input).

Новая функция HotKey в случае нажатия пользователем горячей клавиши возвращает значение TRUE, в противном случае функция возвращает значение FALSE.

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

Рис. 7.7. Переработанная схема иерархии модулей программы

Новая процедура WriteXY теперь не использует вызов медленной процедуры GotoXY и медленно выполняемый оператор Write и использует прямой доступ к видеопамяти. Это позволило значительно ускорить вывод информации на дисплей. Более того, в процедуру добавлен новый параметр атрибута цвета выводимой строки, что позволило избежать цепочек первоначального вызова SetColor, а затем WriteXY.

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

ВЫВОДЫ

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

• Модуль — функциональный элемент технологии структурного программирования. Это подпрограмма, но оформленная в соответствии с особыми правилами.

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

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

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

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

Контрольные вопросы

1. Дайте определение понятию «структура программы».

2. Что такое модуль программы и какими характеристиками он должен обладать?

3. Что отражает схема иерархии?

4. Какие принципы необходимо соблюдать, если следовать технологии структурного программирования?

5. Дайте определение понятию «заглушка модуля».

6. Перечислите основные средства изменения топологии схемы иерархии программы.

7. Назовите критерии оценки качества схемы иерархии.

8. Для чего нужен паспорт модуля?

Подпрограммы

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

В большинстве
языков программирования для решения этой проблемы введено понятие подпрограммы (название
зависит от языка). Подпрограмма – это «кусок» кода, который вынесен из основной
программы и которому дано уникальное имя. Тогда в месте, где необходимо
выполнить эту последовательность кода, необходимо просто сослаться на  имя подпрограммы. Это называется вызовом
подпрограммы (процедуры, функции,…).

Например, мы
хотим несколько раз напечатать несколько одинаковых строчек.

print *,’—————————‘

print *,’*********************‘

print *,’—————————‘

Вместо того, чтобы несколько
раз в теле программы набирать (или копировать, что несколько лучше:) эти 3
строки, можно оформить их в виде подпрограммы:

subroutine PrtSomething()               ! имя подпрограммы

print *,’—————————‘

print
*,’*********************‘

print
*,’—————————‘

end

Теперь в любом месте программы, где должна
производиться соответствующая печать, нужно вызвать эту
подпрограмму по ее имени:

call PrtSomething()

Теперь усложним задачу. Нужно выполнить печать
значения разных переменных опять-таки в нескольких местах программы.

Важно запомнить одно правило: подпрограмма
НИЧЕГО не знает о том, кто и когда ее вызывает!
Для нее не существует
ничего вне ее кода. Она НИЧЕГО не знает о переменных вне
ее. Можно представить ее живущей в тюремной камере без
окон. Все, что ей нужно, передается через окошечки в стене, над которыми
написано названия формальных
параметров. Подпрограммы общается с внешним
миров через ИНТЕРФЕЙС. Это правила общения подпрограммы с внешним миров. Для того, чтобы передать
какое-то значение в подпрограмму, его кладут в окошечко с названием какого-то
формального параметра. Подпрограмма берет это значение по имени формального
параметра (надпись над окошком).

Другими словами, чтобы сделать доступными какие-то
данные подпрограмме, их надо передать в списке параметров, который стоит сразу
за именем подпрограммы в скобках: subroutine PrеValues(a,b,c). Параметры,
записанные в заголовке подпрограммы, называются формальными параметрами
(аргументами). Для подпрограммы это просто 
переменные. Параметры, подставленные в месте вызова подпрограммы,
называются фактическими параметрами. В качестве фактических параметров могут
быть константы, переменные или (неявные) результаты выражений.

subroutine PrеValues(a,b,c)             ! имя подпрограммы

!   
описание переменных – формальных параметров

            integer a,b

            real c

!

print *,’a= ‘,a

print *,’b= ‘,b

print
*,’
c= ‘,c

return

end

В подпрограмму PrеValues(a,b,c)   передаются
значения 3-х переменных, которые и печатаются. Формальные параметры – переменные,
существующие ТОЛЬКО в подпрограмме. Они ВИДНЫ ТОЛЬКО в подпрограмме. Если вне
подпрограммы есть переменные с такими же именами, они не имеют ничего общего!

Вызов этой
подпрограммы может выглядеть так:

integer a1/4/,a2/7/

real pi/3.14159/

call PrеValues(a1,a2,pi)        !напечатает             4
         7          3.14159

call PrеValues(1,2,7.)            ! 1        2          7.

call PrеValues(1,2.,7.)           ! ERROR!

При первом
вызове подпрограммы в переменную (форм. пар-ер) а будет положено значение из переменной  a1(4), в b
– из a2 (7), в c – из pi (3.14…).
Соответственно подпрограмма и распечатает их в таком виде:

a=4

b=7

            c=3.14159

Параметры, с
которыми вызывается подпрограмма, называются фактическими. a1,a2,pi 
фактические параметры при первом вызове, 1,2,7. фактические
параметры при втором.

Почему неправильный
последний пример? Интерфейс подпрограммы предписывает, что подпрограмма ДОЛЖНА
вызываться с 3-мя фактическими параметрами, имеющими соответствующий тип.
Соответственно она и распределяет память. Если вызвать с фактическими
параметрами, имеющими другой тип, значение положится в вызывающей программе в
память по одному, а внутри подпрограммы будет взято из той-же памяти по другому. Результат становится
полностью неопределен! Отсюда вытекает следующее
правило:

Список формальных и фактических параметров должен
совпадать по количеству и характеристикам аргументов.

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

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

subroutine Sum(a,b,c)

            real a,b,c

            c=a+b

return

            end

call Sum(1.,3.,s)         

В переменную s 
поместится результат сложения фактических параметров – констант 1 и 3.
Важно обратить внимание, что если формальный параметр в подпрограмме является [in] – входящим (вводящим
значение в подпрограмму), то в качестве фактического параметра может быть
переменная или константа (первые 2 параметра Sum). Если же формальный параметр в подпрограмме
является [out], или [in/out] – выходящим (возвращающем значение
из подпрограммы), то в качестве фактического параметра может быть только
переменная (3 параметр Sum).

Если подпрограмма
возвращает только одно значение, как в последнем случае, лучше использовать
другой тип подпрограмм – подпрограмму-функцию. Формально он описывается так:

FUNCTION < имя функции>(
[< формрг >])

< объявление формрг >

< объявление локальных объектов
>

< вычисляемые операторы,
присваивание результата >

END [ FUNCTION [ < имя функции > ] ]

Пример:

function Sum_(a,b)

real a,b,Sum_

            Sum_=a+b

            return

end

s=Sum_(1.,3.)

Результат полностью аналогичен пред.

На что надо обратить внимание:
имя функции как бы является формальным параметром, имеет тип и ему должно
быть присвоено какое-то значение. Имя функции выбрано Sum_, а не Sum, т.к. последнее часто является
зарезервированным в разных языках.

            Теперь
рассмотрим задачу – составить подпрограмму нахождения мин в одномерном массиве.
Т.к. поиск мин/макс – частая задача, совершенно логично заключить ее в виде
подпрограммы-функции. Теперь об интерфейсе. Подпрограмма должна принимать в
качестве входных данных массив. Далее в цикле она будет искать мин. Но
подпрограмма не знает размер массива! Следовательно, вторым параметром надо
передать подпрограмме кол-во элементов в массиве, которые надо обработать.

            program sub_min

            implicit none

            real a(10),min,GetMin

            integer i,n

a=(/(50/i,i=1,5),(i*10,i=1,5)/)           !
50.00000       25.00000       16.00000       12.00000       ! 10.00000       10.00000       20.00000       30.00000       ! 40.00000       50.00000

            n=10

            min=GetMin(a,n)

            print *,a

            print *,min

            end program sub_min

            real function GetMin(ar,n)

                        real ar(*)

                        integer n

                        GetMin=ar(n)

                        do n=n-1,1,-1

                                   if (ar(n)<GetMin)
GetMin=ar(n)

                        end do

                        return

            end

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

В подпрограмме используется один
спорный прием. Для уменьшения кол-ва переменных в качестве переменной цикла
используется формальный параметр, через который был передан размер массива. Но
если при вызове в качестве фактич. параметра
использовалась константа (min=GetMin(a,10)), то программа
вызовет AV ошибку
обращения к памяти, т.к. внутри подпрограммы попытается положить по адресу
константы новое значение. Для надежности лучше такую «оптимизацию»  не допускать. Более того, даже если при
вызове подпрограммы фактическим параметров являлась переменная, хранящее кол-во
элементов массива, то после вызова GetMin ее значение будет равно 0!
Пользователь вашей подпрограммы может ничего не знать об этом.

            Как
это работает: при вызове первым параметром является массив a, вторым – размер массива. Затем
происходит переход на выполнение подпрограммы. Значения формальных переменных –
ar
– является массивом а, n
=10.

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

min=GetMin(a(1:4),n)

Еще одно замечание: внутри
подпрограммы можно объявлять любые переменные. Но, как уже говорилось,
подпрограмма отделена от остального мира. Поэтому эти переменные существуют
только внутри подпрограммы и не видны остальному миру! Кроме того, после выхода
из подпрограммы (по оператору return или end) и повторного ее вызова значения локальных переменных
внутри подпрограммы не сохраняются. (Этого можно достичь с
помощью оператора/атрибута SAVE).

Когда использовать подпрограммы? Есть мнение, что если в какой-то программе больше 10 строк кода, то ее надо разбить на подпрограммы. Общие правила написания
структурированных, хорошо читаемых программ – если некоторый участок кода имеет
какое-то обособленное смысловое значение – выделяйте его в виде подпрограммы.
Это дает несколько преимущества: удобство чтения, уменьшение вероятности внесения
ошибок, уменьшения кол-ва переменных, удобство отладки.

Вызов подпрограмм может быть
вложенным (рис. 5). Вообще говоря, выполнение начинается с главной программы.
Во многих языках она называется MAIN.
В Fortran-е – она не
имеет названия и не имеет заголовка в отличие от всех остальных подпрограмм.

Более того, подпрограмма subroutine2 может вызвать
опять subroutine1:

            ………………………………

            n=1

            call subroutine1(n)

            ………………………………

            subroutine subroutine1(n)

                        integer n

                        if (n<5) then

                                   n=n+1

                                   call subroutine2(n)

                        end if

                        return

            end

            subroutine subroutine2(n)

                        integer n

                        if (n<5) then

                                   n=n+1

                                   call subroutine1(n)

                        end if

                        return

            end

рис. 5

Сведения из стандарта для справки.

Структура программы

Фортран программа состоит из одной или нескольких программных блоков (units).

Программный блок (ПБ) – это, обычно,
последовательность операторов, определяющих данные и действия, которые
необходимо предпринять для выполнения вычислений. Завершается ПБ оператором
END.

ПБ может быть:

Главной программой (main program);

Внешней подпрограммой (external subprograms);

Модулем (module);

Блоком Данных (block data).

Исполняемая
программа

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

Внешняя
подпрограмма

– это 
function или subroutine, которая не содержится внутри главной программы,
модуля, или другой подпрограммы. Она определяет алгоритм, который должен быть
выполнен, и может быть вызвана из других ПБ.
Модули
и Блоки Данных не исполняемы. (Modules can contain module procedures, though, which are executable.)

Модули содержат определения,
которые могут быть сделаны доступными другим ПБ: определения типов и данных,
определения процедур (
module subprograms) и
интерфейсы процедур (
procedure interfaces)

Module subprograms могут быть или
functions
или subroutines. Они могут быть вызваны другими module subprograms
в модуле, или другими ПБ, которые имеют доступ к модулю.

Блок данных (block data)
определяет начальные значения объектов данных в именованном common blocks. В Fortran 95/90  блок данных может быть заменен модулем.

Главная программа, внешние подпрограммы, и
подпрограммы модулей (
module subprograms)
могут содержать внутренние подпрограммы (
internal subprograms).
Объект, содержащий внутренние подпрограммы называется хозяином (
host). Внутренние подпрограммы
могут быть вызваны только своим хозяином или другими внутренними подпрограммами
в том же хозяине. Внутренние подпрограммы не могут содержать внутри себя другие
внутренние подпрограммы (т.е. не иерархичны).

Последовательность
выполнения

Если программа содержит фортрановскую главную программу, выполнение начинается с
первой исполняемой конструкции главной программы. Выполнение любой программы
заключается в выполнении исполняемых конструкций в области программы. Когда
программы вызвана  выполнение начинается
с первой исполняемой конструкции после вызванной точки входа. За исключением
приведенных ниже условий эффект выполнения как если бы исполняемые конструкции
выполняются в том порядке, в котором они записаны в программе до тех пор, пока
не будет выполнен один из операторов
STOP, RETURN, or END.
Исключения:

1 – Выполнение оператора
ветвления изменяет последовательность выполнения. Эти операторы явно  определяют новую точку исполнения;

2 —  CASE, DO, IF, или SELECT TYPE конструкция содержит структуру внутренних
операторов, и выполнение этих конструкций приводит к неявному внутреннему
ветвлению;

3 — END=, ERR=, and EOR=
спецификаторы могут приводить к ветвлению;

4 Альтернативный Return
может приводить к ветвлению.

Внутренняя подпрограмма может
находиться до оператора END. Последовательность выполнения исключает все
подобные определения.

Нормальное прекращение
выполнения программы происходит если будет выполнен или оператор
STOP или
оператор конца программы.

Встроенные функции

Общие представления о системах ЧПУ и управляющих программах

При современном развитии техники и технологии идет непрерывный процесс совершенствования как самой продукции, так и средств ее производства. Появляются новые системы автоматизированного проектирования (САПР) и модернизируются старые, максимально упрощая путь от идеи до готового изделия. Симбиоз новейших средств проектирования и внедрение новых систем производства на базе станков с ЧПУ дает качественный результат, цель которого – создать максимально качественную продукцию в кратчайшие сроки [6].

Числовое программное управление (ЧПУ) станка – это управление обработкой заготовки на станке по специальной (управляющей) программе, в которой данные об обработке заданы в цифровом коде [3]. Числовое программное управление обеспечивает необходимые движения рабочих органов станка, цикл обработки детали, режимы резания, вспомогательные функции и т. д.

Система числового программного управления (СЧПУ) – это совокупность функционально взаимосвязанных технических и программных методов и средств, обеспечивающих числовое программное управление станком [3].

Написание управляющей программы для токарного станка с ЧПУ стойки Fanuc,цикл G71,G70,G83,G76 Урок 1

По числу потоков информации СЧПУ делятся на замкнутые и разомкнутые.

Системыс замкнутым контуром работают на основе совместного использования задающей информации и информации обратной связи, содержащей данные о действительном положение рабочих органов станка, скорости перемещения и т. д. [3]. Точность этих систем высокая, но надежность ниже по сравнению с разомкнутыми.

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

Устройство числового программного управления (УЧПУ) станками – это часть системы ЧПУ, выполненная как единое целое с ней и выдающая управляющие воздействия на исполнительные органы станка в соответствии с управляющей программой и информацией о состоянии управляемого объекта [3].

Различают позиционные и контурные УЧПУ.

При позиционном управлении рабочие органы станка перемещаются в заданные точки [3] без задания траектории движения (рис. 1.1). Применяются на сверлильных, расточных, координатно-расточных станках с ЧПУ.

Рис. 1.1. Позиционные системы ЧПУ

При контурном управлении рабочие органы станка перемещаются с заданной скоростью по заданной траектории [3] (эквидистанте) (рис. 1.2). Применяются на токарных, фрезерных, шлифовальных станках с ЧПУ.

Рис. 1.2. Контурная система ЧПУ

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

Сущность ЧПУ рассмотрим на примере шаговой импульсной системы (рис. 1.3).

Рис. 1.3. Сущность ЧПУ на примере шаговой импульсной системы

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

Управление исполнительными органами станка осуществляется с помощью выдаваемых УЧПУ импульсов на приводы станка. Приводы станка подразделяются на приводы подачи и главного движения. Приводы подачи определяют положение инструмента или заготовки в рабочем пространстве станка [2, 4], в то время как привод главного движения обеспечивает заданную в УП скорость резания.

Одним из параметров точности станка с ЧПУ является дискретность перемещения рабочих органов станка по той или иной координате.

Дискретность перемещения – это минимальное перемещение или минимальный угол поворота рабочего органа станка за один импульс электрического тока, выдаваемого УЧПУ.

Например, при необходимости переместиться на 30 мм при дискрете станка 0,01 мм, на привод необходимо подать 30/0,01 = 3000 импульсов электрического тока.

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

Программирование обработки на станках с ЧПУ осуществляется на языке, который обычно называют языком ISO-7bit или языком G- и M-кодов. Язык G и М кодов основывается на положениях Международной организации по стандартизации (ISO) и Ассоциации электронной промышленности (EIA) [3].

Производители систем ЧПУ придерживаются этих стандартов для описания основных функций, но допускают вольности и отступления от правил, когда речь заходит о специальных возможностях своих систем [3].

Японские системы ЧПУ FANUC (FANUC CORPORATION) были одними из первых, адаптированных под работу с G- и М-кодами и использующими этот стандарт наиболее полно. В настоящее время стойки FANUC являются наиболее распространенными как за рубежом, так и в России. Системы ЧПУ других известных производителей, например SINUMERIK (SIEMENS) и HEIDENHAIN, также имеют возможности по работе с G-
и М-кодами, однако некоторые специфические коды могут отличаться. О разнице в программировании специфических функций можно узнать из документации к конкретной системе ЧПУ [3].

В соответствии с международной классификацией все системы ЧПУ по уровню технических возможностей делятся на устройства ЧПУ с постоянной (класс NC) и переменной (класс CNC) структурой [5].

Устройство ЧПУ классаNC (Numerical Control) основано на принципе вычислительного устройства, где все операции, составляющие алгоритм работы, выполняются параллельно с помощью отдельных цепей или устройств, реализующих ту или иную функцию (агрегатно-блочное построение). Эти устройства называют также устройствами ЧПУ с жесткой структурой. Базовые модели таких устройств содержат микроэлектронику, и при их использовании вмешательство оператора в процесс обработки весьма ограничено [5].

Устройство ЧПУ классаCNC (Computer Numerical Control) соответствует структуре управляющей ЭВМ, включающей в себя вычислительное устройство (процессор), блоки памяти и блоки ввода-вывода информации. При этом объем функций, характер проводимых операций и их последовательность определяются программами функционирования, которые введены в блок памяти. Системы класса CNC позволяют достаточно просто в режиме диалога при отладке программ осуществлять редактирование с ручным вводом информации и с выводом ее на дисплей, а также получать откорректированную и отработанную программу на перфоленте [5].

Существуют также системы ЧПУ следующих классов [5]:

SNC (Stored Numerical Control)– системы ЧПУ с однократным чтением всей УП перед обработкой партии одинаковых заготовок; лишены недостатков систем класса NC [5].

DNC (Direct Numerical Control) – системы прямого числового управления группами станков от одной ЭВМ; применяются для комплексно-автоматизированных производств (например, гибких производственных систем). В таких производствах управление работой участков, состоящих из станков с ЧПУ, транспортно-складирующих, загрузочных средств, осуществляется от центральной вычислительной машины.

При этом каждый станок имеет свои системы ЧПУ классов NC, SNC, CNC. Нормальным для такого участка является режим работы, при котором управляющие команды на УЧПУ всех видов оборудования подаются непосредственно от ЭВМ, минуя считывающие устройства. Это приводит к повышению надежности работы каждой единицы оборудования и всего участка в целом. Одновременно автоматизируется процесс подготовки УП с помощью ЭВМ. Вместе с тем в условиях временного выхода из строя центральной вычислительной машины такой участок сохраняет работоспособность, поскольку каждый вид оборудования может работать автономно от своей системы ЧПУ [5].

HNC (Handled Numerical Control) – оперативные системы ЧПУ с ручным набором программ из достаточно большого числа кадров и ее исправлением с помощью пульта УЧПУ. После отладки программа фиксируется до окончания обработки партии одинаковых заготовок. Системы класса HNC обеспечивают как позиционное, так и контурное управление станками [5].

Дата добавления: 2016-06-22 ; просмотров: 4333 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

Источник: poznayka.org

Основы составления управляющих программ

Составление УП для СЧПУ – это процедура плани­рования и документирования последовательности шагов обработки де­талей, которая должна быть выполнена на станке с ЧПУ. Существуют два способа составления УП: ручной и автоматизированный.

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

Автоматизированное составление УП.Для задач контур­ного управления гораздо больше подходит автоматизированное про­граммирование с помощью ЭВМ. В настоящее время автоматизированное составление УП происходит на основе созданной трехмерной модели детали и осуществляется в приведенной ниже последовательности.

1. Выделяются элементы геометрии детали, которые наиболее важны при машинной обработке.

2. Определяется геометрия режущего инструмента. Про­граммное обеспечение обычно включает библиотеки инструментов, из кото­рых пользователь может выбирать нужные экземпляры.

3. Определяется требуемая последовательность операций обработки и траектории движения режущего инструмента с соот­ветствующими параметрами обработки.

4. Координаты х, у и z точек на этой траектории вычисляются программой ЧПУ с учетом выбранного инструмента и гео­метрии детали.

5. Построенная траектория движения инструмента может быть проверена в режиме анимации на экране монитора.

6. По скорректированным траекториям формируется CL-файл (cutter loca­tion — координаты инструмента). CL-файл имеет двоичный формат, но чаще всего сопровождается эквивалентной текстовой версией. В файле содержатся сведения о перемещениях режущего инструмента, представленные либо через абсолютные линейные перемещения, либо через относительные пере­мещения. Также в файле располагаются команды управле­ния шпинделем, охлаждением, подачей и т. п. Формат CL-файла определен Международной организацией по стандартизации (International Organization for Standardization – ISO).

7. CL-файл обрабатывается постпроцессором, в результате чего получаются ко­манды, предназначенные для управления конкретным станком. Сгенерированный файл передается контроллеру станка.

Команды УП. Для написания программ обработки деталей используются различные команды. Контроллер считывает инструкции в виде последовательности бло­ков, содержащих команды на установку параметров, скоростей по осям, а также на выполнение иных операций. Блоком называется строка слов программы обра­ботки. Каждая команда обозначается буквой, за которой следует определенное число. Принято использовать следующие идентификаторы команд (коды):

— последовательный номер (N). Последовательный номер используется для обо­значения блоков программы и позволяет находить нужные команды;

— предварительная команда (G). Используется для подготовки управляющего устройства к вводу последующих команд. Подго­товительное слово необходимо для того, чтобы управляющее устройство правильно интерпретировало данные, следующие за ним в этом же блоке. Однако один и тот же G-код на разных контроллерах может иметь разные значения;

— координаты(X, Y, Z, А, В). Задают координаты положения инструмента. Если число степеней свободы превышает три, ис­пользуются дополнительные слова, например А и В;

— подача (F). Код F задает скорость подачи инструмента. В зависимости от системы эта скорость измеряется в дюймах в минуту или в миллиметрах в минуту;

— скорость (S). Задает скорость вращения шпинделя. Измеряется в оборотах в минуту;

— выбор инструмента (T). Код Т задает инструмент, который будет использо­ван в конкретной операции. Этот код нужен только для станков с устройст­вом автоматической смены инструментов;

— прочие команды (М). Этот код используется для определения конкретного режима работы, например включения или выключения охлаждения, враще­ния шпинделя и т. д.

Команды объединяются в блоки, которые могут иметь один из нескольких фор­матов:

— фиксированный последовательный формат. Все блоки должны быть одинако­вой длины и содержать одинаковое количество символов;

— формат блочной адресации. Устраняет избыточность информации в последо­вательных блоках при помощи кодов изменений. Код изменений следует не­посредственно за номером блока и указывает значения, изменившиеся по сравнению с предшествующими блоками;

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

— формат пословной адресации. Наиболее популярный формат, используемый в современных контроллерах CNC. Каждое слово блока начинается с бу­квы, обозначающей его тип, за которой следует значение, представляющее со­бой содержимое слова. Пример кода в формате пословной адресации имеет вид: N040 G0O Х0 Y0 Z300 Т01 М06. Пропущенные слова считаются нулевыми либо не претерпевшими изменений по сравнению с предыдущими значениями. В примере пропущены сло­ва F и S.

Контрольные вопросы

1. Назовите основные достоинства и недостатки применения СЧПУ.

2. Какие классы УЧПУ Вы знаете?

3. Перечислите основные типы СЧПУ. Охарактеризуйте их.

4. Опишите последовательность процесса составления управляющих программ в автоматизированном режиме.

5. Чем отличается процесс автоматизированного составления УП от ручного?

5. CAE-СИСТЕМЫ

5.1. Функции CAE-систем

CAE-системы(Computer-aided engineering – системы инженерного анализа)– программные системы, предназначенные для инженерных расчётов, анализа и симуляции физических процессов. Расчётная часть пакетов чаще всего основана на численных методах решения дифференциальных уравнений (метод конечных элементов (МКЭ), метод конечных объёмов, метод конечных разностей и др.) [6, 19, 20, 27, 36, 38].

Современные системы автоматизации инженерных расчётов применяются совместно с CAD-системами (зачастую интегрируются в них, в этом случае получаются гибридные CAD/CAE-системы).

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

— моделирование полей физических величин, в том числе проведение анализа прочности, который чаще всего выполняется в соответствии с МКЭ;

— расчет состояний моделируемых объектов и переходных процессов;

— имитационное моделирование сложных производственных систем на основе моделей массового обслуживания и сетей Петри.

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

Наиболее распространённые CAE-системы.

ADAMS (Automatic Dynamic Analysis of Mechanical Systems Mechanical, Dynamics Inc., США) – широко используемое механическое программное обеспечение для моделирования. Позволяет пользователям изготовить опытные образцы изделий, реалистично моделируя их поведение в работе. ADAMS имеет полный набор инструментов для моделирования и анализа проекта с возможностью визуализации.

AutoSEA (Vibro Acoustic Sciences, США). Расчетный пакет виброакустического анализа в области средних и высоких частот.

STAR-CD (CD-adapco group, Великобритания). Многоцелевой пакет для решения задач механики жидкостей и газов, ориентированный на промышленные задачи любой сложности.

LS-DYNA (Livermore Software Technology Corp., США) – Универсальный расчетный программный комплекс, ориентированный на численное моделирование высоконелинейных и быстротекущих процессов в термомеханических задачах механики деформируемого и жидкого тела. Области применений: краш-тесты, обработка металлов давлением, общие задачи динамической прочности, разрушения, взаимодействия деформируемых конструкций с жидкостями и газами.

DYNAMIC DESIGNER (Mechanical Dynamics, США) Интегрированный в среду Machanical Desktop расчётный модуль для проведения динамического и кинематического анализа механизмов.

ANSYS (ANSYS Inc., США). Конечноэлементный пакет. Самое широко используемое средство обеспечения инженерных расчётов в мире на основе метода конечных элементов. Универсальный расчетный комплекс, применяемый в различных видах анализа.

Используется для расчета конструкций различного типа в авиастроении, судостроении, машиностроении, строительстве, энергетике, электронной промышленности. С его помощью производится статический и динамический анализ конструкций, анализ усталостных разрушений, решение линейных и нелинейных задач устойчивости и теплофизики. Решаются задачи гидро- и газодинамики, акустики, электродинамики и электростатики. ANSYS позволяет конструктору ещё в процессе проектирования предсказать поведение изделия и провести прочностной и тепловой анализы; получить сведения о напряжениях, деформациях, распределениях температур и тепловых потоков, возникающих в изделии.

Pro/ENGINEER (Parametric Technology Corporation, США). Базовые модули системы предназначены для конструкторского проектирования, твердотельного и поверхностного моделирования, синтеза конструкций из базовых элементов формы, поддержки параметризации и ассоциативности, проекционного черчения и разработки чертежей с простановкой размеров и допусков. Дополнительные модули конструкторского проектирования имеют более конкретную, но узкую специализацию. Например, функциями таких модулей являются конструирование панелей из композиционных материалов, разработка штампов и литейных пресс-форм, трубопроводных систем, сварных конструкций, разводки электрических кабелей. Модули функционального моделирования используются как препроцессоры и постпроцессоры в программах конечно-элементного анализа, анализа теплового состояния конструкций, оценки виброустойчивости.

CATIА/CADAM Solutions (Dassault Systèmes, Франция). Полностью интегрированная универсальная CAD/CAM/CAE система высокого уровня, позволяющая обеспечить параллельное проведение конструкторско-производственного цикла. Функции, поддерживаемые системой: администрирование, планирование, управление ресурсами, инспектирование и документирование проекта, моделирование; автоматический анализ геометрических и логических конфликтов; анализ свойств сложных сборок; трассировки систем коммуникаций с соблюдением заданных ограничений; функции подготовки производства.

Unigraphics(Unigraphics Solutions Inc., США). Универсальная система геометрического моделирования и конструкторско-технологического проектирования, прочностных расчетов и подготовки конструкторской документации. В ней используется концепция мастер-процессов – средств интерактивного проектирования, учитывающих особенности конкретных приложений. Для инженерного анализа в систему включены модули прочностного анализа с использованием метода конечных элементов с соответствующими пре- и постпроцессорами, кинематического и динамического анализа механизмов с определением сил, скоростей и ускорений, анализа литьевых процессов пластических масс.

MSC/NASTRAN(NAsa STRuctural ANalysis, MSC.Software Corporation) – система, основанная на методе конечных элементов. Геометрические модели для MSC/NASTRAN можно как формировать с помощью внутреннего препроцессора системы, так и импортировать из любой другой CAD-системы.

Источник: poisk-ru.ru

БАЗИС-ЧПУ — эффективный подход к разработке управляющих программ

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

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

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

На рынке программного обеспечения для мебельных предприятий предлагается несколько CAD/САМ-систем. Одним из наиболее распространенных решений в этой области является система БАЗИС от компании «Базис-Центр», отличительной особенностью которой является возможность формирования УП практически для всех станков и систем ЧПУ, используемых на отечественных мебельных предприятиях, при высокой степени автоматизации этого процесса.

Рис.1. Структура модуля БАЗИС-ЧПУ

Рис.1. Структура модуля БАЗИС-ЧПУ

CAM-модуль БАЗИС-ЧПУ, будучи глубоко интегрированным с CAD-модулями БАЗИС-Мебельщик и БАЗИС-Шкаф (рис. 1), реализует следующие функции:

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

Входные данные

Интерфейс модуля БАЗИС-ЧПУ во многом идентичен интерфейсу модуля БАЗИС-Мебельщик. Кроме того, для удобства работы с моделью изделия в него включен ряд команд из этого модуля. Основной входной информацией для создания УП является графическое изображение, созданное в CAD-модулях системы БАЗИС, которое может быть как двумерным чертежом, так и трехмерной моделью. В качестве исходных файлов могут использоваться:

  • графические файлы системы БАЗИС, имеющие расширение *. ldw;
  • библиотеки моделей изделий — *. blf;
  • фрагменты (*. frw), которые можно применять как самостоятельно, так и добавлять к обрабатываемому изображению.

Модель мебельного изделия в системе БАЗИС является объектно-ориентированной и содержит не только геометрическую информацию, но и полный набор параметров, определяющих объект в качестве элемента мебельного изделия. По этой причине использование в качестве входной информации трехмерных моделей более предпочтительно, поскольку позволяет автоматически выполнять целый ряд проектных операций.

В целях интеграции с другими графическими системами предусмотрена возможность загрузки входной информации из файлов формата DXF .

Для корректной обработки двумерной информации к чертежу, формируемому в модуле БАЗИС-Мебельщик, предъявляется требование размещения информации о контуре детали, отверстиях и пазах в отдельных слоях. Все элементы детали, существенные с точки зрения формирования УП, разбиваются на пять групп, каждая из которых, в свою очередь, может состоять из одного или нескольких слоев:

  • контур детали;
  • глухие и сквозные отверстия в пласти панели;
  • торцевые отверстия;
  • пазы на пласти панели;
  • пазы в торце панели.

При работе с 3 D-моделями системы БАЗИС существует возможность формировать УП для обработки всех панелей изделия или только указанных. Для настройки алгоритмов предпроцессорного анализа модели назначается ряд общих параметров (рис. 2). Кроме того, для каждой системы ЧПУ предусмотрена возможность задания дополнительных параметров, отражающих ее технологические особенности.

Рис. 2. Окно настройки общих параметров предпроцессорной обработки

Рис. 2. Окно настройки общих параметров предпроцессорной обработки

К общим параметрам предпроцессорной обработки относятся:

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

Формирование управляющих программ

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

Рис. 3. Окно просмотра панелей

Рис. 3. Окно просмотра панелей

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

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

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

Рис. 4. Окно выбора системы ЧПУ

Рис. 4. Окно выбора системы ЧПУ

Дополнительно в специальном окне (рис. 4) выбирается тип системы ЧПУ и задаются правила формирования имен файлов, в которых будут сохраняться УП.

В настоящее время, по мнению менеджеров компании «Базис-Центр», наибольшее распространение среди российских мебельщиков получили фрезерно-присадочные станки четырех фирм-производителей:

  • Homag с системой ЧПУ WoodWop 4.5-5.0;
  • Biesse с системой ЧПУ NC-1000;
  • SCM с системой ЧПУ Xilog Plus;
  • beaver с системой ЧПУ VIC Engraver Control System.

Управляющие программы для станков Homag

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

Системы управления WoodWop 4.5-5.0 могут использовать УП в двух форматах — *. dxf и *. mpr. Окна технологических настроек параметров файлов *. mpr показаны на рис. 5.

Рис. 5. Технологические параметры системы WoodWop 4.5-5.0

Рис. 5. Технологические параметры системы WoodWop 4.5-5.0

При формировании УП возможно получение зеркального отображения по оси X, по оси Y или по обеим осям одновременно. Для обработки контуров назначаются параметры фрезерования: номер (код) инструмента, коррекция, тип входа-выхода фрезы, а также скоростные режимы обработки.

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

Управляющие программы для станков Biesse

Компания Biesse является одним из ведущих поставщиков широкого спектра оборудования для производства мебели: обрабатывающих центров с ЧПУ серии Rover, кромкооблицовочного оборудования серии Akron, сверлильно-присадочных станков серий Skipper, T echno и пр.

Система ЧПУ NC1000 может работать с управляющими файлами двух форматов: *. bpp (рис. 6) и файлами системы XNC без указания расширения имени.

Рис. 6. Технологические параметры системы NC-1000

Рис. 6. Технологические параметры системы NC-1000

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

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

Управляющие программы для станков SCM

SCM GROUP — один из мировых лидеров в производстве деревообрабатывающих станков и систем — от классических позиционных станков до комплексных линий для промышленного производства мебели. Широко известны ее фрезерные станки серии «Т», полуавтоматические сверлильно-присадочные станки TOP 35 Plus и Multitech Plus 2-3 и т.д.

Система управления Xilog Plus для станков производства SCM GROUP может работать с управляющими файлами в двух форматах — *. xxl и *. pgm , при этом окна для задания технологических параметров в обоих случаях будут одинаковыми. Дополнительной особенностью этой системы является задание параметров базирования и контроля:

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

Управляющие программы для станков beaver

Фирма beaver помимо деревообрабатывающих станков производит станки различной комплектации и исполнения для производства мебели: трехкоординатные фрезерно-гравировальные станки модели beaver 26A, фрезерно-гравировальные центры с автоматической сменой инструмента модели beaver 26-AVST, сверлильно-присадочные станки модели beaver SPK-21 и ряд других.

Особенностью системы управления VIC Engraver Control System является то, что файлы с УП для фрезерования и для сверления отверстий (присадки) могут быть созданы по отдельности или вместе (рис. 7).

Рис. 7. Технологические параметры системы VIC Engraver Control System

Рис. 7. Технологические параметры системы VIC Engraver Control System

В качестве дополнительных параметров могут задаваться:

  • смещения по осям X и Y;
  • координаты точки возврата инструмента;
  • дополнительная глубина сверления;
  • количество проходов;
  • направление обхода контура фрезой;
  • классы крепежной фурнитуры, обработку отверстий под установку которой не следует включать в УП.

Заключение

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

Интеграция CAD- cистемы конструирования мебельных изделий с CAM-системой в рамках комплексной мебельной САПР обеспечивает технологу следующие преимущества:

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

Источник: sapr.ru

КОДИРОВАНИЕ УПРАВЛЯЮЩИХ ПРОГРАММ

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

Информацию УП для станков с ЧПУ кодируют в соответствии с рекомендациями международной организации по стандартизации ISO с учетом особенностей применяемого устройства ЧПУ При кодировании информации используют универсальный способ записи, при котором УП составляется из кадров, разделяемых между собой знаком конец кадра — LF. Кадры состоят из слов. Слово описывается определенным буквенным адресом со своим числовым значением, отображающим величину перемещения рабочего органа станка, величину подачи или скорости вращения шпинделя либо другую функцию станка.

Рассмотрим основные понятия при кодировании информации.

  • • представляет собой последовательность операций обработки;
  • • она подразделяется на кадры;
  • • эти кадры содержат информацию об условиях и длине перемещения и вспомогательных функциях станка.
  • • в коде ISO обозначается знаком «%»;
  • • это отдельный кадр без дальнейшей информации;
  • • служит системе ЧПУ знаком остановки при возврате УП.
  • • содержит не менее двух слов;
  • • состоит из номера кадра, одного или нескольких слов и знака конца кадра (LF);
  • • знак конца кадра должен стоять обязательно;
  • • можно программировать кадры различной длины (макс. 100 знаков/кадр);
  • • последовательность слов любая;
  • • слова «номер кадра» должны всегда стоять в начале кадра. НОМЕРА КАДРОВ:
  • • первое слово кадра программы — номер кадра;
  • • он состоит из буквы адреса N и 4-значной цифровой последовательности;
  • • номера кадров могут программироваться от 1 до 9999. ПОСЛЕДОВАТЕЛЬНОСТЬ:
  • • номера кадров должны программироваться в возрастающей последовательности;
  • • один номер кадра может быть запрограммирован в отдельном кадре только один раз.
  • • рекомендуется программировать номера кадров с шагом 2, 5 или 10;
  • • чем больше шаг, тем больше можно включить дополнительных кадров в режиме «Редактирование».

Примеры: N2. или N5. или N10.

  • • N4. N10. N20.
  • • N6. N15. N30.
  • • N8. N20. N40

«СТОП» В КОНЦЕ ПРОГРАММЫ:

  • • в конце программы в качестве последнего слова последнего кадра в УП программируется М02;
  • • сразу после ввода последнего кадра происходит останов кассеты или перфоленты;
  • • устройство ввода останавливается на последнем знаке. «ОБРАТНАЯ ПЕРЕМОТКА» В КОНЦЕ ПРОГРАММЫ:
  • • в конце программы в качестве последнего слова последнего кадра может программироваться М30;
  • • сразу после ввода последнего кадра происходит перемотка перфоленты или кассеты к началу программы.
  • • после выполнения последнего кадра следует «КОНЕЦ ПРОГРАММЫ»;
  • • задается знаком «FEQ».

СТРУКТУРА КАДРА

• символ — это число, буква или знак, используемые для выражения информации;

Пример: I, G, %, 3, X, LE..

• используемые символы должны соответствовать символам, которые описаны в табл. 8.1, согласно ГОСТ 20999—83.

Значения управляющих символов и знаков

Символ, управляющий перемещением действующей позиции печати в следующую, заранее определенную позицию на той же строке. Предназначен для управления устройствами печати при распечатке управляющей программы. УЧПУ не воспринимается

Символ, обозначающий конец кадра управляющей программы

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

Круглая скобка левая

Знак, обозначающий, что следующая за ним информация не должна отрабатываться на станке

Круглая скобка правая

Знак, обозначающий, что следующая за ним информация должна отрабатываться на станке

Знак, обозначающий, что следующая за ним информация до первого символа «Конец кадра» может обрабатываться или не обрабатываться на станке (в зависимости от положения органа управления на пульте управления УЧПУ). Когда этот знак стоит перед символами «Номер кадра» и «Главный кадр», он действует на целый кадр управляющей программы

Знак, обозначающий главный кадр управляющей программы

Значения символов адресов

Угол поворота вокруг оси X

Угол поворота вокруг оси Y

Угол поворота вокруг оси Z

Вторая функция инструмента

Источник: studref.com

Что такое управляющая программа?

управляющая программа — 3.22 управляющая программа: Совокупность команд, определяющая заданное функционирование УРП в соответствии с регламентированной информацией от технических средств объекта или оператора.

Что называется управляющей программой?

Управляющей программой называется сумма команд, составленных на языке программирования. Она должна соответствовать заданному алгоритму работы станка, ведущему обработку конкретной заготовки. . Каждый кадр этой программы состоит из одного шага обработки и может обозначаться номером кадра (№1 №2 … №20 и т.

Что входит в состав кадра управляющей программы?

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

Что такое кадр управляющей программы?

Кадр управляющей программы (кадр) — составная часть УП, вводимая и отрабатываемая как единое целое и содержащая не менее одной команды. . Слово УП (слово) — составная часть кадра УП, содержащая данные о параметре процесса обработки заготовки и другие данные по выполнению управления.

Для чего в начале программы находятся Код начала программы (%) и номер программы?

В самом начале УП обязательно должен находиться код начала программы % и номер программы (например, О0001). Два этих первых кадра не влияют на процесс обработки, тем не менее они необходимы для того, чтобы СЧПУ могла отделить в памяти одну программу от другой.

Какой вид контроля осуществляет проверку управляющей программы?

Параметры проверки устанавливаются в окне «Check NC-program» (Контроль кодирования управляющей программы) (рис.

Что такое структура программы?

Структура программы — искусственно выделенные программистом взаимодействующие части программы. . Подпрограмма — некоторая последовательность инструкций, которая может вызываться в нескольких местах программы. Описание подпрограммы (функции или процедуры) состоит из двух частей: заголовка и тела.

Какие символы может содержать слово в кадре управляющей программы?

Если символы A, B, C, D, E, P, Q, R, U, V и W не используются для управления станком по прямому назначению, то они могут применяться для программирования каких-то специальных функций, присущих данной системе ЧПУ. Кадр представляет собой следующий в иерархии после слова элемент текста управляющей программы.

Что понимают под кадром управляющей программы какого рода информацию он содержит?

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

Для чего предназначены м коды?

Коды с адресом М называются вспомогательными и предназначены для управления режимами работы станка. .

Для чего нужны номера кадров?

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

Для чего нужна строка безопасности?

Строкой безопасности называется кадр, содержащий G-коды, которые переводят СЧПУ в определенный стандартный режим, отменяют ненужные функции и обеспечивают безопасную работу с управляющей программой.

Что такое УП в чпу?

Управляющая программа (УП) — это записанная на программоноситель в закодированном цифровом виде маршрутное операционная технология на конкретную деталь с указанием траекторий движения инструмента. .

В чем разница между кодами м03 и м04?

Единственная разница между двумя этими М-кодами заключается в направлении вращения. Код М03 отвечает за прямое (по часовой стрелке), а М04 – за обратное вращение шпинделя (против часовой стрелки). . Нужная передача для соответствующего диапазона скоростей вращения шпинделя выбирается автоматически или с помощью М-кодов.

Для чего применяется ускоренное перемещение?

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

Источник: chelc.ru

Понравилась статья? Поделить с друзьями:
  • Buds 3 lite инструкция как подключить
  • Зофеноприл инструкция по применению цена отзывы аналоги таблетки цена
  • Вид карьеры предполагающий продвижение к ядру руководству организации это карьера
  • Cybtouch 12 инструкция на русском языке
  • Гсф 100м руководство по эксплуатации