This OPC UA ObjectType represents a BACnet Loop object type. This type defines the externally visible characteristics of a feedback control loop.

Figure 27 shows an overview for the BACnetLoopType with its Properties and related ObjectTypes. It is formally defined in Table 33.

image033.jpg

Figure 27 BACnetLoopType overview (example PID loop)

The BACnetLoopType ObjectType is formally defined in Table 33.

Table 33 BACnetLoopType Definition

Attribute

Value

BrowseName

BACnetLoopType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

Other

Subtype of the BACnetObjectType defined in 7.1.

0:HasComponent

Variable

Present_Value

0:Float

0:AnalogUnitType

M

0:HasProperty

Variable

Status_Flags

BACnetStatusFlags

0:PropertyType

M

0:HasComponent

Object

FaultEvaluation

BACnetFaultEvaluation Type

O

0:HasProperty

Variable

Out_Of_Service

0:Boolean

0:PropertyType

M

0:HasProperty

Variable

Manipulated_Variable_Reference

BACnetDeviceObject PropertyReference

0:PropertyType

M

0:HasProperty

Variable

Controlled_Variable_Reference

BACnetDeviceObject PropertyReference

0:PropertyType

M

0:HasComponent

Variable

Controlled_Variable_Value

0:Float

0:AnalogUnitType

M

0:HasProperty

Variable

Setpoint_Reference

BACnetDeviceObject PropertyReference

0:PropertyType

M

0:HasComponent

Variable

Setpoint

0:Float

0:AnalogUnitType

M

0:HasProperty

Variable

Action

BACnetAction

0:PropertyType

M

0:HasComponent

Variable

Proportional_Constant

0:Float

0:AnalogUnitType

O

0:HasComponent

Variable

Integral_Constant

0:Float

0:AnalogUnitType

O

0:HasComponent

Variable

Derivative_Constant

0:Float

0:AnalogUnitType

O

0:HasComponent

Variable

Bias

0:Float

0:AnalogUnitType

O

0:HasProperty

Variable

Priority_For_Writing

0:Byte

0:PropertyType

O

0:HasProperty

Variable

COV_Increment

0:Float

0:PropertyType

O

0:HasComponent

Object

EventReporting

BACnetEventReportingType

O

The BACnetLoopType ObjectType is a concrete type and can be used directly.

The components of the BACnetLoopType have additional subcomponents which are defined in Table 34.

Table 34 – BACnetLoopType Additional Subcomponents

BrowsePath

References

NodeClass

BrowseName

DataType

TypeDefinition

Others

EventReporting

0:HasComponent

Object

EventAlgorithm

BACnetFloatingLimitAlgorithmType

M

This OPC UA Variable, of DataType Float, represents the BACnet property Present_Value. The OPC UA EngineeringUnits Property of the Variable represents the BACnet property Output_Units.

The Present_Value of the BACnetLoopType indicates the current output value of the loop algorithm and describes the engineering units of the value. If the object supports event reporting, then the Present_Value is the monitored value for the object’s event algorithm. See the BACnet specification for information on the BACnet event enrolment model.

This OPC UA AnalogItemType Variable represents the BACnet properties Present_Value, Minimum_Output, Maximum_Output, Output_Units and Update_Interval. The OPC UA VariableType AnalogItemType is defined in OPC 10000-8. It defines the OPC UA Properties EURange, EngineeringUnits and InstrumentRange.

The following list provides the BACnet property and the mapping to the corresponding data member in the OPC UA AnalogItem.

This OPC UA Property, of DataType BACnetStatusFlags, represents the BACnet property Status_Flags. The BACnetStatusFlags DataType is defined in 10.3.7.

It represents four Boolean flags that represent the general health of a BACnetLoopType. The flags are IN_ALARM, FAULT, OVERRIDDEN, and OUT_OF_SERVICE.

The FaultEvaluation Object contains status and configuration information for the fault evaluation of the BACnetLoopType. The BACnetFaultEvaluationType is defined in 8.23. The Object is optional and is not present if fault evaluation is not activated for the BACnet object.

This OPC UA Property, of DataType Boolean, represents the BACnet property Out_Of_Service.

It is an indication of whether or not the physical input that the object represents is not in service. While Out_Of_Service is True, Present_Value and Reliability may be changed to any value as a means of simulation and/or testing.

This OPC UA Property, of DataType BACnetDeviceObjectPropertyReference, represents the BACnet property Manipulated_Variable_Reference. The BACnetDeviceObjectProperty Reference DataType is defined in 10.5.9.

This property indicates an object and property that the output (Present_Value) of the control loop is written to. Generally this is a BACnet Analog Output object used to position a device, but it could also be another object or property. See the BACnet specification for additional examples.

This OPC UA Property, of DataType BACnetDeviceObjectPropertyReference, represents the BACnet property Controlled_Variable_Reference. The BACnetDeviceObjectProperty Reference DataType is defined in 10.5.9.

This property identifies the property used to set the Controlled_Variable_Value property of the Loop object. Normally this is the Present_Value of an Analog Input object that is used to measure a process variable (for example, temperature) but it could also be another object. See the BACnet specification for additional examples.

This OPC UA Variable, of DataType Float, represents the BACnet property Controlled_Variable_Value. The OPC UA EngineeringUnits Property of the Variable represents the BACnet property Controlled_Variable_Units.

This property indicates the value of the property (and its engineering units) of the object that is referenced by the Controlled_Variable_Reference property. The control loop compares this value with the Setpoint to calculate the error.

This OPC UA Property, of DataType BACnetDeviceObjectPropertyReference, represents the BACnet property Setpoint_Reference. The BACnetDeviceObjectProperty Reference DataType is defined in 10.5.9. The value 4194303 is used as objectIdentifier to indicate that the property is not initialized.

This property represents either zero or one reference. If the reference is zero, then the setpoint for this control loop is fixed and is contained in the Setpoint property. The presence of a reference indicates that the property of another object contains the setpoint value used for the Loop object and the reference specifies that property.

This OPC UA Variable, of DataType Float, represents the BACnet property Setpoint. The OPC UA EngineeringUnits Property of the Variable represents the BACnet property Output_Units.

The Setpoint of the BACnetLoopType is the value of the loop setpoint or the property of the object referenced by the Setpoint_Reference (in engineering units described by the Controlled_Variable_Value property).

This OPC UA Property, of DataType BACnetAction, represents the BACnet property Action. The DataType BACnetAction is defined in 10.4.2.

This property indicates whether the loop is “direct” or “reverse”.

This OPC UA Variable, of DataType Float, represents the BACnet property Proportional_Constant. The OPC UA EngineeringUnits Property of the Variable represents the BACnet property Proportional_Constant_Units.

This property indicates the value and engineering unit of the proportional gain parameter that is used by the loop algorithm. It is used to represent the various forms of gain for the proportional control mode (overall gain, throttling range, or proportional band).

This OPC UA Variable, of DataType 0:Float, represents the BACnet property Integral_Constant. The OPC UA EngineeringUnits Property of the Variable represents the BACnet property Integral_Constant_Units.

This property indicates the value and engineering units of the integral gain parameter that is used by the loop algorithm. It may be used to represent any of the various forms of gain for the integral control mode (reset time or rate).

This OPC UA Variable, of DataType 0:Float, represents the BACnet property Derivative_Constant. The OPC UA EngineeringUnits Property of the Variable represents the BACnet property Derivative_Constant_Units.

This property indicates the value and engineering units of the derivative gain parameter used by the loop algorithm. It may be used to represent any of the various forms of gain for the derivative control mode (derivative time or rate time).

This OPC UA Variable, of DataType 0:Float, represents the BACnet property Bias. The OPC UA EngineeringUnits Property of the Variable represents the BACnet property Output_Units.

This property indicates the bias value that is used by the loop algorithm.

This OPC UA Variable, of DataType Byte, represents the BACnet property Priority_For_Writing.

This property provides a priority to be used by the command prioritization mechanism. This allows loop objects to be used to control the commandable property of an object. In particular, it identifies the particular priority slot in the Priority_Array of the Manipulated_Variable_Reference that is controlled by this loop. See the BACnet specification for the specific range of allowed values.

This OPC UA Variable, of DataType 0:Float, represents the BACnet property COV_Increment.

This property specifies the minimum change in Present_Value that will cause a COV Notification to be issued to COV clients. This property is required if COV reporting is supported by this object.

The EventReporting Object contains status and configuration information for the event reporting of BACnetLoopType. The BACnetEventReportingType is defined in 8.8. The Object is optional and is not present if event generation is not activated for the BACnet object.

The instance declaration Object EventReporting overrides definitions of the BACnetEventReportingType.

The EventAlgorithm component is changed to TypeDefinition BACnetFloatingLimitAlgorithmType and ModellingRule Mandatory if used in the BACnetLoopType. The BACnetFloatingLimitAlgorithmType is defined in 8.12.

On the EventAlgorithm instance of the BACnetFloatingLimitAlgorithmType the BACnet property Error_Limit is mapped to both LowDiffLimit and HighDiffLimit. The BACnet property Deadband is mapped to pDeadband. The parameter SetpointReference contains the reference to the BACnet property Setpoint of this object.