(BEQ,$INAX1,$INAX2,END)
(BEQ,$INAX2,$INAX3,END)
(BEQ,$INAX1,$INAX3,END)
E81=0
E2=0
;======Вычисление № процесса==============
(BGE,SK25,80,5)
(BGE,SK25,80,4)
(BGE,SK25,80,3)
(BGE,SK25,80,2)
E15=0
(BNC,PROEND)
"2"
E15=1
(BNC,PROEND)
"3"
E15=2
(BNC,PROEND)
"4"
E15=3
(BNC,PROEND)
"5"
E15=4
"PROEND"
E16=(10+26*E15)*32+9
;P(=0-неориентируемый; =1-ориентируемый
E1=PL1
;r - радиус кольца
E40=PL2/2
E41=-E40
;#НАЧАЛЬНОЙ ТОЧКИ ЦЕНТРА КОЛЬЦА
E19=98
;обнуление переменных-результатов измерения цикла
RTA=0
RTO=0
E61=0
E62=0
E64=0
E65=0
;имя абсциссы
$PS1=$INAX1
;имя ординаты
$PS2=$INAX2
;имя оси параллельной шпинделю
$PS3=$INAX3
;
;E51 - текущая координата X шарика
;!!!ЗАМЕЧАНИЕ!!! Заменить прямое имя X на $INAX1 или на $PS1
(GTA,X,1,E51)
;E53 - текущая координата Y шарика
;!!!ЗАМЕЧАНИЕ!!! Заменить прямое имя Y на $INAX2 или на $PS2
(GTA,Y,1,E53)
;вычисление предполагаемой координаты касания шарика с кольцом вдоль оси абсцисс в "+"
E51=E51+E40
;вычисление предполагаемой координаты касания шарика с кольцом вдоль оси абсцисс в "-"
E52=E51-E40*2
;вычисление предполагаемой координаты касания шарика с кольцом вдоль оси ординат в "+"
E53=E53+E40
;вычисление предполагаемой координаты касания шарика с кольцом вдоль оси ординат в "-"
E54=E53-E40*2
;E10-номер инструмента датчика касания; E11-номер корректора датчика касания 
(TRD,E10,E11)
;установка параметров измерения датчиком касания из DPM (СЕКЦИЯ 5 PGCFIL) для кадра DPT ниже
;подача измерения
E25=DPMF
;размер безопасности
E200=DPMS
(DPT,E40,E200,E25)
;E81 -  диаметр шарика со знаком "-"
;(справка PL0-переменная содержит значени радиуса инструмента из активного корректора K/2)
E81=-2*PL0
;E81 здесь используется для обнуления значения K в активном корректоре E11
(RQP,E10,E11,KE81)
;активация инструмента и корректора (здесь датчик касания)
;!!!Для активации инструмента и корректора требуется M06!!!
;!!!Требование внести в разделе подготовки системы для измерения!!!
TE10.E11M6
;включение безопасности датчика касания для его перемещения в точку начала измерения
#SN(E16).BL=1
;переход на часть "неориентируемый датчик"
(BEQ,E1,0,P)
;=================================================================
;ЧАСТЬ №1
;выполняется для ориентируемого датчика
;эта часть программы вычисления координаты центра кольца
;если начальная точка центра кольца активна, то эта часть может выполнить калибровку координаты центра кольца 
;X+ E61
;выключение безопасности датчика касания для начала измерения
#SN(E16).BL=0
;трехкратное измерение точки касания датчика с кольцом вдоль оси абсцисс в "+"
E61=0
G72 $PS1 E51 RE200 E60
E61=E60
G72 $PS1 E51 RE200 E60
E61=(E61+E60)/2
G72 $PS1 E51 E60
E61=(E61*2+E60)/3
;$PS1 E51
;трехкратное измерение точки касания датчика с кольцом вдоль оси абсцисс в "-"
;X- E62
E62=0
G72 $PS1 E52 RE200 E60
E62=E60
G72 $PS1 E52 RE200 E60
E62=(E60+E62)/2
G72 $PS1 E52 E60
E62=(E60*2+E62)/3
;включение безопасности датчика касания для его перемещения в точку начала измерения
#SN(E16).BL=1
;расчет координаты центра кольца по оси абсцисс
;X* E63
E63=(E61-E62)/2+E62
;перемещение в середину измеренной хорды кольца по оси абсцисс
$PS1 E63
;выключение безопасности датчика касания для начала измерения
#SN(E16).BL=0
;трехкратное измерение точки касания датчика с кольцом вдоль оси абсцисс в "+"
;Y+ E64
E64=0
G72 $PS2 E53 RE200 E60
E64=E60
G72 $PS2 E53 RE200 E60
E64=(E60+E64)/2
G72 $PS2 E53 E60
E64=(E60+E64*2)/3
;трехкратное измерение точки касания датчика с кольцом вдоль оси абсцисс в "-"
;Y- E65
E65=0
G72 $PS2 E54 RE200 E60
E65=E60
G72 $PS2 E54 RE200 E60
E65=E60+E65
G72 $PS2 E54 E60
E65=(E60+E65)/3
;включение безопасности датчика касания для его перемещения в точку начала измерения
#SN(E16).BL=1
;расчет координаты центра кольца по оси ординат
;Y* E66
E66=(E64-E65)/2+E65
;R кольца
E71=(E64-E65)/2
;r Шарика
;E80=(E40-E71)*2
;(RQP,E10,E11,KE80)
;перемещение в середину измеренной хорды кольца по оси ординат
$PS2 E66
;часть подготовка к повторному измерению координаты центра кольца
(GTA,X,1,E51)
E51=E51+E40
E52=E51-E40*2
#SN(E16).BL=0
G72 $PS1 E52 RE200 E60
E62=E60
G72 $PS1 E52 RE200 E60
E62=(E60+E62)/2
G72 $PS1 E52 E60
E62=(E60+E62*2)/3
G72 $PS1 E51 RE200 E60
E61=E60
G72 $PS1 E51 RE200 E60
E61=(E60+E61)/2
G72 $PS1 E51 E60
E61=(E60+E61*2)/3
#SN(E16).BL=1
E63=(E62-E61)/2+E61
$PS1 E63 
;!!!ПРЕДЛОЖЕНИЕ!!!
;вычисленные координаты центра кольца записать в файл начальных точек
;в начальную точку 98
;
;<блок кадров для записи координаты цента кольца в начальную точку №98>
E67=0
E68=0
(GTA,X,4,E19)
(GOA,E19,$INAX1,E67)
(GOA,E19,$INAX2,E68)
E67=NEG(E67)
E68=NEG(E68)
(RQO,E19,$INAX1 E67)
(RQO,E19,$INAX2 E68)
(RQO,E19,$INAX1 E63)
(RQO,E19,$INAX2 E66)
;
;ВРЕМЕННО (до согласования с заинтерисованными сторонами ) ПРИНЯТЬ К ИСПОЛНЕНИЮ СЛЕДУЮЩИЕ ДАННЫЕ:
;начальную точку 98 зарезервировать для координат центра кольца на столе
;начальную точку 99 зарезервировать для координат центра шайбы на столе (измерение K и L инстр.) 
;======================================================
;ЧАСТЬ №2
;Вычисление RTA,RTO и радиуса шарика 
;часть выполняется после выполнения ЧАСТЬ №1 и при начальной установки P=0 (неориентируемый датчик)
"P"
;Рекомендация. Записать кадр (UAO,98) -активации координты начала отсчета в центре кольца
(UAO,E19)
;(GTA,X,1,E63)
;(GTA,Y,1,E66)
(GOA,E19,$INAX1,E63)
(GOA,E19,$INAX2,E66)
;включение безопасности датчика касания для его перемещения в точку начала измерения
#SN(E16).BL=1
;цент кольца
G0 $PS1 $PS2
;выключение безопасности датчика касания для начала измерения
#SN(E16).BL=0
;запуск цикла измерения RTA,RTO,радиуса шарика
G73 rE40 E90
;включение безопасности датчика касания для его перемещения в точку начала измерения
#SN(E16).BL=1
;рассчеты 
;Рекомендация проверить расчеты, т.к. они станут неактуальными, если будут выполнены предыдущие замечания
E81=(PL2-E92*2)*2
E82=E63-E90
E83=E66-E91
RTA=E82
RTO=E83
E92=E92*2
;!!!E72 -для чего ???!!!
E72=(E61-E62)/2
;!!!E80 -для чего ???!!!
E80=(E40-E90*2)*2
;открыть видеостраницу #8 для вывода результатов расчетов
(SCR,ON)
;Рекомендация - добавить комментарии для вывода на экран
(DEF,21, 3,3,"Калибровка измерительного щупа",A49)
(DEF,1, 5,3,"X+",A16)
(DEF,2, 5,8,E62,6,A16)
(DEF,3, 6,3,"X-",A16)
(DEF,4, 6,8,E61,6,A16)
(DEF,5, 7,3,"X*",A16)
(DEF,6, 7,8,E63,6,A16)
(DEF,7, 8,3,"Y+",A16)
(DEF,8, 8,8,E64,6,A16)
(DEF,9, 9,3,"Y-",A16)
(DEF,10, 9,8,E65,6,A16)
(DEF,11, 10,3,"Y*",A16)
(DEF,12, 10,8,E66,6,A16)
(DEF,13, 11,3,"D",A16)
(DEF,14, 11,8,E92,6,A16)
(DEF,15, 12,3,"r",A16)
(DEF,16, 12,8,E81,6,A16)
(DEF,17, 13,3,"RTA",A16)
(DEF,18, 13,8,RTA,6,A16)
(DEF,19, 14,3,"RTO",A16)
(DEF,20, 14,8,RTO,6,A16)
;запись диаметра шарика в корректор с K
(RQP,E10,E11,KE81)
(DEF,110,16,10,"Для продолжения нажмите ПУСК",A12)
;технологический останов для просмотра результов расчета
M0
;закрыть видеостраницу #8
(SCR,OFF)
(BNC,END2)
"END"
(DIS,"Ошибка конфигурации осей")
"END2"
