Tdct Hierarchy Support
Symbols and Schematics
One of the most powerful features of tdct is the support of schematic hierarchies with
user-designed symbols. Using expressive shapes for user-designed symbols greatly enhances the visual
understanding of a schematic's functionality.
A user-designed symbol represents a user-designed schematic and can be used as a
"place-holder" for the schematic on another (higher level) schematic. The symbol may contain macros
and ports. Macros pass parameters from the higher to the lower level. Ports pass values and link
information in either direction between the hierarchy levels. Each port on a symbol must correspond
to a hierarchical connector with the same name in the schematic.
Ports can be simple wire ports or bus-ports, which allow the passing of multiple values through a
Every EPICS run-time database can be presented by the following schematic
In the simplest case, the top level schematic is a primitive component schematic, no symbols
are used and the "hierarchy" contains only one layer.
- top level: top level schematic
- next level: component schematics which are represented by corresponding component
symbol instances on the next higher level
- bottom component level: primitive component schematics which contain only primitive
tdct does not impose a limit to the number of hierarchy levels.
The primitive elements of the hierarchy are EPICS records, hierarchical connectors and "hardware
I/O". These are represented by EPICS symbols which are stored in symbol files. A base
library of EPICS symbols is provided with tdct. This library is easily extended to include new
Primitive elements have no associated schematics.
Components consist of a corresponding schematic/symbol pair. The component schematic may contain
primitive elements and component symbol instances representing other components. In the component
schematic, macros may be used as placeholders in record properties or record names. Hierarchical
connectors are used to link EPICS record fields to the hierarchy level above. The component symbol
instances must instantiate values for the symbol macros. These instance values may themselves contain
Top Level Schematics
Top level schematics are schematics from which EPICS runtime database are generated.
Top level schematics
- may contain macro definitions
- must not contain hierarchical connectors
- do not require a corresponding symbol.
If an EPICS runtime database is generated from a top level schematic which contains unresolved
macros, a template database is created. In this case the macro values must be instantiated when the
template database is loaded into an IOC.
Macros and Hierarchy
In order to maintain backward compatiblity with the Capfast / e2db system, macro instance
values, once defined on a hierarchy level, are visible at all lower levels of the hierarchy, even if
an intermediate hierarchy layer does not define the macro.
It is discouraged to use this feature and propagate macros, which are required in a component
schematic, by defining the macro on the component symbol.
Traversing a Hierarchy
If a symbol in a schematic is selected, the corresponding schematic is opened in a new tab
- left double-clicking on the selected symbol
- pressing the D key
- using the File >> Descend hierarchy
 Phase Three Logic, Beaverton, Ore., USA