Код: Выделить всё
Sub Main()
ZATS1= -130
XATS1= 280
XATS2= 290
ZATS2= -100
ZATS3= -120
OldTool = GetDro(24)
tool = GetSelectedTool()
NewTool = 0
tb1 = GetOEMDRO(1303)
If Tool = tb1 Then NewTool = 1
tb2 = GetOEMDRO(1304)
If Tool = tb2 Then NewTool = 2
tb3 = GetOEMDRO(1305)
If Tool = tb3 Then NewTool = 3
tb4 = GetOEMDRO(1306)
If Tool = tb4 Then NewTool = 4
tb5 = GetOEMDRO(1307)
If Tool = tb5 Then NewTool = 5
tb6 = GetOEMDRO(1308)
If Tool = tb6 Then NewTool = 6
tb7 = GetOEMDRO(1309)
If Tool = tb7 Then NewTool = 7
tb8 = GetOEMDRO(1310)
If Tool = tb8 Then NewTool = 8
tb9 = GetOEMDRO(1311)
If Tool = tb9 Then NewTool = 9
tb10 = GetOEMDRO(1312)
If Tool = tb10 Then NewTool = 10
tb11 = GetOEMDRO(1313)
If Tool = tb11 Then NewTool = 11
tb12 = GetOEMDRO(1314)
If Tool = tb12 Then NewTool = 12
tb13 = GetOEMDRO(1315)
If Tool = tb13 Then NewTool = 13
tb14 = GetOEMDRO(1316)
If Tool = tb14 Then NewTool = 14
tb15 = GetOEMDRO(1317)
If Tool = tb15 Then NewTool = 15
tb16 = GetOEMDRO(1318)
If Tool = tb16 Then NewTool = 16
While NewTool =0
MsgBox ("ATC ERROR: no tool")
DoButton(3)
Exit Sub
Wend
SetUserDRO (1200,NewTool)
ZCurrent = GetDro(2)
Code "G4 P0.3"
If NewTool = OldTool Then
Exit Sub
End If
Code "G0 G53 X" & XATS1
While IsMoving()
Wend
Code "G4 P0.1"
Code "G0 G53 Z" & ZATS1
While IsMoving()
Wend
Code "G4 P0.1"
ActivateSignal(OUTPUT10)
Code "G4 P5"
If GetOemLed (822) = 0 Then
MsgBox ("ATC ERROR: dor no open")
DoButton(3)
Exit Sub
Else
Code "G1 G53 F500 X" & XATS2
While IsMoving()
Wend
Code "G4 P0.2"
ActivateSignal(OUTPUT11)
Code "G4 P0.4"
If GetOemLed (821) = 0 Then
MsgBox ("ATC ERROR: tool grip is not open")
DoButton(3)
Exit Sub
Else
ActivateSignal(OUTPUT13)
Code "G4 P0.3"
Code "G1 G53 Z" & ZATS3
While IsMoving()
Wend
DeActivateSignal(OUTPUT13)
Code "G4 P0.3"
Code "G0 G53 Z" & ZATS2
While IsMoving()
Wend
Code "G4 P0.1"
Code "G0 G53 B" & NewTool
While IsMoving()
Wend
Code "G0 G53 Z" & ZATS3
While IsMoving()
Wend
Code "G4 P0.1"
ActivateSignal(OUTPUT13)
Code "G4 P0.3"
Code "G1 G53 Z" & ZATS1
While IsMoving()
Wend
DeActivateSignal(OUTPUT13)
Code "G4 P0.3"
DeActivateSignal(OUTPUT11)
Code "G4 P0.3"
If GetOemLed (821) <> 0 Then
MsgBox ("ATC ERROR: tool is not captured ")
DoButton(3)
Exit Sub
Else
Code "G0 G53 X" & XATS1
While IsMoving()
Wend
Code "G4 P0.3"
DeActivateSignal(OUTPUT10)
Code "G4 P5"
If GetOemLed (823) = 0 Then
MsgBox ("ATC ERROR: door not closed")
DoButton(3)
Exit Sub
Else
SetCurrentTool( Tool )
Code "G4 P0.1"
Code "G43 H " & Tool
Code "G1 F1500 Z" & ZCurrent
While IsMoving()
Wend
End If
End If
End If
End If
End Sub
Далее идет опрос АТС на наличие инструмента, проверка на равенство старого и нового инструмента, едем по Х к АТС, открываем дверь , опрашиваем датчик открытия двери, вставляем инструмент, отжимаем захват , проверяем датчик, дуем, двигаем чуть наверх, выключаем воздух, отьежжаем наверх, крутим барабан, едем вниз опять до промежуточной точки, дуем и задвигаем инструмент в жпиндель, отпускаем захват выключаем воздух, проверяем по датчику. Выдергиваем инструмент, закрываем дверь и чекам датчик закрытыя двери, они разные чтобы знать точно что дверь не застряла на середине. Если все четко то тогда назначаем компенсацию инструмента и отводим на безопасное расстояние , которое было выставлено камом перед сменой инструмента. Ну вот и все, потом если будут какие то проблемы, можно будет процесс еще как то усложнить, но нельзя забывать что автосмена тоже толжна быть быстрой и поэтому я первым делом удалил из постпроцессоров дебильные и ненужные переезды в G28 и кучу еще всякого хлама перед М6 , оставил только М5 и добавил отключение воздуха и масляного тумана.
А вот так уже выглядит допиленный скринсет мач3 И я наконец то начал фрезеровать запчасти. Первая сторона барабана готова