User Tools

Site Tools


getting_started:tutorials:safetysystem

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
getting_started:tutorials:safetysystem [2017/04/21 21:19] grafgetting_started:tutorials:safetysystem [2020/02/11 14:36] graf
Line 1: Line 1:
 ====== Create a Safety System ====== ====== 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''. This example shows how to use the safety system. It further uses two inputs and two outputs. For this reason you will need to install a simple simulator, see [[getting_started:install_wrapper#simulator|]]. The following command will run the example +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''. This example shows how to use the safety system. It further uses two inputs and two outputs. For this reason you will need to install a simple simulator, see [[getting_started:install_wrapper#simulator|]]. Please remember to set the //LD_LIBRARY_PATH// as described there. The following command will run the example 
 <code> <code>
-$ ./safetySystemTest1 -c SafetySystemTestConfig.json+$ ./safetySystemTest1 -c SafetySystemTest1Config.json
 </code> </code>
  
Line 20: Line 20:
 The example shows a typical use of safety levels and safety events. In order to demonstrate how the system works in a very limited example the following assumptions have been taken: The example shows a typical use of safety levels and safety events. In order to demonstrate how the system works in a very limited example the following assumptions have been taken:
   * The end of the initialization phase is triggered by a periodic which is run by the executor. In general this would be signalled by the sequencer after a initializing sequence has finished or by the control system as soon as a certain condition arises.   * The end of the initialization phase is triggered by a periodic which is run by the executor. In general this would be signalled by the sequencer after a initializing sequence has finished or by the control system as soon as a certain condition arises.
-  * To start and stop running might be triggered by pressing or releasing a button connected to the critical input. In our simple example we do not have real hardware. Hence we simply start and never stop, because the state of the hypothetical input is always ''true''+  * To start and stop running might be triggered by pressing or releasing a button connected to the critical input. In our simple example we do not have real hardware. We therefore use the simulator which connects the output named ''outTest'' with the critical input. After 5 seconds the state on this output pin changes alternately, which causes the safety level to alternate between ''slRunning'' and ''slInitialized''
   * When pressing ''Ctrl-C'' the system falls into level ''slShuttingDown''. A level action for this safety level causes the system to automatically switch to level ''slOff'' which then terminates the program. Here again, this would be signalled by the sequencer after a shutting down sequence has finished or by the control system as soon as a certain safe condition is reached.   * When pressing ''Ctrl-C'' the system falls into level ''slShuttingDown''. A level action for this safety level causes the system to automatically switch to level ''slOff'' which then terminates the program. Here again, this would be signalled by the sequencer after a shutting down sequence has finished or by the control system as soon as a certain safe condition is reached.
 ===== How to shut down ===== ===== How to shut down =====
-The example demonstrates how the system should be stopped in a well controlled manner, see [[getting_started:tutorials:stoppingsystem|]].+The example demonstrates how the system should be stopped in a well controlled manner, see [[getting_started:practical_problems:abort|]].