n
配置注意事项:
CP443-1EX40 设备手册中的第5.3节"Characteristic data for SEND/RECEIVE interface"对这个问题已做了解释,它提供了Send/Receive 通信服务不同协议对应的数据长度的信息。
LAN 接口 - CP中每个协议单元产生的数据块长度 | |
发送 | ISO Transport, ISO-on-TCP, TCP: 400 字节 / TPDU |
接收 | ISO Transport: 512 字节 / ISO-on-TCP: 1024 字节 / TCP: 1460 字节 / TPDU |
CP443-1EX40 设备手册可通过ID号: 19308871 获得。n
上表中的数值定义了模块同时发送和接收用户数据的字节数。 当 sends/receives 任务需要发送/接收数据超过通讯功能块限制的长度时,CP的传输层就会将其分割成几段长度合适的数据。这个长度是符合模块的LAN 接口要求的。(本地局域网).n
发送用户数据块的值
该数据块大小限制为 400 字节。但该值不取决于所使用的协议。固件中缓冲区的大小决定了数据块只能发送最大长度为400 字节的数据。
这意味着用户数据如为 401 字节 将分为2段独立的报文发送。 第一段报文长度为 400 字节,第二段报文长度为1 个字节。 以下三种协议的发送/接收都按照这种方式:n
- ISO transport 协议n
- ISO-on-TCP 协议n
- TCP 协议
接收用户数据块的值
最大的数据块长度在此无法定义成一个固定的值。接收用户数据的值在3个协议中各有不同。
下面的图示通过sniffer记录给出了具体的 解释和描述。n
- ISO transport 协议
最大的接收字节数由 "Maximum TPDU Size" 参数决定。它是在连接建立时的通信握手过程协商完成的。通讯双方的主动一方提出一个值,被动一方接受该值或者减少使其变为一个较小的值。
下图为 "Maximum TPDU Size" 设置为 512 字节 的例子。
( 38 KB )
图 01: ISO Transport协议下最大 TPDU 长度以sniffer记录的LAN 的数据格式:
ISO_连接.zip ( 388 bytes ) ( 388 字节 )
- ISO-on-TCP 协议
在ISO-on-TCP协议下,需要设置两个相关的参数来决定最大的接收字节数:- MaximumSegmentSize = 1460
- Maximum TPDU Size = 1024当连接建立时,"MaximumSegmentSize" 定为 1460 字节。详见下图。
( 37 KB )
图 02: ISO-on-TCP 协议下的最大段长度由于ISO-on-TCP 协议是根据ISO transport 协议到 TCP的设备接口定义的。所以也要用到 "Maximum TPDU Size" 参数。在下图中该参数被设置为1024 字节。
( 38 KB )
图 03: ISO-on-TCP协议下的最大 TPDU 长度注意:
限制值为两个值中较小的一个。因此ISO-on-TCP 协议下接收数据包的最大限制为1024 字节. 在此请注意用户也能够接收更大的数据块,CP可以自动地将其分段。以sniffer记录 的LAN 的数据格式:
- ISO-on-TCP_连接.zip ( 584 bytes ) ( 584 字节 )
- TCP 协议
TCP 协议下不包含 "Maximum TPDU Size" 参数。接收的最大字节数由 "MaximumSegmentSize" 参数决定。将其设置为 1460 字节。TCP_连接.zip ( 443 bytes ) ( 443 字节 )
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc338043.html