设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
几行代码搞定模拟量滤波程序
返回列表
发新帖
[西门子]
几行代码搞定模拟量滤波程序
[复制链接]
301
|
0
|
2024-6-18 11:28:49
|
显示全部楼层
|
阅读模式
导读:在实际的现场中,我们会采集外部模拟量数据用于显示或者控制某个设备,但是由于现场的工业环境可能会导致模拟量数据不稳定,这样我们就需要写模拟量滤波程序来使模拟量的数据更加稳定。
中位值滤波算法:是一种典型的非线性滤波器,它通过连续采集N个周期(N取奇数)的数据,去掉最大值和最小值后,取剩余数据的中位值作为滤波后的结果。这种算法运算简单,能有效滤除脉冲噪声,同时保护信号的细节信息,特别适用于会偶然出现异常值的系统。中位值滤波算法的优势在于能够过滤因偶然因素引起的波动干扰,对温度、液位等变化缓慢的被测参数有良好的滤波效果。然而,它也存在一些缺点,如反应速度慢、滞后,对流量、速度等快速变化的数据不宜使用该方法
中位值滤波算法的实现过程包括以下几个步骤:
1.连续采集N个周期的数据。
2.去掉N个周期数据中的最大值和最小值。
3.取剩下的数据的中位值作为滤波后的结果
一、程序设计
1.新建FB块,定义好接口变量
2.判断初始化触点是否接通,当接通了之后把采集的次数数据清零,同时也把采集数据的总和清零。
第10行至15行程序是将采集的数据存储到数组中,每次采集一个数据,依次放到数组的元素中。
3.程序行17至30是冒泡排序法(不清楚冒泡排序法的可以看之前的文章),将数据从小到大排列
4.程序行32至42是先将数据累加,然后减掉最小和最大值,求得平均值输出
写在最后:如果文章对您有所帮助,那帮忙点个“赞”和“在看”呗!!!
写在最后:如果文章对您有所帮助,那帮忙点个“赞”和“在看”呗!!!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
建云
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』