Заглушка.ру

Кое-что о GPP (часть 2)

Назад

Глава 3

Переменные и константы

Все переменные которые указывают на меру длины первоначально выражаются в миллиметрах. Для преобразования в другие меры длины вы должны задать масштабный коэффициент на этапе редактирования файла def, для чего зайдите в раздел 2. PROGRAMMING MODE AND UNIT (Режим программирования и Ед.измерения) и в пункте 5 введите масштабный коэффициент для линейных единиц измерения.

В файлах постпроцессора используется четыре типа переменных:

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

Значение переменных траектории инструмента устанавливается из соответствующих блоков траектории инструмента и файла постпроцессора exf. Имена переменных траектории инструмента заданы в Cimatron NC и содержат в имени символ подчеркивания.

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

Здесь более подробно рассмотрены переменные траектории инструмента.

Ниже приведен пример применения переменных взаимодействия:

Переменные взаимодействия

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

Ниже приведен пример присваивания значения и последующего изменения пользовательской переменной SEQUENCE:

Пример1: SEQUENCE = SEQSTART ;

Пример2: SEQUENCE = SEQUENCE + SEQINCR ;

Пользовательские переменные Инструмента/Цикла могут использоваться в файле постпроцессора exf с именем описанным в файле <root_cad>/tools/user.def с префиксом $.

Внимание!!!
Так написано в справке для Cimatron IT.
В справке для CimatronE написано малость по-другому и совсем сбивает с толку…

Пользовательские переменные Инструмента/Цикла могут использоваться в файле постпроцессора exf с именем, описанным в файле DFPost (.def) с префиксом $. Файл def располагается в директории [Cimatron\CimatronE]\Program\IT\var\post.

Примечание: Убедитесь что имя переменной состоит только из цифр и/или латинских буковок.

Пример: OUTPUT \J "catalog number:" $catalog ;

Все пользовательские переменные не могут содержать в имени символ подчеркивания. Они не могут быть идентичными с зарезервированными системными командами (например, OUTPUT, TOOLS,TAN). Имя может состоять только из латинских букв и/или цифр. Но первый символ – только буква. Первые пятнадцать символов значимые и должны быть уникальными.

Тип переменной Траектория инструмента(Tool Path) Взаимодействия (Interaction) Пользовательские (User-defined) Пользовательские Инструмента/Цикла (Tools/Cycles User-defined)
Создана Системой Декларировано пользователем Декларировано пользователем Системой
Имя присвоено Системой (с символом подчеркивания) Пользователем (без подчеркивания) Пользователем (без подчеркивания) Система (согласно файлу user.def)
Формат задан Системой (может быть переопределен функцией FORMAT) Пользователем (в разделе INTERACTION) Пользователем (в разделе FORMAT) Пользователем (в разделе FORMAT и должно соответствовать файлу user.def)
Значение задано Системой в блоке программы Пользователем в разделе INTERACTION в файле exf Пользователем в блоке программы Системой в блоке смены инструмента (Tool Change: Blocks)
Изменение значения Возможно (не рекомендуется) Возможно Возможно Не возможно

Кроме того может использоваться параметр ALL_VAR в командах KEEP или SET_ON (прежнее RESET) для обработки всех переменных за раз. Этот параметр касается всех четырех типов переменных.

Константы также могут использоваться в файле exf. Константы могут быть литерными (заключенные в кавычки), управляющие символы ASCII и/или специальные константы, TAB_ (TAB + символ подчеркивания).

3.1 Типы и формат переменных

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

3.2 Модальный и немодальный статус переменной

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

Для 18 предопределенных типов переменных, статус модальный/немодальный задается в файле def (секция 3. FORMATS , последний пункт в параметрах формата). Переменные символьного типа мо умолчанию модальные. Кроме того, статус переменной может изменяться на модальный или немодальный в процессе выполнения файла exf. Индикатор 'on/off' сохраняется для каждой переменной. Система использует данный индикатор для определения послать значение переменной на вывод или нет. Когда модальной переменной присвоено новое значение, она получает индикатор 'on'. Только переменные с индикатором 'on' будут посланы на выход. После того как модальная переменная послана на вывод, ее индикатор принимает значение 'off'. В результате если модальная переменная была послана на выход и значение переменной больше не изменялась, то в следующий раз переменная не будет послана на выход.

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

Пример: 1.SEQUENCE = SEQSTART ;

OUTPUT \J SEQUENCE;

OUTPUT \J SEQUENCE;

OUTPUT \J SEQUENCE;

Пример: 2.SEQUENCE = SEQSTART ;

OUTPUT \J SEQUENCE;

SEQUENCE = SEQSTART+ SEQINCR ;

OUTPUT \J SEQUENCE;

OUTPUT \J SEQUENCE;

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

Само значение переменной не влияет на принцип работы индикатора 'on/off', будь то переменная это текст, код или число принцип сохраняется.

3.3 Литерные константы

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

Пример: OUTPUT \J "T" CURR_TOOL "M66" ;

В примере выше символ Т и код М66 будут выведены в неизменном виде.

3.4 Управляющие символы

Управляющий символ ASCII это комбинация клавиши Ctrl и другого символа. В файле exf такие символы записываются как комбинация символа обратной косой черты (\) и необходимого символа.

Пример: \J

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

В Cimatron GPP альтернативным вариантом перевода строки служит комбинация Ctrl и плюс (+).

Пример: \+

3.5 Специальная константа – TAB_

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

Примечание: Количество значений константы (количество колонок) ограничено 20.
Длина строки ограничена 160 символами.

Пример: OUTPUT TAB_ X_HOME ;

В примере выше, значение переменной X_HOME будет выведено в позицию заданную параметром SET_TABS в начале файла exf.

Если же вам надо в файле вывести непосредственно <символ табуляции>, то воспользуйтесь управляющим символом \I (Ctrl + I).

Глава 4

Объявление переменных

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

Для определения переменных и описания их типов имеется несколько функций:

1. FORMAT создает одну или несколько переменных определенного типа или переопределяет тип системных переменных.
2. IDENTICAL позволяет определить две или более переменных-идентичными.
3. INTERACTION создает переменную взаимодействия с пользователем.
4. MODAL устанавливает модальный статус переменных.
5. NON_MODAL устанавливает немодальный статус переменных.
6. NEW_LINE_IS задает специальный символ для запуска последовательности команд.
7. SET_TABS устанавливает позиции вывода колонок.

Каждое различное объявление должно быть записано в отдельной строке и заканчиваться точкой с запятой (;). Если объявление одного и того типа записываются в одну строку, то они должны разделяться точкой с запятой и пробелами. Пробелы должны быть между объявлением и именем переменой и между именами переменных.

4.1 FORMAT

Данное объявление позволяет определить переменную заданного типа.

Пример: FORMAT (USER_1) XPOS XLIST [500] X_CURPOS $X;

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

В приведенном примере тип USER_1 присваивается переменным:

XPOS пользовательской переменной
XLIST [500] пользовательскому массиву на 500 значений
X_CURPOS системной переменной (тип по умолчанию COORDINATES )
$X пользовательская переменная Tools/Cycles

Вместо типа USER_1 может быть использован один из 18 доступных типов :

0. Character
1. Coordinates
2. Angles
3. Feed
4. Spindle_speed
5. Dwell
6. Sequencing
7. Tool
8.-17.User_[1-10]
18. Real

Более подробную информацию смотрите здесь.

4.2 IDENTICAL

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

Пример: IDENTICAL X_CURPOS X_ENDPT;

IDENTICAL Y_CURPOS Y_ENDPT Y1 Y2 Y3;

4.3 INTERACTION

Данное объявление используется для определения переменных взаимодействия. Может быть определено до 50 переменных взаимодействия. Эти переменные позволяют ввести какую-нибудь информацию пользователю до выполнения постпроцессора.

Переменные взаимодействия

Пример определения переменной взаимодействия:

INTERACTION (Coordinates) "ENTER_DELTA_Z" DZ = 10.0;

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

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

Примечание: Все переменные типа Coordinates умножаются на масштабный коэффициент.
Все переменные отображаются как числа типа REAL или INTEGERS.

Представление согласно типа REAL всегда с тремя цифрами после десятичной точки не зависимо от настроек формата в файле def. Рекомендуется чтобы формат типа переменной взаимодействия соответствовал типу INTEGER или числу с тремя знаками после десятичной точки.

Пример: Формат в файле def:

USER_6: 2,1,2,1,NO,NO,....

USER_7: 1,5,1,5,NO,NO,....

USER_8: 4,3,1,1,NO,NO,....

USER_9: 3,3,1,1,NO,NO,....

Файл exf:

INTERACTION (USER_6) "INPUT" A = 1.1 ;

INTERACTION (USER_7) "INPUT" B = 1.1 ;

INTERACTION (USER_8) "INPUT" C = 1.1 ;

INTERACTION (USER_9) "INPUT" D = 1.1 ;

OUTPUT \J "A=" A "B=" B "C=" C "D=" D ;

Взаимодействие при выполнении постпроцессора:

Задано пользователем A=1.166 Будет получено в постпроцессоре A=1.166
Задано пользователем B=1.56789 Будет получено в постпроцессоре B=1.568
Задано пользователем C=7777.999 Будет получено в постпроцессоре C=7778.000
Задано пользователем D=125.747 Будет получено в постпроцессоре D=125.747

Файл вывода: A=1.2 B=1.56789 C=7778 D=125.747

Только определение переменной D дает корректный результат.

В диалоге взаимодействия с пользователем переменные появляются в том порядка, в котором они записаны в файле exf.

4.4 MODAL

Любая переменная может быть модальной или немодальной. Все переменные имеют индикатор 'on/off'. У немодальной переменной этот индикатор всегда имеет значение 'on'. У модальных переменных индикатор получает значение 'off' после того как переменная выведена в файл выхода и значение 'on' после получения переменной нового значения. Кроме того, с помощью функции SET_ON или RESET значение индикатора может быть установлено на 'on' принудительно, даже если значение переменной не изменилось. Так же с помошью функции SET_OFF можно принудительно установить индикатор на 'off', даже в случае изменения значения переменной. Данный индикатор влияет, будет ли переменная послана на вывод в файл выхода. См. также здесь.

Статус модальный/немодальный для переменной определяется ее типом и установлен в файле def. Определение MODAL аннулирует статус установленный определениями FORMAT и INTERACTION.

Пример: FORMAT (Coordinates) PECK;

MODAL PECK CYC_DWELL;

В примере выше пользовательская переменная PECK и переменная траектории CYC_DWELL объявлены как модальные.Переменной PECK был назначен тип Coordinates и соответствующей ему формат (формат типа 1). Переменная CYC_DWELL имеет тип Dwell (формат типа 5). После определения MODAL обе перемененные имеют формат исходных типов, за исключением статуса модальный/немодальный. Теперь обе переменные модальные.

В определение MODAL может включаться список переменных.

4.5 NON_MODAL

Определение NON_MODAL действует аналогично определению MODAL.

Определение присваивает переменным статус - немодальной.

Пример: FORMAT (Coordinates) PECK;

NON_MODAL PECK CYC_DWELL;

В примере переменные PECK и CYC_DWELL определены как немодальные переменные, даже если прежде они были модальными.

4.6 NEW_LINE_IS

Данный параметр позволяет задать определенный символ, при встрече которого в функции OUTPUT в программе будет выполнена некая последовательность команд. Это своего рода мини-макрос или процедура внутри программы.

Пример: NEW_LINE_IS ! ;

OUTPUT \J "N" SEQ ;

SEQ = SEQ + SEQINCR ;

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

Пример ниже иллюстрирует работу параметра.

Пример: BEGINNING OF TAPE:

SEQ = 10; SEQINCR = 2; PROG = 1234;

OUTPUT "% \J "P" PROG "(TEST 1)";

OUTPUT ! ;

OUTPUT "G00 G90" ! "G55";

OUTPUT !; OUTPUT ! " ";

Выходной файл:

%

P1234 (TEST 1)

N10 G00 G90

N12 G55

N14

Примечание:

NEW_LINE_IS не должен использоваться с командами print0…print10. Не рекомендуется использовать параметр с командой распечатки.

Если после спец.символа не будет осуществляться вывод данных, то NEW_LINE_IS не активизируется. Но если спец.символ последний в команде вывода он активизируется.

Пример:

NEW_LINE_IS $ ;
CSEQ = CSEQ + ISEQ ;
OUTPUT \J "N" CSEQ ;
1.output \J TAB_ "A" TAB_ "B" TAB_ "C" TAB_ "D" TAB_ "E";
2.output $ ;
3.output $ "Q1";
4.output $;
5.output "Q2" $;
6.OUTPUT \J "P (TEST 1)";
7.OUTPUT $;
8.OUTPUT "G00 G90" $ "G55";
9.OUTPUT $; OUTPUT $ "_";
10. OUTPUT $;
Результат:
A    B  C     DE
N100Q1
N105Q2
P (TEST 1)
N115G00 G90
N120G55
N125_
N130

Пояснения: 2 строка не отрабатывается; 4 строка отрабатывается, т.к. за ней идет вывод значений; в 5 строке символ $ не отрабатывается, т.к. далее идет спец.символ, а не данные (если убрать \J, то отработал бы); в 9 строке первый символ $ не отрабатывается; 10 строка отрабатывается, т.к. последний в череде вывода.

4.7 SET_TABS

Если ваша стойка ЧПУ требует программу в виде фиксированных колонок, то вам придется использовать константу TAB_ (TAB+ подчеркивание). Параметр SET_TABS позволяет задать позиции начала колонок. Когда в команде вывода встречается константа TAB_ система добавит в строку столько пробелов, сколько надо для размещения колонок в позиции заданной в данном параметре.

Примечание: Количество значений константы (количество колонок) ограничено 20.
Длина строки ограничена 160 символами.

Пример: SET_TABS 4 9 12 18;

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

Пример:

output \J "123456789012345678901234567890";

output \J "ABCD";

output \J TAB_ "A" TAB_ "B" TAB_ "C" TAB_ "D";

output \J TAB_ TAB_ "ABCD";

output \J "A" TAB_ "BC" TAB_ "D";

output \J TAB_ "A" TAB_ "B" TAB_ "C" TAB_ "D" TAB_ "E";

Результат будет таким:

Результат вывода

Часть 1

Часть 3

 

Назад

  FDB © Великий Новгород 2010. Все права защищены. fdbir@yandex.ru



Hosted by uCoz