[논문 리뷰] PLCverif: Status of a Formal Verification Tool for Programmable Logic Controller
PLCverif는 프로그래머블 로직 컨트롤러(PLC)를 위한 오픈소스 형식 검증 도구로, PLC 코드를 형식 모델로 자동 변환하고 CBMC 및 Theta와 같은 도구를 사용한 모델 체킹을 가능하게 한다. 주장 및 패턴 기반 요구사항 기술을 통해 사용자 친화성을 향상시키며, 시멘스 및 부분적인 슈나이더 PLC 언어를 지원하고, CFA 축소, 추상화 및 반례 분석을 통해 성능을 향상시켜 안전이 중요한 산업 제어 시스템 검증에 크게 기여한다.
Programmable Logic Controllers (PLC) are widely used for industrial automation including safety systems at CERN. The incorrect behaviour of the PLC control system logic can cause significant financial losses by damage of property or the environment or even injuries in some cases, therefore ensuring their correct behaviour is essential. While testing has been for many years the traditional way of validating the PLC control system logic, CERN developed a model checking platform to go one step further and formally verify PLC logic. This platform, called PLCverif, first released internally for CERN usage in 2019, is now available to anyone since September 2020 via an open source licence. In this paper, we will first give an overview of the PLCverif platform capabilities before focusing on the improvements done since 2019 such as the larger support coverage of the Siemens PLC programming languages, the better support of the C Bounded Model Checker backend (CBMC) and the process of releasing PLCverif as an open-source software.
연구 동기 및 목표
- 복잡한 PLC 논리의 검증에서 전통적 테스트의 한계를 해결하고자 하며, 특히 포괄적 테스트가 불가능한 안전이 중요한 시스템에 초점을 맞춘다.
- PLC 개발자가 형식 방법에 깊은 전문 지식이 없더라도 형식 검증을 쉽게 사용할 수 있도록, PLC 코드를 형식 모델로 자동 변환하는 것을 목적으로 한다.
- 모델 체킹에서 상태공간 폭발 문제를 추상화 및 최적화 기법을 통해 완화하고자 한다.
- 주장 및 일반 텍스트 패턴을 통한 요구사항 기술을 통해 사용자 친화성을 향상시키고, 실행 가능한 반례 분석을 제공함으로써 디버깅 용이성을 높이고자 한다.
- 확장 가능한 아키텍처를 갖춘 오픈소스 소프트웨어로 PLCverif를 공개함으로써 산업 자동화 분야에서 형식 검증의 광범위한 도입을 촉진하고자 한다.
제안 방법
- 구조적 텍스트, 래퍼 다이어그램(LAD), 기능 블록 다이어그램(FBD)로 작성된 PLC 프로그램을 제어 흐름 자동차(CFA)로 파싱하여, 형식적이고 제어 흐름 기반의 중간 표현을 생성한다.
- 요구사항 기술을 위한 두 가지 방법을 지원한다: 임bedded 주장(예: //#ASSERT)과 일시성 논리 번역을 위한 자리표시자 포함 패턴 기반 템플릿.
- 모델 단순화 및 상태공간 축소를 위해 CFA 축소 기법을 적용하여 검증 가능성을 향상시킨다.
- 외부 모델 체커(CBMC, Θ, ESBMC)와 통합하여 일시성 논리 성질의 형식 검증을 수행한다.
- 입력의 비결정적 모델링 및 함수 추상화와 같은 추상화 전략을 구현하여 대규모 PLC 시스템의 반복적 검증을 가능하게 한다.
- 성질 위반 원인으로 지목된 코드 위치를 강조하는 반례 분석을 제공하여 디버깅 용이성을 향상시킨다.
실험 결과
연구 질문
- RQ1형식 방법에 깊은 전문 지식이 없는 산업 개발자가 PLC 프로그램의 형식 검증을 어떻게 쉽게 활용할 수 있는가?
- RQ2검증의 타당성을 유지하면서도 PLC 모델 체킹에서 발생하는 상태공간 폭발 문제를 효과적으로 줄일 수 있는 기법은 무엇인가?
- RQ3저수준 논리 대신 자연어 패턴이나 주석을 사용하여 PLC 엔지니어가 요구사항을 어떻게 단순화할 수 있는가?
- RQ4최신 SMT 기반 모델 체커와의 통합, 추상화, 모델 축소를 통해 어떤 성능 향상이 달성될 수 있는가?
- RQ5모듈식 구조를 가진 대규모 PLC 응용 프로그램에 대해 반복적이고 구성적인 검증 전략이 효과적으로 적용될 수 있는가?
주요 결과
- PLCverif는 시멘스 PLC 프로그래밍 언어(SCL, LAD, FBD)를 성공적으로 지원하며, 슈나이더 일렉트릭의 부분적 지원도 추가하였다.
- 플랫폼은 MIT 라이선스 하에 오픈소스 소프트웨어로 공개되어 커뮤니티 기여와 더 넓은 산업적 도입을 가능하게 하였다.
- Java 11로의 업그레이드 및 최신 Θ 모델 체커와의 통합으로 호환성과 성능이 향상되었다.
- CFA 축소 및 추상화 기법 덕분에 검증 시간과 상태공간 크기가 크게 감소하여 이전에는 해결이 어려웠던 케이스의 검증이 가능해졌다.
- 반례 분석을 통해 관련 코드 섹션을 강조함으로써 디버깅 시간을 줄이고 위반 원인의 잠재적 근본 원인을 집중적으로 분석할 수 있게 되었다.
- ESBMC와 같은 SMT 기반 모델 체커 및 반복적 검증 전략에 대한 지속적인 연구가 대규모이고 복잡한 PLC 시스템으로의 확장 가능성을 보여주며 유망한 전망을 보이고 있다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.