 ;01.04.2021 KRAUTER G.
 ;========================================
 ;D04 - Цикл глубокого сверления
 ;========================================
 ;
 G0 G94 G97 G40 G90 G29

 ;==============Вычисление № процесса=============
(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"
  
;===================Начальные условия=====================
  
;Безопасное расстояние R1
 E101=PL1 
 ;Глубина обработки Z
 E102=PL2 
 ;Подача на врезание F
 E25=PL3 
 ;Глубина врезания I
 E104=PL4 
 ;Время выдержки вверху t1
 E105=PL5 
 ;Координата поверхности заготовки (абсолютная) O
 E106=PL6 
 ;2-ой размер безопасности R2
 E107=PL7 
 ;Время выдержки внизу t2
 E108=PL8 
 
 ;Уменьшение величины врезания d
 E111=PL9
 ;Минимальная глубина врезания J
 E112=PL10
 ;Глубина сверления до ломки стружки S
 E113=PL11
 ;Величина отвода при ломании стружки L
 E114=PL12
 ;Точка старта на глубине P
 E115=PL13
 ;Скорость перемещения в точку старта FP
 E26=PL14
 ;Скорость обратного хода
 E27=PL15
 
 
 ;====Координата сверления теперь задается вне цикла, а цикл запускается кодом (CCL)
 ;Координата отверстия по оси X
 ;E109=PL7 
 ;Координата отверстия по оси Y
 ;E110=PL8
 
  
  
  
  ;имя оси абсцисс
$PS1=$INAX1
;имя оси ординат
$PS2=$INAX2
;имя оси шпинделя
$PS3=$INAX3
  
;=============================================
;             РАСЧЕТЫ и ПЕРЕМЕЩЕНИЯ
;=============================================
 
 
 ;Проверка, что глубина одного врезания не больше глубины обработки.
 (BGT,E104,E102,ERRV)
 
 

  ;исходное значение Z и значение выхода после каждого врезания
  E300=E106+E101

  ;Переход на безопасную высоту 
  G$PS3E300

  
 ; ======== Точка начала сверления на глубине =====
  (BEQ,E115,0,P0)
      FE26 
       ;Расчет коорд. безопасного растояния над точкой P
      E301=E106-E115+E101
       ;Переход на без. расст. над P
      G01 $PS3E301
   "P0"
   




;========
;Переменные:
;E300 - координата безопасного расстояния R1.
;E200 - текущая координата врезания.
;E201 - текущий остаток резания.
;E202 - текущая безопасная высота.
;E205 - текущая глубина сверления до ломки стружки
;E206 - счетчик врезаний до ломки стружки
;E207 - счетчик врезаний

  FE25
    E201=E102-E104
    E200=E106-E115-E104
    E202=E200+E101
    E206=E113
    E207=E104
    E300=E106+E101
       ;Условие, если Глубина врезания равна Глубине обработки, то переходим на конец
 (BEQ,E104,E102,YES)
 
 "NO"
 ;Одно врезание
  E200=E106-E115-E104
  ;Врезание до ломки стружки
  E205=E106-E115-E113
  E206=E113
  (BEQ,E113,0,WOST)
  (BNC,NEXTS)

;Блок перехода на безопасное расстояние 
;над очередным врезанием на скорости быстрого хода  
E302=0
  "NEXTI"
      ;E206 приравнивается к одному врезанию до ломки стружки
  E206=E113
      ;переход на безопасное расстояние 
  G0$PS3E202
  
  M00
  (BEQ,E302,0,MIN)
      E200=E200+E104
      E104=E104-E111
      E200=E200-E104
  (BGE,E104,E112,MIN)
      E104=E112
  "MIN"
    E302=1
  (BEQ,E113,0,WOST)
  
  
  "NEXTS"
   
  E302=1
  ;подача резания
  FE25
  ;врезание до ломки стружки
  G1$PS3E205
  ;координата подъема при ломке наверх
  E205=E205+E114
  ;наверх
  F3000
  G1$PS3E205
  ;-//- вниз
  E205=E205-E114
  G1$PS3E205
  ;счетчик
  E206=E206+E113
  ;координата следующего врезания
  E205=E205-E113
  ;сравнение счетчика с одним врезанием 
  ;Если E206<E104, то переходим в начало ^^^
  (BLT,E206,E104,NEXTS)
  
  "WOST"
  ;На дно очередного врезания
  FE25
  G1$PS3E200
  ;безопасное расстояние E202 над новым врезанием
  E202=E200+E101
  E205=E200-E113
  E200=E200-E104
  (DLY,E108)
  ;На без. расстояние R1
  FE27
  G1$PS3E300
  (DLY,E105)
  E208=E102-E207
  E207=E207+E104
  
  ;Сравнение счетчика врезаний с общей глубиной обработки
  ;Если E207<E102,то переходим снова на обработку ^^^
  (BLT,E207,E102,NEXTI)


  "YES"

  E206=E113
  E200=E106-E115-E102
  E205=E106-E207+E104-E113
       E202=E106-E207+E104+E101
  ;E208 - Остаток врезания
  ;E208=E207-E104
  ;E208=E207
       E208=E102-E207+E104
  G0$PS3E202
  (BEQ,E113,0,WOS1)
  "NEXS"
;  M00
  
  FE25
  G1$PS3E205
  E205=E205+E114
  F3000
  G1$PS3E205
  E205=E205-E114
  G1$PS3E205
  E206=E206+E113
  E205=E205-E113
  (BLT,E206,E208,NEXS)
  
  "WOS1"
  ;На дно очередного врезания
  FE25
  G1$PS3E200
  (DLY,E108)
  ;На без. расстояние R1
  FE27
  G1$PS3E300
  

   ;ВЫХОД 
  (BEQ,E107,0,R1)
  
  ;"R2"
  ;расчет координаты выхода с учетом ВТОРОГО безопасного расстояния
  E301=E106+E107
   G0$PS3E301
  (BNC,ENDR)
  
  "R1"


 ;Ошибка =====================
  (BNC,ENDR)
 "ERRV"
 (DIS, " !ОШИБКА! Z1 > Zm.")
 "ENDR"
 ;============================
 
 
 
 
 ;================================================================
 ;Конец цикла           
                