|
|
| |
|
|
|
“TCP/IP”中的IP代表Internet
协议,TCP是什么意义?
|
|
TCP-传输控制协议(Transmission
Control Protocol),定义了如何传送数据。TCP是基于连接的协议,保证了数据的稳定传输。TCP把大量的数据拆分成多个数据包传送,然后在接收端恢复数据,数据包有可能失序,这时,TCP将对数据进行重新排序。TCP还能提供流量控制,在信息量加大的时候避免缓冲区溢出。TCP能够提供可靠的通讯连接。
但是,TCP的优先级对于用户应用来说太过简单,不能保证重要数据的实时传送。可以说,TCP
协议不是实时传送协议。
|
| 那么,为什么还要在工业应用中使用TCP协议? |
|
是的,因为很多原因。不是所有的系统都需要毫秒级的反应速度。TCP是Internet协议,被广泛应用和接受,这使得整合工业系统成为可能。那么,有没有什么办法既可以使用Internet协议,又可以实现实时性呢?
|
| 答案是UDP(User
Datagram Protocol)-用户数据报协议。 UDP信息包括一个IP地址,数据格式与TCP相似。UDP协议和TCP协议的差别是UDP协议是“面向非连接”的,即在正式通信前不必与对方先建立连接,而是直接就把数据包发送过去。因而,使用UDP协议传送速度会大大提高,可以适应工业系统实时传送的要求。I/O数据信息往往较短,无需使用TCP对大量数据进行重新排序的功能,即使有大量I/O数据需要传送,I/O驱动软件也会拆分成多个数据包。 |
| I/O驱动的开发者努力解决信息传送的跟踪问题,解决数据正确接收时的确认和错误信息的重发。而这在工业系统中是一个长期存在的问题。例如Modbus信息,也需要正确接收确认,master站需要控制信息的传送。在过去的20年中,SIXNET在通过无线方式或其它不可靠的传送方式传送Modbus数据上积累了大量经验。SIXNET使用大量专家开发核心技术,包括自定义UDP信息传送的计划表,以确保可靠传送信息。 |
| UDP包不包含TCP栈的溢出信息。由于传输数据不建立连接,UDP无需维护连接状态,包括收发状态。SIXNET从1995开始在以太网中使用UDP协议。SIXNET以太网系统已经在全球范围内安装了几千套,而事实证明,SIXNET以太网系统的实时传送性能卓越。 |
| 为什么工业I/O系统并不都采用UDP协议? |
| 是的,仍然有因为很多原因。Modbus开放式协议要求使用TCP/IP协议。很多串行Modbus驱动的开发者在其软件中仅开放了TCP
socket。 同时也有市场的因素,很多人更了解TCP协议。 |
| 我的以太网设备使用TCP协议还是UDP协议? |
| 在SIXNET系统中,用户可以自由选择。所有的SIXNET以太网产品同时支持TCP协议和UDP协议。假如用户的Windows软件发送的数据使用了完整的TCP头,SIXNET设备自动使用TCP协议应答。假如用户使用HMI或SCADA软件,或者用户要在SIXNET控制器及RTU中传送I/O数据的时候,将自动使用UDP协议以实现数据实时传送。很多和SIXNET有合作的软件公司的产品也支持UDP协议。 |