FB_BACnetLoopSeq1201
BACnet sequence controller
Functional description
This function block maps the function block FB_BA_SeqCtrl as loop object in BACnet. The loop object on the BACnet side essentially has the task of displaying parameters and values from the PLC and transferring them to the PLC. The controller logic is solely in the PLC, in the internal FB_BA_SeqCtrl. The main parameters can be changed from both sides - PLC and BACnet; the last change is always the valid one. These parameters are transferred from the PLC via ADS and into the PLC via a cyclic interface. On the PLC side, all parameters have an additional Enable input: when the respective Enable input is set for the first time (rising edge), the value at the parameter input is transferred in any case; subsequently, if Enable is set, it is only transferred if it changes, in order to reduce the ADS traffic. If the Enable input is not set, no transfer takes place.
Like in the "normal" sequence controller of type FB_BA_SeqCtrl, which represents a pure PLC solution, the BACnet version also works only with a sequence link function block FB_BA_SeqLink.
PLC variable | Comment | BACnet-Property (Property ID) |
---|---|---|
bEnActn | Enable for writing the controller direction of action |
|
bActn | Property value control direction | Action (2) |
bEnPropConst | Enable for writing the proportionality constant (K-factor) |
|
rPropConst | Property value proportionality constant (K-factor) | ProportionalConstant (93) |
bEnIntgConst | Enable for writing the integration time (I-component) |
|
rIntgConst | Property value integration time [s] (I-component) | IntegralConstant (49) |
bEnDervConst | Enable for writing the rate time (D-component) |
|
rDervConst | Property value rate time [s] (D-component) | DerivativeConstant (26) |
bEnEvtEn | Enable for writing the EventEnable bit pattern |
|
stEvtEn | Property value bit pattern EventEnable | EventEnable (35) |
bEnErrLmt | Enable for writing the message value "maximum value control deviation" |
|
rErrLmt | Property value message value "maximum value control deviation" | ErrorLimit (34) |
bEnTiDly | Enable for writing the message delay [s] |
|
udiTiDly | Property value message delay [s] | TimeDelay (113) |
bEnNotiCla | Enable for writing the notification class |
|
udiNotiCla | Property value of the notification class | NotificationClass (17) |
bEnMinOut | Enable for writing the minimum output at the controller output |
|
rMinOut | Property value minimum output at controller output | MinimumOutput (68) |
bEnMaxOut | Enable for writing the maximum output at the controller output |
|
rMaxOut | Property value maximum output at controller output | MaximumOutput (61) |
Inputs/outputs
VAR_INPUT
bEn : BOOL;
usiMyNum : USINT;
bEnActn : BOOL;
bActn : BOOL;
bEnPropConst : BOOL;
rPropConst : REAL;
bEnIntgConst : BOOL;
rIntgConst : REAL;
bEnDervConst : BOOL;
rDervConst : REAL;
bEnEvtEn : BOOL;
stEvtEn : ST_BACnet_EventTransitionBits;
bEnErrLmt : BOOL;
rErrLmt : REAL;
bEnTiDly : BOOL;
udiTiDly : UDINT;
bEnNotiCla : BOOL;
udiNotiCla : UDINT;
bEnMinOut : BOOL;
rMinOut : REAL;
bEnMaxOut : BOOL;
rMaxOut : REAL;
bSync : BOOL;
lrYSeqInit : LREAL;
lrSync : LREAL;
lrNz : LREAL;
udiDampConst : UDINT;
udiMinToMax : UDINT;
udiMaxToMin : UDINT;
uiCycCl : UINT;
usiMyNum: ordinal number of the sequence controller
bEn: controller activation
bEnActn / bActn: enable/property value control direction: "direct" or "reverse
bEnPropConst / rPropConst: enable/property value proportionality constant (K-factor)
bEnIntgConst / rIntgConst: enable/property value integration time [s] (I-component)
bEnDervConst / rDervConst: enable/property value rate time [s] (D-component)
bEnEvtEn / stEvtEn: enable/property value bit pattern EventEnable
bEnErrLmt / rErrLmt: enable/property value message value maximum output
bEnTiDly / udiTiDly: enable/property value message delay [s]
bEnNotiCla / udiNotiCla: enable/property value notification class
bEnMinOut / rMinOut: enable/property value maximum output at controller output
bEnMaxOut / rMaxOut: enable/property value minimum output at controller output
lrYSeqInit: start synchronization value. If this controller is the one that is enabled first when the control sequence is activated, this controller is started with this value at the output.
bSync: set output to lrSync.
lrSync: synchronization value, to which the control value is set on rising edge at input bSync.
lrNz: neutral zone
udiDampConst: damping time of the D-component [s]
udiMinToMax: slope limit of controller output for increase: udiMinToMax [s] related to a change from lrMinOut to rMaxOut.
udiMaxToMin: slope limit of controller output for decrease: udiMaxToMin [s] related to a change from lrMaxOut to rMinOut.
uiCycCl: call cycle of the function block as a multiple of the cycle time. A zero entry is automatically interpreted as uiCycleCall =1.
Example: tTaskCycleTime = 20ms, uiCtrlCycleCall =10 -> The control algorithm is called every 200 ms. Thus the outputs are also updated only every 200 ms.
VAR_OUTPUT
rPrVal : REAL;
rX : REAL;
rW : REAL;
bStaSeqCtrlActv : BOOL;
bStaActn : BOOL;
rStaYMin : REAL;
rStaYMax : REAL;
bStaOvrrd : BOOL;
bStaOoServ : BOOL;
bStaFlt : BOOL;
bStaInAlm : BOOL;
bOpLp : BOOL;
bOthFlt : BOOL;
stStaFlg : ST_BACnet_StatusFlags;
dwObjId : DWORD;
bErr : BOOL;
udiErrId : UDINT;
udiErrArg : UDINT;
rPrVal: control value - controller output
rX: current valid actual value read from the BACnet.
rW: current valid setpoint read from the BACnet.
bStaSeqCtrlActv: sequence controller is enabled and ready for operation (not in error state).
bStaActn: indicates the state of the control direction.
bStaYMin: indicates the lower value of the controller output limitation.
bStaYMax: indicates the upper value of the controller output limitation.
bStaOvrrd: indicates the state of the status flag "Overridden" of the loop object.
bStaOoServ: indicates the state of the status flag "OutOfService" of the loop object.
bStaFlt: indicates the state of the status flag "Fault" of the loop object.
bStaInAlm: indicates the state of the status flag "InAlarm" of the loop object.
bOpLp: indicates the state “OpenLoop” of the loop object property “Reliability”.
bOthFlt: indicates the state "OtherFault" of the loop object property “Reliability”.
stStaFlg: output structure of the BACnet status
dwObjId: BACnet object ID of the loop object
bErr: indicates a general error in the function block. The cause can be in BACnet, in the ADS data exchange, or due to incorrect parameterization.
udiErrId / udiErrArg: contains the error number and the error argument. See error codes.
VAR_IN_OUT
stComnMsg : ST_BA_ComnMsg;
stSeqLink : ST_BA_SeqLink;
fbDvc : FB_BACnet_Device;
stComnMsg: reference to the connection structure for the collective message function block FB_BA_ComMsg.
stSeqLink: data and command structure between the individual sequence controllers and the function block FB_BA_SeqLink.
fbDvc: reference to the function block of the BACnet device object
Requirements
Development environment | Target system | required library | required supplement |
---|---|---|---|
TwinCAT 2.11 R3/x64 | PC/CX | TcBA library from V1.0.0 | TS8040 | TwinCAT Building Automation from V1.0.0 |