分享

【PID专题】如何用S7-300实现PID控制,SFB41/FB41的数据处理1

 龙之吻6iinxl8c 2019-05-05

S7系列PLC集成了系统功能块SFB41用作连续PID控制,如果安装了标准PID控制软件包的话,也可以调用其中的FB41来实现连续PID控制。


一、SFB41/FB41简介

SFB41是系统功能块,集成在S7 CPU中,是操作系统的一部分。不同的PLC所支持的系统功能块不尽相同,调用系统功能块时要首先确认该类型PLC是否支持相应的系统功能块。

FB41是标准PID控制软件包中定义的功能块,使用前首先要安装标准PID软件包

SFB41和FB41在指令树中的位置如图1所示。

【PID专题】如何用S7-300实现PID控制,SFB41/FB41的数据处理1

FB41在功能上和SFB41兼容,它们可用作单独的PID恒值控制器,也可以在多闭环控制中实现级联控制器、混合控制器及比例控制器,如果需要的话,SFB41/FB41可以用脉冲发生器SFB43/FB43进行扩展,产生脉冲宽度调制的输出信号,来控制比例执行机构的二级或三级控制器。


二、SFB41/FB41功能框图

如图2所示,为SFB41/FB41的功能框图。

【PID专题】如何用S7-300实现PID控制,SFB41/FB41的数据处理1


三、设定值与反馈值的处理

1、设定值输入

SP_INT为设定值输入,数据类型为浮点数;

2、过程值输入

过程值输入即反馈值,有两种方式:

PVPER_ON=0时,PV_IN作为过程值的输入,数据类型为浮点数。这种情况下,PV_IN的值一般来自于经过FC105转换的外设过程值。

PVPER_ON=1时,PV_PER(外设过程值)作为过程值的输入,即模拟量输入模块接收的值作为PID控制的反馈值。这种情况下,由于模拟量输入模块直接送来的数据与设定值SP_INT数据类型不同,因此,首先要进行类型转换,才能进行后续处理。数据类型的转换部分如图3所示。

【PID专题】如何用S7-300实现PID控制,SFB41/FB41的数据处理1

功能'CRP_IN'将外设过程值转换为-100%~+100%之间的浮点数格式的数值,而外设过程值正常范围的最大输出值(100.0%)为27648(6C00H),因此,'CRP_IN'的输出(以%为单位)PV_R满足:

功能'PV_NORM'用于将外设过程值标准化,其输出PV_NORM满足:

其中:PV_FAC为过程变量的系数,默认值为1.0;PV_OFF为过程变量的偏移量,默认值为0.0。PV_FAC和PV_OFF用来调节过程输入的范围。

图2中,'PV'为浮点数类型的实际值:

PVPER_ON=0时,PV=PV_IN;

PVPER_ON=1时,PV由PV_PER经过'CRP_IN'和'PV_NORM'转换而来。


四、误差的计算与处理

【PID专题】如何用S7-300实现PID控制,SFB41/FB41的数据处理1

如图4所示,'ER'即为负反馈误差值,ER=SP_INT - PV。为了抑制由于控制器输出量的量化造成的连续的较小幅度的振荡,例如用SFB43/FB43进行脉冲宽度调制时可能出现的振荡,可以用'死区Dead Bead'进行处理,死区宽度由DEADB_W来定义,当DEADB_W=0时,死区被关闭。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多