이 블로그는 원래 cimetrix.com에 게시되었습니다.
메시지 스풀링의 목적
가장 견고한 컴퓨터 네트워크조차 통신 장애를 경험합니다. 원인이 무엇이든, 사소한 장애도 중요한 업무 데이터의 상당한 손실을 초래할 수 있습니다. GEM은 메시지 스풀링 기능을 제공함으로써 이러한 데이터 손실을 완화합니다.
스풀링 정의
스풀링은 통신 장애 발생 시 호스트로 전송될 메시지를 대기열에 저장한 후 통신이 복구되면 해당 메시지를 전달할 수 있는 기능을 의미합니다. SEMI E30-0717 7.12.
스풀링의 이점
자동화 공장은 데이터 기반 운영을 합니다. 데이터를 추출하고 분석하여 의사결정을 내리며, 이 결정은 엔지니어링 및 관리 팀이 제품 수율을 높이고 불량률을 낮추기 위해 어떻게 대응할지 영향을 미칩니다.
이 데이터의 누락은 잘못된 판단이나 추측으로 이어질 수 있습니다. 스풀링은 이 데이터가 보존되고 복원되도록 보장하는 백업 시스템으로, 소중한 데이터 손실 위험을 줄여줍니다.
GEM 역량 요구사항
스풀링은 GEM의 필수 요건은 아닙니다. 그러나 이 추가 기능을 구현할 경우 반드시 적절하게 수행되어야 합니다. 준수하는 스풀링 인터페이스를 구현하기 위한 몇 가지 요구사항은 다음과 같습니다.
장비는 호스트가 장비 상수 "EnableSpooling"을 통해 스풀링을 활성화 및 비활성화할 수 있는 기능을 제공해야 합니다. 이 장비 상수는 장비에 의해 게시되며, 호스트는 원하는 상태를 선택할 수 있습니다.
스풀링이 구현될 경우, 모든 관련 기본 메시지에 대해 기능해야 하며 S2, F43/F44 트랜잭션을 통해 접근 가능해야 합니다. 이는 스트림 1 메시지를 제외하며, 해당 메시지가 "스풀 설정"을 시도할 경우 반드시 거부되어야 합니다.
비휘발성 저장 장치
해당 장비는 최소한 한 번의 장비 처리 주기 동안 스풀링된 모든 메시지를 저장할 수 있도록 충분한 비휘발성 저장 공간을 할당하는 역할을 담당합니다. NVS는 또한 모든 스풀링 관련 상태 변수를 보관합니다. 이 데이터에 NVS를 사용하는 이유는 정전 발생 시 데이터가 유지되도록 하기 위함입니다.
전력 손실
장비의 전원 손실 이전에 스풀링된 모든 메시지는 비휘발성 저장소에 지속 저장되므로 이용 가능합니다. 전원 손실 발생 시점에 스풀링이 활성화된 상태였다면, 모든 스풀링 컨텍스트가 NVS에서 복원됩니다. 여기에는 스풀링된 데이터와 NVS에 지속 저장된 모든 스풀링 관련 상태 변수가 포함됩니다.
스풀링 구현에 대한 호스트 책임
메시지 스풀링은 통신 손실 후 성공적인 복구를 위해 호스트의 참여가 필요합니다. 호스트가 이 상태 기계 전체에서 발생할 수 있는 모든 조건을 적절히 처리하도록 프로그래밍될 때까지 스풀링을 비활성화 상태로 유지하는 것이 이상적입니다. 부적절하게 관리되는 스풀링보다는 비활성화된 스풀링이 더 낫습니다.
통신이 재개되면 호스트는 스풀된 메시지 요청을 관리해야 합니다. 또한 호스트는 필요 시 장비에서 파일을 삭제할 수 있습니다.
결론
스풀링은 GEM의 기본 요구사항은 아니지만, 구현될 경우 반드시 적절하게 수행되어야 합니다. 스풀링이 활성화된 상태에서는 호스트 및 장비 소프트웨어 모두 GEM 준수를 보장할 책임이 있습니다. GEM 스풀링은 중요한 데이터의 잠재적 손실을 방지하며, 장비와 호스트 소프트웨어 모두 쉽게 준수할 수 있는 표준을 제공합니다.