1. 处理PLC信号波动,编写滤波程序只是其中一种处理方式:
1)、在设计PLC时注意信号处理方式、接地、电源使用等等,包括安装时考虑的EMC干扰
2)、硬件上,在组态卡件通道时,默认滤波4个周期,比较弱,可以选择32个周期(针对S7 1200)
3)、如信号值仍然波动,需要编写滤波程序,进一步处理采样数据。
中值滤波、平均值滤波等都可以,对于普通应用,使用平均值滤波方式即可,建议编写单独的子程序,可以做上下限及死区,采样数量也可以调整
2… 采用程序滤波的方法
采样值 C、累加器 S,平均值 A,采样次数 N
初始化:A=初始值,S=A*N
S = S - A + C
A = S / N
就这么简单,三个变量(N可以是常数),只要 S 的量程足够,N可以任意调整。
可以看出,此算法是从队列平均值算法演变而来,因没有了队列,每次计算时不知道该丢弃的最老的一个采样值是多少,这里用了个替代的办法,丢弃上次计算出的平均值。
去掉了缓存维护,节省内存空间,同时也将运算量压缩到了最小,执行效率非常高。调试时容易修改采样数。
3… 如何屏蔽和滤波
1),模拟量电缆一定要用屏蔽线,距离稍远的话线芯选粗一些。
2),屏蔽线的屏蔽层单端接地,接地要良好。最好是单独接地,不要与动力线共用地线。
3),在s7200系统块里修改一下模拟量输入滤波器的采样数,把采样数设置大一些。