工业通信中有各种各样的协议,比如,当我们为西门子CP模块新建传输协议的时候,很多种类可以选择,如下图:
这些通信协议,究竟有哪些不同?我们应该如何根据实际情况进行选择?今天,我们就来聊聊西门子工业通信中常见的ISO传输(ISO transport)协议、ISO-ON-TCP协议和TCP协议。
ISO传输(ISO transport)协议是西门子早期的以太网协议,基于ISO 8073 TP0(Transport Protocol Class0),位于ISO-OSI参考模型的第四层,属于传输层的协议。ISO传输协议是基于消息的数据传输,允许动态修改数据长度;传输速度快,适合中等或较大量的数据;站点之间的ISO传输不使用IP地址,而是基于MAC地址,因此数据包不能通过路由器进行传递(不支持路由);另外ISO传输协议是西门子内部的以太网协议,仅适用于SIMATIC系统。两个SIMATIC站点之间的数据发送和接收使用Send/Recive,服务器的读写使用Fetch/Write服务。
ISO传输(ISO Transport)协议最大的优势是通过数据包来发送/接收数据,但由于它不支持路由功能,随着网络节点的增加,ISO传输协议的劣势逐渐显现。
为了应对日益增加的网络节点,西门子在ISO传输协议的基础上增加了TCP/IP协议的功能,新的协议对扩展的RFC1006 “ISO on top of TCP” 进行了注释(RFC为Request For Comments的缩写),因此被称为 “ISO-ON-TCP”协议。
ISO-ON-TCP在TCP/IP 协议中定义了ISO 传输的属性,位于ISO-OSI 参考模型的第四层,默认的数据传输端口为102。如下图:
与ISO传输协议相同,ISO-ON-TCP协议的两个SIMATIC站点之间的数据发送和接收也使用Send/Recive,服务器的读写使用Fetch/Write。
在ISO传输协议和ISO-ON-TCP协议的使用过程中,还涉及到TSAP的设置。
TSAP是英文“Transport Service Access Point”的缩写,中文翻译为“传输服务访问点”。在一个传输的链接中,可能存在多个进程。为了区分不同进程的数据传输,需要提供一个进程独用的访问点,这个访问点,被称为TSAP。在两个站点的同一个传输链接中,如果只存在一个传输进程,则本地和远程的TSAP可以相同;如果存在多个传输进程,则TSAP必须唯一;TSAP相当于TCP或UDP协议中的端口(port)。
S7-300/400支持的TSAP长度为1~16位,用户使用的TSAP长度应在3位以上,2位以内的留作系统内部使用。TSAP可以是ASCII码或者十六进制的形式,如下图是ISO-ON-TCP的TSAP设置:
ISO-ON-TCP协议的优势是能传输大量的数据并且支持路由功能,但是它仅适用于SIMATIC系统,只能在西门子内部使用,在一定程度上限值了其应用。西门子认识到这一问题,最终提供了对TCP/IP协议的全面支持。
TCP/IP是全球范围内广泛使用的以太网协议,TCP全称“Transmission Control Protocol(传输控制协议)”,属于ISO-OSI参考模型的第四层(UDP也位于该层);IP协议位于第三层;
TCP/IP提供站点之间的可靠传输,具有回传机制,支持路由功能,可用于西门子SIMATIC系统内部及SIMATIC与PC或其它支持TCP/IP的系统通信。两个站点之间的数据发送和接收也使用Send/Recive,服务器的读写使用Fetch/Write。
TCP/IP的通信需要设置本地和远程IP地址,以及与进程相关的端口号(port number),端口号的范围从1025~65535。如下图:
好了,关于ISO传输、ISO-ON-TCP和TCP协议就先聊到这里,更多技术文章请登录官网(www.founderchip.com)。
发表评论