Смекни!
smekni.com

Техтран - система программирования оборудования с ЧПУ (стр. 16 из 16)

ВЫЗОВ Ml

ВЫЗОВ 'SY: MACRO 1’

С помощью оператора «:» (двоеточие) можно задавать умолчание для имени макроса. Формат оператора следующий: : литерал1, литерал2

где литерал1 − строка символов, присоединяемая к имени макроса слева; литерал2 − строка

символов, присоединяемая к имени макроса справа.

Например, оператор: 'DK1: [77, 300]', '. TEH' позволяет, задавая в программе вызов в формате ВЫЗОВ МАКРО1, передать операционной системе имя файла в виде 'DK1: [77, 300] MAKRO 1. ТЕН'.

Рассмотрим следующий оператор:

ВЫЗОВ Ml (A=l, (ВЕЩ Б = 2), В = 30.5, (ТЧ1 =0,0,0))

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

Если в операторе ВЫЗОВ определено значение текстового параметра, которому присвоено значение по умолчанию в заголовке макроса, то значение по умолчанию игнорируется, например: ДЕТАЛЬ 'МАКРО'

МАКРО Ml ('ПГ = 'Г, 'П2' = & Ш'0')

А = &П1+& П2

ТЧ1=А, В

КР1=ТЧ1, В + & П1

ПЧТ1 А, В, ТЧ1, КР1

КОНМАК

ВЫЗОВ Ml (/П1/ = '2/, 'П2' = '25', В = 0)

ВЫЗОВ Ml ('П1' = '2', В = 3)

ВЫЗОВ Ml ('П2' = '35', В=2.5)

ВЫЗОВ Ml (В = 7.4)

КОНЕЦ

Таблица 2.6 Таблица 2.7

Номер вызова макроса

П1

П2

В

А

ТЧ1

КР1

1

2

3

4

2

2

1

1

25

20

35

10

0

3

2,5

7,4

27

22

36

11

27

22

36

11

0

3

2,5

7,4

0

0

0

0

27 0 2

22 3 5

36 2,5 3,5

11 7,4 8,4

Номер вызова

макроса

М2

П1

А

1

2

3

4

10

+

-

1+2

А=10-1

А=+-1

А=-1

А=1+2-1

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

Значения параметров и переменных, выводимые на печать, приведены в табл. 2.6.

Вложенные вызовы. В теле макроса может встретиться оператор ВЫЗОВ с именем другого макроса. При этом

происходит вставка тела нового макроса в тело старого. В теле внутреннего макроса нельзя использовать текстовые параметры внешнего макроса, но их можно применять в операторе ВЫЗОВ для задания значений внутренних текстовых параметров, например: МАКРО Ml ('П1' = ", П2 = ", П3 = ") ВЫЗОВ М2 ('ПГ = '&ПГ)

ВЫЗОВ М2 ('ПГ = '&П2 + &ПЗ')

КОНМАК

МАКРО М2

А = &П1 −1

КОНМАК

ВЫЗОВ Ml ('ПГ = '10')

ВЫЗОВ Ml ('П2' = 'Г, 'П3' = '2')

Значения параметра и переменной, выводимые на печать (для данного примера), приведены в табл. 2.7.

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

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

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

Приведем пример использования локальных переменных:

А=1

МАКРО М

ВЕЩ А

А = 2

КОНМАК

ВЫЗОВ М

ПЧТ1 А

Поскольку в макросе М имеется явное задание типа переменной А, то она считается локальной в макросе М. Вне макроса ее значение, равное 2, недоступно. Вне тела макроса определена другая переменная А, которой было присвоено значение, равное 1, и именно это значение будет выведено на печать:

А=1

МАКРО М

А = 2

КОНМАК

ВЫЗОВ М

ПЧТ1 А

В этом случае печатается значение А = 2, так как в теле макроса используется переменная, определенная вне его. Расположение тела макроса относительно оператора А=1 здесь не существенно:

МАКРО М

А = 2

КОНМАК

ВЫЗОВ М ПЧТ1 А

В данном примере допущена ошибка, так как значение переменной А не определено.

Операторные параметры рассматриваются как операторы, находящиеся внутри макроса.

Переменные, определяемые в операторных параметрах, должны удовлетворять тем же соглашениям, что и переменные тела макроса, например:

А=1

ВЫЗОВ М (ВЕЩ А = 2)

ПЧТ1 А

На печать будет выведено А= 1, так как в вызове определена локальная в макросе М переменная.

А=1

ВЫЗОВ М (А = 2)

ПЧТ1 А

На печать будет выведено значение А = 2.

Использование меток. Все используемые в макросе метки локализованы внутри этого макроса. Это означает, что передачи управления в макрос и из него запрещены. Разрешены только переходы внутри тела макроса.

2.14 Примеры программ на Техтране

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

Пример 1. Ниже приводится текст программы обработки простейшего контура, изображенного на рис. 2.115. ДЕТАЛЬ ‘ПРИМЕР 1’

#

# ОПРЕДЕЛЕНИЕ ЭЛЕМЕНТОВ КОНТУРА

#

ТЧ0 = -30, 0

ТЧ1 = 0, 0

ПР1 = ТЧ1, 45

ПР2 = ТЧ1, -45

ТЧ2 = ПР1, ТЧ1, 50, УМ ТЧ3 = ПР2,ТЧ1, 50,УМ

ПР3 = ТЧ0, ПЕРП, ПР1

КР1 = ТЧ1, ТЧ2, ТЧЗ

КР2 = УМ, ПР1, УМ, ПР2, РАДИУС, 10

КР3 = УМ, ПР1, ХМ, ВНУТРИ, КР1, 10

КР4 = УМ, ПР2, ХБ, ВИУТРИ, КР1, 10

#

ИНСТР 6 # ДИАМЕТР ИНСТРУМЕНТА

МЕТОД ЛИНКРУГ # МЕТОД ИНТЕРПОЛЯЦИИ

ИНСТПР # ИНСТРУМЕНТ СПРАВА

#

# ОПИСАНИЕ ТРАЕКТОРИИ ДВИЖЕНИЯ ИНСТРУМЕНТА

#

ИЗ ТЧ0 # НАЧАЛО ДВИЖЕНИЯ

ИДИ ДО ПР1 # ПОДХОД К КОНТУРУ

ВПРАВО ПР1 # ОБХОД КОНТУРА

ВПЕРЕД КР3 : КР1 : КР4 : ПР2 : % # СНАРУЖИ ПРОТИВ

КР2 : ПР1 НА ПРЗ # ЧАСОВОЙ СТРЕЛКИ

ВТОЧКУ ТЧ0 # ВОЗВРАТ В ИСХ. ТЧ.

KOHEЦ # КОНЕЦ ПРОГРАММЫ