CIF example: bridge model

Introduction

This bridge model is a CIF example that models the Oisterwijksebaan bridge, a movable bridge located in Tilburg, the Netherlands. This model is originally described in a scientific publication. Below several simulation scenarios are described that make use of this CIF example model.

Simulation scenario 1: nominal behavior

In this first demonstration scenario, we will synthesize a supervisor from the provided models and then simulate the nominal behavior of the bridge using interactive visualization.

Scripts written in the ToolDef scripting language are provided to automate this, combining and automating several CIF tools. To synthesize a supervisor, select the do1_synthesize.tooldef file in the Project Explorer tab with a single left-mouse click and then press F10 on your keyboard. Alternatively, one can right-click the same file and select Execute ToolDef. You will see that output is being printed to the Console tab while the synthesis tool is running.

Synthesis will take only a couple of seconds, and the final message on the console is Supervisor synthesized, indicating that synthesis has completed.

Now we can start the simulation of the synthesized supervisor by executing do2_simulate.tooldef, again by selecting this file and pressing F10. After approximately 10 seconds, two new tabs will appear in the Eclipse ESCET IDE. If your monitor has a high enough resolution, one can drag the tabs to be displayed next to each other, as follows:

In the middle of the figure a schematic drawing of the movable bridge is shown that visualizes what is actually happening in the system. At the right of the figure the interactive graphical user interface (GUI) is shown, which we will use later to send commands to the controller. This GUI closely resembles the real-life GUI of this bridge. Finally, the Console tab, shown at the bottom of the figure, records a history of the simulation.

If the simulation needs to be stopped at any point in time, one can always terminate it by clicking the red termination square at the top-right corner of the Console tab. Subsequently, all visualizer tabs opened by the simulator can be closed to prepare for a next simulation, by clicking the cross at the right side of each of the tab's headers. Alternatively, the simulation may also be stopped by closing all visualizer tabs.

By following the steps below, the nominal behavior of the bridge is showcased. For the sake of convenience, the movements in the simulation are faster than in real life.

Stopping land traffic

Opening the bridge

Changing the vessel traffic lights

Closing the bridge

Closing the bridge

Terminating the simulation

Simulation scenario 2: fault-tolerant behavior

In this second demonstration scenario, we will simulate faults in the system and observe the behavior of the system with a fault-tolerant supervisor. We assume that the supervisor has already been synthesized. If not, see the first scenario above for how to synthesize it.

The simulation of the fault-tolerant supervisor can be started by again executing do2_simulate.tooldef, by selecting this file and pressing F10. The same two visualization tabs as for the first scenario appear. Enlarging the system visualization tab, or scrolling to show the right side of the visualization, will reveal a gray panel with numerous faults to inject into the system. For monitors with lower resolutions, rather than putting the two visualizations side by side, it may be better to stack the tabs: Observe how both tab headers are shown above a single visible visualization, similar to how browser tabs work. It is then possible to click on the other tab's header to show that visualization, allowing to switch between the two visualizer tabs.

The scenario below will inject the fault that the top barrier BB1 is stuck and will not close.

Closing the bridge

If desired, one can also at any time inject any of the other faults into the system, and observe how the system controlled by the fault-tolerant supervisor then behaves.

Legal

Copyright © 2022, 2023 Contributors to the Eclipse Foundation

See the NOTICE file(s) distributed with this work for additional information regarding copyright ownership.

This program and the accompanying materials are made available under the terms of the MIT License.

SPDX-License-Identifier: MIT