liaohp
级别: 略有小成
精华主题: 0
发帖数量: 113 个
工控威望: 200 点
下载积分: 607 分
在线时间: 113(小时)
注册时间: 2011-09-28
最后登录: 2023-03-30
查看liaohp的 主题 / 回贴
楼主  发表于: 2021-10-19 22:20
描述:主程序
图片:
描述:子程序
图片:
应用背景:采集到的模拟量 总是变化很大,我想做一个相当于滤波的程序,原理就是把 数据data_in  累加比如1000次,然后 再求平均值,但是我怀疑在  for next循环 执行过程中,外部的数据改变了,可能不会对for next内部 生效,又或者 基于PLC的原理,会不会在执行for next内部程序的时候,根本就不会去 处理 for next外部的其他程序。所以想请教各位。
liaohp
级别: 略有小成
精华主题: 0
发帖数量: 113 个
工控威望: 200 点
下载积分: 607 分
在线时间: 113(小时)
注册时间: 2011-09-28
最后登录: 2023-03-30
查看liaohp的 主题 / 回贴
1楼  发表于: 2021-10-22 10:23
引用
引用第4楼zjw424260912于2021-10-20 09:33发表的  :
你这个是汇川的H5U?   

是的
liaohp
级别: 略有小成
精华主题: 0
发帖数量: 113 个
工控威望: 200 点
下载积分: 607 分
在线时间: 113(小时)
注册时间: 2011-09-28
最后登录: 2023-03-30
查看liaohp的 主题 / 回贴
2楼  发表于: 2021-10-22 10:35
引用
引用第7楼枫落云端于2021-10-20 11:45发表的  :
一般PLC的扫描周期在10ms内吧(不排除步数大的程序超过10ms,毕竟少数,就先不讨论),你能确定10ms内模拟量波动值非常大?还是说模拟量模块的采集周期比PLC的10ms扫描周期小得多,按1000份算,至少0.01ms也就是10μs的采样频率,模拟量模块有这么快的速度吗?就算有这么快,模拟量到PLC是否也能这个快给你接收1000份采样值。
如果以上都没有,那么10ms内累计的这个采样值的就会都是一个数值,你再怎么累计1000份再平均都是没有用的。


不是10ms内波动大,是我肉眼看波动大,想处理平滑点。
模拟量采集周期我设置为50hz,也就是0.02s,20ms,假如PLC扫描周期为10ms,也就是2个周期 才检测到模拟量变化,我现在的做法是每个扫描周期记录数据,然后多个周期求平均值,有些效果