SECS GEM 장비 통신, 호스트와 장비가 말을 맞추는 규약

SECS GEM 장비 통신, 호스트와 장비가 말을 맞추는 규약

이삿짐 센터 현장에서는 팀장이 “3번 방 책장부터 포장하세요”라고 외치고, 인부는 “책장 포장 끝났습니다”라고 알려 줍니다. 그런데 팀마다 책장을 서가라고 부르고, 끝났다는 말을 반쯤 했다는 뜻으로 쓴다면 현장은 금방 엉킵니다.

반도체 팹에서 중앙 시스템과 수십 종의 장비가 마주한 상황이 이와 비슷합니다. 서로 용어와 보고 방식을 맞춰 둔 약속이 SECS GEM 장비 통신이고, 이 글에서는 그 약속이 어떤 층으로 이루어져 있는지 개념 수준에서 살펴봅니다.

이삿짐 현장은 눈치와 구두 설명으로 부족한 부분을 메우지만, 장비 통신은 사람이 끼어들 틈 없이 정해진 형식으로만 오갑니다. 그래서 형식과 응답 시간까지 표준으로 못 박아 두는 점이 비유와 다릅니다.

SECS GEM 장비 통신이 필요한 이유, 장비마다 다른 말투

팹에는 노광, 식각, 증착, 세정, 계측처럼 역할이 다른 장비가 수십 종 놓이고, 같은 역할의 장비도 제조사가 서로 다릅니다. 이 장비들을 묶어 로트의 이동과 공정 진행을 관리하는 소프트웨어가 MES(Manufacturing Execution System, 제조 실행 시스템)입니다.

MES는 장비에 “이 로트를 이 레시피로 처리하라”고 지시하고, 처리가 끝나면 결과와 장비 상태를 되받아야 합니다. 장비마다 통신 방식이 제각각이라면 새 장비를 들일 때마다 전용 연결 프로그램을 따로 만들어야 하고, 그만큼 비용과 오류가 늘어납니다.

그래서 업계가 공통 규약을 정했고, 이것이 SEMI(반도체 장비와 재료 분야의 국제 표준화 단체)가 만든 SECS(SEMI Equipment Communications Standard, SEMI 장비 통신 표준)와 GEM(Generic Equipment Model, 범용 장비 모델)입니다. 통신 쪽에서 호스트라 부르는 상대는 흔히 MES이고, 이 글에서도 호스트와 MES를 같은 뜻으로 씁니다.

세 겹으로 나뉜 표준, 전송과 메시지와 동작

SECS/GEM은 하나의 문서가 아니라 서로 다른 일을 맡은 여러 표준의 묶음입니다. 크게 보면 데이터를 실어 나르는 전송, 데이터의 모양을 정하는 메시지, 장비가 어떻게 행동해야 하는지를 정하는 동작으로 나눌 수 있습니다.

세 겹의 역할 분담

  • 전송 계층: SECS-I(직렬 통신용 메시지 전송 규약, SEMI E4)은 RS-232 같은 직렬 회선으로, HSMS(High-Speed SECS Message Services, 고속 SECS 메시지 서비스, SEMI E37)는 TCP/IP 네트워크로 메시지를 실어 나릅니다.
  • 메시지 계층: SECS-II(메시지 내용 규약, SEMI E5)가 메시지의 분류와 데이터 항목의 형식을 정합니다.
  • 동작 계층: GEM(SEMI E30)이 장비가 반드시 가져야 할 상태, 이벤트 보고, 원격 제어 같은 행동 규칙을 정합니다.

이삿짐 현장에 빗대면 무전기가 전송, 팀이 합의한 용어집이 메시지, 현장 작업 매뉴얼이 동작에 해당합니다. 무전기를 낡은 것에서 새것으로 바꿔도 용어집과 매뉴얼은 그대로 쓸 수 있죠.

실제로 직렬 회선을 쓰던 SECS-I 자리를 이더넷 환경에서는 HSMS가 대신하는 경우가 많습니다. 두 전송 방식 모두 같은 SECS-II 메시지를 싣는다는 점이 핵심이고, 그래서 연결 방식이 달라져도 메시지 해석은 바뀌지 않습니다.

SECS-II 메시지 구조, 분류와 동작 번호가 정하는 질문과 응답

SECS-II 메시지는 Stream(스트림, 메시지 분류 번호)과 Function(펑션, 동작 번호)의 짝으로 이름이 붙습니다. 대표적인 예가 S1F1처럼 S와 F 뒤에 숫자를 쓰는 표기이고, 스트림 1은 장비 상태에 관한 메시지들을 모아 둔 분류입니다.

펑션 번호가 홀수이면 상대에게 무언가를 요청하는 메시지이고, 짝수이면 그 요청에 대한 응답입니다. 요청마다 짝이 되는 응답이 정해져 있어서, 보낸 쪽은 어떤 응답이 와야 하는지 알고 기다릴 수 있습니다.

메시지 예시, 연결 확인S1F1 (호스트 → 장비): 지금 살아 있느냐는 확인 요청이며 보낼 데이터는 없습니다.

S1F2 (장비 → 호스트): 응답으로 장비 모델 이름과 소프트웨어 버전 같은 기본 정보를 돌려줍니다.

메시지 안의 데이터는 리스트(여러 항목을 묶은 목록)와 항목으로 이루어진 나무 구조이고, 항목마다 문자열인지 정수인지 같은 형식이 정해져 있습니다. 호스트가 “온도가 얼마냐”고 물을 때도 이름 대신 변수 번호(ID)로 지정하는 식이라, 사람이 읽는 말보다 기계가 틀리지 않게 읽는 쪽에 맞춰 설계되어 있습니다.

요청을 보낸 뒤 응답이 정해진 시간 안에 오지 않으면 시간 초과로 처리하는 규칙도 표준에 들어 있습니다. 이 제한 시간이 있어서 연결이 끊긴 장비를 기다리며 시스템 전체가 멈추는 일을 막을 수 있습니다.

GEM이 정하는 장비의 행동, 상태와 이벤트와 원격 제어

SECS-II는 메시지의 문법만 정할 뿐 장비가 무엇을 해야 하는지는 말하지 않습니다. 그 빈자리를 채우는 것이 GEM이고, 장비가 갖춰야 할 필수 기능과 선택 기능을 행동 모델로 정리해 둡니다.

제어 상태, 누가 장비를 움직이는가

GEM은 장비가 호스트와 어떤 관계에 있는지를 제어 상태(Control State)로 나눕니다. 크게 호스트와 연결되지 않은 오프라인, 작업자가 현장에서 직접 조작하는 온라인 로컬, 호스트가 원격 명령으로 움직이는 온라인 리모트가 있습니다.

자동 생산 중인 팹에서는 장비가 온라인 리모트일 때 MES의 시작 명령을 받습니다. 작업자가 점검하려고 로컬로 바꾸면 호스트의 명령은 제한되고, 장비는 상태 변화만 보고하게 되어 누가 장비를 쥐고 있는지가 분명해집니다.

이벤트와 경보, 장비가 먼저 말을 거는 방식

호스트가 장비 상태를 알려면 계속 물어보는 방법도 있지만 비효율적입니다. 그래서 GEM은 장비가 특정 사건이 생길 때 먼저 알리는 수집 이벤트(Collection Event) 방식을 갖추고 있습니다.

호스트는 미리 “웨이퍼 처리 시작이라는 이벤트가 생기면 이 변수들의 값을 묶어 보내라”고 보고 내용을 정의해 둡니다. 이상이 생겼을 때는 경보(Alarm) 메시지가 올라오고, 호스트는 이를 보고 해당 로트를 보류할지 판단합니다.

이 밖에 호스트가 장비 상수를 바꾸거나 레시피(공정 조건 묶음)를 내려보내는 기능도 GEM이 다루는 범위에 들어갑니다. 300 mm 팹에서는 이 위에 웨이퍼 캐리어와 작업 관리를 다루는 표준이 더해져 GEM300이라는 이름으로 묶이기도 합니다.

호스트와 장비가 주고받는 하루의 흐름

개념을 시간 순서로 이으면 호스트와 장비의 대화는 아래와 같은 흐름이 됩니다. 장비와 설정에 따라 세부 단계는 다를 수 있어서 일반적인 순서로만 보세요.

호스트와 장비의 통신 흐름

  1. 연결 수립: 호스트와 장비가 TCP/IP로 연결하고 HSMS 세션을 맺습니다. 이어서 통신을 확립하는 요청과 응답을 주고받아 서로 사용할 수 있는 상태임을 확인합니다.
  2. 온라인 전환: 장비의 제어 상태를 온라인 리모트로 올려 호스트가 원격 명령을 보낼 수 있게 합니다.
  3. 보고 구성: 호스트가 어떤 이벤트가 생길 때 어떤 변수 값을 받을지 정의하고, 그 이벤트의 보고를 켭니다.
  4. 작업 지시: 호스트가 처리할 로트와 레시피를 지정하고 시작 명령을 보냅니다.
  5. 이벤트 보고: 장비는 처리 시작, 웨이퍼 이동, 처리 종료 같은 사건이 생길 때마다 정의된 값을 호스트에 올립니다.
  6. 경보 처리: 이상이 감지되면 장비가 경보를 올리고, 호스트는 해당 로트를 보류하거나 담당자에게 알립니다.
  7. 결과 기록: 처리 결과와 수집된 데이터가 MES에 이력으로 남아 다음 공정과 수율 분석에 쓰입니다.

연결이 오래 조용하면 한쪽이 끊어졌는지 알 수 없으므로, 일정 간격으로 연결 상태를 확인하는 메시지도 오갑니다. 끊어졌다 다시 붙으면 3번의 보고 구성부터 맞춰 보는 식으로 상태를 복구하는 설계가 흔합니다.

장비 통신 표준을 둘러싼 흔한 오해

첫째는 GEM은 통신 프로토콜 하나다라는 이해입니다. 전송과 메시지는 다른 표준이 맡고, GEM은 그 위에서 장비가 어떻게 행동해야 하는지를 정한 규칙이라는 점이 다릅니다.

둘째는 GEM을 지원하는 장비끼리는 데이터 이름까지 같다는 생각입니다. 표준은 상태 변수와 이벤트를 주고받는 방식을 정할 뿐, 장비 고유의 어떤 값을 몇 번 변수로 내보낼지는 제조사가 정하는 영역이 큽니다.

그래서 SECS GEM 장비 통신으로 연결했더라도 MES 쪽에서는 장비 종류별로 변수와 이벤트의 의미를 확인해 맞추는 작업이 남습니다. 셋째로 HSMS와 SECS-I은 서로 다른 메시지 언어다라는 오해도 있는데, 둘 다 같은 SECS-II 메시지를 싣는 전송 방식입니다.

SECS-I과 HSMS와 SECS-II와 GEM 비교 표

구분SECS-IHSMSSECS-IIGEM
맡은 층전송전송메시지동작
정하는 것직렬 회선으로 메시지를 주고받는 방법TCP/IP 위에서 연결을 맺고 메시지를 전달하는 방법메시지 분류와 데이터 항목의 형식장비의 상태와 이벤트 보고와 원격 명령에 대한 행동
연결 매체RS-232 같은 직렬 연결이더넷 같은 네트워크전송 방식과 무관전송 방식과 무관
관련 SEMI 표준E4E37E5E30
놓치기 쉬운 점속도와 배선 제약이 큼SECS-II 메시지를 그대로 싣는 전송 방식메시지 문법일 뿐 장비의 행동은 정하지 않음변수 번호와 의미는 장비별로 확인이 필요함

핵심 정리

SECS GEM 장비 통신은 전송과 메시지, 동작이라는 세 겹으로 호스트와 장비의 대화를 표준화한 구조입니다. HSMS나 SECS-I이 메시지를 실어 나르고, SECS-II가 메시지의 문법을 정하며, GEM이 상태와 이벤트와 원격 제어라는 행동을 정합니다.

이삿짐 센터의 무전기와 용어집, 작업 매뉴얼이 따로 있듯이 이 세 층은 따로 바꿀 수 있습니다. 다만 표준이 같은 말을 쓰게 해 줄 뿐 장비마다 변수의 의미를 맞추는 일은 남으므로, 새 장비를 연결할 때는 보고 이벤트와 변수의 목록부터 확인하는 습관을 들이세요.

면접 대비 질문

면접 대비 질문팹에서 MES가 서로 다른 제조사의 장비를 같은 방식으로 제어하고 데이터를 받을 수 있는 이유를 SECS와 GEM의 구조로 설명해 보세요.

[답변 포인트] 장비마다 통신 방식이 다르면 연결 프로그램을 개별로 만들어야 하므로 업계 공통 규약이 필요하다는 점에서 출발합니다. 전송은 SECS-I이나 TCP/IP 기반 HSMS가, 메시지 문법은 SECS-II가, 장비의 행동 규칙은 GEM이 맡는 세 겹 구조라고 정리합니다. GEM의 제어 상태와 이벤트 보고, 경보, 원격 명령 덕분에 MES가 폴링에 의존하지 않고 사건 기반으로 로트와 장비를 관리할 수 있다고 설명합니다. 다만 변수 번호와 의미는 장비별로 다를 수 있어 인터페이스 사양 확인과 시험 연결이 필요하다는 한계도 덧붙이면 좋습니다.