Control Authority
Learn about control authority and handoff in Synnax.
When operating multi-device hardware systems that also require manual control through operators, understanding which entities have control over actuators in a system is essential. Synnax’s control authority and handoff mechanisms allows for smooth multi-operator and multi-automation interaction.
Control Authority
Every entity that writes data to Synnax has an assigned control authority for every channel that it is writing to. The control authority is an 8-bit unsigned integer, which means minimum authority is 0 and maximum authority is 255.
When a control sequence is started, it assigns a control authority to each channel that it is writing to. Suppose an existing control sequence is writing to a channel. If the new sequence has a higher authority than the existing sequence, the new sequence will take control of the channel. Otherwise, the new sequence will not be able to write to the channel until the existing sequence releases control.
In the case of equal authority, the first sequence to take control will maintain control of the channel.
Mixed Authorities
It’s important to note that a sequence may have different control authorities for different channels. For example, we may dynamically change the authority of a channel based on a certain step in a sequence:
-- abort condition met
if pressure > 100 then
set_authority("press_vlv_cmd", 255)
set_authority("vent_vlv_cmd", 100)
set("press_vlv_cmd", false)
set("vent_vlv_cmd", true)
end
In this case, the press_vlv_cmd
channel will have absolute authority of 255 and the
vent_vlv_cmd
channel will have an authority of 100.
Relationship to Manual Control
Manual control of channels through components such as Schematics follow the same control authority rules as sequences. This allows for operators to conditionally take control of channels.