建立属于自己的原创信息品牌站 了解企业站
返回首页 hi, 欢迎来到机器人在线 请登录/ 免费注册 扫码关注
  • 【英莱】工业以太网通信——TCP协议简介

    发布时间:2019年11月11日

    工业以太网近年来发展迅速,颇引人瞩目。主要由于工业自动化正向分布式、智能化方面发展,其中通信已成为其中关键一环。用户对统一的网络通信要求日益迫切,但多种工业线程总线互相不兼容,不同公司的控制器之间不能实现高速实时的数据传输,导致“自动化孤岛”现象。促使人们开始寻找新的出路:工业以太网—TCP协议。


      TCP协议简介


    TCP是TCP/IP体系中非常复杂的一个协议,TCP最主要的特点有:


     ● TCP是面向连接的运输层协议。应用程序在使用TCP协议之前,必须先建立TCP连接。在传递数据完毕后,必须释放已建立的TCP连接。

     ● 每一条TCP连接只能有两个端点,只能说点对点的。

     ● TCP提供可靠交付的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,并且按序到达。

     ● TCP提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。

     ● 面向字节流。TCP中的“流”指的是流入到进程或从进程流出的字节序列。“面向字节流”的含义是:虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。TCP并不知道所传送的字节流的含义。TCP不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块具有对应大小的关系。但接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样。当然,接收方的应用程序必须有能力识别收到的字节流,把它还原成有意义的应用层数据。



    TCP报文段先要传到IP层,加上IP首部后,再传送到数据链路层。再加上数据链路层的首部和尾部,才离开主机发送到物理链路。

    a.TCP和UDP在发送报文时所采用的方式完全不同。TCP并不关心应用程序一次把多长的报文发送到TCP缓存中,而是根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP发送的报文长度是应用程序给出的)。

    b.如果应用程序传送到TCP缓存的数据块太大,TCP就可以把它划分短一些再传。TCP也可以等待积累有足够多的字节后再构建成报文段发送出去。


      TCP传输的优点


     ● 具有相当高的数据传输速率,PLC普遍支持100Mbps,最高可达1000Mbps。

     ● 基于TCP的以太网采用国际主流的标准,协议开放、不同厂商设备均可正常通信,互联操作性极强。

     ● 采用双绞线通信,抗干扰能力极强。实际使用过程中完全可以胜任高频、静电等工业常见干扰。


      TCP链接三次握手



     ● 一开始,客户端和服务端都处于CLOSED状态

     ● 先是服务端主动监听某个端口,处于LISTEN状态

     ● 客户端主动发起连接SYN,之后处于SYN-SENT状态

     ● 服务端收到发起的连接,返回SYN,并且ACK客户端的SYN,之后处于SYN-RCVD状态

     ● 客户端收到服务端发送的SYN和ACK之后,发送ACK的ACK,之后处于ESTABLISHED状态。

     ● 服务端收到ACK的ACK之后,处于ESTABLISHED状态。


      TCP链接释放四次挥手



     ● 当前A和B都处于ESTAB-LISHED状态。

     ● A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。

     ● B收到连接释放报文段后即发出确认,然后B进入CLOSE-WAIT(关闭等待)状态。TCP服务器进程这时应通知高层应用进程,因而从A到B这个方向的连接就释放了,这时TCP连接处于半关闭状态,即A已经没有数据发送了。从B到A这个方向的连接并未关闭,这个状态可能会持续一些时间。

     ● A收到来自B的确认后,就进入FIN-WAIT-2(终止等待2)状态,等待B发出的连接释放报文端。

     ● 若B已经没有向A发送的数据,B发出连接释放信号,这时B进入LAST-ACK(最后确认)状态等待A的确认。

     ● A再收到B的连接释放消息后,必须对此发出确认,然后进入TIME-WAIT(时间等待)状态。请注意,现在TCP连接还没有释放掉,必须经过时间等待计时器(TIME-WAIT timer)设置的时间2MSL后,A才进入CLOSED状态。

     ● B收到A发出的确认消息后,进入CLOSED状态。


    主流应用层协议


     ● Modbus TCP协议:

    Modbus TCP协议是法国施耐德公司发布的协议,以一种非常简单的方式将Modbus帧数据嵌入到TCP帧中。应用非常广泛,最重的是设备与PC间通信不存在协议转换开发难度大大降低。


     ● ProfiNet协议

    ProfiNet协议是德国西门子发布的工业以太网规范。ProfiNet解决方案囊括了诸如实时以太网、运动控制、分布式自动化、故障安全等当前自动化领域的热点话题。


    ProfiNet支持三种通信方式:

    ① TCP/IP标准通信:ProfiNet基于工业以太网技术,使用TCP/IP和IT标准。TCP/IP是IT领域关于通信协议方面事实上的标准,尽管其响应时间大概在100ms的量级,,但对于工厂控制级的应用来说,这个响应时间已经足够了。

    ② 实时RT通信。

    ③ 等时同步实时通信。

     

    综上这些特点和优点,目前工业机器人、PLC、数控系统等都可以使用工业以太网TCP与PC通信。很容就可做到设备信息通过互联网发送主控室、企业的EPP和管理系统,甚至可上传Internet、云端供人们阅读。


  • 获取验证码