- •4.3 Цикл выточки – cycle93
- •Отличия системы обработки контура емсо – Siemens kp Версия 1.0.5
- •G Тревоги и сообщения
- •Машинные тревоги 6000 - 7999
- •6050: M25 at running main spindle (м25 во время вращения главного шпинделя)
- •6064: Door automatic not ready (нет сигнала готовности автоматичесеой двери)
- •6069: Clamping for tani not open
Отличия системы обработки контура емсо – 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 в любой момент можно переключиться на выражение размера с помощью радиуса.