This is an old revision of the document!
Create a Safety System
In the EEROS library you will find a directory with examples. Open a shell in the build directory of your EEROS library and run examples/safety/SafetySystemTest1
.
The example comprises a safety system with five different safety levels and six safety events.
The levels and events are defined in the safety properties. The properties further include one critical input and one critical output.
The following events are defined and used in the example:
name | description | registered for safety level | type | when triggered |
---|---|---|---|---|
e1 | start initializing | slOff | public event | triggered by the main program immediately after initialization of the safety system |
e2 | initialization done | slIinitializing | private event | triggered by a periodic 5 seconds after the executor started |
e3 | start running | slInitialized | private event | triggered by checking the critical input, this could be an enable button |
e4 | start shutting down | slRunning, slInitialized, slIinitializing | public event | triggered by pressing Ctrl-C |
e5 | stop running | slRunning | private event | triggered by checking the critical input, this could be an enable button |
e6 | switching off | slShuttingDown | public event | triggered by a level action |
The central attribute of the safety system is its currentLevel. Of course, this level can be queried by anything but is controlled exclusively by the safety system itself.
How to shut down
The example demonstrates how the system should be stopped in a well controlled manner, see stoppingsystem.