[西门子] 西门子S7-200smart间接寻址应用—求平均值

[复制链接]
查看63 | 回复0 | 2024-5-13 10:33:23 | 显示全部楼层 |阅读模式
导读:
前面讲到了间接寻址的使用,那么这篇文章讲继续深入对间接寻址的使用,并介绍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固件最高只能2.5,这时候只能字节写求平均值了。
                                                                             

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则