This ObjectType defines the representation of a Ctrl Program Organization Unit of a programmable Controller system in an OPC UA Address Space. It defines how components of the Ctrl Program Organization Unit like Variables and Ctrl Function Blocks are represented. The CtrlProgramOrganizationUnitType is derived from the BlockType defined in OPC 10000-100. Figure 17 shows the CtrlProgramOrganizationUnitType. It is formally defined in Table 15.

image021.png

Figure 17 CtrlProgramOrganizationUnitType Overview

The Ctrl Program Organization Unit ObjectType is formally defined in Table 15.

Table 15 CtrlProgramOrganizationUnitType Definition

Attribute

Value

BrowseName

CtrlProgramOrganizationUnitType

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the BlockType defined in OPC 10000-100, i.e. inheriting the InstanceDeclarations of that Node.

HasSubtype

ObjectType

CtrlProgramType

Defined in Clause 7.4

HasSubtype

ObjectType

CtrlFunctionBlock Type

Defined in Clause 7.5

With

Object

<TaskName>

CtrlTaskType

OptionalPlaceholder

HasInputVar

Variable

<VarInputName>

BaseDataType

BaseDataVariableType

OptionalPlaceholder

HasOutputVar

Variable

<VarOutputName>

BaseDataType

BaseDataVariableType

OptionalPlaceholder

HasInOutVar

Variable

<VarInOutName>

BaseDataType

BaseDataVariableType

OptionalPlaceholder

HasLocalVar

Variable

<VarLocalName>

BaseDataType

BaseDataVariableType

OptionalPlaceholder

HasExternalVar

Variable

<VarExternalName>

BaseDataType

BaseDataVariableType

OptionalPlaceholder

HasLocalVar

Object

<BlockName>

CtrlFunctionBlockType

OptionalPlaceholder

HasComponent

Variable

Body

XmlElement

BaseDataVariableType

Optional

HasComponent

Object

<SFCName>

SFCType

OptionalPlaceholder

The CtrlProgramOrganizationUnitType ObjectType is abstract. It is the common base type for all Ctrl Program Organization Unit specific types.

The With Reference defined in 8.7 is used to reference the Ctrl Task that is used to execute the Ctrl Program Organization Unit.

Variables declared for a Ctrl Program Organization Unit type are referenced with different subtypes of the HasComponent Reference. The used Reference type depends on the IEC 61131-3 variable declaration keywords. The characteristics of the Variables like data type and access rights and their mapping from IEC 61131-3 information and key words is defined in chapter 9. The name of the Variable depends on the Variable name in the Ctrl Program Organization Unit.

Variables declared with the key word VAR_INPUT are referenced with HasInputVar defined in 8.2.

Variables declared with the key word VAR_OUTPUT are referenced with HasOutputVar defined in 8.3.

Variables declared with the key word VAR_IN_OUT are referenced with HasInOutVar defined in 8.4.

Variables declared with the key word VAR are referenced with HasLocalVar defined in 8.5.

Variables declared with the key word VAR_EXTERNAL are referenced with HasExternalVar defined in 8.6.

Ctrl Function Blocks declared with the key word VAR are referenced with HasLocalVar defined in 8.5. The name of the Object depends on the name of the block in the Ctrl Program Organization Unit.

The Variable Body contains the body of the Ctrl Program Organisation Unit as XmlElement.

Sequential function charts (SFC) declared in the Ctrl Program Organisation Unit are represented as Objects of the type SFCType defined in chapter 7.7.