http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.
변환된 중국어를 복사하여 사용하시면 됩니다.
함수 블록 다이어그램으로 명세된 PLC 프로그램에 대한 구조적 테스팅 기법
지은경(Eunkyoung Jee),전승재(Seungjae Jeon),차성덕(Sungdeok Cha) 한국정보과학회 2008 정보과학회논문지 : 소프트웨어 및 응용 Vol.35 No.3
프로그래머블 로직 컨트롤러(PLC: Programmable Logic Controller)가 안전성이 중요한 실시간 시스템 구현에 많이 사용되면서, PLC 프로그램에 대한 테스팅의 중요성이 날로 높아지고 있다. 본 논문에서는 PLC 프로그래밍 언어 중 하나인 함수 블록 다이어그램(FBD: Function Block Diagram)에 대한 구조적 테스팅 방안을 제안한다. FBD를 테스트하기 위해 먼저 타이머 함수 블록을 비롯한 각 함수 및 함수 블록에 대한 흐름그래프 템플릿을 정의하고, 템플릿을 기반으로 한 변환 알고리즘을 제안하며, 알고 리즘을 따라 FBD로부터 변환된 흐름그래프에 기존의 제어 흐름 테스팅 커버리지와 데이타 흐름 테스팅 커버리지를 적용한다. 기존 FBD 테스팅은 테스트 케이스 생성시 FBD 내부 구조를 고려하지 않으며, FBD 프로그램으로부터 특정 중간단계 모델을 생성해 낼 수 있는 경우에만 적용될 수 있는 단점을 가진반면, 본 논문에 제안된 방법은 FBD 내부 구조를 고려한 체계적 테스트 케이스 생성이 가능하며, 중간단계 모델의 형식에 관계없이 어떤 FBD에도 적용될 수 있다는 장점을 가진다. 특히 제안된 기법은 여러 실행주기에 걸쳐 테스트 되어야 하는 타이머 함수 블록을 포함한 FBD에 대한 철저한 테스팅을 가능하게 한다. 제안된 기법을 현재 원전계측제어시스템 개발사업단에서 개발 중인 디지털 원자로 보호계통 비교논리 프로세서 트립 논리에 적용하여 그 효과를 확인하였다. As Programmable Logic Controllers (PLCs) are frequently used to implement real-time safety critical software, testing of PLC software is getting more important. We propose a structural testing technique on Function Block Diagram (FBD) which is one of the PLC programming languages. In order to test FBD networks, we define templates for function blocks including timer function blocks and propose an algorithm based on the templates to transform a unit FBD into a flowgraph. We generate test cases by applying existing testing techniques to the generated flowgraph. While the existing FBD testing technique do not consider internal structure of FBD to generate test cases and can be applied only to FBD from which the specific intermediate model can be generated, this approach has advantages of systematic test case generation considering internal structure of FBD and applicability to any FBD without regard to its intermediate format. Especially, the proposed method enables FBD networks including timer function blocks to be tested thoroughly. To demonstrate the effectiveness of the proposed method, we use trip logic of bistable processor of digital nuclear power plant protection systems which is being developed in Korea.
함수 블록 다이어그램으로 구현된 PLC 프로그램에 대한 정형 검증 기법
지은경(Eunkyoung Jee),전승재(Seungjae Jeon),차성덕(Sungdeok Cha) 한국정보과학회 2009 정보과학회 컴퓨팅의 실제 논문지 Vol.15 No.3
프로그래머블 로직 콘트롤러(PLC)가 원자력 계측제어 시스템과 같은 안전 필수 시스템 구현에 많이 사용됨에 따라, PLC 프로그램에 대한 정형검증의 필요가 높아지고 있다. 본 연구에서는 함수 블록 다이어그램(FBD)으로 구현된 PLC 프로그램에 대한 자동화된 정형검증 기법을 제안한다. FBD 프로그램을 검증하기 위해서 먼저 FBD 프로그램을 검증언어인 Verilog로 변환하고, 변환된 Verilog 모델에 대해 SMV 모델체커를 호출해 모델체킹을 수행한다. 자동화를 위해 FBDVerifier 도구를 개발하였다. 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, FBDVerifier, 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.
FBD 프로그램에 대한 뮤테이션 연산자 확장 정의 및 적용
지은경(Eunkyoung Jee),송지영(Jiyoung Song),배두환(Doo-Hwan Bae) 한국정보과학회 2018 정보과학회 컴퓨팅의 실제 논문지 Vol.24 No.11
Function Block Diagram (FBD)은 프로그래머블 로직 콘트롤러 용 표준 프로그래밍 언어 중 하나이다. 테스트 집합의 오류 검출 효과성 평가에 널리 사용되는 뮤테이션 분석 기법을 FBD 프로그램 테스팅에 적용하기 위해 기존 연구들에서 5종에서 9종의 FBD 프로그램 대상 뮤테이션 연산자를 정의하였다. IEC61131-3 표준에는 FBD 프로그램 내 사용되는 블록들이 300여개 정의되어 있으나, 기존 뮤테이션 연산자 집합은 내부 상태를 가지는 function block들을 포함하여 FBD 프로그램 내 기능 요소들을 포괄적으로 다루지 못한다. 또한, 입력들의 순서가 바뀌는 오류 등 FBD 프로그램 상에서 발생할 수 있는 다양한 오류 타입을 충분히 모사하지 못한다는 한계점을 가지고 있다. 본 연구에서는 FBD 프로그램의 기능요소들과 FBD 프로그램 상에서 발생 가능한 오류 타입을 포괄적으로 고려하여 뮤테이션 연산자를 추가 정의하고, 사례 연구를 통해 효과성을 분석한다. Function Block Diagram (FBD) is one of the standard programming languages for Programmable Logic Controller. In order to apply the mutation analysis technique, which is a widely employed technique to evaluate the fault detection effectiveness of the test sets, to the FBD programs, five to nine mutation operators for the FBD programs were defined in the previous studies. In the IEC61131-3 standard, more than 300 standard blocks are defined, but the existing set of mutation operators does not cover functional elements of the FBD programs comprehensively, including function blocks with internal states. Moreover, it cannot sufficiently generate different errors that may occur in the FBD programs, such as errors of switched inputs. In this study, we have defined additional mutation operators by comprehensively considering the functional elements that can be used in the FBD programs and the types of errors that can occur in the FBD programs. Also, we have evaluated the impact of the extension of mutation operators by conducting a case study.
FBDTester 2.0: Automated test sequence generation for FBD programs with internal memory states
Song, Jiyoung,Jee, Eunkyoung,Bae, Doo-Hwan Elsevier 2018 Science of computer programming Vol.163 No.-
<P><B>Abstract</B></P> <P>As Function Block Diagram (FBD) programs are used to implement safety-critical systems such as nuclear reactor protection systems, it is crucial to generate effective test cases. FBD programs are running on programmable logic controllers (PLCs) that execute the programs repeatedly within a particular scan time. Among the elements of FBD programs, function blocks and feedback variables save the inputs or outputs of the previous scan cycle into internal memories. The data stored in the internal memory are used to operate the function blocks of the next scan cycle. Researchers have recently developed an automated test generation technique aiming to satisfy several structural test coverage criteria for FBD programs. Among them, Jee et al.'s approach has an advantage of generating tests from FBD programs without requiring any intermediate models. However, test sequence generation for FBD programs with internal memory states was not fully automated in Jee et al.'s approach. This paper extends Jee et al.'s work by generating test sequences from FBD programs with internal memory states in a fully automated manner. The key technique involves explicitly unwinding FBD programs and solving the test requirements using an SMT solver. We conduct experiments on increasing the coverage of test requirements by unwinding cycles and evaluating the effectiveness of the test set using mutation analysis with several subject programs, including a real-world reactor protection system. The experimental results show that the proposed approach is able to generate effective test sequences for FBD programs. To demonstrate the efficiency of the proposed approach, we compared the test sequence generation time required for our approach with those for other approaches. The comparison results show that even excluding the generation time of test models of other approaches, the proposed approach increased the time-efficiency by more than 11 times.</P> <P><B>Highlights</B></P> <P> <UL> <LI> Developing algorithms to generate test sets for Function Block Diagram programs. </LI> <LI> Defining Function Block Conditions for all the standard function blocks. </LI> <LI> Implementing an automated test sequence generation tool using Yices SMT solver. </LI> <LI> Demonstrating improved fault-detection effectiveness and time efficiency. </LI> </UL> </P>