求PLC200 CPU224XP cn的程序

是这样,我对PLC200不是很熟悉,现在需要一个滤波程序。

大致想法是用平均值的方法,比如,采样10个周期,取这10个周期的采样平均值,再输出到某个地址,供程序调用。
最好能封装成一个子函数的形式,方便。。

谢谢大侠们。。

最佳答案

程序转载:
主程序:
LD     SM0.1
CALL   SBR_0 
LD     SM0.0
CALL   SBR_1
子程序SBR_0
//定于采样次数(次数×采样时间=平均值输出时间)
LD     SM0.0
MOVW   +10, VW0
//采样值存储器清零
LD     SM0.0
FILL   +0, VW2, 11
//这些都是对应的地址清零
LD     SM0.0
MOVD   +0, VD200
MOVD   +0, VD204
MOVD   +0, VD208
MOVD   +0, VD212
MOVD   +0, VD216
MOVD   +0, VD308
MOVD   +0, VD224
子程序SBR_1
//调出模拟信号
LD     SM0.0
MOVW   AIW0, VW200
//定义采样时间
LD     SM0.0
AN     T37
TON    T37, 1
//将模拟量值存入表格
LD     T37
ATT    VW200, VW0
//将值转化为实数
LD     SM0.0
ITD    VW200, VD204
DTR    VD204, VD208
MOVW   VW2, VW300
//求采样和
LD     T37
+R     VD208, VD212
//采样次数到,求平均值,采样和减去采样第一次值
LDW>   VW300, +9
ITD    VW300, VD216
DTR    VD216, VD220
MOVR   VD212, VD224
/R     VD220, VD224
FIFO   VW0, VW306
ITD    VW306, VD308
DTR    VD308, VD312
-R     VD312, VD212
//转换为整数输出
LD     SM0.0
ROUND  VD224, VD228
DTI    VD228, VW232
仅供参考学习。

提问者对于答案的评价:
本程序完全符合我的想法。。
多谢多谢。。
不过用上系统自带的滤波功能,效果也不错的。。

最佳答案作者回复:
这个就是所谓条条大路通罗马,思路有多种,目的只有一个。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc209119.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月12日 上午10:19
下一篇 2017年11月12日 上午10:19

相关推荐