我想10ms采集一次压力信号,20ms用PID控制调整一次压力,这个该怎么做?

我现在是把压力采集和PID都放在OB35里面的,OB35是20ms循环一次。但是为了复原压力真实信号,根据采样定理,我要10ms采一次,该怎么办?谢谢各位大神了。

问题补充:
我想把采集和PID调节分开,如果都放在OB35里怎么20ms调节一次?如果把采集放在OB1里我该编写程序让10ms采一次,是用中断还是其他的?希望各位能指点指点,程序我该怎么编写。

最佳答案

一般情况下,修改OB35的中断间隔时间即可,可以改为10mS,但是改完后要确认OB35的执行时间是多少?如果大于10mS,那中断还没执行完又有新的中断进入堆栈,中断程序会影响其他程序部分的运行。
如果修改后OB35不会影响整个程序的运行,直接改了就OK

补充:
有些CPU只支持OB35,如附图CPU315-2DP,是无法选择OB30~OB34\OB36~OB38的;
1、先看看你的CPU是否支持其他的中断OB,若支持把该OB循环时间设成10,在OB块内编写数据采集程序;
2、若只支持OB35,这中情况下只能靠在OB1里靠编程想办法,先在线看看OB1的循环扫描周期是多少吧,如果大于20mS,就不用在OB1想办法了,采集的数据还赶不上OB35

图片说明:

我想10ms采集一次压力信号,20ms用PID控制调整一次压力,这个该怎么做?  

提问者对于答案的评价:
谢谢哈

专家置评

PID调节过程中,需要注意采样周期与PID的参数是对应的,即如果已经是20ms下调整好的参数,如果改成10ms不见得还能用。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc227539.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日
下一篇 2018年12月1日

相关推荐