首页 理论教育 西门子S7通信网络双向传输使用BSEND/BRCV技术

西门子S7通信网络双向传输使用BSEND/BRCV技术

时间:2023-11-16 理论教育 版权反馈
【摘要】:FB12“BSEND”和FB13“BRCV”的输入参数R_ID用于区分同一连接中不同的SFB/FB调用,发送方与接收方的R_ID应相同。在OB1调用库文件夹“\SIMATIC_NET_CP\CP 300”中的FB12和FB13,用周期为100ms的时钟存储器位M8.0作发送请求信号,每100ms发送一次数据。具体的程序见随书光盘中的项目IE_S7_3,本项目的程序与4.3.2节的例程PB_S7_C中的程序基本上相同。在OB100中,用SFC 21预置数据发送区DB1各个字的初值为16#1111,将数据接收区DB2各个字清零。

西门子S7通信网络双向传输使用BSEND/BRCV技术

1.硬件组态

使用SFB BSEND/BRCV,可以进行快速、可靠的数据传送。在STEP 7中创建一个项目(见随书光盘中的例程IE_S7_3),生成两个站,CPU模块分别为CPU313C-2DP和CPU315,两个站分别使用以太网模块CP 343-1IT和CP343-1。系统的硬件组成与项目IE_S7_2相同,硬件组态和连接组态的过程、以太网接口地址与项目IE_S7_2也完全相同。

2.通信程序简介

通信双方的发送程序和接收程序在OB1中。FB12“BSEND”和FB13“BRCV”的输入参数R_ID用于区分同一连接中不同的SFB/FB调用,发送方与接收方的R_ID应相同。为了区分两个方向的通信,令CPU313C-2DP发送的数据包的R_ID为1,CPU315发送的数据包的R_ID为2。参数ID(连接号)均为1。

在OB1调用库文件夹“\SIMATIC_NET_CP\CP 300”中的FB12和FB13,用周期为100ms的时钟存储器位M8.0作发送请求信号,每100ms发送一次数据。接收请求信号EN_R为常数1(TRUE)。具体的程序见随书光盘中的项目IE_S7_3,本项目的程序与4.3.2节的例程PB_S7_C中的程序基本上相同。

BSEND的输入参数LEN是要发送的数据的字节数,数据类型为WORD(无符号的字)。因为不能使用常数,其实参为MW14,在初始化程序OB100中用下面两条语句预置它的初值为250:

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

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

CPU 315的程序与CPU 313C-2DP的基本上相同,在OB100中,发送区的数据被初始化为W#16#2222。(www.xing528.com)

3.通信过程的监控

图10-53和图10-54是在运行时复制的通信双方的变量表。在运行时可以看到双方接收到的DB2.DBW0在不断地变化,数据接收区的最后一个字DBW248的值与发送方预置的相同。

在运行时用外接的小开关改变ID0的状态,可以看到通信伙伴的QD4的状态随之而变。

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

图10-53 CPU 313C-2DP的变量表

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

图10-54 CPU 315的变量表

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

我要反馈