首页 理论教育 S7通信中使用BSEND/BRCV的实现方法

S7通信中使用BSEND/BRCV的实现方法

时间:2023-11-16 理论教育 版权反馈
【摘要】:程序段1:发送数据程序段2:接收数据BSEND的输入参数LEN是要发送的数据的字节数,数据类型为WORD。图4-21 SIMATIC400的变量表图4-22 SIMATIC400的变量表在运行时用外接的小开关改变ID0的状态,可以看到通信伙伴的QD0的状态随之而变。

S7通信中使用BSEND/BRCV的实现方法

1.硬件组态

使用SFB BSEND/BRCV,可以进行快速的、可靠的数据传送。在STEP 7中创建一个项目(见随书光盘中的例程PB_S7_C),生成两个站,CPU模块均为CPU 413-2DP。系统的硬件组成与项目PB_S7_B相同,硬件组态和连接组态的组态过程、通信接口地址与项目PB_S7_B也完全相同。

2.通信程序

SFB BSEND/BRCV的输入参数R_ID用于区分同一连接中不同的SFB/FB调用,发送方与接收方的R_ID应相同。站点SIMATIC 400(1)发送和接收的数据包的R_ID分别为1和2,站点SIMATIC 400(2)发送和接收的数据包的R_ID分别为2和1。提供发送请求信号的M8.0是周期为100ms的时钟存储器位,每100ms发送一次数据。下面是站点SIMATIC(1)的OB1中的程序。

程序段1:发送数据

978-7-111-28256-3-Chapter04-47.jpg

程序段2:接收数据

978-7-111-28256-3-Chapter04-48.jpg

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

978-7-111-28256-3-Chapter04-49.jpg

978-7-111-28256-3-Chapter04-50.jpg(www.xing528.com)

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

站点SIMATIC 400(2)与站点SIMATIC 400(1)的程序基本上相同。在前者的OB100中,发送区的数据被初始化为W#16#4132。

3.通信过程的监控

图4-21和图4-22是在运行时复制的通信双方的变量表。图中接收允许信号M0.0被置为true。在运行时可以看到双方接收到的DB2.DBW0在不断地变化,此外可以看到数据接收区的最后一个字DBW198的值与发送方预置的相同。

978-7-111-28256-3-Chapter04-51.jpg

图4-21 SIMATIC400(1)的变量表

978-7-111-28256-3-Chapter04-52.jpg

图4-22 SIMATIC400(2)的变量表

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

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

我要反馈