我直接把采样64次的模拟量值之和除以64得到平均值,程序如下:
Network 1 // 网络标题
// 第一个扫描周期对计数器,采样次数,当前值,当前采样和,平均值清零
LD SM0.1
MOVD +0, VD0 //计数器清零
MOVD +64, VD4 //预置采样次数
MOVD +0, VD8 //采样和清零
MOVD +0, VD12 //平均值清零
Network 2
// 把模拟量当前值AIW0输出到寄存器AC3后累计当前值并保存到VD8,采样次数VD0 +1
LD SM0.0
MOVW AIW0, AC3 //放置模拟量输入
+D AC3, VD8 //累计模拟量输入值
INCD VD0 //计数器加一
Network 3
// 当采样次数VD0≥设定采样次数VD4时计算平均值VD12
LDD>= VD0, VD4 //达到采样次数后
MOVD VD8, VD12
/D VD0, VD12 //采样和除以采样次数
MOVD +0, VD8 //采样和清零
MOVD +0, VD0 //采样次数清零