首页 理论教育 中断连接与中断分离指令在5.3.3中的应用

中断连接与中断分离指令在5.3.3中的应用

时间:2023-06-21 理论教育 版权反馈
【摘要】:如果执行指令时没有OB连接到指定的事件,该指令的功能被忽略。5)如图5-39为程序OB201中,断开I0.0的上升沿中断事件与OB201的连接后,建立起该中断事件与OB200的连接。

中断连接与中断分离指令在5.3.3中的应用

1.ATTACH与DETACH指令

指令ATTACH和DETACH分别用于在PLC运行时建立和断开硬件中断事件与中断OB的连接。

(1)DETACH指令

中断分离指令DETACH用来断开硬件中断事件与中断OB的连接(见图5-37),禁止在出现指令指定的硬件中断事件时执行指定的中断OB。输入参数OB_NR是OB的编号,E-VENT是指定的事件的编号,返回值是执行的条件代码。如果没有指定参数EVENT,当前连接到OB_NR的所有事件将被断开连接。

(2)ATTACH指令

中断连接指令ATTACH将OB_NR指定的组织块连接到EVENT指定的事件。在指定的事件发生时,将调用指定的OB。如果执行指令时没有OB连接到指定的事件,该指令的功能被忽略。参数ADD为默认值0时,指定的事件取代连接到原来指定给这个OB的所有事件。

2.ATTACH与DETACH指令实验

【例5-13】ATTACH与DETACH指令实验

在例5-12的项目中,将硬件中断组织块OB200分配给I0.0的上升沿中断事件,该中断事件出现时,调用OB2000在OB200中,用DETACH指令断开I0.0上升沿事件与OB200的连接,用ATTACH指令建立I0.0上升沿事件与OB201的连接。

下一次出现I0.0上升沿事件时,调用OB201。在OB201中,用DETACH指令断开I0.0上升沿事件与OB201的连接,用ATTACH指令建立I0.0上升沿事件与OB200的连接。用这样的方法,可以用OB200和OB201轮流处理I0.0的上升沿中断事件。

(1)生成硬件中断组织块

打开STEP 7 Basic的项目视图,生成一个名为“硬件中断2”的新项目,并双击项目树中的“添加新设备”,添加的CPU的型号为CPU 1214C。

打开项目视图中的文件夹“程序块”,双击其中的“添加新块”,单击打开的对话框中的“组织块”按钮(见图5-24),选中“Hardware interrupt”,将块的名称设置为“Hardware interrupt1”,生成硬件中断组织块OB200,用同样的方法生成名为Hardware interrupt2的硬件中断组织块OB201。

(2)组态硬件中断事件

首先选中设备视图中的CPU,打开巡视窗口的“属性”选项卡,选中左边的“数字输入”文件夹中的通道0(即I0.0,见图5-31),用复选框激活上升沿中断功能。用下拉式列表将OB200指定给I0.0的上升沿中断事件。

(3)编写组织块的程序

1)打开OB200,在程序编辑器上面的界面区生成两个临时局部变量RET1和RET2,如图5-37所示,用来作指令ATTACH和DETACH的返回值的实参。

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

图5-37 OB200的程序

2)打开右边的“扩展指令”窗口的“中断”文件夹,将其中的指令DETACH拖放到程序编辑器,双击参数OB_NR左边的问号,然后单击出现的978-7-111-47789-1-Chapter05-56.jpg按钮,出现如图5-38所示选项,出现的下拉式列表显示出已有的硬件中断OB,设置OB_NR的实参为OB_Hardware interrupt1(即OB200)。

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

图5-38 用下拉式列表设置指令的参数

3)用同样的方法设置参数EVENT的实参为Risingedge0(代码为16#C0000008)。DE-TACH指令用来断开I0.0的上升沿中断事件与OB200的连接。

4)用同样的方法生成指令ATTACH和设置它的参数,建立I0.0的上升沿中断事件与OB201的连接。

5)如图5-39为程序OB201中,断开I0.0的上升沿中断事件与OB201的连接后,建立起该中断事件与OB200的连接。

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

图5-39 OB201的程序

(4)运行程序

项目信息下载到CPU,进入RUN模式后,连续扳动I0.0外接的小开关。由于OB200和OB201中的ATTACH和DETACH指令的作用,在I0.0奇数次的上升沿,QB0被写入16#0F(低4位为1),在I0.0偶数次的上升沿,QBO被写入16#F0(高4位为1)。

接下来我们以一个完整的食品输送带程序,从其硬件配置,到电气接线,再讲述其程序设计,引导读者建立对自动化工业控制的完整思想。

【例5-14】食品输送带程序。

在食品输送带传动的PLC控制中,主要包括本地操作单元、上位机、PLC与变频器,这四者之间的联系如图5-40所示。

S7-1200中内置了2点模拟量输入,但是没有模拟量输出,需要增加模拟量扩展模块,常见的模拟量输入模块和输出模块的特性见表5-5和表5-6。

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

图5-40 食品输送带的PLC控制示意图

表5-5 模拟量输入模块特性

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

表5-6 模拟量输出模块的特性

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

(续)

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

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

图5-41 食品输送带的PLC电气接线图

然后,新建项目,在添加新设备对话框中选择CPU 1214C DC/DC/DC如图5-42所示,在选中CPU 1214C DC/DC/DC的基础上,从硬件目录中选择SM1234添加后,单击设备配置,显示的结果如图5-43所示。

如图5-44所示,用户可以在硬件组态设置中定义SM1234模块的I/O地址,地址的范围为0~1023。

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

图5-42 选择CPU

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

图5-43 硬件设备

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

图5-44 IO地址

由于现场电磁环境的影响,模拟量模块会出现数据失真或漂移,这时可以设置滤波属性,如图5-45所示,选择使用10Hz/50Hz/60Hz/400Hz滤波,以抗现场的干扰。

978-7-111-47789-1-Chapter05-67.jpg(www.xing528.com)

图5-45 设置滤波属性

对于模拟量输入信号是电压或是电流则可以通过图5-46所示的测量类型进行设置。若选择电压类型,则可以选择相应的电压范围值(见图5-46)。

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

图5-46 通道0的属性

同时可以根据输入动态响应的高低,选择输入平滑的弱与强(见图5-46)。

对于模拟输出而言,图5-47所示显示了模拟输出的一些属性,如对CPU STOP的响应,还有图5-48所示的模拟输出类型等。

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

图5-47 选择模拟输出的属性

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

图5-48 输出通道0属性

2)添加FC。在食品输送带的PLC控制中,对于“远程功能”使用了FC。FC通常用于对一组输入值执行特定运算的代码块。FC将此运算结果存储在存储器位置。添加FC的步骤:

①如图5-49所示,选择“程序块”下的“添加新块”命令。

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

图5-49 新建数据块

②如图5-49所示,输入FC的名称,选择编程语言,以及FC编号等。

③定义FC的接口参数图5-50,包括输入、输出、中间变量等。

需要注意的是,FC的返回值和输出参数是不同的:因为FC的返回值只有一个,并且主要用于程序和用户交换数据;FC的输出参数可以有多个,并且主要用于程序与用户交换数据。

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

图5-50 定义FC的接口参数

④如图5-51所示为主程序FC梯形图。

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

图5-51 FC梯形图

3)在该程序的PLC,对于本地功能使用了FB。FB是使用背景数据块保存其参数和静态数据的代码块。FB具有位于数据块或背景DB中的变量存储器。接下来将为食品输送带设置具有FB代码块。具体步骤如下:

①如图5-52所示,添加新块“Local_Speed”。

②定义“Local_Speed”的接口参数见图5-53所示。

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

图5-52 定义新块

用户程序中的每一个FB都具有一个或多个背景DB。调用FB时,也需要指定包含块参数以及用于该调用或FB实例的静态局部数据的背景DB。FB完成执行后,背景DB将保护这些值。

首先新建一个数据块,但选择作为Local_Speed的背景数据,方法如图5-54所示。

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

图5-53 Local_Speed的接口参数

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

图5-54 创建新块

③如图5-55所示为主程序FB梯形图。

4)变量分配。见图5-56,具体包括本地/远程选择、本地速度1、本地速度2、本地速度3、起动与停止按钮、远程速度信号(模拟量)、变频器输入信号(模拟量)。

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

图5-55 FB主程序

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

图5-56 变量表

5)PLC程序编程。主程序的编程,需要调用FB和FC,具体如图5-57所示。

将FB或FC直接拖到主程序中,但是由于FB需要调用DB,因此会出现如图5-58所示的调用选项。

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

图5-57 主程序中调用FB1

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

图5-58 调用选项

图5-59所示为三次调用同一个FB的OB,方法是针对每次调用使用一个不同的DB。该结构使一个通用FB可以控制多个相似的设备,方法是在每次调用时为各设备分配不同的背景DB。在此实例中,FB22控制3个独立的设备,其中DB201用于存储第一个设备的运行数据,DB202用于存储第二个设备的运行数据,DB203用于存储第三个设备的运行数据。

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

图5-59 三次调用同一个FB的OB的参数设置方案

6)主程序。主程序OB1的详细梯形图如图5-60所示。

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

图5-60 OB1主程序

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

我要反馈