FB_HVACAntiBlockingDamper

FB_HVACAntiBlockingDamper 1:

Application

This function block prevents the blocking of an actuator over long time intervals with an unchanged control value. When activated, the blocking protection forces the actuator to drive from fully closed to fully open.

VAR_INPUT

eDataSecurityType : E_HVACDataSecurityType;
bSetDefault       : BOOL;
bEnable           : BOOL;                           
bDisable          : BOOL;                       
ryDamper          : REAL;            0 .. 100     %         
dtSystemTime      : DT;
bReset            : BOOL;

eDataSecurityType:if eDataSecurityType:= eHVACDataSecurityType_Persistent, the persistent VAR_IN_OUT variables of the function block are stored in the flash of the computer if a value changes. For this to work, the function block FB_HVACPersistentDataHandling must be instanced once in the main program, which is called cyclically. Otherwise the instanced FB is not released internally.

A change of value can be initiated by the building management system, a local operating device or via a write access from TwinCAT. When the computer is restarted, the saved data are automatically read back from the flash into the RAM.

Application example: FB_HVACAntiBlockingDamper 2:Example_PERSISTENT.zip

If eDataSecurityType:= eHVACDataSecurityType_Idle the persistently declared variables are not saved in a fail-safe manner.

Notice

A cyclically changing variable must never be linked with the IN_OUT variable of a function block, if eDataSecurityType:= eHVACDataSecurityType_Persistent. It would lead to early wear of the flash memory.

bSetDefault: If the variable is TRUE, the default values of the VAR_IN_OUT variables are adopted.

bEnable: the function AntiBlocking is enabled with the input variable bEnable. If bEnable = FALSE, only the input value will be applied at the output; the AntiBlocking function is not active.

bDisable: resets the outputs rQDamper, iQDamper and bQAntiBlocking to 0.

ryDamper: control value from the controller to the valve, which is passed on to the outputs rQDamper and iQDamper. The value must be smaller than 1 % in order for the function block to recognize this as standstill time. No standstill time will be determined for a valve with a control value >= 1 %.

dtSystemTime: system time

bReset: acknowledge input in the event of a fault. Resets the flag bInvalidParameter.

VAR_IN_OUT

eAntiBlockingMode : E_HVACAntiBlockingMode;
iHoursDowntime    : INT;
iDayWeekly        : INT;
iHour             : INT;
iMinute           : INT;
iLengthImpulse    : INT;

eHVACAntiBlockingMode: enumeration value that specifies the type of Antiblocking method.

eHVACAntiBlockingMode_Off:= 0 : off

eHVACAntiBlockingMode_Downtime:= 1 : after the expiry of a standstill time in hours, the Antiblocking pulse will be passed on to the bOut output.

eHVACAntiBlockingMode_Weekly:= 2 : the antiblocking pulse is only generated on a certain day of the week and at a certain time, independent of how long the standstill has lasted.

The variable is saved persistently.

iHoursDowntime: for eHVACAntiBlockingMode_Downtime, the time in hours for which the input bIn may not be active until the AntiBlocking pulse is formed (0h..6000h). The variable is saved persistently. Preset to 24.

iDayWeekly: for eHVACAntiBlockingMode_Weekly,AntiBlocking pulse is formed on this day. Sun=0, Mon=1, Tue=2, Wed=3, Thu=4, Fri=5, Sat=6

The variable is saved persistently. Preset to 6.

iHour: switch-on time in hours (0h..23 h). The variable is saved persistently. Preset to 12.

iMinute: switch-on time in minutes (0min..59min). The variable is saved persistently. Preset to 0.

iLengthImpulse: switch-on time in seconds (0s..600s). The variable is saved persistently. Preset to 150.

VAR_OUTPUT

rQDamper         : REAL;        0 .. 100       %       
iQDamper         : INT;         0 .. 32767      
bQAntiBlocking   : BOOL;                
bInvalidParameter: BOOL;

rQDamper: this output corresponds to the input value of the control value. As soon as the input bEnable = is TRUE, the Antiblocking pulse is additionally applied to the output. 100% is present at the output when the Antiblocking state is reached.

iQDamper: this output behaves like rQDamper, but in order to suit an analog output it is output as an integer value from 0 - 32767, corresponding to 0 - 100%.

bQAntiBlocking: this output is independent of the switch-on signal and shows only the Antiblocking pulse.

bInvalidParameter: an error occurred during the plausibility check. It is deleted again by bReset.