关于FB41(continuous PID controller)手自切换的小技巧

FB41是西门子PLC的连续PID控制模块,关于FB41的手自动无扰切换其实是很简单的,FB41本身自带手动到自动的无扰切换,至于自动到手动的切换的实现也比较简单。但是,最近遇到一个项目,执行器的输出分为自动控制和手动控制,自动控制又分为程序控制和交由PID控制两个阶段,而PID又分手动和自动两种模式。

     这就出现了一种情况,当输出有PID控制时切到执行器手动控制(不是PID手动控制)后,经手动改变了输出值,之后再切回自动控制,此时FB41是不会自动进行无扰切换,如果如此操作,必然会引起执行器的大幅度波动。

     解决办法:在研究FB41的源码后发现,其实FB41的输出=上周期积分值+本周期积分量+本周期比例量+本周期微分量,因此,只要在手动切自动时将手动值MOVE到上周期积分值中即可实现无扰切换,而在FB41中有静态变量(不是接口):sIanteilAlt ,此变量即为上周期积分值,地址为DB??.DBD104,其中DB??为FB41的背景数据块。

     缺点:这个方法虽然实现了在任何情况下的手动到自动的无扰切换,但是这个方法是不合理不提倡的。STEP7中加入了FB(Function Block)的概念,是一种将数据和动作结合在一起以提高代码重用率的做法,这种方法有着浓厚的OOP味道。正如最近常看的一本OOP相关的编程书里写的那样"(program's)goal is to expose useful interfaces while hiding details of that interface’s implemen

... 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值