NamespaceNodeFlags (ENUM)¶
TYPE NamespaceNodeFlags :
The node type of a branch node. Several flags may be set concurrently. Not all of the flags defined here are actually generated yet by the code generator.
NOTE : Due to CDS-54976 we could not add new flags here, so they’ve been moved to NamespaceNodeFlagsEx!
- InOut:
Name
Initial
Comment
None
0
Uninitialized variable.
NodeTypeMask
16#FF
The node type mask - 6 Bits for possible node types and flags
NodeTypeBranchNode
16#1
This node is part of the path. It is usually combined with one of the BranchNodeInfo flags below.
NodeTypeLeafNode
16#2
This node denotes a variable. Combine with the *VariableFlag below.
BranchNodeInfoMask
16#FF00
The bits in this mask define a namespace node not directly corresponding to the POU.
Apart from the BranchNodeImplicitRootNode flag, a branch node may have several of this flags set, for example, when a variable has an explicit namespace which equals the application name or library namespace.
BranchNodeImplicitRootNode
16#100
The implicit root node (not user visible except when directly using IecVarAccess)
In some of the cases when the implicit root node only has a single child, it is not exported to the IecVarAccess tables. It is never exported to the XML, as the ;NodeList elements represents the root node there.
BranchNodeApplicationName
16#200
An application name.
(May appear on several levels, as apps may be nested.)
BranchNodeLibraryNamespace
16#400
A library namespace.
(May appear on several levels, as libraries may be nested.)
BranchNodeExplicitNamespace
16#800
A path component explicitly specified via {attribute ‘namespace’ := ‘foo.bar’}
BranchNodeMemberAccess
16#1000
In the future, we might we allow non-top level nodes like foo.bar.baz to be exported directly, probably combined with one of the flags below.
SigTypeNodeMask
LWORD#4294901760
The bits in this mask define the type of POU which generated the current node.
A single one of this flags will appear at a variable node telling which kind of signature this variable originated from. (Currently not exported to IEC.)
One or more of this flags will appear at branch nodes which contain variable nodes, declaring which kind(s) of signature(s) the contained variables originated from. (Due to namespaces set via properties, several variables of different sources may appear below the same branch node.)
SigTypeGvl
16#10000
A global variable list
SigTypeProgram
16#20000
A program
SigTypeFB
16#40000
FBs may actually export var_static, and in the future when we allow non-top-level nodes to be exported.
SigTypeStruct
16#80000
For future extension, when we allow non-top-level nodes to be exported.
SigTypeMethod
16#100000
For future extension, when we allow non-top-level nodes to be exported.
SigTypeAction
16#200000
For future extension, when we allow non-top-level nodes to be exported.
SigTypeProperty
16#400000
For future extension, when we allow non-top-level nodes to be exported.
SigTypeTransition
16#800000
For future extension, when we allow non-top-level nodes to be exported.
SigTypeFunction
16#1000000
Functions may also define static variables which may be exportable.
ExportedVariableTypeMask
16#FF00000000
Information about the type of the exported variable.
ExportedVariableFlag
16#100000000
Denotes a “normal” exported variable.
ExportedStaticVariableFlag
16#200000000
The variable is a “static” variable which is exported e. G. from an FB which is used in the program.
ExportedPropertyVariableFlag
16#400000000
The variable represents a property.
ExportedVariable
ExportedVariableFlag + NodeTypeLeafNode
The variable node represents a normal exported variable.
ExportedStaticVariable
ExportedStaticVariableFlag + NodeTypeLeafNode
The variable node represents an exported static variable.
ExportedPropertyVariable
ExportedPropertyVariableFlag + NodeTypeLeafNode
The variable node represents an exported property with monitoring type ‘call’.
NodeFlagsMask
16#FF0000000000
The node property flags mask, those bits show some special properties of the nodes.
16#100000000000
This node is hidden, it should not be shown while browsing using the IecVarAcces or CmpIecVarAccess interfaces. (It can still be found by it’s node path, and queried using the IBaseTreeNode interfaces.) It is not exported to XML. As an implementation artifact, hidden nodes currently must always be sorted after the visible nodes. This must be guaranteed by naming the nodes accordingly. This is an implementation detail and may change in future versions.