The datapoint may be written into directly by a task that has the appropriate permissions (direct update) or an attempted update may be passed to a task that processes the update request and decides whether to allow it, deny it or perhaps place the request in a que so that each update is passed to the hardware associated with the datapoint in turn (indirect update).
In the accelerator control system the most common use of indirect update mode is to check interlocks before allowing an action such as turning on a power supply.
The scenario for this is as follows:
The operator selects the parameter.
He pushes the increment or the decrement button on the mouse.
The task that manages the mouse (ts) attempts to write into the datapoint.
The attempted write spawns a message that is sent to the task identified as the owner of the record (in this case probably the interlock manager task (NLKtask)).
When NLKtask receives the message it finds the interlock chain for this parameter and evaluates it (see the section on Interlock definition).
If the result of the evaluation indicates the state requested in the update is alright, NLKtask writes the new state into the database.
If the update request is denied NLKtask looks to see if a message has been defined that explains why the requested state is invalid.
If the message exists a request is spawned to write the message on the users display.
Write permissions are divided into eight groups.
The rest of the groups are presently unused.
Membership in the groups is determined by a table compiled into the control system software. All of the operator workstations, the database upload/download tasks, and the alarm manager are members of the "operator interface group". The data acquisition tasks are members of the "data acquisition group".
The write permissions for each group and the owner are specified as follows:
The write permissions field consists of eight characters. Each character position represents permissions for one group. The permissions are arranged from right to left as owner, group 1, group 2, etc.
The characters in the field have the following meanings:
All eight character positions must be filled in when entering data.