1.生成数据块
数据块(DB)用来分类储存设备或生产线中变量的值,分为共享数据块和背景数据块。共享数据块和符号表中的变量可供所有的逻辑块使用。
CPU可以用OPN指令分别打开一个共享数据块和一个背景数据块。打开数据块DB1后,DB1.DBW2可以简写为DBW2。打开新的数据块时,原来被打开的数据块自动关闭。
用新建项目向导生成一个名为“数组_SFC”的项目(见随书光盘中的同名例程),CPU为CPU 315-2DP。
执行SIMATIC管理器的菜单命令“插入”→“S7块”→“数据块”命令(见图4-1),生成一个名为DB1的数据块,默认的类型为共享数据块(见图4-11)。
图4-11 数据块的属性对话框
2.生成数组
数据块的大小与数据块中变量的个数和数据类型有关。数组由同一类型的数据组合而成,可以用数组快速定义数据块的大小。
双击打开生成的数据块,其中只有一个临时占位符变量DB_VAR。将变量的名称改为Press,用鼠标右键单击“类型”列,执行出现的快捷菜单中的“复杂类型”→“ARRAY”(见图4-12),生成一个数组。
图4-12 设置数据类型
在出现的“ARRAY[]”的方括号中,输入“1..4”(见图4-13)。ARRAY[0..4]中的1和4分别是数组元素的下标的下限值和上限值,它们可以是任意的整数(-32768~32767),上限值应大于下限值。选中注释列的单元后按计算机的回车键,ARRAY[0..4]下面出现空白单元,在其中输入数组元素的数据类型INT,结束了对数组的声明。
图4-13中生成的是一维数组,该数组有4个数据类型为INT的元素。“初始值”列可以输入用英语的逗号分隔的各元素的初始值。其中的“2(0)”表示最后两个元素的初始值为0。如果不输入初始值,所有元素的初始值均为默认值0。此外还生成了一个INT变量Voltage。
图4-13的“地址”列中的“+0.0”表示数组的起始字节地址为0,“*2.0”表示数组元素的大小为2B,“+8.0”表示数组的大小为8B。DB1.Press[2]是该数组中下标为2的元素。
图4-13 数据块中的数组
3.调用系统功能
打开OB1,执行菜单命令“视图”→“总览”,左边窗口出现指令列表。打开最下面的“\库\Standard Library\System Function Blocks”文件夹,可以看到系统功能块SFB和系统功能SFC(见图4-14)。
SFC21(FILL)用源存储区的内容初始化目标存储区。选中该文件夹中的SFC21,按计算机的<F1>键,打开在线帮助,可以看到对SFC21的详细说明和应用实例。(www.xing528.com)
SFC21的3个参数均可以采用I、Q、M、D(数据块)和L(局部变量)区。变量BVAL(源区域)和BLK(目标区域)的数据类型均为参数类型ANY。
将上述库文件夹中的SFC21“FILL”拖放到程序区(见图4-14),本例调用SFC21来将MW2的数据传送到DB1的数组Press的各单元。在执行SFC时如果出错,返回值RET_VAL中是错误代码。
图4-14 程序编辑器
SFC20“BLKMOV”(块传送)用于将源存储区SRCBLK的内容复制到目标存储区DSTBLK,两个存储区的地址不能重叠。
在SIMATIC管理器中生成数据块DB2,删除自动生成的占位符变量,生成一个有4个INT元素的数组Buffer1。在OB1中调用SFC20,将数组DB1.Press各元素的值传送给DB2中的数组Buffer1(见图4-14)。
下面是用语句表调用SFC20的程序:
“:=”号之前是SFC的形式参数(形参),在“:=”号的后面输入各形参的实际参数(实参),“//”号的右边是对该行语句的注释。
4.仿真实验
打开PLCSIM,将逻辑块下载到仿真PLC,将它由STOP模式切换到RUN-P模式。打开DB1,执行菜单命令“视图”→“数据视图”。将数据块切换到数据视图显示方式(见图4-15),可以看到数组中的各元素。图4-13是声明视图显示方式,用于声明(定义)数据块中的数据。
单击工具栏上的“监视(开/关)”按钮,起动监控功能。如果原来数据块是声明视图显示方式,将会自动切换到数据视图显示方法。
图4-15中的“初始值”列是生成数组时设置的初始值。在PLCSIM中设置MW2为31524,令I0.4为1状态,OB1中的SFC21被执行。MW2中的数据31524被写入DB1中的数组Press的各元素。图4-15中各数组元素的实际值变为31524。
双击打开DB2,单击工具栏上的按钮,起动监控功能。由于OB1中SFC20的作用,DB2中的数组元素的值均为31524。
5.数据块应用练习
在符号名为Pump的数据块中生成一个由50字节组成的一维数组(下标从1到50),数组的符号名为Press。用数据视图方式观察数组中的各元素。
图4-15 数据视图显示方式的数组与PLCSIM
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。