首页 理论教育 西门子S7通信网络双向通信的USEND/URCV使用

西门子S7通信网络双向通信的USEND/URCV使用

时间:2023-11-16 理论教育 版权反馈
【摘要】:使用SFB/FBUSEND/URCV,可以进行快速、不可靠的数据传送,例如,可以用于事件消息和报警消息的传送。BSEND/BRCV和USEND/URCV属于双向通信块,通信的双方都必须调用通信功能块。如果使用集成的MPI接口或集成的DP接口,它们只能用于两台S7-400之间的S7通信。本项目使用的硬件允许建立双向的S7连接。CPU 315的程序与CPU 313C-2DP的基本上相同,需要注意的是,在前者的OB1中,USEND的输入参数R_ID为2,URCV的R_ID为1,它们的ID(连接号)均为1。

西门子S7通信网络双向通信的USEND/URCV使用

使用SFB/FBUSEND/URCV,可以进行快速、不可靠的数据传送,例如,可以用于事件消息和报警消息的传送。BSEND/BRCV和USEND/URCV属于双向通信块,通信的双方都必须调用通信功能块。如果使用集成的MPI接口或集成的DP接口,它们只能用于两台S7-400之间的S7通信。本项目使用的硬件允许建立双向的S7连接。

1.硬件组态

在STEP7中创建一个项目(见随书光盘中的例程IE_S7_2),生成两个站,CPU模块分别为CPU 313C-2DP和CPU 315,两个站分别使用以太网模块CP 343-1IT和CP 343-1。系统的硬件组成与项目IE_S7_1相同,硬件组态的过程、以太网接口的地址与项目IE_S7_1也完全相同。

2.S7连接组态

组态好两个S7-300站后,点击工具栏上的978-7-111-28256-3-Chapter10-91.jpg按钮,打开NetPro,看到连接到以太网上的两个站(见图10-48)。选中“SIMATIC 300(1)”站点的CPU 313-2DP所在的小方框,在下面的窗口出现连接表,双击连接表第一行的空白处,建立一个新连接。

在出现的“插入新连接”对话框中(见图10-48的右图),系统默认的通信伙伴为站点SIMATCI 300(2)的CPU 315,默认的连接类型为S7连接。

978-7-111-28256-3-Chapter10-92.jpg

图10-48 组态S7连接

点击“确定”按钮,出现S7连接属性对话框(见图10-49)。在“本地连接端点”区,没有选中复选框“单向”,因此连接是双向的,在连接表中生成了“本地ID”和“伙伴ID”。因为两个站是通信伙伴,它们在连接表中的ID相同。点击“地址详细信息”按钮,可以查看地址的详细信息。

复选框“建立激活的连接”是默认的设置。选中该复选框时,连接表的“激活的连接伙伴”列显示“是”(见图10-48),在运行时由本地节点建立连接,反之由通信伙伴建立连接。

978-7-111-28256-3-Chapter10-93.jpg

图10-49 S7连接属性对话框

选中NetPro中“SIMATIC 300(2)”站点的CPU 315所在的小方框,下面的窗口是自动生成的该站点一侧的连接表(见图10-50),双击连接表中的“S7连接”,将出现该站点一侧的连接属性对话框。

978-7-111-28256-3-Chapter10-94.jpg

图10-50 SIMATIC 300(2)一侧的S7连接

组态好连接后,点击工具栏上的978-7-111-28256-3-Chapter10-95.jpg按钮,编译并保存网络组态信息。

因为是双向通信,应将通信双方的连接信息分别下载给两块CPU。(www.xing528.com)

S7-300站点是否能作S7通信的客户机或建立S7双向连接,与CPU和以太网CP的订货号和固件版本号都有关系。本例中CPU 315的订货号为6ES7315-1AF03-0AB0,固件版本为V1.2。CP的订货号为6GK7343-1EX11-0XE0。如果将CP的订货号改为6GK7343-1EX10-0XE0,或者将CPU的固件版本号改为V1.0,S7-300站点都不能作S7通信的客户机或建立S7双向连接。

3.通信程序

通信双方的发送程序和接收程序在OB1中。编程时应使用组态时生成的S7连接的ID号。FB8和FB9中的参数R_ID用于区分同一连接中不同的SFB/FB调用,发送方与接收方的R_ID应相同。为了区分两个方向的通信,令CPU 313C-2DP发送的数据包(即CPU315接收的数据包)的R_ID为1,CPU315发送的数据包的R_ID为2。

提供发送请求信号的M8.0是周期为100ms的时钟存储器位。接收请求信号EN_R直为1状态(TRUE)。如果EN_R的实参为一个位地址(例如M10.0),可以用它来控制是否接收数据。S7-400使用的SFB8/SFB9可以发送和接收4个数据区的数据,S7-300使用的FB8/FB9只能发送和接收一个数据区的数据。

程序段1:发送数据

978-7-111-28256-3-Chapter10-96.jpg

程序段2:接收数据

978-7-111-28256-3-Chapter10-97.jpg

在OB35中,DB1.DBW0每隔100ms被加1。在初始化程序OB100中,用SFC 21预置数据发送区DB1各个字的初值为16#1111,将数据接收区DB2各字节清零。

CPU 315的程序与CPU 313C-2DP的基本上相同,需要注意的是,在前者的OB1中,USEND的输入参数R_ID为2,URCV的R_ID为1,它们的ID(连接号)均为1。在OB100中,发送区的数据字被初始化为W#16#2222。

4.通信过程的监控

图10-51和图10-52是在运行时复制的通信双方的变量表,可以看到双方接收到的DB2.DBW0在不断地变化。用外接的小开关改变ID0的状态,通信伙伴QD4的状态随之而变。

978-7-111-28256-3-Chapter10-98.jpg

图10-51 CPU313C-2DP的变量表

978-7-111-28256-3-Chapter10-99.jpg

图10-52 CPU315的变量表

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

我要反馈