S7-200smart v2.8求平均值指令,一起来看求平均值如何做吧。
一
指令调用
调用库如图1所示,指令库说明如下:
Pointer为指针引脚,指向存放数据的起始地址,数据类型为字;
Number为数据的长度,可以是变量也可以是常量;
INDX为FOR循环的次数地址,可以忽略,不能外部进行赋值干扰;
Out为求得平均值输出地址,数据类型为浮点数。
图1
二
average_value指令库编写
重复调用的库,需要变量建立的正确,否则多次调用无法正常运行,如果你这边对建立库不太会,你这边可以先去看一下这方面的课程学习一下,对于指针指令不太熟悉的可以看看小编前面写的文章《西门子S7-200smart间接寻址的使用方法》。
1
形参变量表建立
变量表建立如图2所示,每个变量表的作用可以看注释说明,这里不做介绍,如果有问题可以留言。
图2
2
Countdown形参子程序
Countdown子程序每一段程序都有注释讲解,如图3和图4所示,这里不做介绍,如果有问题可以留言。
图3
图4
三
S7-200smart v2.8求平均值指令
对于订货号位数为0AA1的CPU可以升级为V2.8的固件版本,图5所示。
图5
V2.8的软件支持平均值,指令为浮点数中的AVG_R和整数运算中的AVG_B、AVG_W、AVG_DI,如图6所示。
获取源StartAddr引脚字节、字、双字、浮点数地址序列中所设置范围内的平均值,并将其写入到目标字节、字、双字、浮点数地址,长度由Len引脚决定。
图6
如图7所示,由于是AVG_B是字节指令,会把从VB1500(VB1500—VB1504)连续的5个地址数据加起来,求平均值输出到VB202。
图7
本文章主要介绍间接寻址的应用,对于CPU固件版本和软件版本为2.8的求平均值指令做了简单的介绍,需要注意的是,订货号后四位为0AA0的CPU固件Zui高只能2.5,这时候只能字节写求平均值了。