Run Control
In the ATLAS Online SW, the controllers are organized into a hierarchical tree structure that reflects
the general organization of the experiment itself. The hierarchy is defined in the ConfDB.
Each controller in the tree can have one parent controller and any number of child controllers.
At run-time, the controllers read the confDB to retrieve their own parameters and discover who are
their children.
At the top of the tree is a single controller which represents the overall state of the entire system.
The hierarchical tree of controllers transmit messages between themselves to exchange commands and status
information.[2]
There are two Controllers in the demonstrator that is, ROOT Controller and ROD Crate Controller(ROD CC).
The ROOT Controller(named "RootCtrl") we use "rc_root_ctrl" program which is included Run Control Package
of Online SW.
The ROD CC(named "ROCCtrl_01") we use "crate_controller" program which is included Exercise Package of
Online SW. The "rc_root_ctrl" program runs on Control PC and the "crate_controller" runs on another PC which
emulates ROD CC. And we use another PC which emulates ROD module. (See Fig. 1 and Fig. 3)
Fig. 3 This figure shows the hierarchy, defined in the ConfDB, of controllers in the demonstrator.
The ROD CC receives commands from the ROOT Controller running on the control PC and
communicates to the ROD module via VMEbus.
The following actions, matching the run control finite-state machine[2], have been implemented:
- Load :
- Read the ROD Crate and ROD Module Information(VME address, Parameters of the Module) from ConfDB.
- Initialize ROD Emulator running on another PC using Remote Shell(temporary way).
- Config:
- Set ROD_Status bit "1" on the VME Memory Module. This means ROD Module is alive.
- Set ROD_Trigger bit "0" on the VME Memory Module. This means ROD Module is disable.
- Make a crate IS Information available and send a message when going to configured state.
- Start:
- Set ROD_Trigger bit "1" on the VME Memory Module. This means ROD Module is enable.
The ROD Emulator program, which was started by RSH, begins to count up the it's Counter.
And it writes the Counter's value to memory of VME MEM Module.
- "crate_controller" read the Parameters from MEM Module via VMEbus. And it updates
the value of parameters to inform the GUI Panel using IS information.
- Stop:
- Set ROD_Trigger bit "0" on the VME Memory Module. This means ROD Module is disable.
- Pause:
- Set ROD_Trigger bit "0" on the VME Memory Module. This means ROD Module is disable.
- Resume:
- Set ROD_Trigger bit "1" on the VME Memory Module. This means ROD Module is enable.
- Reset:
- Set ROD_Trigger bit "0" on the VME Memory Module. This means ROD Module is disable.
- Set ROD_Status bit "0" on the VME Memory Module. This means ROD Module is dead.
- Set ROD_Input value "0" on the VME Memory Module.