100ms是多少秒,一小时多少流量(100ms是多少秒延迟)

使用PLC读取现场一些模拟量信号时,除了系统块内的滤波外,建议在程序里也加入滤波,可以有效过改善信号质量或者滤掉非正常的干扰。

常用的数字滤波方法很多,以下是一个最简单的平均值滤波的程序,方法就是连续读取N个采样值直接做算数平均运算。


主程序:

00ms是多少秒,一小时多少流量(100ms是多少秒延迟)"

子程序中使用了10ms定时器,这里将采样周期设为常量10,实际采样周期就是100ms。将采样次数也设为10,由此,数据的滤波周期就是1秒。

当然,采样周期和次数均可设置为变量,以便查看不同参数下的滤波效果。

子程序

00ms是多少秒,一小时多少流量(100ms是多少秒延迟)"

考虑到采样次数较多的情况,所以"滤波累加值"变量类型设置为双整数。这时子程序中就需要数据类型转换。(如果采样少,可以不用转换)

00ms是多少秒,一小时多少流量(100ms是多少秒延迟)"

00ms是多少秒,一小时多少流量(100ms是多少秒延迟)"

段①:变量的初始化。其实如果滤波周期较小或者程序运行开始滤波的结果对系统运行影响不大,此段不要也行。(引申一下,有时PLC刚上电,由于某些模拟量信号读取的较慢,会造成开机就报警。正常操作只要复位下就可以,但客户会有质疑。我通常的做法是PLC上电后,报警子程序延迟几秒接通)

段②、③:使用定时器生成一个固定的采样周期,在每个接通周期,采样值累加,滤波计数递增。

段④:当滤波计数到达设定的采样次数,求取数据在该滤波周期的平均值。接着将滤波计数和滤波累加值清0,为下一滤波周期准备。


下面看一下滤波效果:

00ms是多少秒,一小时多少流量(100ms是多少秒延迟)"

采样周期100ms,采样次数10

对随机干扰有一定效果;

00ms是多少秒,一小时多少流量(100ms是多少秒延迟)"

采样周期100ms,采样次数30

对随机干扰有一定效果,但数据滞后时间较长;

00ms是多少秒,一小时多少流量(100ms是多少秒延迟)"

采样周期10ms,采样次数10

数据比较同步,但滤波效果不好;

00ms是多少秒,一小时多少流量(100ms是多少秒延迟)"

采样周期100ms,采样次数10,且模拟一个缓慢变化的持续性干扰

对持续性干扰的滤波效果不好;

以上测试并不完善,仅供参考,有条件的可以自行试一下。


总之,该滤波程序适用于一般具有随机干扰的信号,对于测量速度较慢或要求数据刷新速度较快的实时控制不适用,也比较浪费PLC的RAM。

[赞]+[比心]哦,[作揖]!

关于网约车问题,添加 微信: agm473   备注:备注问题

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1304479036@qq.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.didizcw.com/12299.html