;========================================
;K01 - Цикл измерения нового инструмента
;========================================
;
SYVAR185.15CH="Версия    1.02"
;
;Стилус (ширина стороны)
E128=20
;
;==Условия===============================
G0 G97 G94 G40
E600=0
E601=0
E602=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
;=========================================
;8&Axis& &1&0&                  
;=====Начальные условия===================
;Orient 8;1;2;3;4
E11=PL2
;Z0
E125=PL3
;R0
E135=PL4
;XL
E130=PL5
;ZL
E120=PL6
;Xz
E126=PL7
;Zx
E127=PL8
;Xmaxi
E141=PL9
;Zmaxi
E142=PL10
;A
$PS10=$PS1
;Ncor
;E13=$PS11
;
;===Имя осей===================
$PS1=$INAX1
$PS2=$INAX2
;
; Определение диаметральности оси абсцисс
(GTA,$INAX2,111,E1)
; продольная ось не может быть диаметральной
(BEQ,E1,1,END1)
(GTA,$INAX1,111,E1)
; ось диаметральная E36=2, иначе E36=1
E36=2
(BEQ,E1,1,DIAM)
E36=1
"DIAM"
;
;=====
; ПРОВЕРКА:
; начальная точка должна быть одна и та же
; для осей $INAX1 и $INAX2, иначе ВЫХОД#2
(GTA,$INAX1,4,E14)
(GTA,$INAX2,4,E17)
(BNE,E14,E17,END2)
;
;========= Подготовка номера инструмента и корректора ===========
E13=0
; чтение номера активного инструмента в E12
; чтение номера активного корректора  в E13
(TRD,E12,E13)
;=====
; ПРОВЕРКА: Новый инструмент должен быть задан БЕЗ корректора
(BNE,E13,0,END3)
;=====
; ПРОВЕРКА: Инструмент должен быть задан до цикла K01
(BEQ,E12,0,END4)
;
;=====
; УСЛОВИЕ: НОВЫЙ ИНСТРУМЕНТ ДОЛЖЕН БЫТЬ ЗАДАН БЕЗ НОМЕРа КОРРЕКТОРА
;
; Формат кадра вызова НОВОГО инструмента в цикле K01:
; TxxxxM6, где: xxxx - номер инструмента.
; Пример: T4M6
;
; присвоение номеру корректора значения PL11 из кадра (K01...)
E13=PL11
;
; ====Обнуление длины инструмента в файле корректоров по оси измерения====
; структура файла корректоров с контролем износа (без 3D графики)
(DER,5,E18,SYVAR11.CH,E131,SYVAR12.CH,E132,SYVAR13.CH,E133,SYVAR14.CH,E17,SYVAR15.CH,E134,SYVAR16.CH,E141,SYVAR17.CH,E136,SYVAR18.CH,E142)
ERR=1
(OPN,1,KARCOR/MP0,W)
ERR=0
(RED,1,5,E13)
(DIS,SYVAR11.CH)
(DIS,SYVAR12.CH)
(DIS,E131)
(DIS,E132)
;
(BNE,$PS10,$INAX1,O)
(BEQ,SYVAR11.CH,$INAX1,A1)
(BEQ,SYVAR11.CH,$INAX2,A2)
(BNC,ERR)
;
"A1"
E131=-E131*E36
(RQP,E12,E13,$PS1 E131)
(BNC,ENDA)
;
"A2"
E131=-E131
(RQP,E12,E13,$PS2 E131)
"ENDA"
;
(BNC,ENDKOR)
;
"O"
(BEQ,SYVAR12.CH,$PS1,O1)
(BEQ,SYVAR12.CH,$PS2,O2)
(BNC,ERR)
;
"O1"
E132=-E132*E36
(RQP,E12,E13,$PS1 E132)
(BNC,ENDO)
;
"O2"
E132=-E132
(RQP,E12,E13,$PS2 E132)
"ENDO"
"ENDKOR"
(CLO,1)
;
; ===========
; 
; ====Установка точки отсчета осей X,Z в середине верхней кромки стилуса===
; координаты нуля точки отсчета осей X,Z должны быть записаны
; в начальной точке №99
;         ^
;         | DPMA
; |--*--| *
; |  0  | | DPMS
; |     | V
; |-----|
E10=99
(UAO,E10)
;
; ===========
;Подготовительные параметры DPT для 1-ого быстрого (грубого) измерения
;
 ;DPMS дистанция безопасности                 (PGCFIL *5 DPM)
E105=DPMS
 ;DPMF подача измерения                       (PGCFIL *5 DPM)
E25=DPMF
 ;DPMA дистанция установки скорости измерения (PGCFIL *5 DPM)
 ;E124 - дистанция перехода на скорость измерения (откладывается от точки измерения)
E124=E120+DPMA
;
 ;скорость быстрого измерения G74
E25=500
(DPT,E124,E105,E25)
;
;Расчет точки начала измерения вдоль оси  Z
;E123=ZL+Z0
E123=E120+E125
;
             ;Включить контроль безопасности щупа
             SN(E16).BL=1
             (DLY,1.00)
Z E123
;====================================================
;Расточной O1;O8
(BEQ,E11,8,RAST)
(BEQ,E11,1,RAST)
;Токарный
(BEQ,E11,4,TOKAR)
(BEQ,E11,3,TOKAR)
(BEQ,E11,2,TOKAR)
;
"RAST"
E9=-1
(BNC,NEXT)
"TOKAR"
E9=1
"NEXT"
;========
;переход на измерение вдоль оси X
(BEQ,$PS10,$PS1,XXX)
;========
;иначе "ZZZ"
;
;G0XE126 <СДВИГ НИЖНЕГО КРАЯ ИНСТР НА ЦЕНТР СТИЛУСА>
E126=E126*E9
X E126
             ;Выключить безопасность щупа
             SN(E16).BL=0
             (DLY,1.00)
;
;Грубое (быстрое) измерение вдоль оси Z
G74 Z0 RE105 E600
;
;Точное измерение вдоль оси Z
;скорость точного измерения G74
E25=120
(DPT,E123,E105,E25)
;
G74 Z0 R E105 E600
E602=E600
;
G74 Z0 R E105 E600
E602=E602+E600
;
G74 Z0 R E105 E600
E602=E602+E600
;
E602=E602/3
E602=-E602
(DIS,E602)
;
;====Запись длины инструмента вдоль оси Z в файле корректоров====
(RQP,E12,E12,ZE602)
;для Z сброс значения текущего износа и установка значения макс.износа E142
(RQR,E12,E12,Z,c0,m E142)
;====================
             ;Включить безопасность щупа
             SN(E16).BL=1
             (DLY,1.00)
;====================
      ;Возврат оси Z в точку начала измерения
Z E123
;====================
             ;Выключить безопасность щупа
             SN(E16).BL=0
             (DLY,1.00)
;
(BNC,ENDERR)
;
;====================
"XXX"
;====================
;координата точки начала измерения вдоль оси X
E131=(E130+E128/2+DPMA)*E36*E9
X E131
;
;координата точки начала измерения вдоль оси Z
E132=E127-E128/2
Z E132
             ;Выключить безопасность щупа
             SN(E16).BL=0
             (DLY,1.00)
;
;Грубое (быстрое) измерение вдоль оси X
E128=E128*E9
G74 X E128 R E105 E600
;
;Точное измерение вдоль оси X
;скорость 3-хкратного точного измерения G74
E25=120
(DPT,E123,E105,E25)
;
G74 X E128 R E105 E600
E601=E600
;
G74 X E128 R E105 E600
E601=E601+E600
;
G74 X E128 R E105 E600
E601=E601+E600
;
E601=E601/3
E601=-E601
(DIS,E601)
             ;Включить безопасность щупа
             SN(E16).BL=1
             (DLY,1.00)
      ;Возврат оси X в точку начала измерения
X E131
;
      ;Возврат оси Z в точку начала измерения
Z E123
             ;Выключить безопасность щупа
             SN(E16).BL=0
             (DLY,1.00)
;
;====Запись длины инструмента вдоль оси X в файле корректоров====
(RQP, E12, E12, X E601)
;сброс значения текущего износа вдоль оси X и установка значения макс.износа E141
(RQR, E12, E12, X, c0, m E141)
;====================
;
(BNC,ENDERR)
;====================
;
"END1"
;ВЫХОД#1
(DIS,"Продольная не может б. диам-ной")
(BNC,ENDERR)
;
"END2"
;ВЫХОД#2
(DIS,"НТ д.б. одна для 2-х осей")
(BNC,ENDERR)
;
"END3"
;ВЫХОД#3
(DIS,"НОВЫЙ ИНСТ.д.б.задан БЕЗ КОРР-а")
(BNC,ENDERR)
;
"END4"
; ПРОВЕРКА: Инструмент должен быть задан до цикла K01
(DIS,"Не задан НОМЕР инструм.до цикла")
(BNC,ENDERR)
;
"ENDERR"
;
;=======Возврат DPM============================
;(DPT,DPMA,DPMS,DPMF)
E123=DPMA
E105=DPMS
E25=DPMF
(DPT,E123,E105,E25)
;
;=======Возврат ноля детали====================
(UAO,E14)
