CIF 3

Event disabler phase

Before continuing with the simulation and implementation phases, an additional intermediate phase is required. This phase requires either a single non-empty supervisor, or multiple non-empty non-conflicting merged supervisors.

In the event disabler phase of the toolchain, the (merged) supervisor is prepared for the next phases. To account for supervisors that control only part of a system, while a simulation model is available for the entire system, we need to disable the controllable events of those parts of the system not controlled by the supervisor. A more detailed description of the reasoning behind this phase is provided in the documentation of the event disabler tool.

Manual vs scripted execution

There are two ways to start the event disabler tool, manually and automatically. Both are explained below, but the automatic approach is by far the easiest and less cumbersome, if it needs to be repeatedly applied.

Manual execution

To manually disable certain events for a synthesized supervisor, use the event disabler tool. The documentation of that tool explains how to manually invoke it.

Scripted execution

The 4K420 course files contain scripts that can be used to automatically execute tools. For the four workstations provided with the course files, these scripts are provided. If you are working on a controller for your own system, you can use them as well, by copying them to your own project.

For each of the workstations, a script named 1g_synthesize_disable.tooldef2 is available. To execute the script, right click it and choose Execute ToolDef.

This script automatically detects the existing synthesized supervisors, and (re)synthesizes them if needed. It also automatically merges supervisors together into a single file, and checks the merged supervisor for conflicts, as needed. The event disabler tool uses a file named #_controllables.events (where # should be replaced by the name of your system, as usual), which lists all the controllable events of the system. The tool generates a file named #_disabled.cif, which disables the controllable events not controlled by the (merged) supervisor.

As with the scripts used during synthesis, the name variable may need to be assigned a different value, if you are working on your own system rather than one of the four workstations used for the course. Also, the list of controllable events needs to be adapted to include all the controllable events of your system.