技术论坛

 我与PROFINET不得不说的事-04对比

返回主题列表
作者 主题
赵欣
官方工程师
西门子官方工程师西门子官方工程师

经验值:5576
发帖数:387
精华帖:52
楼主    2021-02-19 13:59:10
主题:我与PROFINET不得不说的事-04对比 精华帖 

和大家聊完了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的真谛。期望在下一个故事,希望!

 

您是否还有疑问呢,请点击下面的留言区,我们可以相互交流。

读万卷书 行万里路
www123456
至圣

经验值:12226
发帖数:2431
精华帖:86
11楼    2021-02-27 13:36:49
精华帖  主题:【故事】回复:我与PROFINET不得不说的事-04对比

左图人喝水,手拿着瓶子可以根据感知口腔大小调节瓶子角度(相当于流量),比如人口吞咽频率慢了,水快充满的时候,相当于告诉手臂应该调节流量了,当然这个过程要占用一些时间。对TCP类比一下,先拿着瓶子对准口腔(TCP建立连接),然后告诉发送方自己数据容量窗口的大小,根据我目前的储存能力(数据接收能力),发送方应该发送多少数据,这也是流量的控制。这个喝水过程的吞咽频率对水流流量影响很大,类比TCP/IP通信,也就是接收频率要比发送频率快,使接收端的滑动窗口始终有空闲,这样通信速度就快了。右图中没有喝水的流量调节,完全是流多少水,口腔尽量去喝的过程,当口腔吞咽频率不够的时候,口腔中水积累多了,没有变通机制,水流依然"一往无前",水很可能就会飞溅出来(丢失),对UDP来说就相当于丢包。

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。