This paper proposes a PLC(Programmable Logic Controller)-based safety critical software development technique for nuclear power plants' I&C software controllers. To improve software safety, we write the software requirements specification using a formal specification notation named NuSCR [1]. NuSCR specification is then mechanically transformed into semantically equivalent Function Block Diagram(FBD), a widely used PLC programming language. Finally, we manually refine the FBD programs so that redundant function blocks are identified and removed. As CASE tool supplied by PLC vendors automatically compiles the resulting FBD programs into PLC machine code, PLC software development is completed when the final FBD programs are essentially tested. Proposed development technique offers several advantages. Requirement errors are reduced as we use the formal specification notation. Consistency and completeness checks are automated, and model checking can be performed on the NuSCR specification. Safety critical errors are less likely to be introduced to the synthesized FBD programming. As a consequence, cost of developing and validating the PLC-based software can be also reduced. The proposed approach is currently being applied in developing safety-critical control software for a Korean nuclear power plant, and experience to date has been positive.