Digital Transformation

엣지 컴퓨팅을 활용한 G코드 자동 전송 및 파이썬(Python) 제어 예제

헬로제이콥 2026. 5. 9. 14:40

G코드를 기계로 전달하는 방식은 크게 '직접 꽂기'와 '연결해서 쏘기'로 나뉩니다.  USB(오프라인), TCP, RS-232(유선 통신) 외에도 현장에서 자주 쓰이는 방식들을 아주 쉽게 정리해 보겠습니다.


1. 전송 방식의 종류와 비유

① SD 카드 / CF 카드 (오프라인 수동 방식)

가장 원시적이지만 가장 확실한 방법입니다.

  • 비유: USB와 비슷하지만, 공장에서는 먼지와 진동에 강한 SD/CF 카드를 기계 전용 슬롯에 꽂아 바로 실행합니다.
  • 장점: 통신 장애로 인한 끊김이 없어 대형 가공 시 안전합니다.

② DNC (Direct Numerical Control) 전송

컴퓨터와 기계를 연결해 두고, G코드를 '스트리밍' 하듯 한 줄씩 실시간으로 보내는 방식입니다.

  • 비유: 유튜브 영상을 보듯, 기계 메모리가 작아도 PC에서 계속 데이터를 밀어 넣어 가공을 이어갑니다.

③ FTP (File Transfer Protocol) 전송

최근 스마트 팩토리에서 많이 쓰이는 방식으로, 기계를 하나의 '파일 서버'처럼 취급합니다.

  • 비유: 구글 드라이브나 네이버 박스에 파일을 올리듯, 사무실에서 작업한 G코드를 공장에 있는 기계 폴더로 무선 전송합니다.

2. 구체적인 예시와 원리

예시 상황: 엣지 컴퓨터에서 CNC로 파일 전송

현장에서는 엣지 컴퓨터가 중앙 서버에서 파일을 받아 CNC 제어기(화낙, 미쓰비시 등)로 넘겨주는 역할을 합니다. 이때 주로 사용하는 것이 FTP공유 폴더(SMB) 방식입니다.


3. 간단한 전송 코드 예제 (Python 기반)

엣지 컴퓨터에서 기계(파일 서버 기능이 있는 CNC)로 G코드 파일을 전송하는 FTP 방식의 간단한 파이썬 코드입니다.

Python
 
import ftplib

def send_gcode_via_ftp(host, filename, local_path):
    try:
        # 1. CNC 기계의 IP 주소로 FTP 접속
        ftp = ftplib.FTP(host)
        ftp.login(user='cnc_user', passwd='password123')
        
        # 2. G코드가 저장될 기계 내 폴더로 이동
        ftp.cwd('/DATA/USER/GCODE/')
        
        # 3. 파일 전송 (Binary 모드)
        with open(local_path, 'rb') as f:
            ftp.storbinary(f'STOR {filename}', f)
            
        ftp.quit()
        print(f"성공: {filename} 파일이 CNC로 전송되었습니다.")
        
    except Exception as e:
        print(f"오류 발생: {e}")

# 사용 예시
# send_gcode_via_ftp('192.168.0.100', 'PART_A.nc', './outputs/PART_A.nc')

요약 및 추가 팁

  • 작은 파일/단순 가공: USB나 SD 카드가 가장 편합니다.
  • 대용량/정밀 가공: DNC 스트리밍 방식이 유리합니다.
  • 스마트 팩토리/자동화: FTPAPI 기반의 무선 전송 방식을 사용하여 사무실과 현장을 데이터로 연결합니다.

현장의 엣지 컴퓨터는 이런 전송 과정을 자동화하고, 전송 중에 기계가 멈추지는 않는지 감시하는 '관리자' 역할을 수행하게 됩니다.