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 single port.


Every EPICS run-time database can be presented by the following schematic hierarchy:
In the simplest case, the top level schematic is a primitive component schematic, no symbols are used and the "hierarchy" contains only one layer.
tdct does not impose a limit to the number of hierarchy levels.

Primitive elements
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 EPICS records.

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 macros.

Top Level Schematics
Top level schematics are schematics from which EPICS runtime database are generated.

Top level schematics Template Databases
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 by

[1] Phase Three Logic, Beaverton, Ore., USA