首页 理论教育 生成与调用功能块的方法与注意事项

生成与调用功能块的方法与注意事项

时间:2023-06-21 理论教育 版权反馈
【摘要】:每次调用功能块时,都需要指定一个背景数据块。功能块的输入、输出参数和静态变量用指定的背景数据块保存,而不会保存临时局部变量中的数据。

生成与调用功能块的方法与注意事项

1.功能块

功能块(FB)是用户编写的有自己的存储区(背景数据块)的块,它的典型应用是执行不能在一个扫描周期结束的操作。每次调用功能块时,都需要指定一个背景数据块。背景数据块随功能块的调用而打开,在调用结束时自动关闭。功能块的输入、输出参数和静态变量(Static)用指定的背景数据块保存,而不会保存临时局部变量(Temp)中的数据。待功能块执行完毕后,背景数据块中的数据不会丢失。

2.生成功能块

打开项目树中“程序块”的文件夹,双击其中的“添加新块”,单击打开的对话框中的“功能块”按钮,出现如图5-3所示的对话框后,FB默认的编号为1,语言为LAD(梯形图)。设置功能的名称为“Motor",功能和功能块的名称也可以使用汉字。单击“确认”按钮,自动生成FB1,可以在项目树“程序块”的文件夹下看到新生成的FB1。

3.生成功能块的局部变量

将鼠标的光标放在FB1的程序区最上面的分隔条上,按住鼠标的左键,往下拖动分隔条,分隔条上面是功能块的界面区,如图5-9所示。

功能块与功能相同,它的局部变量中也有Input(输入)、Output(输出)、InOut(输入输出)参数和Temp(临时)数据。功能块执行完后,再次调用它时,Static(静态)变量的值保持不变。背景数据块中的变量就是其功能块的局部变量中的Input、Output、InOut参数和Static变量(见图5-9和图5-10)。功能块的数据永久性地保存在它的背景数据块中,在功能块执行完后也不会丢失,以供下次执行时使用。其他代码块可以访问背景数据块中的变量。不能直接删除和修改背景数据块中的变量,只能在它的功能块的界面区中删除和修改这些变量。

978-7-111-47789-1-Chapter05-12.jpg

图5-9 FB1的界面区

978-7-111-47789-1-Chapter05-13.jpg

图5-10 FB1的背景数据块

在生成功能块的输入、输出参数和静态变量时,它们被自动指定一个默认值,当然这些默认值是可以被修改的。变量的默认值被传送给FB的背景数据块,作为同一个变量的初始值。可以在背景数据块中修改变量的初始值。调用FB时没有指定实参的形参使用背景数据块中的初始值。

4.编写调用程序

【例5-2】编写FB1程序。

用输入参数“起动按钮”和“停止按钮”控制输出参数“电动机”。按下停止按钮,断电延时定时器(TOF)开始定时,输出参数“制动器”为1状态,经过输入参数“定时时间”设置的时间预置值后,停止制动。

如图5-11所示是FB1中的程序:TOF的参数用静态变量TimerDB来保存,其数据类型为IEC_Timer。图5-12是FB1的界面区中静态变量TimerDB内部的数据。

5.调用FB1

在PLC变量表中生成两次调用FB1使用的符号地址(见图5-13)。(www.xing528.com)

将项目树中的FB1拖放到程序区的水平“导线”上(见图5-14)。在出现的“调用选项”对话框中,输入背景数据块的名称。单击“确认”按钮,自动生成FB1的背景数据块。为各形参指定实参时,可以使用变量表中定义的符号地址,也可以使用绝对地址,然后在变量表中修改自动生成的符号的名称。

978-7-111-47789-1-Chapter05-14.jpg

图5-11 FB1中的程序

978-7-111-47789-1-Chapter05-15.jpg

图5-12 定时器的数据结构

978-7-111-47789-1-Chapter05-16.jpg

图5-13 PLC变量表

6.处理调用错误

FB1最初没有输入参数“定时时间”。

在OB1中调用FB1之后,在FB1的界面区增加了输入参数“定时时间”,OB1中被调用的FB1的方框和字符变为红色,如图5-15中的左侧。

单击程序编辑器工具栏上的978-7-111-47789-1-Chapter05-17.jpg按钮,出现图5-15所示的“界面更新”对话框,显示出原有的块的界面和新的界面。单击“确定”按钮,OB1中被调用的FB1被修改为新的界面(见图5-15中的右侧),FB1中的红色错误标记消失。

978-7-111-47789-1-Chapter05-18.jpg

图5-14 OB1调用FB1的程序

978-7-111-47789-1-Chapter05-19.jpg

图5-15 更新块的界面

7.调用功能块

将程序块下载到CPU后,切换到RUN模式。拨动外接的小开关,模拟按钮的操作。分别用两台设备的起动按钮起动设备,然后用停止按钮使设备停车,可以看到两台设备的输出参数“电动机”和“制动器”按程序的要求变化,“制动器”为1的时间与输入参数“定时时间”设置的值相同。可以令两台设备分时工作,也可以令它们同时工作。在运行时可以用OB1的程序状态功能监视被调用的FB1的输入、输出参数的状态,也可以在线监视FB1内部的程序的执行情况。

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

我要反馈