Параметрическое программирование
#0 - всегда нуль. Этой переменной нельзя присвоить никакого значения.
#1 - #33 – Локальные переменные. При отключении питания обнуляются.
#100 - #199 – Общие переменные. При отключении питания обнуляются.
#500 - #999 – Общие переменные. При отключении питания данные сохраняются.
Диапазон значений переменных:
от -1047 до -10-29
от +10-29 до +1047
Примеры:
#1=123
X#1
Z[#1/2]
Ограничения использования:
Нельзя использовать переменные в качестве номера программы (O#10),
в качестве номера кадра (N#20) и после наклонной черты в начале кадра (/#30).
Действия с переменными:
4 арифметических действия + - * /
SIN[…](синус), COS[…],TAN[…], ASIN[…](арксинус), ACOS[…], ATAN[…]
SQRT[…](квадратный корень), ABS[…](модуль числа), ROUND[…](округление),
FIX[…](округление в меньшую сторону), FUP[…](округление в большую сторону),
LN[…], EXP[…],
OR(логическое ИЛИ), XOR(исключающее ИЛИ), AND(логическое И).
Операторы сравнения:
GT больше
LT меньше
EQ равно
NE не равно
GE больше или равно
LE меньше или равно
Переходы и повторы:
GOTO100 – Переход на кадр N100, безусловный
IF [#1GT10] GOTO100 – Переход на кадр N100, если #1>10
IF [#1GT10] THEN #2=20 – Присвоение #2=20, если #1>10
WHILE [#1GT10] DO1
#1=#1+1
G0 X#1
END1
Пример параметрической программы:
Токарная обработка
Напишем чистовую обработку такого валика, размеры которого сведены в таблицу:
Деталь | D1 | L | R1 | R2 |
000.00.00 | ||||
000.00.00-01 | ||||
000.00.00-02 | ||||
000.00.00-03 |
В начале программы введем переменные:
O0001(PRIMER 1)
N10 #501=12(D1)
N40 #504=65(L)
N50 #505=5(R1)
N60 #506=10(R2)
Чтобы выполнить чистовую обработку, нам необходимо знать координаты всех опорных точек. Обозначим эти точки цифрами и буквами.
1 (#1;#2) (#1 – координата точки 1 по оси X, #2 - по оси Z)
2 (#3;#4)
3 (#5;#6)
4 (#7;#8)
5 (#9;#10)
A (#11;#12)
B (#13;#14)
Теперь присвоим этим переменным известные значения:
Точка 1 – начало траектории, ее координата по X будет равна значению диаметра D1 уменьшенного на двойную величину фаски 1*45°, т.е. D1-2. Значение D1 хранится в переменной #501, тогда получим наше первое вычисление
N70 #1=#501-2
Координата точки 1 по Z равна нулю,
N80 #2=0
Далее, для точки 2:
N90 #3=#501
N100 #4=-1
Для точки 3 мы пока знаем только координату по X:
N110 #5=#501
Для точки 4 неизвестны пока обе координаты, пропустим ее, и укажем оставшиеся известные значения:
N120 #9=0
N130 #10=-#504-#506
N140 #11=#501+#505*2
Здесь, по правилам математики, система сначала выполнит умножение (#505*2), а затем сложение
N150 #13=0
N160 #14=-#504
Выделим известные координаты наших точек:
1 ( #1;#2)
2 (#3;#4)
3 (#5;#6)
4 (#7;#8)
5 (#9;#10)
A (#11;#12)
B (#13;#14)
Теперь определим оставшиеся 4 неизвестные пока координаты:
Чтобы найти координату точки 3 по Z, нужно найти величину отрезка BC.
Условие касательного сопряжения дуг определяет, что прямая AB проходит через точку 4.
Рассмотрим треугольник ABC:
Он прямоугольный, по теореме Пифагора, AB2=BC2+AC2
Тогда, BC2= AB2-AC2
BC=Корень_квадратный(AB2-AC2)
AB=R1+R2
AC=D1/2+R1
Теперь запишем это в нашу программу, используя для вычислений промежуточные переменные:
N170 #15=#505+#506 (AB)
N180 #16=#15*#15 (AB2)
N190 #17=#501/2+#505 (AC)
N200 #18=#17*#17 (AC2)
N210 #19=SQRT[#16-#18] (BC)
Точка 3 лежит правее точки B на известную теперь величину BC:
N220 #6=#14+#19
Координата точки A по Z совпадает с координатой точки 3 по Z.
N230 #12=#6
Осталось определить неизвестную точку 4.
Треугольники ABC и DBE подобны, следовательно
BE/BC = BD/BA
Тогда,
BE = BD/BA*BC
Напомню, BD=R2, BA=R1+R2, BC – уже известно и равно #19
Тогда, запишем в программу
N240 #20=#506/[#505+#506]*#19 (BE)
Точка 4 лежит правее точки B на величину BE:
N250 #8=#14+#20
Аналогично, из подобия тех же треугольников:
N260 #21=#506/[#505+#506]*#17 (DE)
N270 #7=#21*2
Итак, все точки определены.
Составим теперь из них траекторию.
N280 G1 X#1 Z#2
N290 X#3 Z#4
N300 Z#6
N310 G2 X#7 Z#8 R#505
N320 G3 X#9 Z#10 R#506
Мы получили универсальную программу, в которой, меняя исходные данные, мы можем получить сколько угодно разных деталей.