The Petri net graph is a powerful tool for the specification, control and analysis of discrete event systems. A well structured Petri net will provide a clear description of how a system functions. This paper describes the development of structured Petri nets for specification and design of control code for manufacturing systems, and discusses the implementation of such Petri nets on various controllers present in modern manufacturing systems. The usefulness of structured Petri nets for system modelling and analysis is also discussed with two practical examples where they have been used to design and implement control code on real systems.