G65 모달 명령으로 커스텀 매크로 효율적 호출하기
커스텀 매크로 프로그래밍 경험이 있다면 G65 명령으로 커스텀 매크로 프로그램을 호출하는 방법을 알 겁니다. 메인 프로그램에 이 명령을 입력해 커스텀 매크로 프로그램 번호(P워드)와 일련의 문자 주소 인수(변수)를 커스텀 매크로에 전달합니다.
원형 포켓 가공 커스텀 매크로 호출 명령 예:
- N050 G65 P1000 X5.0 Y5.0 Z0 D0.5 R0.75 F5.0
X, Y: 포켓 중심 위치. Z: 포켓 가공할 표면. D: 깊이. R: 포켓 반경. F: 가공 이송률.
G65는 모달이 아닙니다. 다른 위치에 또 다른 원형 포켓 가공하려면 관련 인수 바꿔 또 다른 완전한 G65 명령 입력해야 합니다. 하지만 팬욱 CNC엔 모달로 커스텀 매크로 호출하는 두 G코드 G66, G66.1이 있습니다. 둘 중 하나 발효 후 G67로 해제.
G66
G66만으론 커스텀 매크로 호출 안 되고, 지정된 문자 주소 인수에 해당하는 로컬 변수만 할당. 다음 명령 예:
...
N050 G66 P1000 Z0 D0.5 R0.75 T0.5 F5.0
N055 G00 X5.0 Y5.0
N060 X10.0
N065 Y10.0
N070 X5.0
N075 G67
...
N050행: 로컬 변수 #26=Z값, #7=D값, #18=R값, #20=T값, #9=F값 설정. 하지만 이 행은 커스텀 매크로 O1000을 호출하지 않습니다.
다음 명령(N055)이 모션 명령(보통 G00/G01)이어야 CNC가 명령 위치로 이동한 후 커스텀 매크로 O1000 호출. G66 명령에서 할당된 로컬 변수 커스텀 매크로에서 사용 가능하나, G66 실행 후 업데이트 불가. G67 명령(N075) 만날 때까지 이후 모션 명령마다 위치 이동 후 매크로 호출 반복.
G66 사용 시 원형 포켓 커스텀 매크로 예:
O1001 (G66으로 호출되는 커스텀 매크로)
#32=#5001 (현재 X 절대 위치 획득)
Z[#26+0.1] (접근 위치로 이동)
G01 Z[#26-#7] F[#9/2] (포켓으로 플런지)
G02 X[#32+#18-#20/2] R[[#18-#20/2]/2] F#9
I-[#18-#20/2]
X#32 R[[##18-#20/2]/2]
G00 Z[#26+0.1]
M99
G66.1
G66.1도 G66처럼 커스텀 매크로 번호 지정과 문자 주소 인수값으로 로컬 변수 설정. G67로 모달 호출 해제 필요. 하지만 G66과 달리 G66.1은 커스텀 매크로를 호출합니다. 다음 명령 예:
...
N050 G66.1 P1001 X5.0 Y5.0 Z0 D0.5 R0.75 T0.5 F5.0
N055 X10.0
N060 Y10.0
N065 X5.0
N070 G67
...
이제 N050행이 첫 포켓 가공. 이후 모션 명령이 아닌 각 명령에서 CNC가 로컬 변수 재설정 후 커스텀 매크로 재호출. N055행에서 로컬 변수 #24(X) 값 10.0 됨. 프로그래머가 매크로 잘 짰다면 매크로 내 모션 명령이 이 위치로 공구 이동 후 포켓 생성 시작.
G66.1이 G66보다 나은 점: G66.1과 G67 사이 어떤 명령에서든 문자 주소 인수 변경 가능. 예: N060 가공 포켓 깊이가 다르면 N060에 D 주소 포함.
G66.1용 커스텀 매크로 작성은 G66보다 더 복잡. 매크로 끝 M99 명령 시 모든 로컬 변수 값이 비워지므로, 전원 끄기 전까지 유지되는 공통 변수에 이 값들 저장해야 함.
G66.1 사용 커스텀 매크로 프로그램 예:
O1001 (G66.1로 호출되는 커스텀 매크로)
(호출 명령에 포함된 인수 값 변경)
IF [#24 NE #0] THEN #100 = #24
IF [#25 NE #0] THEN #101 = #25
IF [#26 NE #0] THEN #102 = #26
IF [#7 NE #0] THEN #103 = #7
IF [#18 NE #0] THEN #104 = #18
IF [#20 NE #0] THEN #105 = #20
IF [#9 NE #0] THEN #106 = #9
G00 X#100 Y#101 (포켓 중심으로 이동)
Z[#102+0.1] (접근 위치로 이동)
G01 Z[#102-#103] F[#106/2] (포켓으로 플런지)
G02 X[#100+#104-#105/2] R[[#104-#105/2]/2] F#106
I-[#104-#105/2]
X#100 R[[#104-#105/2]/2]
G00 Z[#102+0.1]
M99
어느 커스텀 매크로 명령이 나은가? G66 vs G66.1
더 많은 프로그래밍 작업 필요하지만 G66.1이 G66보다 유연. 프로그래머가 G66.1과 G67 사이 어떤 명령에서든 인수 변경 가능. 예: 포켓 X/Y 위치, 반경, 깊이, Z 표면 위치, 이송률. 이 의미에서 G66.1 호출 커스텀 매크로는 G81 같은 홀 가공 캔드 사이클과 거의 동일하게 동작.
반면 초기 인수 세트 지정한 후 변경 필요 없을 거라 확신하면 G66이 더 적합. G66이 훨씬 쓰기 쉬우니까.