基于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所示。
图4-8 S7通信通信方式原理图
a)单边通信方式 b)双边通信方式
图4-9 SFB14和SFB15的框图
SFB14(GET)和SFB15(PUT)的输入/输出参数分别见表4-7和表4-8。
表4-7 SFB14(GET)的输入/输出参数说明
(续)
表4-8 SFB15(PUT)的输入/输出参数说明
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)的输入/输出参数说明
(续)
图4-10 SFB8和SFB9的框图
表4-10 SFB9(URCV)的输入/输出参数说明
(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所示。
图4-11 SFB12和SFB13的框图
SFB12(BSEND)和SFB13(BRCV)的输入/输出参数分别见表4-11和表4-12。
表4-11 SFB12(BSEND)的输入/输出参数说明
表4-12 SFB13(BRCV)的输入/输出参数说明
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。