A graphical method for automatic code generation from extended s-system petri net models - Ng, Kok Mun (2006)
This work has introduced a fast and reliable method for graphical modeling of discrete systems control problems using extended S-system Petri Net. By adding new functionalities to the extended S-System Petri Net, dynamic quantities such as microcontroller signals transitions, system timing, interrupts, subroutines and arithmetic operations could now be modeled by software. A graphical-based diagram editor has been developed in this work to handle the model entry, editing and visualization. The diagram editor contains all the basic facilities required for entering, editing, visualization and syntax analysis of the S-System Petri Net model. A compiler has also been built to compile the graphical model and generate the assembly code automatically. Together, the diagram editor and model compiler forms an integrated design and development tool called S-PNGEN. Seamless data binding between the diagram editor and the model compiler is achieved by using a common directed-graph framework to internally represent the model diagrams. Diagram syntax checking was implemented using attributed graph grammar. Also introduced in this work is an efficient method for implementing the control solutions on a microcontroller. This involves the development of a procedure for automatically mapping S-System Petri Net models constructed in the diagram editor to control flow graphs. The procedure uses a notion called graph nesting to help the design tool read and understand S-System model diagrams and transform them into control flow graphs. Conversion of an S-System Petri Net model into a control flow graph is an innovative approach introduced in this work for automatic code generation as it guarantees the production of the correct code layout and information for use by the compiler. By applying a syntax-directed translation on the control flow graph constructed, the built-in compiler then automatically generates the assembly code for the target microcontroller.