双边通信
发布时间:2019/6/13 21:53:49 访问次数:1579
双边通信F2TVS10A
发送方与接收方均需调用SFC,适用于Ⅳ300/400PLC之间的通信。在调用SFC时要赋实参,这些参数指示sFC完成特定的任务。
发送方调用SFC65(“X~sEND”)建立连接并启动数据发送功能,其主要参数形式如下:
REQ:BOOI'型,等于l时激活发送功能,建立与通信伙伴之间的连接。
CONT:BOOL型,等于1时要求所建立的连接一直保持;等于0时表示当通信任务结束后即断开连接。
DEST ID:WORD型,通信伙伴的MPI地址。
REQ II):DW()RD型,数据包的标识符,便于接收方识别。
SD:ANY型,指示数据发送的区间、数据类型及长度。
接收方调用sFC66(“X_RCV”)判断是否接收到数据或者将接收到的数据保存到数据接收区,其形式参数有:
EN DT:BC)()I'型,赋0用于判断当前是否接收到新的数据;赋l用于将接收到的数据保存到指定的区间。
NAD:BfX)I'型,CPU操作系统自动将接收到的数据按到达的先后次序依次排队,当用户程序调用SFC66并令EN_DT=0时,如果NAD的输出为1,表示至少有1个数据块已经到达本站,正等待接收处理;而如果NAD的输出为0,则表示目前没有任何新的数据。REQ ID:DWORD型,用于保存数据包标识符。该标识符为SFC65所发送的数据包的标识符,并且是队列中最先到达的数据包的标识符。
RD:ANY型,指示数据的保存区问。当用户程序调用SFC66并令EN_DT=1时,按照RI)实参的指示,队列中最先到达的数据包被保存到相应的区间。需要注意的是,“RD”与“SD”的实参在数据长度、数据类型的定义上应匹配。
从以上的介绍中可以看出,MPI网络各个站之间的双边通信不是同步进行的。发送方将数据包发送出去,包含数据包标识符、对方MPI地址等信息;接收方将来自不同地点、不同标识的数据包依次排队,然后再逐个处理。
两个通信伙伴之间的连接在发送方调用SFC65时即被建立起来,如果需要两个站之间互相交换信息,就需要彼此都调用SFC65,这就相当于在两个站之间建立了两个连接。每个CPU的连接资源是有限的,当需要交换多个数据包时,就需要多次调用SFC65,囚此释放暂时不用的连接很有必要。这种情况下,可以将sFC65的“CC)NT”赋值为0;也可以调用系统功能SFC69(“X_AB(JRT”)将不用的连接释放。
双边通信F2TVS10A
发送方与接收方均需调用SFC,适用于Ⅳ300/400PLC之间的通信。在调用SFC时要赋实参,这些参数指示sFC完成特定的任务。
发送方调用SFC65(“X~sEND”)建立连接并启动数据发送功能,其主要参数形式如下:
REQ:BOOI'型,等于l时激活发送功能,建立与通信伙伴之间的连接。
CONT:BOOL型,等于1时要求所建立的连接一直保持;等于0时表示当通信任务结束后即断开连接。
DEST ID:WORD型,通信伙伴的MPI地址。
REQ II):DW()RD型,数据包的标识符,便于接收方识别。
SD:ANY型,指示数据发送的区间、数据类型及长度。
接收方调用sFC66(“X_RCV”)判断是否接收到数据或者将接收到的数据保存到数据接收区,其形式参数有:
EN DT:BC)()I'型,赋0用于判断当前是否接收到新的数据;赋l用于将接收到的数据保存到指定的区间。
NAD:BfX)I'型,CPU操作系统自动将接收到的数据按到达的先后次序依次排队,当用户程序调用SFC66并令EN_DT=0时,如果NAD的输出为1,表示至少有1个数据块已经到达本站,正等待接收处理;而如果NAD的输出为0,则表示目前没有任何新的数据。REQ ID:DWORD型,用于保存数据包标识符。该标识符为SFC65所发送的数据包的标识符,并且是队列中最先到达的数据包的标识符。
RD:ANY型,指示数据的保存区问。当用户程序调用SFC66并令EN_DT=1时,按照RI)实参的指示,队列中最先到达的数据包被保存到相应的区间。需要注意的是,“RD”与“SD”的实参在数据长度、数据类型的定义上应匹配。
从以上的介绍中可以看出,MPI网络各个站之间的双边通信不是同步进行的。发送方将数据包发送出去,包含数据包标识符、对方MPI地址等信息;接收方将来自不同地点、不同标识的数据包依次排队,然后再逐个处理。
两个通信伙伴之间的连接在发送方调用SFC65时即被建立起来,如果需要两个站之间互相交换信息,就需要彼此都调用SFC65,这就相当于在两个站之间建立了两个连接。每个CPU的连接资源是有限的,当需要交换多个数据包时,就需要多次调用SFC65,囚此释放暂时不用的连接很有必要。这种情况下,可以将sFC65的“CC)NT”赋值为0;也可以调用系统功能SFC69(“X_AB(JRT”)将不用的连接释放。