This OPC UA ObjectTyperepresents a BACnet Loopobject type. This type defines the externally visible characteristics of a feedback control loop.

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

image033.jpg

Figure 27BACnetLoopType overview (example PID loop)

The BACnetLoopType ObjectTypeis formally defined in Table 33.

Table 33BACnetLoopTypeDefinition

Attribute

Value

BrowseName

BACnetLoopType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

Other

Subtype of the BACnetObjectTypedefined 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 ObjectTypeis 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 DataTypeFloat, represents the BACnet property Present_Value. The OPC UAEngineeringUnits Propertyof the Variablerepresents 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 Variablerepresents the BACnet properties Present_Value, Minimum_Output, Maximum_Output, Output_Units and Update_Interval. The OPC UA VariableType AnalogItemTypeis defined in OPC 10000-8. It defines the OPC UA Properties EURange, EngineeringUnitsand 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 DataTypeis defined in 10.3.7.

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

The FaultEvaluation Objectcontains status and configuration information for the fault evaluation of the BACnetLoopType. The BACnetFaultEvaluationTypeis defined in 8.23. The Objectis 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_Serviceis True, Present_Valueand Reliabilitymay 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 DataTypeis 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 DataTypeis 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 DataTypeFloat, represents the BACnet property Controlled_Variable_Value. The OPC UAEngineeringUnits Propertyof the Variablerepresents 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 DataTypeis defined in 10.5.9. The value 4194303 is used as objectIdentifierto 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 DataTypeFloat, represents the BACnet property Setpoint. The OPC UAEngineeringUnits Propertyof the Variablerepresents the BACnet property Output_Units.

The Setpoint of the BACnetLoopTypeis 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 BACnetActionis defined in 10.4.2.

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

This OPC UA Variable, of DataTypeFloat, represents the BACnet property Proportional_Constant. The OPC UAEngineeringUnits Propertyof the Variablerepresents 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 DataType0:Float, represents the BACnet property Integral_Constant. The OPC UAEngineeringUnits Propertyof the Variablerepresents 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 DataType0:Float, represents the BACnet property Derivative_Constant. The OPC UAEngineeringUnits Propertyof the Variablerepresents 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 DataType0:Float, represents the BACnet property Bias. The OPC UAEngineeringUnits Propertyof the Variablerepresents the BACnet property Output_Units.

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

This OPC UA Variable, of DataTypeByte, 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 DataType0: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 Objectcontains status and configuration information for the event reporting of BACnetLoopType. The BACnetEventReportingTypeis defined in 8.8. The Objectis optional and is not present if event generation is not activated for the BACnet object.

The instance declaration Object EventReportingoverrides definitions of the BACnetEventReportingType.

The EventAlgorithmcomponent is changed to TypeDefinition BACnetFloatingLimitAlgorithmTypeand ModellingRule Mandatoryif used in the BACnetLoopType. The BACnetFloatingLimitAlgorithmTypeis defined in 8.12.

On the EventAlgorithm instance of the BACnetFloatingLimitAlgorithmTypethe 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.