함수 블록 다이어그램으로 구현된 PLC 프로그램에 대한 정형 검증 기법

A Formal Verification Technique for PLC Programs Implemented with Function Block Diagrams

  • 지은경 (KAIST 전자전산학과) ;
  • 전승재 (삼성전자 영상디스플레이사업부) ;
  • 차성덕 (고려대학교 컴퓨터통신공학부)
  • 발행 : 2009.03.15

초록

프로그래머블 로직 콘트롤러(PLC)가 원자력 계측제어 시스템과 같은 안전 필수 시스템 구현에 많이 사용됨에 따라, PLC 프로그램에 대한 정형검증의 필요가 높아지고 있다. 본 연구에서는 함수 블록 다이어램(FBD)으로 구현된 PLC 프로그램에 대한 자동화된 정형검증 기법을 제안한다. FBD 프로그램을 검증하기 위해서 먼저 FBD 프로그램을 검증언어인 Verilog로 변환하고, 변환된 Verilog모델에 대해 SMV 모델체커를 호출해 모델체킹을 수행한다. 자동화를 위해 FBD Verifier 도구를 개발하였다. FBD Verifier는 FBD 프로그램으로부터 Verilog 모델로의 자동변환 기능뿐 아니라 모델체킹 결과 생성된 반례를 직관적이고 효과적으로 분석할 수 있는 기능 또한 제공한다. 제안된 기법과 도구를 사용해 원전계측제어시스템 개발사업단의 원자로 보호시스템에 대한 방대한 양의 FBD 프로그램을 성공적으로 검증하였다.

As Programmable Logic Controllers (PLCs) are increasingly used to implement safety critical systems such as nuclear instrumentation & control system, formal verification for PLC based programs is becoming essential. This paper proposes a formal verification technique for PLC program implemented with function block diagram (FBD). In order to verify an FBD program, we translate an FBD program into a Verilog model and perform model checking using SMV model checker We developed a tool, FBD Verifier, which translates FBD programs into Verilog models automatically and supports efficient and intuitive visual analysis of a counterexample. With the proposed approach and the tool, we verified large FBD programs implementing reactor protection system of Korea Nuclear Instrumentation and Control System R&D Center (KNICS) successfully.

키워드

참고문헌

  1. Mader, A., “A Classification of PLC Models and Applications,” Proc. WODES 2000: 5th Workshop on Discrete Event Systems, Gent, Belgium, Aug. 21-23, 2000
  2. International Standard for Programmable Controllers: Programming Languages (Part 3), IEC, 1993
  3. Standard Hardware Description Language Based on the Verilog Hardware Description Language (Std 1364-2001), IEEE, 2003
  4. 원전계측제어시스템 개발사업단 (KNICS: Korea Nuclear Instrumentation and Control System Research and Development Center), http://www.knics. re.kr
  5. 유준범, "NuSCR 정형명세로부터 Function Block Diagrams의 생성", 박사학위논문, KAIST, 2005
  6. KNICS-RPS-SDS231 (Rev.02), 원자로보호계통 소프트웨어 설계 명세서, 두산중공업(주), 2007
  7. Bani Younis. M, and Frey, G., “Formalization of Existing PLC Programs: A Survey,” Proceedings of CESA 2003, Lille, France, July 9-11, 2003
  8. Baresi, L., Mauri, M., Monti, A. and Pezze, M., “PLCTOOLS: Design, Formal Validation, and Code Generation for Programmable Controllers,” FormaI methods in PLC programming Special Session at IEEE Conference on Systems, Man and Cybernetics (SMC'2000), Nashville, USA, Oct. 8-11, 2000 https://doi.org/10.1109/ICSMC.2000.884357
  9. CBMC, Bounded Model Checking for ANSI-C, $http://www.cs.cmu .edu/^{~}modelcheck/cbmc$
  10. Jain, H., Sharygina, N., Kroening, D. and Clarke, E., "Word Level Predicate Abstraction and Re-finement for Verifying RTL Verilog," In Proc. 42nd Design Automation Conference (DAC), Anaheim, USA, 2005
  11. sm2vcd, $http://www.cs.cmu.edu/^{~}modelcheck/sm2vcd.html$