TIA Portal 【fb_模拟量AD滤波】SCL语言

在PLC中,模拟量的AD(模数)转换是将连续的模拟信号转换为数字信号的重要过程。为了提高测量精度,通常会在AD转换后应用滤波算法,减少噪声的影响。以下是实现模拟量AD转换(带滤波)的基本思路和示例。

目录

1. AD转换基本流程

2. 滤波算法

2.1 移动平均滤波

2.2 指数加权平均滤波

4. 注意事项


1. AD转换基本流程

  1. 读取模拟输入:通过PLC的模拟输入通道读取电压或电流信号。
  2. 应用滤波算法:对读取的数据进行滤波处理,消除高频噪声。
  3. 存储和使用滤波结果:将处理后的数据用于后续控制或显示。

2. 滤波算法

常用的滤波算法有多种,其中最简单有效的是移动平均滤波指数加权平均滤波。以下是两种方法的介绍:

2.1 移动平均滤波

通过计算一定数量最近样本的平均值来平滑数据。

2.2 指数加权平均滤波

使用加权因子对最近的样本给予更多权重。

3.在portal,

#Time:=DINT_TO_TIME( REAL_TO_DINT( #采样时间间隔(秒)*1000.0)-10);
#T0(IN:=NOT #T1.Q,
    PT:=#Time);
#T1(IN:=#T0.Q,
    PT:=T#10MS);
#P0(CLK:=#T0.Q);



#AI := #模拟量数据输入;
IF #AI<0 THEN
    #AI := 0;
    #Error_MIN := 1;
ELSE
    #Error_MIN := 0;
    ;
END_IF;

IF #AI>27648 THEN
    #AI := 27648;
    #Error_MAX := 1;
ELSE
    #Error_MAX := 0;
    ;
END_IF;
#stat滤波强度 := #滤波强度;
IF #滤波强度 > 20 THEN
    #stat滤波强度 := 20;
END_IF;
IF #滤波强度 < 1 THEN
    #stat滤波强度 := 1;
END_IF;

IF #P0.Q THEN
    #工程量数据输出 := INT_TO_REAL(#AI) / 27648.0 * (#"上限(工程量)" - #"下限(工程量)") + #"下限(工程量)";
    FOR #N := #stat滤波强度 TO 2 BY -1 DO
        #LB[#N] := #LB[#N - 1];
        ;
    END_FOR;
    #LB[1] := #工程量数据输出;
    
    #ZS := 0;
    FOR #N := 1 TO #stat滤波强度 DO
        #ZS := #ZS + #LB[#N];
    END_FOR;
    
    
    #"工程量数据输出(滤波后)" := #ZS / #stat滤波强度;
    
    
    
END_IF;




4. 注意事项

  • 滤波延迟:滤波算法可能引入一定的延迟,需根据应用场景选择合适的滤波方法和参数。
  • AD转换精度:确保使用的PLC具有足够的AD转换精度,减少原始数据的量化误差。
  • 采样频率:采样频率应根据系统的动态特性进行选择,避免混叠现象。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值