Scenario is a description of an accelerator action or particular situation. Scenarios are derived from many inputs, including device readings, clock events, States, the abort-loop, BSSB, operational intentions...etc. A Scenario could be described as just another State.
State is a value and associated text of a State Device. States can serve as tags, enumerations, or states of a finite-state-machine.
State Device is an ACNET device in the front-end called "States". The States front-end, and the functionality it supports, are also referred to as the States facility. State devices are integer-valued; each value has a text string (stored in a db) associated with it; and reserves 0 to indicate the null, or invalid, value. The values are published in several ways: device readings, multicast, MDAT...etc. (Note: there are some historical references in the control system help pages that use "fsm device" or "virtual machine" to mean State Device.)
States Front-end is an ACNET task that represents its devices, called States devices. It handles readings and settings of these devices. It enforces basic control and range-checking on the devices. Upon change in value of a State device, the front-end sends notifications through several transport methods in the control system. The front-end does not manage the computations to generate the change in value of the devices--this is handled by the States Transition Server (and for some States, the TLG front-end). The States front-end is one of a class of front-ends, called an Open Access Front-end.
States Transition Server is a central process in the control system that manages the changes in values to States devices. It communicates the changes to the States front-end for posting. It takes as input: ACNET device readings, ACNET requests, clock-events, and transition rules from a model. Many, but not all States are derived in this process. The TLG front-end also sources the values of some States--the States that are associated with clusters of clock events, called TLG Modules.
TimeLineGenerator (TLG) is a term that refers to all, or part, of the tasks and hardware within the controls system that generate machine-related clock-events.
TimeLine is a grouped, named, series of machine-related clock events. A TimeLine is constructed using the TLG console application page and played-out by the TLG front-end. A TimeLine is only constructed from TLG Modules; and always starts with t-clock event $00. A TimeLine is roughly analogous to what was called a "supercycle" in the old TLG system.
TLG Module is well-defined, named, atomic cluster of machine-related events, their relative timing, and some qualifying parameters. A TLG Module also specifies the TLG Machine States--one for each accelerator. TLG modules are defined and manipulated within the TLG console application program. They're composed into sets, called TimeLines.
TLG Module State is a state that is associated with a TLG Module. TLG Module States are used to identify a higher-level organization. The text of these States should describe the intent of the module. Each TLG Module must be associated with a TLG Module State. This class of States is sourced by the TLG front-end.
TLG Machine State provides additional information to accelerator subsystems beyond what is described by clock events. TLG Machine States are a lower-level in a hierarchy of States; where the TLG Module States are the higher-level in the hierarchy. This class of States is sourced by the TLG front-end. (Note: at present, MI LLRF is the only listener of these.)
TLG Module Priority refers to the relative priority of modules within a TimeLine. This is specified during the construction of the TimeLine on the TLG console application page.
TLG Module Concurrency refers to the idea that in a TimeLine, several modules can be playing at the same time. The TLG software should enforce that each machine has only one TLG Machine State at any given time.
Clock Event Arbitration refers to the rules that the clock firmware uses to encode several events, that are supposed to occur at "the same time", onto the wire. This timing is on the order of micro-seconds.