首页 理论教育 西门子S7通信使用USEND/URCV工业通信

西门子S7通信使用USEND/URCV工业通信

时间:2023-11-16 理论教育 版权反馈
【摘要】:使用SFB/FBUSEND/URCV,可以进行快速、不可靠的数据传送,例如,可以用于事件消息和报警消息的传送。BSEND/BRCV和USEND/URCV属于双向通信块,通信的双方都必须调用通信功能块。如果使用集成的MPI接口或集成的DP接口,它们只能用于两台S7-400之间的S7通信。在M0.0为1状态时用外接的小开关改变ID0的状态,通信伙伴的QD0的状态随之而变。将M0.0的值修改为0,写入到CPU后,停止接收数据,变量表中DB2.DBW0的值停止变化。

西门子S7通信使用USEND/URCV工业通信

使用SFB/FBUSEND/URCV,可以进行快速、不可靠的数据传送,例如,可以用于事件消息和报警消息的传送。

BSEND/BRCV和USEND/URCV属于双向通信块,通信的双方都必须调用通信功能块。如果使用集成的MPI接口或集成的DP接口,它们只能用于两台S7-400之间的S7通信。

1.硬件组态

在STEP 7中创建一个项目(见随书光盘中的例程PB_S7_B和图4-15)。在HW Config中,将电源模块、CPU 413-2DP和信号模块插入机架。插入CPU模块时,在自动打开的DP接口属性对话框中,点击“新建”按钮,生成PROFIBUS-DP网络。设置传输速率为默认的1.5Mbit/s,配置文件为“标准”。CPU的MPI地址和DP地址均为2。

在SIMATIC管理器中生成另一个400站点,在HW Config中,将电源模块、CPU 413-2DP和信号模块插入机架。设置CPU的MPI地址和DP地址均为3,将它连接到DP网络上。两个站的工作模式均为“DP主站”。

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

图4-15 SIMATIC管理器

组态好硬件后,点击工具栏上的978-7-111-28256-3-Chapter04-34.jpg按钮,编译并保存硬件组态信息。

2.组态S7连接

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

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

图4-16 网络与连接的组态

在出现的“插入新连接”对话框中,系统默认的通信伙伴为站点SIMATC 400(2)的CPU413-2DP,“类型”选择框中默认的连接类型为S7连接。

点击“确定”按钮,出现“属性-S7连接”对话框(见图4-17的左图)。在“本地连接端点”区,复选框“单向”被禁止选中(该复选框为灰色),因此连接是双向的,在连接表中生成了相同的“本地ID”和“伙伴ID”。

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

选中NetPro中站点SIMATIC 400(2)的CPU 413-2DP所在的小方框,下面的窗口是自动生成的该站点一侧的连接表(见图4-18),双击连接表中的“S7连接”,出现该站点一侧的连接属性对话框(见图4-17中的右图)。

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

图4-17 通信双方的S7连接属性对话框

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

图4-18 站点SIMATIC 400(2)一侧的S7连接

组态好连接后,点击工具栏上的978-7-111-28256-3-Chapter04-39.jpg按钮,网络组态信息被编译和保存在系统数据中。(www.xing528.com)

对于双向通信,必须将通信双方的连接表信息分别下载到各自的CPU。

3.通信程序

编程时应使用组态时生成的S7连接的ID号。SFB中的R_ID用于区分同一连接中不同的SFB/FB调用,发送方与接收方的R_ID应相同。为了区分两个方向的通信,令站点SIMATIC400(1)发送和接收的数据包的R_ID分别为1和2,站点SIMATIC400(2)发送和接收的数据包的R_ID分别为2和1。

提供发送请求信号的M8.0是周期为100ms的时钟存储器位,接收请求信号EN_R(M0.0)为1状态时接收数据。下面是站点SIMATIC 400(1)的OB1中的程序。

程序段1:发送数据

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

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

程序段2:接收数据

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

在OB35中,DB1.DBW0每隔100ms被加1。在初始化程序OB100中,用SFC 21将DB1和MW40~MW58的数据发送区中的各个字分别预置为16#4011和16#4014。将DB 2和MW20~MW38的数据接收区中的各个字清零。

站点SIMATIC 400(2)与站点SIMATIC 400(1)的程序基本上相同,在前者的OB100中,DB 1和MW40~MW58的数据发送区中的各个字分别被预置为16#4021和16#4024。

4.通信过程的监控

运行时同时打开通信双方的变量表,将它们调节到适当的大小。点击工具栏上的978-7-111-28256-3-Chapter04-43.jpg按钮,变量表进入监控状态。图4-19和图4-20是在运行时复制的通信双方的变量表。

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

图4-19 SIMATIC 400(1)的变量表

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

图4-20 SIMATIC 400(2)的变量表

在时钟脉冲M8.0的上升沿,每100ms USEND发送一次数据。刚进入RUN模式时,接收使能位M0.0为0状态,禁止接收,双方的DB2、MW20~MW38和QD0等数据接收区中的数据均为0。

在接收允许信号M0.0的“修改数值”列输入1,点击鼠标左键确认后1变为“true”。点击工具栏上的“激活修改值”按钮978-7-111-28256-3-Chapter04-46.jpg,“状态值”列出现绿色的指示灯符号和字符“true”,表示CPU中的M0.0变为1状态,允许接收数据。可以看到接收到的DB2.DBW0的值不断地变化,此外可以看到变量表中接收到的其他数据与发送方在OB100中预置的相同。

在M0.0为1状态时用外接的小开关改变ID0的状态,通信伙伴的QD0的状态随之而变。将M0.0的值修改为0,写入到CPU后,停止接收数据,变量表中DB2.DBW0的值停止变化。

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

我要反馈