ESBMC-GraphPLC: SMT 기반 모델 체킹을 이용한 그래픽 PLCopen XML 래더 다이어그램 프로그램의 형식 검증
요약
PLCopen XML의 그래픽 래더 다이어그램(LD) 형식을 검증하기 위한 ESBMC-GraphPLC를 제안합니다. DFS 기반 리졸버를 통해 그래픽 로직을 불리언 접점 결합으로 추출하여, 기존의 공허한 검증 문제를 해결하고 IEC 스캔 사이클 의미론을 준수합니다.
핵심 포인트
- 그래픽 LD 형식을 위한 DFS 기반 리졸버 개발
- IEC 스캔 사이클 의미론을 반영한 코일 처리 순서 정렬
- 기존 ESBMC 백엔드 변경 없이 그래픽-to-IR 변환 구현
- 실제 PLC 프로그램에 대한 완전한 GOTO IR 생성 및 검증 성공
PLCopen XML은 IEC 61131-3 래더 다이어그램 (Ladder Diagram, LD) 프로그램을 위해 두 가지 인코딩 형식을 정의합니다: <rung> 요소를 사용하는 텍스트 인코딩과, localId/refLocalId 연결의 유향 그래프 (directed graph)로 렁 (rung) 로직을 표현하는 그래픽 인코딩입니다. ESBMC-PLC는 텍스트 형식을 지원했으나, CONTROLLINO, Beremiz, OpenPLC Editor에서 내보낸 그래픽 형식을 빈 GOTO 중간 표현 (intermediate representation, IR)으로 파싱하여, 실질적인 검증 없이 공허한 검증 성공 (vacuous verification success)을 초래했습니다. 본 논문은 DFS 기반의 그래픽 LD 리졸버 (resolver)를 통해 이 격차를 해소하는 ESBMC-GraphPLC를 제시합니다. 이 리졸버는 leftPowerRail에서 각 코일 (coil)까지의 연결 그래프를 탐색하고, 렁 경로를 불리언 접점 결합 (Boolean contact conjunctions)으로 추출하며, 3단계 I/O 추론 스킴 (inference scheme)을 적용합니다. 코일을 rightPowerRail connectionPointIn 순서로 정렬함으로써 SET 코일이 RESET 코일보다 먼저 처리되도록 하여, IEC 스캔 사이클 (scan-cycle) 의미론과 일치시킵니다. 그래픽-to-IR 변환은 ESBMC 백엔드를 변경하지 않은 채 유지됩니다. CONTROLLINO/OpenPLC Editor에서 가져온 3개의 그래픽 LD 프로그램에 대한 검증 결과, 이전의 빈 IR과 달리 비결정론적 입력 (nondeterministic inputs) 및 렁 로직을 포함한 완전한 GOTO IR이 생성됨을 보여줍니다. 3개 프로그램 모두 k=2에서 70ms 이내에 SAFE 상태임을 검증했습니다. 11개의 텍스트 LD 벤치마크는 회귀 (regression) 없이 완전히 보존되었습니다. LD 콘텐츠가 없거나 지원되지 않는 타이머 의미론을 가진 두 개의 Beremiz 예시는 발견된 한계점으로 보고되었습니다. Artifact는 Zenodo (DantasCordeiro2026graphical, doi:10.5281/zenodo.20699856)에서 확인할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv cs.PL (Programming Languages)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기