下图所示为 Analysis 功能块的引脚图:
Analysis 功能块计算一系列输入的积分值和微分值。输出在 i_xEn 的上升沿从零开始。积分值以间隔输入的倍数增加。
每次扫描时,均基于间隔值更新积分输出和微分输出。
如果间隔值等于/小于零,或者输入超出范围,或者积分或微分输出超过 3.4e+38,则会检测到错误。
积分 = 积分 + (当前输入 + 上一个输入) / 2 * 积分。
微分 = (当前输入 + 上一个输入) / 积分。
输入 = 10(上一个输入:0),间隔 = 10,则第一次执行循环后的输出如下:
o积分 = 0 + (10+0) / 2 * 10 = 50
o微分 = (10-0)/ 10 = 1
下表描述了 Analysis 功能块的输入引脚:
输入 |
数据类型 |
说明 |
---|---|---|
i_xEn |
BOOL |
TRUE:FB 启用 FALSE:FB 禁用 |
i_rIput |
REAL |
输入值 范围:1.17e-38...3.4e38 |
i_rItvl |
REAL |
输入值 范围:1.17e-38...3.4e38 |
i_xErrRst |
BOOL |
TRUE:复位检测到错误。(在上升沿上) (可选) |
下表描述了输出引脚:
输出 |
数据类型 |
说明 |
---|---|---|
q_xActv |
BOOL |
功能块状态输出 |
q_rItgr |
REAL |
积分值 范围:1.17e-38...3.4e38 |
q_rDrvt |
REAL |
微分值 范围:1.17e-38...3.4e38 |
q_xErr |
BOOL |
TRUE:i_rItvl 输入 <= 0 或 i_rIput < 1.17e-38 或 i_rIput > 3.4e+38 或 q_rItgr > 3.4e+38 或 q_rDrvt > 3.4e+38 FALSE:未检测到错误 |