和大家聊完了TCP/IP(我与PROFINET不得不说的事-03协议-技术论坛-工业支持中心-西门子中国 (siemens.com.cn)),我想可以聊聊PROFINET协议了,然而,突然又想到TCP的一些同胞兄弟,例如UDP,ISO on TCP,以及S7协议,这些协议我觉的也有必要提一提,在我们正式进入PN的世界的时候,我们先做个铺垫吧。毕竟我们不能厚此薄彼,哈。只有这样,大家再看Profinet的时候,我觉得大家会对一些概念不再陌生,大家会更容易理解为什么Profinet是这样的。希望大家那个时候会说:“啊!原来如此!”。
首先从ISO/OSI参考模型来说,TCP/IP,ISO on TCP以及UDP协议都位于参考模型的第4层,即传输层,而S7协议基于ISO on TCP位于第7层,即应用层。层级越往上的协议,通常协议的安全性和可靠性就越完善,这是由各个ISO/OSI的各个层次定义的,当然层次越多,通信的速度也会相应的变慢,因为数据从上之下,或者从下至上打包和解包是需要时间的。顺便说一句就是这个ISO/OSI参考模型不仅仅是针对的以太网的通信,是关于所有协议的,例如PROFIBUS-DP,它是基于RS485的,DP协议也有ISO/OSI参考模型的概念,而DP协议位于第7层。
虽然S7没有第5层(会话层)和第6层(表示层),但是完善的应用层协议使S7协议更加适用于各种SIMATIC场合,S7协议就是完美的选择。首先在通信的数据量上与TCP/IP持平,最高支持64K字节的数据传输;其次由于其应用层协议,故障报警响应及时,例如发生断线的情况下,两侧的通信即停止,产生报错信息。然而再好的事物也有弱点,首先,数据一致性的范围比较小,对比TCP,S7的数据一致性从240B(S7-300)到480B(S7-400)再到960B(S7-1500),范围较小(这里没有细节讨论,这些数据实际上是S7的PDU大小,并非真正数据一致性的大小),而TCP的数据一致性却高达8KB(这个可是纯数据的长度),其次,由于具有更高的ISO/OSI的层次,相对TCP协议来说,处理应用层的数据的时间相对较长,也就是说通信会慢些,然而这个时间对比会随着通信数据字节的长度而随之延长,可以肯定的是毫秒级的差别。总结来说,瑕不掩瑜,S7协议通信是一个非常优秀的协议,非常实用在SIMATIC产品之间通信。
对于TCP/IP来说,对比S7,有些相关的优点和缺点却调换了位置。先说优点,首先TCP/IP是面向连接的,开放的以太网协议,这个协议不仅是SIMATIC的产品在使用,而且第三方的产品也在大量的使用,所以对于与第三方设备通信,TCP/IP协议绝对是首选协议。然而缺点也是很明显,首先,对于数据一致性虽然长度比S7要长很多为8KB,但是S7的数据一致性的数据却可以在CPU的一个周期中传输多次,而TCP/IP的8K数据一致性数据只能在CPU的一个循环中进行传输,也就是说一个CPU循环周期只能最大传输一个TCP/IP的8KB一致性数据,这也意味着TCP/IP通信的时间取决于CPU的周期。第二个缺点就是断线报警的问题,许多用户使用时间节拍的方式来检测通信是否正常就是这个原因,因为TCP工作不会因为断线而停止,即使断线,Done信号仍然会产生,而且产生报警与Keepalive时钟密切相关。总结来说,除了最后一个缺点,TCP/IP仍然是值得大家选择的最通用的协议。
那么对于ISO on TCP协议来说,只是在第4层的TCP上加载了ISO协议,原本ISO也是第4层的协议,两者的结合实际上就是相互利用了两者的最大优势。对于ISO协议是没有第3层的IP协议的,所以不能路由,基于IP协议,便可以路由;对于TCP协议,本身是流式传输协议,在可变长度的数据传输时,数据对位会出现问题,这样ISO协议的加入就避免出现这样的问题,因为ISO作为最佳的可变长度的协议,在报文中具有数据长度信息,这是TCP所不具备的。虽然TCP/IP在数据通信的过程中可以使用AD_HOC方式,但是真实的可变长度却是1460B,当超过这个数据长度时,数据对位会非常棘手,此时建议大家选择ISO on TCP。至于其它特点两者皆相同。
对于UDP,它是一个优点和缺点都非常明显的协议。首先它是不安全的传输协议,这意味着数据在网络中的丢失或者出错是不能重传的,然而在某些的小型局域网内,是非常建议使用该协议的,因为网络不会出错,不会有大量数据包挤占带宽等,UDP是非常快速的,此时无需人为检查错误,只要保证网络纯净。然而理想情况下毕竟占少数,要想安全可靠的数据传输,需要人为通过程序来保证,也就是通过程序来实现TCP/IP协议的可靠传输。UDP通信的另外一个好处就是适用组播通信,即数据从一个设备发送到该组中的其它设备中。总结来说,对于工控网络环境,使用UDP协议需要慎重,需要具有良好的网络知识和编程能力,才能驾驭UDP协议通信。
谈了这么多,还是没有进入到正题,我也觉得很难,很难进入正题,总是想着如何给大家带来一个不一样的Profinet,让大家领略到Profinet的真谛。期望在下一个故事,希望!
您是否还有疑问呢,请点击下面的留言区,我们可以相互交流。