与本地的中央机架或扩展机架中的I/O一样,分布式I/O设备也可以产生硬件中断,或称为过程中断。在PROFIBUS网络中,硬件中断可以由支持中断处理的DP从站或由DP从站设备中的某个模块产生。本节介绍智能从站调用SFC7产生主站的硬件中断的组态和编程的方法。
1.生成DP主站
在STEP7中用新建项目向导创建一个项目(见随书光盘中的例程Intrrupt),CPU为CPU412-2DP。选中SIMATIC管理器中的“SIMATIC 400”站对象,双击右边窗口的“硬件”图标,打开HW Config,在CPU 412-2DP的机架中添加电源模块和信号模块。
双击CPU中“DP”所在的行,在打开的DP属性对话框中,采用默认的参数。新建一个DP网络,主站的地址为2。返回HW Config后,双击“DP”所在的行,在“工作模式”选项卡中,采用默认的DP主站模式,“DP模式”采用默认的DPV1(V1版的DP)。
2.生成智能从站
用右键点击SIMATIC管理器屏幕左边最上面的项目对象Intrrupt,在打开的快捷菜单中执行命令“插入新对象”→“SIMATIC 300站点”。选中生成的新站,双击右边窗口中的“硬件”图标,对该站的硬件组态。首先生成该站的机架,插入CPU 315-2DP、电源模块和信号模块。CPU的订货号为6ES7 315-2AG10-0AB0。
将CPU放到机架上时,DP接口属性对话框的“参数”选项卡被自动打开。设置PROFIBUS站地址为3,不连接到PROFIBUS(1)子网络。点击“确定”按钮,返回HW Config。
双击CPU中DP所在的行,打开DP属性对话框。在“工作模式”选项卡中,将该站设置为“DP从站”(见图5-25)。
图5-25 组态DP从站的工作模式
此处选中了通过DP网络实现“测试、调试和路由”功能。在“DP从站”模式下,这些功能会增大总线周期。因此,对时间要求苛刻的应用程序不应启用此选项。
此时为DPV1主站自动生成了两个诊断地址(见图5-25)。“诊断地址”2046被指定给DP从站的虚拟插槽0,通过这个地址,DP主站的用户程序可以获取DP从站的状态信息。
只有当DP主站支持“DPV1”模式,并且设置了该模式时,才能看到虚拟插槽2的地址2045。DP智能从站的用户程序使用该地址,调用SFC 7“DP_PRAL”来触发DP主站的硬件中断。
点击“确定”按钮,返回HWConfig。点击工具栏上的按钮,保存组态信息。
3.将智能从站连接到DP主站系统
选中SIMATIC管理器中的S7-400站,双击右边窗口的“硬件”图标,在HW Config中,打开右边的硬件目录窗口中的“\PROFIBUSDP\ConfiguredStations”(已组态的站)文件夹,将其中的“CPU31x”拖放到左边窗口的PROFIBUS网络线上。“DP从站属性”对话框的“连接”选项卡被自动打开,选中从站CPU列表中的“CPU315-2DP”,点击“连接”按钮,该从站被连接到DP网络上(见图5-26)。
图5-26 HWConfig中的主站与智能从站
双击图5-26中的DP从站,在打开的DP从站属性对话框的“常规”选项卡中(见图5-27),自动分配了两个地址:
图5-27 DP从站属性对话框
1)诊断地址4093分配给DP从站的虚拟插槽0。DP从站用来读取DP主站的故障信息。通过此诊断地址,向主站报告DP从站的故障或返回信息。主站CPU将会启动OB86“机架/DP从站故障”。
主站也可以通过SFC 13“DPNRM_DG”,用此地址来从DP从站获取完整的诊断信息。
2)“插槽”2的地址4092分配给DP从站的虚拟插槽2,只能用于DPV1模式。该地址作为从站触发的主站的硬件中断的局部变量OB40_MDL_ADDR(模块地址),通知主站是哪一个从站触发的中断。
4.为主站和从站之间的数据交换分配I/O区
在“组态”选项卡中,为主站和从站之间的数据交换分配I/O区(见图5-28)。(www.xing528.com)
本项目通信双方的OB1、OB35和OB100中与主从通信有关的程序和变量表,与项目PB_MS_2的完全相同,详情请参阅3.2节和随书光盘中本项目的文件。
图5-28 主站从站数据交换的I/O区
5.从站触发过程中断的程序设计
在智能从站的OB1中调用SFC7“DP_PRAL”,在它的输入信号REQ的脉冲上升沿,触发DP主站的硬件中断,DP主站调用OB40来处理硬件中断,执行过程如图5-29所示。
图5-29 硬件中断执行过程示意图
从站发送两条附加信息给DP主站:
1)AL_INFO为中断标识符,用来说明触发硬件中断的原因。中断标识符被作为硬件中断报文的一部分发送给DP主站的OB40,保存在局部变量OB40_POINT_ADDR中。
2)IOID是模块的地址区标识符,IOID=B#16#54时为外设输入(PI),IOID=B#16#55时为外设输出(PQ)。对于既有输入又有输出的混合模块,区域标识符为两个地址中较低的那一个。若两个地址相同,则指定为B#16#54。
SFC7是异步执行的,需要执行多个SFC调用周期。下面是从站的OB1的程序:
如果SFC 7未被DP主站确认,BUSY为1。在主站的OB40执行结束,SFC 7的任务完成时,BUSY变为0。SFC 7的执行过程如果发生错误,返回的故障代码在输出参数RET_VAL中。如果DP从站是标准从站,只要主站接收到诊断报文,则从站触发的硬件中断完成。
6.S7-400DP主站处理硬件中断的程序
由智能从站触发并通过DP网络发送的硬件中断被DP主站的CPU识别后,主站CPU的操作系统调用硬件中断组织块OB40。OB40的局部数据包含产生中断的模块的逻辑基准地址和中断源的其他信息。对于更复杂的模块,OB40的局部数据还包含中断标识符和状态信息。在OB40执行结束后,DP主站的CPU自动发送一个确认信号给触发此中断的智能从站,使从站的SFC7的输出参数BUSY的状态从1变为0。
DP主站CPU412-2DP的组织块OB40中的程序如下所示:
7.测试DP主站对硬件中断的响应
主站和从站的变量表(见图5-30和图5-31)上面5行用来监控主从通信的实现情况。主站CPU的变量表的下面两行用来监控MW10和MD12,它们保存了触发中断的DP从站虚拟插槽2的地址和发送的中断ID。
图5-30 主站的变量表
图5-31 从站的变量表
将组态信息和程序下载到两个CPU,用PROFIBUS电缆连接两个CPU的DP接口,PLC切换到RUN模式。将变量表切换到监控模式,用从站的I0.0触发硬件中断。
2号主站的变量表中的MW10是OB40的局部变量OB40_MDL_ADDR,即触发中断的3号从站的虚拟“插槽”2的地址16#FFC,对应的十进制数为4092(见图5-27)。MD12是OB40的局部变量OB40_POINT_ADDR(模块的中断信息),它就是在从站的OB1中调用的SFC 7的参数AL_INFO,通过它可以验证通过通信产生的硬件中断是否成功。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。