FPGA-based control of the production cell using Handel-C

The current platform in the Control Engineering group for developing control applications is based on the von Neumann architecture. However, alternative methods of implementing embedded software are available, among which are FPGAs. In the past, FPGAs were an inaccessible target, due to their limited size and hard-to-learn hardware description languages. With the introduction of the Handel-C language, FPGAs have become easier to use and, moreover, FPGAs have become bigger and cheaper. Therefore, FPGAs are becoming increasingly more interesting as an alternative in embedded systemapplications. This report describes the porting of an existing, CPU based control application towards a general purpose FPGA. Due to its parallel nature, the production cell setup is used as a demonstrator. It consists of 6 parallel controlled motors which pass around blocks. The motors need to synchronize in order to operate correctly. The FPGA’s biggest advantage is its ability to execute processes in true parallel. This makes the production cell a good demonstrator for this assignment. Handel-C is based on ANSI C and is extended with CSP keywords to describe parallel processes and channels. Therefore, gCSP is an appropriate tool to design the controller framework. The framework incorporates a structural and communicational design, in which the loop-controllers reside. Loop-controllers for the production cell setup have already been designed in 20-sim, but need to be ported to Handel-C. The current loop-controllers suffer from performance degrading. When a considerable amount of blocks are in the system, it malfunctions. A more generic framework for mechatronic systems is to be designed too, for currently no such framework is available for gCSP related designs. This could speed up the design of mechatronic systems in the future. A general purpose FPGA does not support the floating point data-type, so a deviation from the standard data-type is made. In order to port the current, floating point based controllers, the integer data-type is used instead. This introduces two significant challenges among others: • Porting of the motion profiles; • Porting of the PID algorithm. The structural and communications framework needs to comply to several requirements, implying the model to be distributable, de-centralized, CSP based and generic where possible. Every motor is assigned its own sub-system which contains enough intelligence to operate on its own, and is called a production cell unit. Each production cell unit includes functionality for safety handling and user input. The requirement of using only the FPGA implied the usage of the integer data type for calculations. This made the process of algorithmimplementation time consuming, and needs to be simplified in the future. This is due to limitations in the current design tools. The framework designed to implement the loop-controllers on a setup proves to be useful. It is applicable in any mechatronic setup and provides for all functionality required of a control system. The framework provides an easy way to communicate between units. The outcome of this assignment shows that the FPGA is suited for basic embedded control. However, when designing for FPGAs, keep accuracy limitations of the integer data-type in mind.