理论教育 如何创建自定义功能块:简明教程

如何创建自定义功能块:简明教程

时间:2023-06-28 理论教育 版权反馈
【摘要】:在项目组织器中,选择用户自定义功能块图标,单击右键,选择新建梯形图。只能在当前功能块中使用。这样就完成了一个功能块程序的建立,然后在功能块中编写所要实现的功能。图5-104 新建交通灯控制功能块创建一个新的功能块,首先要确定完成此功能块所需要的输入和输出变量。下面首先来定义此功能块所需要的变量,如图5-107所示。双击交通灯控制功能块图标,可打开编程界面。

如何创建自定义功能块:简明教程

Micro800控制器的一个突出特点就是在用梯形图语言编写程序的过程中,对于经常重复使用的功能可以编写成功能块,需要重复使用的时候直接调用该功能块即可,无需重复编写程序。这样就给程序开发人员提供了极大的便利,节省时间的同时也节省了精力。功能块的编写步骤与编写主程序的步骤基本一致,下面将简单介绍。

在项目组织器中,选择用户自定义功能块图标,单击右键,选择新建梯形图。新建功能块的名字默认为UntitledLD,单击右键,选择重命名,可以给功能块定义相应的名字。双击打开功能块后可以编写完成功能块的功能所需要的程序,功能块的下面为变量列表,这里的变量为本地变量。只能在当前功能块中使用。

这样就完成了一个功能块程序的建立,然后在功能块中编写所要实现的功能。完成后功能块可以在主程序中直接使用。下面以交通灯功能块为例具体介绍功能块的编程。

要编写的交通灯功能块要完成的功能是:当一个方向的汽车等红灯等了至少5s的时候,另一个方向的绿灯变为黄灯保持2s,然后变成红灯,同时前面红灯方向的红灯变为绿灯。

首先把新建功能块命名为交通灯控制功能块(TRAFFIC CONTROLLER FB),如图5-104所示。

978-7-111-45432-8-Chapter05-201.jpg

图5-104 新建交通灯控制功能块

创建一个新的功能块,首先要确定完成此功能块所需要的输入和输出变量。这些输入输出变量在项目组织器中的本地变量中创建,如图5-104所示,在新建功能块的下面,双击本地变量图标,打开如图5-105所示的创建变量的界面。

978-7-111-45432-8-Chapter05-202.jpg

图5-105 创建本地变量

在表格的上部右键单击,显示如图5-106所示的选项,这里可以对表格列的显示进行重置,默认显示一些常用选项。

978-7-111-45432-8-Chapter05-203.jpg

图5-106 对变量表格重置

对于此次要编写的交通灯控制功能块,需要4个布尔量输入,分别是4个方向的信号,6个布尔量输出,分别是在东西向和南北向的红、黄、绿交通信号灯。输入输出的定义是在“Direction”一列中定义的,输入用VarInput表示,输出用VarOutput表示。下面首先来定义此功能块所需要的变量,如图5-107所示。在表格的Name一列中输入变量的名字,并设定变量为输入或者输出变量即可;要新建变量,在已经建立的变量处回车即可创建下一个变量。图中是完成此功能块所需要的输入和输出变量,注意一定要在“Direction(方向)”一列中定义变量为输入或者输出变量,否则在主程序使用此功能块的时候将无法显示其输入输出变量。在变量列表中除了定义变量的数据类型和变量类型以外,还可以对变量进行别名、加注释、改变维度、设置初始值等操作。

978-7-111-45432-8-Chapter05-204.jpg

图5-107 创建功能块变量

定义了输入输出变量就可以编写功能块程序了。双击交通灯控制功能块(TRAFFIC CONTROLLER FB)图标,可打开编程界面。

根据要求可知第一个梯级实现如下功能:如果南北红灯和东西绿灯亮,并且南北向的车等了至少5s,那么就把东西绿灯变为黄灯。

点击设备工具箱窗口下部的工具箱,展开梯形图工具箱。工具箱里有编写梯形图程序所需要的基本指令,用户只需选择要用的指令,直接拖拽到编程界面中的梯级上即可。(www.daowen.com)

把指令拖拽到梯级上以后,会自动弹出变量列表,编程人员可以直接给指令选择所用的变量,这里选择接触器位指令,并添加NS RED LIGHTS变量。用同样的方法添加第二个接触器位指令,变量选择EW GREEN LIGHTS,然后选择一个梯形图分支指令,并在上面分别放接触器位指令,变量为N CAR SENSOR和S CAR SENSOR。然后添加一个功能块,选择计时器指令(TON),并给计时器定时5s。在梯级的最后再添加一个梯级分支,分别放置位线圈EW GREEN LIGHTS和复位线圈EW YELLOW LIGHTS。这样就完成了第一个梯级的编写,其功能是:当南北红灯和东西绿灯同时点亮,并且南北车辆等候至少5s的时候,复位东西绿灯,同时点亮东西黄灯。

这样就完成了第一个梯级的编写,编写好的梯级如图5-108所示,可以在梯级的上方为梯级添加描述信息,也可以在描述处单击右键,选择不显示描述,如图5-109所示,这里还可以对梯级或者指令进行复制、粘贴、改变布局等,打开属性对话框还可以设置对象的各种属性,同时还可以打开交叉引用浏览器来查看一个变量在程序中多处使用的情况。

978-7-111-45432-8-Chapter05-205.jpg

图5-108 交通灯功能块第一个梯级

根据分析,第二条梯级实现以下功能:当东西黄灯亮2s以后,复位东西黄灯和南北红灯,同时置位南北绿灯和东西红灯,其编程如图5-110所示。

经分析可知第三个和第四个梯级与第一个和第二个梯级完成的功能相同,只是方向不同,所以只需把第一个和第二个梯级复制,然后改变变量即可,程序如图5-111所示。

在完成了交通灯功能块的功能以后,还需要添加另外的一个梯级用来初始化。当程序第一次被下载到控制器并运行的时候,所有交通信号灯的状态都应该是灭的。最后这个梯级就是用来确保这一点,并同时点亮南北红灯和东西绿灯,梯级如图5-112所示。

978-7-111-45432-8-Chapter05-206.jpg

图5-109 选择梯级描述是否显示

978-7-111-45432-8-Chapter05-207.jpg

图5-110 交通灯功能块第二个梯级

978-7-111-45432-8-Chapter05-208.jpg

图5-111 交通灯功能块第三个和第四个梯级

978-7-111-45432-8-Chapter05-209.jpg

图5-112 交通灯功能块第三个和第四个梯级

到此就完成了交通灯功能块的编写,在项目组织器中,右键单击功能块图标,选择编译(生成),可以对编好的程序进行编译,如果程序没有错误,点击保存按钮即可保存。如果程序中出现错误,在输出窗口中将出现提示信息,提示程序编译出现错误,同时会弹出错误列表,如图5-113所示,在错误列表中会指出错误在程序中的位置。双击错误信息行,可以跳转到程序的错误位置,对错误的程序做出修改。然后,再次对程序进行编译,程序编译无误后点击保存按钮即可。

978-7-111-45432-8-Chapter05-210.jpg

图5-113 错误列表

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

我要反馈