고장난 도구를 교체한 후 사용자 정의 매크로가 구멍을 건너뛸 수 있음
일부 프로그래머는 사용자 정의 매크로를 사용하는 것을 꺼립니다. 왜냐하면 이러한 매크로는 복잡한 가공 작업의 중간에서 프로그램을 다시 시작하는 것을 더 어렵게 만들기 때문입니다. 이러한 우려는 종종 약간의 계획으로 극복할 수 있습니다. 실제로 사용자 정의 매크로를 사용하면 프로그램을 다시 시작하고 절삭 공구의 가공 작업 중간에서 실행하는 것이 더 쉬워집니다.
이 기사의 기술은 위스콘신주 카우쿠아나에 있는 Mid Valley Industries의 Chad Kluth에서 영감을 받았습니다. 나는 그가 볼트 원 구멍 가공 사용자 정의 매크로에서 다른 문제를 해결하는 것을 도왔습니다. 우리의 토론과 관련이 있기 때문에 여기에 포함시킵니다.
Kluth의 응용 분야에는 광업에서 사용되는 매우 크고 견고한 4140 강철 부품의 가공이 포함되었습니다. 그는 볼트 원형 패턴 주위에 직경이 각각 2인치인 최대 100개의 구멍을 6인치 깊이의 둥근 면/플랜지로 뚫어야 했습니다. 상상할 수 있듯이 공구 마모와 공구 파손은 큰 문제입니다. 새 인서트가 있는 드릴도 마모 없이 사이클을 끝까지 통과하지 못할 수 있으며 드릴이 마모되면 사이클에 90개의 구멍이 생길 수 있습니다. 설상가상으로 원자재에 단단한 포함이 있으면 언제든지 드릴이 파손될 수 있습니다.
Kluth는 드릴링, 표준 태핑, 리지드 태핑, 리밍 및 카운터보링을 포함하여 여러 종류의 구멍 가공 작업을 수행할 수 있는 범용 볼트 원 맞춤형 매크로를 사용합니다. 원래 문제는 단단한 태핑과 관련이 있었습니다. "범용" 사용자 지정 매크로인 M29 명령은 기계가 다른 작업을 수행하는 경우 단단한 탭핑을 무시해야 했습니다. 이 문제를 해결하기 위해 "빈" 지역 변수를 사용했습니다.
건너뛰는 구멍의 경우 호출 명령의 인수는 건너뛸 구멍의 수를 지정합니다. 예를 들어 드릴이 90
동안 마모되면 구멍, 사용자는 이 인수를 89로 설정해야 합니다. 기계가 구멍을 건너뛸지 여부를 지정하기 위해 고정 사이클 명령에서 K 단어(이전 FANUC CNC의 L 단어)를 사용했습니다. K가 0(K0)으로 설정되면 구멍을 건너뜁니다. K를 1(K1)로 설정하면 홀이 가공됩니다.
다음은 예제 호출 명령이 포함된 샘플 프로그램입니다.
- O0001
- N005 G90 S500 M03
- N010 G00 X0 Y0
- N015 G43 H01 Z0.1
- N020 G65 P9010 X0 Y0 Z0 C81.0 D6.0 R0.1 B12.0 A90.0 I100.0 F12.0 H89.0
- N025 G91 G28 Z0
- N030 M30
다음은 호출 명령에 있어야 하는 필수 인수입니다.
- (X =X 중심)
- (Y =Y 중심)
- (Z =Z 표면)
- (D =구멍 깊이)
- (C =사용 주기 — G81, G82, G83, G73 또는 G84)
- (R =Z 빠른 위치)
- (B =볼트 원의 반경)
- (A =시작 각도)
- (I =구멍 수)
- (F =이송 속도)
다음은 특별한 경우에만 필요한 인수입니다.
- (T =체류 시간을 지정하기 위해 G82에 필요)
- (Q =펙 깊이를 지정하기 위해 G73 또는 G83에 필요)
- (M29.0 =단단한 탭핑 시 필요)
- (Sxxxx.x =스핀들 RPM을 지정하기 위해 강성 탭핑이 필요한 경우)
- (H =건너뛸 구멍의 수를 지정하기 위해 구멍을 건너뛰는 경우 필요)
사용자 정의 매크로는 다음과 같습니다.
- O9010(범용 볼트 원 사용자 지정 매크로)
- #101=1(카운터 초기화)
- #102=#1 (현재 각도를 A로 초기화)
- #103=360 / #4(구멍 사이의 증분 각도 거리)
- #104=#26 + 0.1(급속 접근 평면)
- #105=#26 - #7(구멍의 Z 하단 위치)
- #32=1(스킵 홀 카운터 — 호출 명령에 H가 포함된 경우 사용)
- N1 IF[#101 GT #4] GOTO 99 (홀 가공 완료 시 테스트)
- #110=#24 + COS[#102] * #2 (현재 홀의 X 위치)
- #111=#25 + SIN[#102] * #2 (현재 홀의 Y 위치)
- #33=1(K 단어 값, 다음 홀이 가공될 경우 1로 설정)
- IF[#11EQ#0] GOTO5(호출 명령에 H가 포함되어 있는지 테스트)
- IF[#32GT#11] GOTO5(홀 건너뛰기가 완료되었는지 테스트)
- #33=0(다음 홀은 건너뜁니다)
- N5 M#13 S#19 (#13, #19가 비어 있으면 실행되지 않음)
- G#3 X#110 Y#111 R#104 Z#105 P#20 Q#17 F#9 K#33 (기계 전류 구멍)
- G80(취소 주기)
- #101=#101 + 1(단계 카운터)
- #102=#102 + #103(단계 현재 각도)
- #32=#32+1(스킵 홀 카운터)
- GOTO 1(테스트로 돌아가기)
- N99 M99(종료)
다음은 굵게 표시된 항목에 대한 안내입니다. 사용자 정의 매크로에서:
- M#13 S#19 – CNC 단어에 빈 지역 변수가 포함되어 있으면 CNC는 해당 단어를 무시합니다. 강성 태핑을 수행할 때 호출 명령에는 M29.0 및 Sxxxx.0이라는 단어가 포함되어야 합니다(S는 강성 태핑에 대한 RPM을 지정함). 다른 작업을 수행하는 경우 사용자는 M과 S를 호출 명령에서 제외해야 합니다.
- P#20 및 Q#17 – 사용자가 카운터 보링(G82)을 사용하는 경우 호출 명령에 T를 포함하여 드웰 시간을 지정해야 합니다. 펙 드릴링(G73 또는 G83) 시 사용자는 펙 깊이를 지정하기 위해 Q를 포함해야 합니다.
- K#33 – FANUC에는 고정 사이클에 대한 두 가지 프로그래밍 형식이 있습니다. 최신 FANUC CNC에서 K는 가공되는 구멍의 수를 지정합니다. 구형 FANUC CNC는 같은 목적으로 L을 사용합니다. 이 사용자 정의 매크로가 작동하지 않으면(호출 명령에 H가 포함되어 있어도 기계가 구멍을 건너뛰지 않음) 이 명령의 K#33을 L#33으로 변경합니다.