하스 M109 대화형 사용자 입력 활용 완벽 가이드
하스 M109 INTERACTIVE USER INPUT
M109 M코드는 G코드 프로그램이 화면에 짧은 프롬프트(메시지)를 표시하고 사용자 입력을 대기하게 합니다. 500~599 범위의 매크로 변수를 P코드로 지정해야 합니다. 프로그램은 키보드에서 입력 가능한 모든 문자를 ASCII 10진수 값과 비교하여 확인할 수 있습니다 (G47 텍스트 인그레이빙에 ASCII 표 있음).
하스 기계에서 모든 오프셋 클리어하는 방법
M109 예제 프로그램
다음 샘플 프로그램은 사용자에게 예/아니오 질문을 하고, "Y" 또는 "N" 입력을 기다립니다. 다른 문자는 무시됩니다.
N1 #501= 0. (변수 클리어) N5 M109 P501 (Sleep 1 min?) IF [ #501 EQ 0. ] GOTO5 (키 입력 대기) IF [ #501 EQ 89. ] GOTO10 (Y) IF [ #501 EQ 78. ] GOTO20 (N) GOTO1 (계속 확인) N10 (Y 입력됨) M95 (00:01) GOTO30 N20 (N 입력됨) G04 P1. (1초 대기) N30 (정지) M30
다음 샘플 프로그램은 사용자에게 숫자 선택을 요청하고, 1,2,3,4,5 입력을 대기합니다. 다른 문자는 무시됩니다.
% O01234 (M109 Program) N1 #501= 0 (변수 #501 클리어) (변수 #501 확인 예정) (운영자는 다음 중 하나 입력) N5 M109 P501 (1,2,3,4,5) IF [ #501 EQ 0 ] GOTO5 (키보드 입력 대기 루프) (10진수 49-53이 1-5에 해당) IF [ #501 EQ 49 ] GOTO10 (1 입력 → N10) IF [ #501 EQ 50 ] GOTO20 (2 입력 → N20) IF [ #501 EQ 51 ] GOTO30 (3 입력 → N30) IF [ #501 EQ 52 ] GOTO40 (4 입력 → N40) IF [ #501 EQ 53 ] GOTO50 (5 입력 → N50) GOTO1 (입력 대기 루프 지속) N10 (1 입력 시 이 서브루틴 실행) (10분 슬립) #3006= 25 (사이클 스타트로 10분 슬립) M95 (00:10) GOTO100 N20 (2 입력 시) (프로그래밍된 메시지) #3006= 25 (프로그래밍된 메시지 사이클 스타트) GOTO100 N30 (3 입력 시) (서브프로그램 20 실행) #3006= 25 (사이클 스타트 프로그램 20 실행) G65 P20 (서브프로그램 20 호출) GOTO100 N40 (4 입력 시) (서브프로그램 22 실행) #3006= 25 (사이클 스타트 프로그램 22 실행) M98 P22 (서브프로그램 22 호출) GOTO100 N50 (5 입력 시) (프로그래밍된 메시지) #3006= 25 (리셋 또는 사이클 스타트로 전원 차단) #1106= 1 N100 M30 %
M109 핵심 포인트
| 항목 | 설명 |
| 대상 변수 | #500 ~ #599 (사용자 입력 전용 매크로 변수) |
| 입력 대기 | 문자 입력될 때까지 프로그램 정지 (블록 단위 정지 아님) |
| ASCII 비교 | 입력 문자의 10진수 ASCII 코드와 변수 값 비교 |
| 프롬프트 | M109 실행 시 화면에 메시지 표시 (컨트롤러 버전별 상이) |
| 실행 모드 | MEM/AUTO 모드에서만 작동, MDI에서는 무시될 수 있음 |
ASCII 코드 참조 (주요 문자)
| 문자 | ASCII 10진수 | 문자 | ASCII 10진수 |
| 0-9 | 48-57 | A-Z | 65-90 |
| a-z | 97-122 | Y | 89 |
| N | 78 | Enter | 13 (일부 버전) |
실무 활용 시나리오
- 작업자 확인: 중요 공정 전 "검사 완료? Y/N" 확인 후 진행
- 공정 분기: 부품 종류/가공 모드 선택 메뉴 (1-5번)
- 비상 중단: 이상 감지 시 "계속? Y/N" 으로 안전 확인
- 데이터 입력: 간단한 수치 입력 (공구 번호, 오프셋 값 등) - 단, 숫자만 가능
주의사항
- 입력 버퍼 비우기: 루프 시작 전 변수 0으로 클리어 필수 (#501=0)
- 무한 루프 방지: 타임아웃 로직 또는 최대 재시도 횟수 제한 권장
- 다국어/특수 문자: ASCII 범위 외 문자는 변수에 저장되지 않거나 예측 불가 값
- 원격 모니터링: DNC/네트워크 환경에서 M109 동작 방식 확인 필요
M109는 완전 자동화와 작업자 판단이 필요한 공정 사이를 연결하는 강력한 브리지입니다. 잘 설계된 프롬프트와 분기 로직으로 무인 가공 안정성 크게 향상 가능.