Hysteresis_DINT (FB) ¶ FUNCTION_BLOCK Hysteresis_DINT This function block will set the output variable to TRUE , if the integral value \(x \in \mathbb{Z}\) is smaller than an integral lower bound \(x_{u} \in \mathbb{Z}\) It will set the Boolean output variable to FALSE , if the input value \(x\) exceeds the integral upper bound \(x_{o} \in \mathbb{Z}\) . If \(x\) lies between the lower and upper bound, the value of the output will rest unchanged by the module. InOut: Scope Name Type Comment Input diValue DINT input value \(x \in \mathbb{Z}\) diLimitPos DINT upper bound \(x_{o} \in \mathbb{Z}\) diLimitNeg DINT lower bound \(x_{u} \in \mathbb{Z}\) Output xOut BOOL FALSE : If \(x > x_{o} \land x_{u} < x_{o}\) TRUE : If \(x < x_{u} \land x_{u} < x_{o}\) “ xOut ” else
Hysteresis_LREAL (FB) ¶ FUNCTION_BLOCK Hysteresis_LREAL This function block will set the output variable to TRUE , if the input value \(x \in \mathbb{R}\) is smaller than a lower bound \(x_{u} \in \mathbb{R}\) . It will set the output variable to FALSE , if the input value \(x\) exceeds the upper bound \(x_{o} \in \mathbb{R}\) . If \(x\) lies between the lower and the upper bound, the value of the output variable will rest unchanged by the module. InOut: Scope Name Type Comment Input lrValue LREAL input value \(x \in \mathbb{R}\) lrLimitPos LREAL upper bound \(x_{o} \in \mathbb{R}\) lrLimitNeg LREAL lower bound \(x_{u} \in \mathbb{R}\) Output xOut BOOL FALSE : If \(x > x_{o} \land x_{u} < x_{o}\) TRUE : If \(x < x_{u} \land x_{u} < x_{o}\) “ xOut ” else
LimitAlarm_DINT (FB) ¶ FUNCTION_BLOCK LimitAlarm_DINT This function block checks whether an integral value \(x \in \mathbb{Z}\) lies between an integral lower bound \(x_{u} \in \mathbb{Z}\) and an integral upper bound \(x_{o} \in \mathbb{Z}\) . The output value will be set according to the result. InOut: Scope Name Type Comment Input diValue DINT value \(x \in \mathbb{Z}\) to be tested diLimitPos DINT upper bound \(x_{o} \in \mathbb{Z}\) diLimitNeg DINT lower bound \(x_{u} \in \mathbb{Z}\) Output xExceedsPos BOOL TRUE : If \(x > x_{o}\) FALSE : Else xExceedsNeg BOOL TRUE : If \(x < x_{u}\) FALSE : Else xInLimits BOOL TRUE : If \(x_{u} \leq x \leq x_{u}\) FALSE : Else, also in the atypical case \(x_{o} < x_{u}\)
LimitAlarm_LREAL (FB) ¶ FUNCTION_BLOCK LimitAlarm_LREAL This function block checks whether the value \(x \in \mathbb{R}\) lies between an lower bound \(x_{u} \in \mathbb{R}\) and an upper bound \(x_{o} \in \mathbb{R}\) . The output value will be set according to the result. InOut: Scope Name Type Comment Input lrValue LREAL value \(x \in \mathbb{R}\) to be tested lrLimitPos LREAL upper bound \(x_{o} \in \mathbb{R}\) lrLimitNeg LREAL lower bound \(x_{u} \in \mathbb{R}\) Output xExceedsPos BOOL TRUE : If \(x > x_{o}\) FALSE : Else xExceedsNeg BOOL TRUE : If \(x < x_{u}\) FALSE : Else xInLimits BOOL TRUE : If \(x_{u} \leq x \leq x_{u}\) FALSE : Else, also in the atypical case \(x_{o} < x_{u}\)
sgn (FUN) ¶ FUNCTION sgn : INT This function will return the result of the signum function applied to input value \(x\) : \[\begin{split}\text{sgn}(x) = \begin{cases} -1 &\mbox{if } x < 0 \\0 &\mbox{if } x = 0 \\1 &\mbox{if } x > 0 \end{cases}\end{split}\] InOut: Scope Name Type Comment Return sgn INT Input lr LREAL input value \(x\)
Statistics_DINT (FB) ¶ FUNCTION_BLOCK Statistics_DINT This function block will update the values of minimum, maximum and average with respect to the integral input parameter \(x_{n}\) , which will be added to a set of integral data \(x_{n-1},\dots,x_{1}\) (stemming from previous calls). \[\left \lfloor \frac{\sum_{i=1}^{n}x_{i}+\left \lfloor \frac{n}{2} \right \rfloor}{n} \right \rfloor\] Note Pay attention, that the returned average is of type DINT . In contrast to the arithmetic mean the result will be rounded. InOut: Scope Name Type Initial Comment Input xEnable BOOL Reset diInput DINT New data \(x_{n}\) Output diMin DINT 16#7FFFFFFF Minimum of set \(x_{n},\dots,x_{1}\) diMax DINT DWORD_TO_DINT(16#80000000) Maximum of set \(x_{n},\dots,x_{1}\) diAverage DINT Rounded avarage of data \(x_{n},\dots,x_{1}\) xOverrun BOOL TRUE : In case of overflow The module will compensate this by a minor weighting of the old data leading to inaccuracy of the result
Statistics_LREAL (FB) ¶ FUNCTION_BLOCK Statistics_LREAL This function block will update the values of minimum, maximum and average with respect to the integral input parameter \(x_{n}\) , which will be added to a set of integral data \(x_{n-1},\dots,n_{1}\) (stemming from previous calls). The arithmetic mean \(\bar{x}\) of the values \(x_{n},\dots,x_{1}\) is calculated by: \[\bar{x} = \frac{1}{n}\sum_{i=1}^{n}x_{i}\] InOut: Scope Name Type Initial Comment Input xEnable BOOL Reset lrInput LREAL New data \(x_{n}\) Output lrMin LREAL LREAL#1E+80 Minimum of set \(x_{n},\dots,x_{1}\) lrMax LREAL LREAL#-1E+80 Maximum of set \(x_{n},\dots,x_{1}\) lrAverage LREAL Arithmetic mean of data \(x_{n},\dots,x_{1}\) xOverrun BOOL TRUE : In case of overflow The module will compensate this by a minor weighting of the old data leading to inaccuracy of the result
IBACnetServer.UnregisterPlugin (METH) ¶ METHOD UnregisterPlugin : UDINT Unregisters a IBACnetServerPlugin from BACnetServer . Return CmpErrors.Errors.ERR_OK if succesfully unregistered. InOut: Scope Name Type Return UnregisterPlugin UDINT Input itfPlugin IBACnetServerPlugin
Variance (FB) ¶ FUNCTION_BLOCK Variance This function will update the experimental variance of the mean with respect to the new input parameter \(x_{n}\) , which will be added to a series of data \(x_{n-1},\dots,n_{1}\) (stemming from previous calls). The variance \(s\) of the data \(x_{n},\dots,x_{1}\) is calculated according to: \(s = \frac{1}{n}\sum_{i=1}^{n}\left(x_{i} - \bar{x}\right)\) , where \(\bar{x}\) is the arithmetic mean of the data. InOut: Scope Name Type Comment Input xEnable BOOL Reset lrInputValue LREAL New data \(x_{n}\) Output lrVariance LREAL Experimental variance of the mean of \(x_{n},\dots,x_{1}\)
trigonometrical functions ¶ atan2 (Function)