Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
EMCO WinNC SINUMERIC810840D Turning.doc
Скачиваний:
78
Добавлен:
20.08.2019
Размер:
4.3 Mб
Скачать

Отличия системы обработки контура емсо – Siemens kp Версия 1.0.5

Графика

  • Альтернативное решение не указывается

  • Другая логика масштабирования

  • Фаски генерируются только между прямыми линиями

  • Выточки не отображаются (обычно не использются)

Вводы

  • Тангенциал представлен как а2=0.000

  • Экранная клавиша «Tangent prev. elem» отображается активной для элементов с тангенциальными переходами

  • «Close contour» создает только одну (любую), а не две прямые линии (вертикально и горизонтально).

  • Использование полярных координат невозможно

Элементы контура

  • Углубление не применяется

  • Контурный процессор:

  • При совпадающих решениях, открывается диалог выбора

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

Созданный код

  • Постоянные значения координат обычно не опускаются в коде (только при горизонтальных и/или вертикальных линиях)

  • Выбранные множественные решения не могут быть ретранслированы из кода Siemens (первое решение не отображается)

  • Код с выделенными множественными решениями не может быть ретранслирован в оригинальную систему управления

  • Фаски между прямой линией и окружностью или окружностью и окружность создают другой код

Сообщения об ошибках

  • «Фаска/закругление слишком велико»

Значение для перехода с использованием фаски или радиуса слишком велико.

Устранение: выбрать меньшее значение перехода

  • «Inconsistent geometry values!»

Вследствие последнего ввода появилось противоречие между элементами контура.

Примеры:

- Конечный точки окружности вне окружности

-Точка пересечения в бесконечности

- Тангенсы точек в пределах окружности

Устранение: исправить последний ввод

  • «Illegal function»

Последний ввод или выбор недопустим в данный момент.

Примеры:

- Переходы к следующему элементу с закруглением с элементами с тангенциальным соединением к предшествующему элементу

- подрезы как переход (обычно не употребляется)

- переходы к неопределенным элементам контура

Устранение:

Выбрать достоверный переход к следующему элементу

  • « Make dialog selection first!»

Вы хотите сделать ввод во время ожидания выбора решения.

Устранение:

Сначала выполните выбор, после чего можно будет выполнить последующий ввод.

Помощь

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

  • Не все окна помощи оригинальной системы управления представлены

E Коррекция на инструмент / Размерная привязка инструмента

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

Вызов инструмента

T..: Номер инструмента в магазине

D..: Номер коррекции на инструмент

Для каждого номер инструмента T могут быть введены до 9 номеров коррекций D.

Система управления SINUMERIK 810D/840D описывает данные коррекций D как кромку.

Инструмент может иметь несколько номеров коррекций, (например, врезной инструмент измеряется с правого и левого углов).

В зависимости от использования в программе, такой инструмент вызывается, например, с использованием T1 D1 или T1 D2.

Команда T..D.. активирует коррекцию на инструмент D.

Данные коррекции на инструмент (длина инструмента, радиус инструмента, ...) считываются из регистра данных инструментов.

Возможные номера инструментов:

T 1..32000, D 1..9

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

Коррекция на длину инструмента

Коррекция на длину инструмента L1 эффективна вертикально основной плоскости (G17-G19).

Основное приложение для токарной обработки: G18 – коррекция на длину инструмента L1 по оси X

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

При этом все позиции соотносятся с вершиной инструмента.

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

Радиус резца R

Радиус резца

Указание радиуса резца необходимо только когда используется коррекция на радиус резца (G41, G42) для этого инструмента.

Позиция режущей кромки для инструментов

Позиция резца (Тип)

Взгляд на инструмент, когда он установлен на станке, определяет тип инструмента.

Для станков с инструментом ниже (перед) оси вращения (например, PC TURN 50/55) достоверными являются значения в скобках, вследствие направления X+ таких станков.

Измерение данных инструмента выполняется для типов 1-9:

L1: в направлении -X абсолютно от точки "N" в радиусе

L2: в направлении Z абсолютно от точки "N"

R: радиус резца

Тип: позиция резца (1-9)

Измерение данных инструментов выполняется для типа 10:

L1: в направлении -Z абсолютно от точки "N"

Тип: сверлильный инструмент (10)

Типы инструментов

Сверлильные инструменты

200 Спиральное сверло

205 Сплошное сверло

210 Расточная оправка

220 Центровочное сверло

230 Конический зенкер

231 Цилиндрический зенкер

240 Метчик для стандартных резьб

241 Метчик для тонких резьб

242 Метчик для дюймовой резьбы

250 Развертка

Токарный инструмент

500 Черновой инструмент

510 Чистовой инструмент

520 Врезной инструмент

530 Отрезной инструмент

540 Резьбонарезной инструмент

T номер

При помощи данного номера выполняется вызов инструмента (номер гнезда в револьверной головке)

D номер

Номер коррекции на инструмент. Инструмент может иметь несколько номеров коррекций

(например, левый и правый угол резца).

Количество режущих кромок

Количество номеров D для инструмента.

Тип инструмента

Данный номер определяет тип инструмента.

Геометрия

Размеры инструмента

Износ

Отклонение от геометрического значения.

База

Размеры инструментальной оправки, в которой зажат инструмент.

Сумма геометрии, износа и базовой коррекции, является эффективной общей коррекцией на инструмент.

Экранные клавиши:

T no +, T no -

Переход к следующему или предшествующему номеру инструмента.

D no +, D no -

Переключение на следующий или предшествующий номер коррекции на инструмент.

Delete

Удаление инструмента из списка или удаление коррекции для текущего инструмента.

Нажать экранную клавишу DELETE. Вертикальный ряд экранных клавиш отображает экранные клавиши DELETE CUT. EDGE, DELETE TOOL и ABORT.

Delete tool

Удаление текущего инструмента и его режущих кромок (коррекций D).

Delete cutting edge

Всегда удаляется режущая кромка с высшим номером D.

Номера D должны быть последовательны, без перерывов, например, инструмент с четырьмя режущими кромками должен иметь коррекции D1, D2, D3, D4 и только D4 может быть удален.

D1 не может быть удален, для этого следует удалить весь инструмент (инструмент должен иметь как минимум одну режущую кромку).

Abort

Выход без удаления.

Go to

Прямой выбор инструмента.

Нажать экранную клавишу GO TO. В вертикальном ряду экранных клавиш отображается выбор экранных клавиш и окно ввода около них.

Preselected tool

Номер выбранный в УП CNC (во время или после отработки программы).

Active tool

Инструмент который поворачивается в рабочую зону в револьверной головке.

Input field

Здесь вы можете ввести необходимый номер T и D и принять его при помощи .

OK

Изменения в инструменте.

Abort

Выход без выбора инструмента.

Overviews

Отображение списка инструментов.

Расположить курсор на требуемом инструменте и подтвердить выбор клавишей "OK".

New

Установка нового инструмента или новой коррекции (режущей кромки).

New tool edge

Введенные данные коррекции будут добавлены к имеющемуся инструменту.

Ввести номер T к которому должна быть добавлена новая режущая кромка (предполагается текущий инструмент) и тип инструмента для новой режущей кромки.

Подтвердить ввод клавишей .

Экранная клавиша OK устанавливает новую режущую кромку, ABORT – выход без сохранения новой режущей кромки.

New tool

Новый инструмент будет добавлен к списку инструментов.

Ввести номер T и тип инструмента для нового инструмента.

Подтвердить ввод клавишей .

Экранная клавиша OK устанавливает новый инструмент, ABORT – выход без сохранения нового инструмента.

Размерная привязка инструмента

Метод царапания

1 Выполнить останов обработанной детали с точно измеренным диаметром.

2 Выполнить подвод револьверной головки к детали

(останов шпинделя)

Снизить подачу до 1 %

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

3 Выполнить считывание и запись координаты Z.

4 Выполнить отвод револьверной головки от детали в поворот первого инструмента для измерения.

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

6 Вызвать регистр данных инструмента

Операционная зона Parameter - Tool Offset

Выбрать необходимый инструмент и необходимую коррекцию при помощи экранных клавиш "T no.", "D no".

7 Для сверлильного инструмента, установить курсор на Geometry L1, для токарного инструмента - на Geometry L2.

8 Нажать экранную клавишу "Determine compensation" (определить коррекцию).

9 В поле "Reference dimensions" установить ось на Z.

10 Ввести значение полученное в п. 4 как "Reference value" в поле "Reference dimensions".

11 Установить коррекцию Z при помощи экранных клавиш "Calculation" и "OK".

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

13 Для токарного инструмента, установить курсор на Geometry L1.

14 В поле "Reference dimensions" установить ось X.

15 Ввести диаметр детали как "Reference value" в поле "Reference dimensions".

16 Установить коррекцию X при помощи экранных клавиш "Calculation" и "OK".

17 Ввести остальные данные (радиус резца, угол зазора, позиции резца...).

18 Выполнить подвод следующего инструмента, выбрать номера T и D и повторить с п. 5, до измерения всех инструментов.

Эталонный инструмент Concept TURN 50|55

Эталонный инструмент Concept TURN 105|155

Измерение эталонного инструмента Concept TURN 50|55

Измерение эталонного инструмента Concept TURN 105/155

При помощи оптического устройства

В принципе, аналогично методу царапания.

Оптический метод более точен, т.к. избегает касания, а инструмент увеличивается в оптическом устройстве.

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

• Установить эталонный инструмент в гнезде 1 револьверной головки.

• Выполнить подвод гнезда 1.

• Переместить вершину эталонного инструмента в перекрестие оптического прибора.

Примечание: Объект рассматриваемый через оптический прибор представлен в зеркальном отражении по осям X и Z.

• В меню «Parameter» - «Tool offset» - «Determine compensa» в поле базового значения по осям X и Z ввести текущую позицию (значение Z = длина эталонного инструмента)

• Выполнить поворот револьверной головки и подвод первого инструмента для измерения в перекрестие оптического прибора.

• Выбрать номер Т и выполнить установку курсора на оси.

«Determine compensa», выбрать ось и нажать «Incluse»

• Выполнить установ следующего инструмента и т.д.

Перемещение инструмента в перекрестие

F Отработка программы

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

Сдвиги нуля G54-G57

Используемые сдвиги нуля должны быть измерены и введены.

Инструменты

Выполнена размерная настройка инструментов выполнена и ввод данных.

Инструменты находятся в соответствующих позициях (T) в системе смены инструментов.

Базовая точка

Выполнен подвод к базовой точке по всем осям.

Станок

Станок находится в состоянии готовности к работе.

Заготовка надежно зажата.

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

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

Тревоги

Нет активных тревог.

Выбор программы

Список программ

Операционная зона Machine, режим Automatic.

Нажать экранную клавишу PROGRAM OVERVIEW.

При помощи горизонтального ряда экранных клавиш возможно отображение программ определенного типа (детали, УП обработки,

подпрограммы, стандартные циклы, пользовательские циклы, буфер обмена).

Активация программы

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

• Операционная зона Machine, режим Automatic

• Нажать экранную клавишу PROGRAM OVERVIEW

• Пометить необходимую программу или деталь при помощи клавиш .

• ВЫ можете активировать / инактивировать выбранную программу / деталь при помощи экранной клавиши ALTER ENABLE.

• Активация отражается знаком (X) в списке:

(X) активировано

( ) инактивировано

• Когда программа является частью детали (директории), следует активировать программу и деталь.

Выбор программы для отработки

Выделить программу

• Операционная зона Machine, режим Automatic

• Нажать экранную клавишу PROGRAM OVERVIEW

• Пометить программу клавишами .

• Нажать экранную клавишу PROGRAM SELECTION.

• Имя программы отображается справа в строке заголовка.

Выбрать деталь

• В списке деталей выбрать деталь при помощи клавиш .

• Нажать экранную клавишу WORKPIECE SELECTION.

• Если имеется УП обработки с таким же именем в данной директории, она автоматически выбирается для отработки (например, при выборе детали PART1.WPD автоматически выбирается программа PART1.MPF).

• Название программы и данные детали отображаются непосредственно в строке заголовка.

• Если имеется файл инициализации с таким же именем в этой директории, он немедленно выполняется при выборе УП обработки (например, PART1.INI).

Пуск программы, Останов программы

Выбрать программу для отработки.

Перейти в операционную зону Machine, режим Automatic.

Нажать клавишу для пуска программы.

Останов отработки программы клавишей , продолжение отработки программы .

Прекращение отработки программы выполняется клавишей .

Сообщения в ходе отработки программы

3 Stop: Emergency stop active

Нажата клавиша аварийного останова EMERGENCY OFF.

4 Stop: Alarm active with stop

Отработка программы остановлена тревогой.

5 Stop: M0/M1 active

Программируемый останов отработки программы.

Продолжение клавишей .

6 Stop: Block ended in SBL mode

Кадр выполнен в покадровом режиме.

Продолжение клавишей .

7 Stop: NC Stop active

Отработка программы остановлена клавишей .

Продолжение клавишей .

8 Wait: Read-in enable missing

Активация считывания является сигналом станка в систему управления.

Текущий кадр еще не выполнен (например,

Смена инструмента, делительное устройство, прутковый питатель, и т.д.).

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

9 Wait: Feedrate enable missing

Активация подачи является сигналом от станка в систему управления.

Текущий кадр еще не выполнен (например, шпиндель не достиг запрограммированной скорости вращения, и т.д.).

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

10 Wait: Dwell time active

Отработка программы остановлена на заданный период выстоя.

17 Wait: Feedrate override to 0%

Переключатель ручной коррекции находится в позиции 0%.

18 Stop: NC block incorrect

Ошибка программирования

21 Wait: Block search active

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

Управление отработкой программы

Нажать экранную клавишу PROGRAM CONTROL.

Выбрать необходимую функцию при помощи клавиш курсора и .

Активировать/отменить функцию при помощи клавиши .

SKIP Пропуск кадра

Если активирована данная функция, все кадры, помеченные наклонной чертой перед номером кадра (/N...) не выполняются во время отработки программы.

DRY Скорость подачи в пробном прогоне

При выполнении пробного прогона без детали (нет обработки).

Во всех кадрах с запрограммированной скоростью подачи (G1, G2, G3, G33, ...) перемещение выполняется с предварительно установленной скоростью подачи для пробного прогона, вместо запрограммированной скорости подачи.

Шпиндель не работает.

ROV Ручная коррекция скорости подачи

SBL1 Покадровый режим с остановом после кадров машинных функций

Отработка программы выполняется после каждого движения.

Продолжение программы клавишей .

SBL2 Покадровый режим с остановом после каждого кадра

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

M01 Программируемый останов

При задании M01 в программе, отработка программы обычно останавливается при считывании такой команды.

Если данная функция активирована, выполняется остановка программы при M01.

Продолжение .

DRF DRF выбор

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

PRT Проверка программы

Проверка программы без координатных перемещений.

Покадровый поиск

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

Имеется два типа покадрового поиска.

1. С вычислением по контуру

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

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

2. С вычислением в конечной точке кадра

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

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

Последовательность:

• Операционная зона Machine, выбран режим AUTO.

• Выбрана программа для покадрового просмотра.

• Система управления в состоянии RESET.

• Нажать экранную клавишу BLOCK SEARCH.

• Установить курсор на кадр для поиска.

• Пуск покадрового просмотра выполняется клавишей CALCULATE CONTOUR или CALCULATE BLK ENDPT.

• Система управления вычисляет все кадры, до заданного кадра для поиска, но движения не выполняются.

отмена покадрового просмотра.

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

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

Гибкое программирование NC

Переменные и арифметические параметры

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

Тип переменных

• Переменные, определяемые пользователем

• Арифметические параметры

• Системные переменные

Тип переменных

INT

Целые со знаком

Диапазон значений: ±(231 - 1)

REAL

Дроби с десятичным знаком

Диапазон значений: ±(10-300 ... 10+300)

BOOL

Булевы значения: TRUE (1) и FALSE (0)

Диапазон значений:1, 0

CHAR

1 ASCII символ определяемый кодом

Диапазон значений: 0 ... 255

STRING

Строка символов, номер символа в [...],

максимум 200 символов

Диапазон значений: последовательность 0 ... 255

AXIS

Названия осей (адреса осей) только

Диапазон значений: все идентификаторы осей и шпинделя для канала.

FRAME

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

Системная переменная

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

Системные переменные представляют значения неопределенного типа.

Некоторым системным переменным не могут быть присвоены значения.

Название системной переменной всегда обозначается символом "$" с последующим именем.

Обзор типов системных переменных

1я буква

Значение

$M

Машинные данные

$S

Установочные данные

$T

Данные системы управления инструментальной оснасткой

$P

Программируемые значения

$A

Текущие значения

$V

Сервисные данные

2я буква

Значение

N

NCK- глобальные

C

Для определенного канала

A

Для определенной оси

Пример:

$AA_IM ..... Текущее значение определенной оси в системе координат станка.

Определение переменных

Переменные, определяемые пользователем

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

Локальные переменные достоверны только в программе, в которой они были определены.

Глобальные переменные применяются ко всем программам.

Наименование переменной

Наименование переменной может содержать до 32 символов. Первые два символа должны быть буквами или нижним подчеркиванием.

Символ "$" не может использоваться для переменных , определяемых пользователем, т.к. он зарезервирован для системных переменных.

Формат:

DEF INT имя

или DEF INT имя=Значение

DEF REAL имя

или DEF REAL имя1, имя2=3, имя4

или DEF REAL имя [индекс массива 1, индекс массива 2]

DEF BOOL имя

DEF CHAR имя

или DEF CHAR имя [индекс массива]=("A","B",...)

DEF STRING [длина строки] имя

DEF AXIS имя

или DEF AXIS имя [индекс массива]

DEF FRAME имя

Примечание

Если переменной не присвоено значение при ее определении в программе, система инициализирует ее с нулевым значением.

Переменные должны быть определены в начале программы.

ИХ определение выполняется в отдельном кадре.

Только один тип переменной может быть определен на кадр.

Пример

Тип переменной INT

DEF INT NUMBER

Переменная типа INTEGER создается с именем NUMBER. Система инициализирует переменную с нуля.

DEF INT NUMBER=7

Переменная типа INTEGER создается с именем NUMBER. Система инициализирует переменную со значением 7.

Тип переменной REAL

DEF REAL DEPTH

Переменная типа Real создается с именем DEPTH. Система инициализирует переменную со значением 0.

DEF REAL DEPTH=6,25

Переменная типа Real создается с именем DEPTH. Начальное значение 6,25.

Тип переменной BOOL

DEF BOOL IF_TOOMUCH

Переменная типа Bool создается с именем IF_TOOMUCH. Система инициализирует переменную с нуля (FALSE)

DEF BOOL IF_TOOMUCH=1

DRF BOOL IF_TOOMUCH=TRUE

DEF BOOL IF_TOOMUCH=FALSE

Переменная типа Bool создается с именем IF_TOOMUCH.

Тип переменной CHAR

DEF CHAR GUSTAV_1=65

ВЫ можете присвоить код для символа ASCII

переменной типа Char или напрямую присвоить символ ASCII (65 код для буквы A)

DEF CHAR GUSTAV_1="A"

Тип переменной STRING

DEF STRING [6]SAMPLE_1="START"

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

Тип переменной AXIS

DEF AXIS AXISNAME=(X1)

Переменные типа Axis имеют наименование Axisname и содержат идентификатор оси для канала, здесь X1

Примечание:

Переменная типа AXIS содержит имена, и идентификаторы шпинделя для канала.

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

Определение массива

Программирование

DEF CHAR NAME[n,m]

DEF INT NAME[n,m]

DEF REAL NAME[n,m]

DEF AXIS NAME[n,m]

DEF FRAME NAME[n,m]

DEF STRING[длина строки] NAME[m]

DEF BOOL [n,m]

INT NAME[n,m] Тип переменной (CHAR, INT,

REAL, AXIS, FRAME, BOOL)

DEF STRING[длина строки] NAME[m]

Данные типа STRING могут определяться только с одним измерением в массиве.

NAME Имя переменной

Могут определяться массивы, максимум, с 2 измерениями.

Массивы с переменными STRING могут быть только в одном измерении. Длина строки определяется после указания типа String.

Индекс массива

Доступ к элементами массива осуществляется с помощью индекса массива.

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

Первый элемент массива начинается с индекса [0,0].

При размере массива [3,4], например, максимальный индекс массива [2,3].

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

Инициализация массивов

Значения инициализации могут присваиваться элементам массива, во время выполнения программы, или при определении массива.

Правый индекс массива возрастает сначала в двухразмерном массиве.

Инициализация списков значений, SET

Опции при определении массивов

DEF Typ VARIABLE=SET(Значение)

DEF Typ ARRAY[n,m]=SET(Значение,Значение,...)

или

DEF Typ VARIABLE=Значение

DEF Typ ARRAY[n,m]=(Значение,Значение,...)

• Номер элемента массива соответствует номеру запрограммированных значений инициализации.

• Элементам массива без значений, автоматически присваивается значение "0".

• Для переменных типа AXIS не должно быть пропуска значений.

• Если запрограммировано значений больше, чем существует элементов массива, система управления генерирует сигнал тревоги.

Опции при выполнении программы

ARRAY[n,m]=SET(Значение, Значение,...)

ARRAY[n,m]=SET(выражение, выражение,...)

• Элементы поля инициализируются, как показано выше для определения массива.

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

• Инициализация начинается с запрограммированного индекса массива. Выборочно могут быть присвоены значения для подмассивов.

Пример

Присвоение выражений

DEF INT ARRAY[5,5]

ARRAY[0,0]=SET(1,2,3,4,5)

ARRAY[2,3]=SET(переменная, 4*5.6)

Индекс оси не обрабатывается для переменных оси.

Пример

Инициализация одной строки

$MA_AX_VELO_LIMIT[1,AX1]=SET(1.1,2.2,3.3)

Соответствует:

$MA_AX_VELO_LIMIT[1,AX1]=1.1

$MA_AX_VELO_LIMIT[2,AX1]=2.2

$MA_AX_VELO_LIMIT[3,AX1]=3.3

Инициализация с идентичными значениями, REP

Опции при определении массива

DEF Typ ARRAY[n,m]=REP(Значение)

Всем элементам массива присваивается одно значение (постоянная).

Примечание:

Переменные типа FRAME не могут быть инициализированы.

Пример

DEF REAL ARRAY5[10,3]=REP(9.9)

Опции при выполнении программы

ARRAY[n,m]=REP(значение)

ARRAY[n,m]=REP(выражение)

• Выражения также могут использоваться как значения инициализации.

• Все значения массива инициализируются с одинаковым значением.

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

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

Примечание:

Переменные типа FRAMe допустимы и инициализируются очень просто с использованием этого метода.

Пример

Инициализация всех элементов массива с одним значением.

DEF FRAME FRM[10]

FRM[5]=REP(CTRANS(X,5))

Пример

Инициализация полных массивов переменных.

На рисунке показано текущее распределение.

N10 DEF REAL ARRAY1 [10, 3] = SET(0, 0, 0, 10, 11, 12, 20, 20, 20, 30, 30, 30, 40, 40, 40, )

N20 ARRAY1 [0,0] = REP (100)

N30 ARRAY1 [5,0] = REP (-100

N40 ARRAY1 [0,0] = SET (0, 1, 2, -10, -11, -12, -20, -20, -20, -30, , , , -40, -40, -50, -60, -70)

N50 ARRAY1 [8,1] 0 SET (8.1, 8.2, 9.0, 9.1, 9.2)

2

1

[1,2]

N10: инициализация с определением

N20/N30: Инициализация с идентичным значением

N40/N50: Инициализация с различными значениями

0

1

2

3

4

5

6

7

8

9

Элементы массива [5,0]

- [9,2] были инициализированы со значением по умолчанию (0.0).

Элементы массива [3,1] -

[4,0] были инициализированы со значением по умолчанию (0.0).

Элементы массива [6,0] -

[(,0] не были изменены

Косвенное программирование

Косвенное программирование позволяет универсальное использование программ. Расширенные адреса (индексы) заменяются переменными подходящего типа.

Все адреса могут конфигурироваться, за исключением::

• N- номер кадра

• G- G команда

• L- подпрограмма

Косвенное программирование невозможно, для устанавливаемых адресов. (X[1] не допустим вместо X1).

Пример

S1=300 Прямое программирование

DEF INT SPINU=1

S[SPINU]=300

Косвенное программирование:

Скорость 300об/мин для шпинделя, номер которого сохраняется в переменной SPINU.

Присвоение значений

Значения аналогичного типа могут быть присвоены переменным/арифметическим параметрам.

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

На кадр допускается до двух назначений .

Назначения для адресов осей всегда требуют отдельного кадра для назначений переменной.

Пример

R1=10.518 R2=4 Vari1=45

X=47.11 Y=R2

R1=R3 VARI1=R4

Присвоение числового значения

R4=-R5 R7=-VARI8

Присвоение переменной аналогичного типа

Присвоение противоположного знака

(допускается только с типом INT/REAL).

Присвоение значений строковым переменным

Следует различать символы верхнего и нижнего регистра для CHAR или STRING.

Пример

MSG ("Finishin contour")

Текст "Чистовая обработка contour" отображается на экране.

Арифметические операции/функции

Арифметические функции используются чаще всего для параметров R и переменных типа REAL. Типы INT и CHAR также допускаются.

Стандартные математические выражения используются в арифметических операциях. Приоритет вычисления обозначается скобками. Углы определяются в тригонометрических функциях и их обратных функциях (прямой угол = 90°).

+-*/

Арифметические функции

Sin()

синус

COS()

косинус

TAN()

тангенс

ASIN()

арксинус

ACOS()

арккосинус

ATAN2(,)

арктангенс2

SQRT()

корень квадратный

ABS()

абсолютное число

POT()

квадрат Z (квадрат)

TRUNC()

выделение целой части

ROUND()

округление до целого

LN()

натуральный логарифм

EXP()

экспоненциальная функции

Пример

R1=R1+1 новый R1 = старый R1 +1

R1=R2+R3 R4=R5-R6 R7=R8*R9

R10=R11/R12 R13=SIN(25.3)

R14=R1*R2+R3

Умножение и деление имеют приоритет над сложением и вычитанием

R14=(R1+R2)*R3

Сначала выполняются вычисления в скобках

R15=SQRT(POT(R1)+POT(R2))

Сначала выполняются вычисления во внутренних скобках.

R15 = корень квадратный из

(R1 2 +R2 2 ).

RESFRAME= FRAME1:FRAME2

FRAME3=CTRANS(…):CROT(…) Последовательные операторы выполняют комбинирование фреймов в результирующий фрейм или присваиваются значения компонентам фрейма.

Арифметические функции, ATAN2( , )

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

Результат в одном из четырех квадрантов (–180° < 0 < +180°). Угловая позиция всегда базируется на положительном направлении для второго значения.

Сравнение и логические операции

Операторы сравнения

Операторы сравнения могут использоваться для переменных типа CHAR, INT, REAL и BOOL.

Кодовые значения сравниваются с типом CHAR.

Для типов STRING, AXIS и FRAME допустимо следующее: == и <>.

Результата операции сравнения всегда является значением типа BOOL.

Операции сравнения могут использоваться, например, для формулировки указания перехода.

==

равно

<>

Не равно

>

Больше чем

<

Меньше чем

>=

Больше или равно

<=

Меньше или равно

<<

Последовательность

Пример

IF R10>=100 GOTOF DEST

или

R11=R10>=100

IF R11 GOTOF DEST

Результат сравнения R10>=100 буферизуется в R11.

Логические операторы

Логические операторы используются для логического объединения правдивых значений. AND, OR, NOT и XOR обычно могут использоваться для типа BOOL, однако, они могут также использоваться для типов CHAR, INT и REAL при помощи неявной типовой конверсии.

Между булевыми операторами операндами и операторами должны быть вставлены пробелы.

В логических операциях (Boolean) для типов данных BOOL, CHAR, INT и REAL достоверно следующее:

0 эквивалентно FALSE

Не равно 0 эквивалентно TRUE

AND

AND

OR

OR

NOT

NOT

XOR

исключение OR

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

IF (R10<50) AND ($AA_IM[X]>=17.5)GOTOF

DEST

IF NOT R10 GOTOB START

Битовые операторы

Биты для битовых логических операций применяются для типов CHAR и INT. Типовая конверсия происходит автоматически.

B_AND

бит AND

B_OR

бит OR

B_NOT

бит NOT

B_XOR

бит исключения OR

Оператор B_NOT относится только к операнду; он следует после оператора.

Пример

IF $MC_RESET_MODE_MASK B_AND ‘B10000’

GOTOF ACT_PLANE

Приоритет операторов

Каждый оператор имеет свой уровень приоритетности. При оценке выражения, первыми применяются операторы с наиболее высокой степенью приоритета. Если операторы имеются одинаковую степень приоритета, вычисление выполняется слева направо.

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

Приоритетность операторов (от высших к низшим)

1. NOT, B_NOT

Отрицание, битовое отрицание

2. *, /, DIV, MOD

Умножение, деление

3. +, –

Сложение вычитание

4. B_AND

бит AND

5. B_XOR

бит исключения OR

6. B_OR

бит OR

7. AND

AND

8. XOR

исключения OR

9. OR

OR

10. <<

Последовательность строк, результирующий тип STRING

11. ==, <>, >,

<, >=, <=

Операторы сравнения

Оператор последовательности „:“ для фреймов не может присутствовать в одном выражении с другими операторами. Поэтому уровень приоритета для данного оператора не требуется.

Типовая конверсия

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

Возможные варианты типовой конверсии

В

Из

REAL

INT

BOOL

CHAR

STRING

AXIS

FRAME

REAL

Да

Да*

Да1)

Да*

INT

Да

Да

Да1)

Да2)

BOOL

Да

Да

Да

Да

Да

CHAR

Да

Да

Да1)

Да

Да

STRING

Да4)

Да3)

Да

AXIS

Да

FRAME

Да

* При типовой конверсии из REAL в INT, дробь >=0.5 округляется до большего , в ином случае эта дробь округляется до меньшего (аналогично функции ROUND)

1) Значения <> 0 являются TRUE, Значения == 0 являются FALSE

2) Если значение вписывается в допустимый диапазон значений

3) Если только 1 символ

4) Строка 0 = >FALSE, иначе TRUE

Если значение больше чем диапазон назначения при конверсии, генерируется сигнал тревоги.

Если в выражении присутствуют смешанные типы, конверсия типов выполняется автоматически.

Длина строк, STRLEN

Данная функция позволяет определять длину строки.

Синтаксис:

Семантика:

Выставляется количество символов, которые – начиная с начала строки- не являются символами 0.

Пример:

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

IF(STRLEN(BAUSTEIN_NAME)>10)GOTOF FEHLER

Оператор CASE

Формат:

CASE (выражение) OF посоянная1 GOTOF LABEL1 DEFAULT GOTOF LABELn

CASE (выражение) OF постоянная1 GOTOB LABEL1 DEFAULT GOTOB LABELn

CASE Словарное слово для указания перехода

GOTOF Указание перехода с назначением перехода вперед

GOTOB Указание перехода с назначением перехода назад

LABEL Назначение (метка в пределах программы)

LABEL: Имя назначения перехода заканчивается двоеточием.

Выражение Арифметическое выражение

Постоянная Постоянная типа INT

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

Оператор CASE обеспечивает различные ветвления для выполнения в соответствии со значением типа INT.

Программа переходит к указанной точке назначения, в зависимости от значения постоянной, установленного оператором CASE.

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

Если инструкция DEFAULT не запрограммирована, назначением перехода является кадр, следующий за оператором CASE.

CASE(выражение) OF 1 GOTOF LABEL1 2 GOTOF LABEL2 … DEFAULT

GOTOF LABELn

„1“ и „2“ являются возможными постоянными.

Если значение выражения = 1 (INT-постоянная), переход к кадру с LABEL1

Если значение выражения = 2 (INT-постоянная), переход к кадру с LABEL2

В ином случае переход к кадру LABELn

Пример

DEF INT VAR1 VAR2 VAR3

CASE(VAR1+VAR2-VAR3) OF 7 GOTOF LABEL1 9 GOTOF LABEL2 DEFAULT

GOTOF LABEL3

LABEL1: G0 X1 Y1

LABEL2: G0 X2 Y2

LABEL3: G0 X3 Y3

Контрольные структуры

IF-ELSE-ENDIF ............ Выбор между 2 альтернативами

LOOP-ENDLOOP ........ Бесконечный цикл

FOR-ENDFOR ............. Цикл по счету

WHILE-ENDWHILE .....Цикл с условием в начале цикла

REPEAT-UNTIL ........... Цикл с условием в конце цикла

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

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

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

IF-ELSE-ENDIF

Кадр IF-ELSE-Endif используется для выбора одной из двух альтернатив:

IF (выражение)

N50...

N60...

ELSE

N120...

ENDIF

Если значение выражения достоверно TRUE, т.е. условие выполнено, то выполняется следующий кадр УП. Если условие не выполнено, выполняется ELSE ветвь программы. Ветвь ELSE может быть опущена.

Бесконечный цикл программы, LOOP

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

LOOP

N50...

N60...

ENDLOOP

Цикл по счету, FOR

Цикл FOR используется при необходимости повтора операции некоторое количество раз. Переменная должна быть типа INT.

FOR Переменная = Начальное значение

TO = Конечное значение

N50...

N60...

ENDFOR

Основная программа

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

Программируемый цикл с условием в начале цикла, WHILE

Цикл WHILE выполняется до тех пор, пока достоверно условие.

WHILE выражение

N50...

N60...

ENDWHILE

Программируемей цикл с условием в конце цикла, REPEAT

Цикл REPEAT выполняется один раз и повторяется непрерывно до выполнения условия.

REPEAT

N50...

N60...

UNTIL(выражение)

Глубина вложения

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

Время выполнения

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

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

Дополнительные условия

Кадры с элементами контрольных структур не могут подавляться.

Метки не могут использоваться в кадрах этого типа.

Контрольные структуры обрабатываются в режиме интерпретации.

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

Поэтому, структура кадров программы в режиме интерпретации, не проверяется полностью.

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

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

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

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

Пример

(бесконечная программа)

%_N_LOOP_MPF

LOOP

IF NOT $P_SEARCH ; нет поиска кадра

G01 G90 X0 Z10 F1000

WHILE $AA_IM[X] <= 100

G1 G91 X10 F500 ; Шаблон сверления

Z–5 F100

Z5

ENDWHILE

Z10

ELSE ; Поиска кадра

MSG („No drilling during block search“) (нет сверления во время поиска кадра)

ENDIF

$A_OUT[1] = 1 ; следующая точка сверления

G4 F2

ENDLOOP

M30

Пример (Обработка фиксированного количества деталей)

%_N_WKPCCOUNT_MPF

DEF INT WKPCCOUNT

FOR WKPCCOUNT =0 TO 100

G01 …

ENDFOR

M30

Подавление отображения текущего кадра, DISPLOF,

DISPLON

Формат

PROC ... DISPLOF

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

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

Подавление режима единичного кадра

SBLOF, SBLON

Формат

PROC... SBLOF

PROC... SBLON

SBLOF .......... единичное подавление OF

SBLON .......... единичное подавление ON

Подавление единичного кадра для определенной программы

При установке SBLOF программы выполняются целый блок.

Пример:

PROC пример SBLOF

G1 X10

RET

Подавление единичного кадра в программе

SBLOF может стоять отдельно в кадре. Начиная с этого кадра режим единичного кадра, отключается до следующего SBLON или до конца активного уровня подпрограммы.

Фреймы

Вращение вокруг оси Z

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

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

Возможные фреймы:

• Базовые фреймы (базовый сдвиг)

Описывает трансформацию координат из базовой системы координат (BKS) в систему координат нуля (BOS) и имеет эффект, аналогичный управляемым фреймам.

• Регулируемые фреймы (G54...G599)

Регулируемые фреймы являются сдвигами нуля, которые вызываются из любой программы NC командами G54 - G599. Значения сдвига предварительно устанавливаются оператором и сохраняются в ресурсах данных точки отсчета системы управления.

• Программируемые фреймы.

Программируемые фреймы (TRANS, ROT,..) достоверны в фактической программе NC и относятся к регулируемым фреймам. Они используются для определения системы координат детали.

• Дополнительные фреймы

Регулируемая точка нуля детали или последняя, запрограммированная через фреймы, служит точкой отсчета.

Переменная фрейма/ связь фреймов

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

Переменная фрейма:

$P_PFRAME значит: текущий программируемый фрейм.

Предварительно определенные переменные фреймов

$P_IFRAME

Переменная текущего устанавливаемого фрейма, которая устанавливает соотношение системами координат детали и станка.

$P_IFRAME содержит сдвиг или вращение, и т.д.,

Определяется функцией G54.

$P_BFRAME

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

$P_PFRAME

Переменная фактического программируемого фрейма, определяющего отношение системой отсчета нуля детали и системой отсчета детали.

$P_PFRAME содержит результирующий фрейм, который получается при программировании TRANS/ATRANS, ROT/

AROT,SCALE/ASCALE,MIRROR/AMIRROR

в программируемом фрейме.

$P_ACTFRAME

Фактический, результирующий общий фрейм, состоящий из фактической переменной базового фрейма $P_BFRAME, переменной регулируемого фрейма $P_IFRAME и переменной программируемого фрейма $P_PFRAME.

$P_ACTFRAME описывает текущий достоверный нуль отсчета детали.

Примечание:

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

Предварительно определяемые регулируемые фреймы $P_UBFR[n]

Запись переменной предварительно установленного фрейма $P_UBFR[n] не активирует базовый фрейм одновременно, но активация выполняется только при первом выполнении инструкции G500, G54,... G599.

Предварительно определяемые регулируемые фреймы $P_UIFR[n]

Регулируемые сдвиги нуля G54 - G599 могут считываться или записываться из программы обработки детали при помощи предварительно устанавливаемой переменной фрейма $P_UIFR[n].

5 регулируемых фреймов ($P_UIFR[0] по $P_UIFR[4])

и/или 5 синонимичных команд G - G500 (отключение)

и G54 по G57 – устанавливаются как стандарт .

$P_UIFR[0] соответствует G500

$P_UIFR[1] соответствует G54

$P_UIFR[2] соответствует G55

$P_UIFR[3] соответствует G56

$P_UIFR[4] соответствует G57

Функция оси AXNAME, ISAXIS, AX

AXNAME("TRANSVERSE AXIS")

AX[AXNAME("STRING")]

SPI(номер шпинделя)

ISAXIS(номер геометрической оси)

AXNAME ... конвертирует строку ввода в идентификатор оси.

AX ............. Переменная идентификатора оси.

ISAXIS....... Проверка наличия указанной геометрической оси

AXNAME

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

ISAXIS

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

DIAMON, DIAMOF

Формат

DIAMON

DIAMOF

DIAMON Диаметр как размер

DIAMOF Радиус как размер (исходная установка)

Выполняя установки DIAMON/DIAMOF вы можете выбрать размеры в диаметральном или радиальном выражении.

После активации DIAMON, для указанных осевых перемещений применяются диаметральные размеры.

Значения диаметра применяются к следующим данным:

• Дисплей текущего значения осевого перемещения в системе координат детали

• Программирование:

Конечные позиции, независимо от параметров интерполяции G90/G91 с G2/G3, если они программируются в абсолютных размера.

• Считывание текущего значения в системе координат детали с MEAS, MEAW, $P_E[X], $AA_IW[X]

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]