首页 理论教育 生成与调用功能的实训二十一

生成与调用功能的实训二十一

时间:2023-06-20 理论教育 版权反馈
【摘要】:由图4-2可知,功能有5种局部变量:1)IN:由调用它的块提供的输入参数。它们被称为FC的形式参数,简称为形参,形参在FC内部的程序中使用。图4-4 FC1的程序状态5.功能的返回值FC1的局部变量表中的返回值RET_VAL是自动生成的,可以看到它没有初始的数据类型。TMP1是FC2中的双字临时局部变量。打开OB1,单击工具栏上的按钮,起动程序状态监控功能。

生成与调用功能的实训二十一

1.生成功能

用新建项目向导生成名为“FC例程”的项目(见随书光盘中的同名例程),CPU为CPU 315-2DP。

执行SIMATIC管理器的菜单命令“插入”→“S7块”→“功能”(见图4-1),在出现的“属性-功能”对话框中,默认的名称为FC1,设置“创建语言”为LAD(梯形图)。单击“确定”按钮后,在SIMATIC管理器右边窗口出现FC1。

978-7-111-31641-1-Chapter04-2.jpg

图4-1 生成功能

2.生成局部数据

双击打开FC1(见图4-2),将鼠标的光标放在程序区最上面的分隔条上,按住鼠标的左键,往下拉动分隔条,分隔条上面是功能的变量声明表,下面是程序区,左边是指令列表和库。将水平分隔条拉至程序编辑器视窗的顶部,不再显示变量声明表,但是它仍然存在。

978-7-111-31641-1-Chapter04-3.jpg

图4-2 程序编辑器

在变量声明表中声明(即定义)局部变量,局部变量只能在它所在的块中使用。

块的局部变量名必须以英语字母开始,只能由字母、数字和下划线组成,不能使用汉字。

由图4-2可知,功能有5种局部变量:

1)IN:由调用它的块提供的输入参数。

2)OUT:返回给调用它的块的输出参数。

3)IN_OUT(输入_输出参数):初值由调用它的块提供,块执行后返回给调用它的块。

4)TEMP(临时数据):暂时保存在局部数据堆栈中的数据。只是在执行块时使用临时数据,执行完后,不再保存临时数据的数值,它可能被别的数据覆盖。

5)RETURN中的RET_VAL(返回值),属于输出参数。

选中变量声明表左边窗口中的“IN”,在变量声明表的右边窗口输入参数的名称START(起动按钮),按<Enter>(回车)键后,自动生成数据类型Bool(二进制的位)。该参数的下面出现空白行,输入第二个Bool型的参数STOP(停止按钮)。

用同样的方法,生成Bool型的输出参数MOTOR(电动机)。(www.xing528.com)

单击某个数据的“数据类型”列,再单击该单元左边出现的978-7-111-31641-1-Chapter04-4.jpg按钮,可以选用打开的数据类型列表中的数据类型(见图4-2)。

在变量声明表中赋值时,不需要指定存储器地址;根据各变量的数据类型,程序编辑器自动地为所有局部变量指定存储器地址。

3.生成功能中的程序

在变量声明表下面的程序区生成梯形图程序(见图4-2),STEP 7自动地在局部变量的前面添加#号,例如“#START”。

4.调用功能的仿真实验

双击打开SIMATIC管理器中的OB1,打开程序编辑器左边窗口中的文件夹FC块,将其中的FC1拖放到右边的程序区的“导线”上。FC1的方框中左边的START等是在FC1的变量声明表中定义的输入参数,右边的MOTOR是输出参数。它们被称为FC的形式参数,简称为形参,形参在FC内部的程序中使用。别的逻辑块调用FC时,需要为每个形参指定实际的参数(简称为实参),例如,为形参START指定的实参为I0.0(见图4-3)。

978-7-111-31641-1-Chapter04-5.jpg

图4-3 在OB1中调用功能

打开PLCSIM,将所有的逻辑块下载到仿真PLC,将仿真PLC切换到RUN-P模式。打开OB1,单击工具栏上的978-7-111-31641-1-Chapter04-6.jpg按钮,起动程序状态监控功能(见图4-3)。

单击PLCSIM中I0.0对应的小方框,模拟按下起动按钮。图4-3中I0.0的值变为1。I0.0的状态变化传递给FC1的形参START,如果监控FC1内部的程序(见图4-4),可以看到因为START的常开触点闭合,使MOTOR的线圈通电。它的值返回给它对应的实参Q4.0,图4-3中Q4.0的值变为1。再单击一次,令I0.0为0状态,模拟放开起动按钮。

单击两次PLCSIM中I0.1对应的小方框,模拟按下和放开停止按钮。由于FC1中程序的作用,FC1的输出参数MOTOR和它的实参Q4.0的值变为0状态。

978-7-111-31641-1-Chapter04-7.jpg

图4-4 FC1的程序状态

5.功能的返回值

FC1的局部变量表中的返回值RET_VAL是自动生成的,可以看到它没有初始的数据类型。在调用FC1时,方框内没有RET_VAL。在变量声明表中将它设置为任意的数据类型,在其他逻辑块中调用FC1时,可以看到FC1方框内右边出现了形参RET_VAL。由此可知RET_VAL属于FC的输出参数。

6.功能的仿真练习

设计求圆周长的功能FC2,FC2的输入参数为直径Diameter(INT整数),圆周率为3.14159,用整数运算指令计算圆的周长,存放在双字输出参数Perimeter中。TMP1是FC2中的双字临时局部变量。在OB1中调用FC2,直径的输入值为常数10000,存放圆周长的地址为MD8。

打开PLCSIM,将所有的逻辑块下载到仿真PLC,将仿真PLC切换到RUN-P模式。打开OB1,单击工具栏上的978-7-111-31641-1-Chapter04-8.jpg按钮,起动程序状态监控功能。观察MD8中的运算结果是否正确。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈