一、指令调用
调用库如图1所示,指令库说明如下:
Pointer为指针引脚,指向存放数据的起始地址,数据类型为字;
Number为数据的长度,可以是变量也可以是常量,数量不能输入负值;
INDX为FOR循环的次数地址,可以忽略,但是不能外部进行赋值干扰;
MAX为输入数值中的最大值;
MIN为输入数值中的最小值;
Out为求得平均值输出地址,数据类型为浮点数。
▲图1▲
二、AVG_MAX_MIN指令库编写
重复调用的库,需要变量建立的正确,否则多次调用无法正常运行,如果你这边对建立库不太会,你这边可以先去看一下这方面的课程学习一下,对于指针指令不太熟悉的可以看看小编前面写的文章《西门子S7-200smart间接寻址的使用方法》
1、形参变量表建立
变量表建立如图2所示,每个变量表的作用可以看注释说明,这里不做介绍,如果有问题可以留言。
▲图2▲
2、AVG_MAX_MIN形参子程序
AVG_MAX_MIN子程序每一段程序都有注释讲解,如图3至图7所示,这里不做介绍,如果有问题可以留言。
▲图3▲
▲图4▲
▲图5▲
▲图6▲
▲图7▲
三、模拟量滤波程序
1、系统块组态
由于文章设备接线为通道3,在系统块中选择通道3,如图8所示。步骤2 传感器输入是电流还是电压进去修改,通道2和通道3为一组,修改需要在通道2中修改电流或者电压。步骤3中选择滤波周期,输入通道采集多少次算平均值,并写入到AI存储区,设置组态后确认,需要下载到PLC中才生效。
▲图8▲
2、程序编写
每一段程序都有注释讲解,如图9和图10所示,这里不做介绍,如果有问题可以留言。
▲图9▲
▲图10▲
3、程序测试
程序检控可以看到模拟量采集的10个数值进行减去最大和最小值,然后求8个数的平均值,并输出到VD208中。
▲图11▲