首页 理论教育 基于MPI的S7通信方式在西门子工业通信工程中的应用

基于MPI的S7通信方式在西门子工业通信工程中的应用

时间:2023-11-07 理论教育 版权反馈
【摘要】:基于MPI的S7通信方式也称为组态连接通信方式,仅用于S7-300/400间和S7-400/400间的通信。这种通信方式也适用于通过PROFIBUS和工业以太网的数据通信。S7通信方式分为两种:单边通信方式和双边通信方式。表4-7 SFB14的输入/输出参数说明(续)表4-8 SFB15的输入/输出参数说明2.双边通信方式使用USEND/URCV的双边通信只有在S7-400之间才能通过集成的MPI接口进行S7双向通信。此功能的执行不需要同伙伴SFB协调。BSEND/BRCV不能用于S7-300集成的MPI接口的S7通信。

基于MPI的S7通信方式在西门子工业通信工程中的应用

基于MPI的S7通信方式也称为组态连接通信方式,仅用于S7-300/400间和S7-400/400间的通信。S7-300/400通信时,S7-300只作为服务器,S7-400作为客户机对S7-300的数据进行读写操作;S7-400/400通信时S7-400既可以作为服务器也可以作为客户机。除了要调用系统功能块SFB外,要在CPU的网络硬件组态中建立通信双方的连接,连接参数供调用SFB时使用。这种通信方式也适用于通过PROFIBUS和工业以太网数据通信

S7通信方式分为两种:单边通信方式和双边通信方式。如图4-8所示。

1.单边通信方式

在单边通信中,S7-400作客户机,S7-300作服务器,客户机调用单向通信块SFB14(GET)和SFB15(PUT),通过集成的MPI接口和S7通信,读、写服务器的存储区。服务器是通信中的被动方,不需要编写通信程序。S7-400和S7-300之间只能建立单向的S7连接。如图4-9所示。

978-7-111-52480-9-Chapter04-14.jpg

图4-8 S7通信通信方式原理图

a)单边通信方式 b)双边通信方式

978-7-111-52480-9-Chapter04-15.jpg

图4-9 SFB14和SFB15的框图

SFB14(GET)和SFB15(PUT)的输入/输出参数分别见表4-7和表4-8。

表4-7 SFB14(GET)的输入/输出参数说明

978-7-111-52480-9-Chapter04-16.jpg

(续)

978-7-111-52480-9-Chapter04-17.jpg

表4-8 SFB15(PUT)的输入/输出参数说明

978-7-111-52480-9-Chapter04-18.jpg

2.双边通信方式

(1)使用USEND/URCV的双边通信

只有在S7-400之间才能通过集成的MPI接口进行S7双向通信。S7双向通信调用SFB8(USEND)和SFB9(URCV)可以进行无需确认的快速数据交换通信,即发送数据后无需接收方返回确认信息,可以用于事件消息和报警消息的传送。

SFB8(USEND)将数据送到一个远程的“URCV”类型(两个SFB的R_ID参数必须相同)的SFB。在控制输入端REQ的一个上升沿之后将数据送出。此功能的执行不需要同伙伴SFB协调。将要发送的数据由参数SD_1至SD_4指定,但是不必使用所有四个参数。

SFB9(URCV)以异步模式从一个“USEND”类型的远程SFB接收数据(两个SFB的R_ID参数必须相同)。如果调用功能块时控制输入端EN_R的值为1,则接收到的数据复制到组态的接收区域。这些接收区域由参数RD_1~RD_4指定。第一次调用该功能块时,创建“re-ceive mail box(收件箱)”。随后的调用中,欲接收的数据必须适合该收件箱。如图4-10所示。(www.xing528.com)

SFB8(USEND)和SFB9(URCV)的输入/输出参数分别见表4-9和表4-10。

表4-9 SFB8(USEND)的输入/输出参数说明

978-7-111-52480-9-Chapter04-19.jpg

(续)

978-7-111-52480-9-Chapter04-20.jpg

978-7-111-52480-9-Chapter04-21.jpg

图4-10 SFB8和SFB9的框图

表4-10 SFB9(URCV)的输入/输出参数说明

978-7-111-52480-9-Chapter04-22.jpg

(2)使用BSEND/BRCV的双向通信

S7双向通信使用SFB12(BSEND)和SFB13(BRCV)可以进行需要确认的数据交换通信,即发送数据后需要接收方返回确认信息。BSEND/BRCV不能用于S7-300集成的MPI接口的S7通信。

SFB12(BSEND)向一个“BRCV”类型的远程伙伴SFB发送数据(相应的SFB的R_ID参数必须相同)。该数据传输操作最多可以传输64KB的数据(适用于所有CPU)。调用功能块之后当控制输入端REQ出现一个上升沿时,触发发送工作。从用户内存传输数据与用户程序的处理是异步进行的。

SFB13(BRCV)从一个“BSEND”类型的远程伙伴SFB接收数据(两个SFB的R_ID参数必须相同)。调用功能块之后当控制输入端EN_R为1时,功能块准备好接收数据。接收数据的起始地址由RD_1指定。接收到每个数据段之后,向伙伴SFB发送一个应答并且更新LEN参数。如果在异步接收数据时调用该功能块,将导致在状态参数STATUS端输出一个警告信息,如果调用发生时控制输入端EN_R的值为0,则接收被终止并且SFB回到其初始状态。状态参数NDR的值为1表示成功地接收到所有的数据,且未发生错误。如图4-11所示。

978-7-111-52480-9-Chapter04-23.jpg

图4-11 SFB12和SFB13的框图

SFB12(BSEND)和SFB13(BRCV)的输入/输出参数分别见表4-11和表4-12。

表4-11 SFB12(BSEND)的输入/输出参数说明

978-7-111-52480-9-Chapter04-24.jpg

表4-12 SFB13(BRCV)的输入/输出参数说明

978-7-111-52480-9-Chapter04-25.jpg

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

我要反馈