I. Introduction
Programmable logic controllers (PLCs) are widely used in industry for safety critical embedded systems. A PLC controls several physical plants concurrently. It receives signals from sensors and human inputs, produces control commands to actuators cyclically. A PLC embedded software system is different from conventional software. It is a reactive system which is designed for non-terminating work. The environments are always uncertain and changing with time. Some of the control requirements are real time related. All these make it hard to assure the safety and reliability of the control system.