PLC 인증을 위한 Coq 기반 SFC 도구
초록
본 논문은 IEC 61131‑3 표준의 Sequential Function Chart(SFC) 언어로 기술된 PLC 모델을 Coq 형식으로 변환하고, 자동으로 증명 스크립트를 생성해 인덕티브 불변식 형태의 안전성을 인증하는 CERTPLC 프레임워크를 제안한다.
상세 분석
CERTPLC는 PLC 설계 단계에서 SFC 그래프를 입력으로 받아 Coq 정의와 전이 시스템을 자동 생성한다. SFC는 단계(step), 전이(transition), 액션 블록(action block) 및 전역 변수 집합으로 구성되며, 논문에서는 이를 튜플 (S, S₀, T, A, F, V, ValV) 로 수학적으로 모델링한다. 각 전이는 활성 단계 집합 S_in, 가드 g, 후속 단계 집합 S_out 으로 정의되고, 가드는 메모리 함수 → Prop 형태로 Coq에서 표현된다. 실행 상태는 (m, a, s) 로, m은 변수→값 함수, a는 아직 실행되지 않은 액션 블록 집합, s는 현재 활성 단계 집합이다. 전이 규칙은 (1) 액션 블록 실행에 의해 메모리 업데이트와 a 집합 감소, (2) 가드가 참이고 모든 활성 단계의 액션이 소진된 경우 단계 활성화/비활성화를 수행한다. 이러한 전이 시스템은 Coq의 인덕티브 정의로 구현되어, 상태 도달 가능성 및 불변식 검증에 활용된다.
CERTPLC는 두 단계의 자동화 파이프라인을 제공한다. 첫 번째는 “representation generator” 로, SFC 모델을 파싱해 Coq 파일(모듈, 정의, 전이 규칙)로 변환한다. 생성된 파일은 인간이 읽을 수 있는 형태이며, 원본 그래프와 일치함을 전문가가 검증할 수 있다. 두 번째는 “proof generator” 로, 기본적인 보조 정리(예: 모든 도달 가능한 상태의 단계 집합은 S의 부분집합, 액션 블록은 정의된 집합 A에 한정)와 그 증명을 자동으로 생성한다. 사용자는 추가적인 안전 속성(예: 특정 변수는 언제나 0≤x≤100을 만족)만 Coq 문법으로 기술하면, 제공된 전술(tactic)과 자동 생성된 보조 정리를 이용해 전체 증명을 자동 혹은 반자동으로 완성할 수 있다.
신뢰할 수 있는 컴퓨팅 베이스(TCB)는 Coq 핵심 검증기와 자동 변환 프로그램뿐이다. 증명 스크립트 자체는 TCB에 포함되지 않으며, 증명에 오류가 있으면 검증기가 거부하지만, 잘못된 속성이 검증을 통과하는 일은 설계상 불가능하도록 보장한다(완전성은 보장되지 않음). 따라서 CERTPLC는 “sound but not necessarily complete”한 인증 메커니즘을 제공한다.
또한 논문은 IEC 61131‑3의 다른 언어(FBD, IL, LD)와의 연계 가능성을 논의한다. 현재는 FBD를 함수형 블록으로 모델링하고, 필요 시 사용자가 직접 Coq 정의를 추가하도록 설계되었다. 향후에는 자동 변환 파이프라인을 확장해 전체 IEC 61131‑3 스위트에 대한 통합 인증을 목표로 한다.
전체적인 기여는 (1) SFC에 대한 형식적 의미론을 Coq에 구현, (2) 자동 변환·증명 파이프라인을 제공, (3) 산업 현장의 PLC 설계 흐름에 맞춘 사용 시나리오와 도구 체인을 제시함으로써, 기존 모델 검사 도구가 가질 수 있는 신뢰성 문제를 고위 수준의 정리 검증기로 보완한다는 점에 있다.
댓글 및 학술 토론
Loading comments...
의견 남기기