Synthesis-based engineering in practice
This section explains concretely how to use the CIF language and toolset to apply synthesis-based engineering of supervisory controllers. Before reading this section, please familiarize yourself with:
- 
      The synthesis-based engineering approach. 
Development process
The process to develop supervisory controllers using the synthesis-based engineering approach typically following several steps. We’ll briefly discuss each of the steps and provide some practical guidance:
- Modeling the events
- 
      Modeling the actions that can happen in the system as events. 
- Modeling the plant
- 
      Modeling the plant automata that represents the event behavior of the to-be-controlled system. 
- Modeling plant relations
- 
      Modeling the relations between the various plant automata. 
- Modeling the requirements
- 
      Modeling the requirements that restrict the behavior of the plant. 
- Marking
- 
      Dealing with marking of the plant and requirement automata. 
- Supervisor synthesis
- 
      Performing supervisor synthesis on the plant and requirements to automatically synthesize a supervisor. 
- Verification and validation
- 
      Verifying and validating that the synthesized supervisor controls the system correctly and as desired. 
- Controller implementation
- 
      Implementing the validated supervisory controller using automatic code generation. 
Advanced topics
Furthermore, the following more advanced information is available:
- Incremental controller development
- 
      Explains how to incrementally develop your controller to prevent commonly encountered issues when applying synthesis-based engineering. 
- Resolving issues with too limited behavior
- 
      Explains how to resolve issues with too limited controlled system behavior, for instance due to conflicting requirements, revealed through synthesis or validation. 
- Supervisor synthesis performance
- 
      Explains how to resolve performance and memory issues for supervisor synthesis. 
- Non-monolithic supervisor synthesis
- 
      Explains how to incrementally develop your controller to prevent commonly encountered issues when applying synthesis-based engineering. 
Practical example
For how this process can be used in practice, based on an example, see: