此源程序对应西门子的FB41,不保证编译后与原版一致,仅供参考
PID算法:
用于定位计算。比例、积分(INT)和微分(DIF)操作以并联方式连接,因而可以分别激活或取消激活。这使对P、PI、PD和PID控制器进行组态成为可能。还可以对纯I和D控制器进行组态。
手动值:
可以在手动和自动模式间进行切换。在手动模式下,使用手动选择的值更正操作变量。积分器(INT)内部设置为LMN - LMN_P - DISV,微分单元(DIF)设置为0并在内部进行匹配。这意味着切换到自动模式不会导致操作值发生任何突变。
操纵值
使用LMNLIMIT功能可以将操作值限制为所选择的值。输入变量超过限制时,信号位会给予指示。
LMN_NORM功能根据以下公式统一LMNLIMIT输出的格式:
lmn=(output of lmnlimit)* lmn_fac+lmn_off
LMN_FAC的缺省值为1,LMN_OFF的缺省值为0。
也可以得到外设格式的操作值。CPR_OUT功能根据以下公式将浮点值LMN转换为外设值:
lmn_per=lmn*27648/100
前馈控制
可以在DISV输入前馈干扰变量。
初始化
SFB 41 "CONT_C"有一个在输入参数COM_RST = TRUE时自动运行的初始化程序。
在初始化过程中,将把积分器内部设置为初始化值I_ITVAL。以周期性中断优先级调用它时,它会从此值开始继续工作。
将所有其它输出设置为它们各自的缺省值。
附件上有源码,编译无错误,可直接调用
pid(
COM_RST:= , //完全重启动