您的位置:控制工程论坛网论坛 » 现场总线 » 开放的MODBUS TCP(连载二)

huarong

huarong   |   当前状态:在线

总积分:2959  2024年可用积分:0

注册时间: 2007-02-01

最后登录时间: 2019-03-21

空间 发短消息加为好友

开放的MODBUS TCP(连载二)

huarong  发表于 2007/10/19 17:26:48      1213 查看 0 回复  [上一主题]  [下一主题]

手机阅读

  1 为什么要用TCP/IP?
  TCP/IP(Transmission Control Protocol / Internet Protocol,传送控制协议/网际协议)之所以强大的最主要的一个原因在于它可以使用在多种物理网络技术上,包括局域网和广域网技术,并能适应几乎所有的底层通信技术。20世纪80年代初,先在X.25上运行TCP/IP协议,而后,又在一个拨号语音网络(例如电话系统)上使用TCP/IP协议,又有TCP/IP在令牌环网上运行成功,最后,又实现了TCP/IP远程分组无线网点与其他Internet网点之间进行TCP/IP的通信。


  所以说,TCP/IP协议是及其灵活的,几乎所有的底层技术都可以用于传输TCP/IP的通信,也就是说,TCP/IP具备连接不同网络的能力。另外,使用TCP/IP也简化了OSI的模型,因为它省略了表示层和会话层。


  如果现在把以太网物理层和数据链路层加到OSI的模型之中,如图1所示,就构成了基于以太网的TCP/IP网。事实上用以太网实现TCP/IP也是最经济的一种方式。



  图1  简化的OSI模型


  2  协议的功能
  组建网络时,必须选择一种网络通信协议,使得用户之间能够相互进行“交流”。协议(Protocol)是网络设备用来通信的一套规则,这套规则可以理解为一种彼此都能听得懂的公用语言。


  如果在网络层使用IP协议,在传输层使TCP协议,就构成了目前最常用的TCP/IP,现在几乎所有的厂商和操作系统都支持它,同时,TCP/IP也是Internet的基础协议。


  如果在应用层使用工业上事实标准的Modbus协议,就构成了完整的工业以太网的应用。


  3  开放和标准的Modbus TCP
  Modbus是开放的协议,IANA(Internet Assigned Numbers Authority,互联网编号分配管理机构)给Modbus协议赋予TCP编口号为502,这是目前在仪表与自动化行业中唯一分配到的端口号,Modbus协议可免费从www.Modbus.org得到。


  Modbus是标准的协议,Modbus协议已提交给IETF(Internet Engineering Task Force,互联网工程任务部),将成为Internet标准。因为从1978年以来,在工业自动化行业,已安装了百万计的串口Modbus设备和10万计的Modbus TCP/IP设备,拥有超过300多个Modbus兼容设备厂商,还有90%的第三厂家的I/O支持Modbus TCP/IP,所以是使用最广泛的事实标准。


  Modbus的普及得益于使用它的门坎很低,无论用串口还是用以太网,硬件成本低廉,Modbus 和 Modbus TCP都可以免费收到,不需交纳任何费用。而且在网上有很多免费资源,如C/C++,JAVA样板程序,Active X控件,各种测试工具等等,所以用户使用很方便。另外,几乎可以找到任何现场总线连接到Modbus TCP的网关,方便用户实现各种网络之间的互联。


  4  Internet Protocol (IP)
  IP是Internet最基本的协议,用户可以下载RFC 791(RFC: Request For Comments,要求评论:一系列备忘录的名称,它们包括概述、评价、意见、技术和研究,以及所提出的和被接受的互联网标准),来得到其文件。


  IP层的主要目的是找到IP报文的“下一个连接点”,它可以是路由器,计算机,控制器甚至是I/O,关键是这个设备必须有自己的IP地址。凡是在网络层使用IP协议的网络都是通过IP地址来进行寻址的,所以使用时首先要进行复杂的设置,每个节点至少需要一个“IP地址”、一个“子网掩码”、一个“默认网关”和一个“主机名”。如此复杂的设置,对于一些初识网络的用户来说的确带来了不便。不过,随着对网络的熟悉,有许多IP地址配置工具,可以方便进行IP设置,甚至是自动设置。


  IP是面向报文的协议,它独立处理每个报文包,每个报文包必须含有完整的寻地信息。IP报文包的格式如图2所示。



  图2  IP报文包的格式


  5  IP地址的类
  共有四种地址类型,如图3所示。


  A类地址用于处理超大型网络,最多16 387 064个主机(网络地址的第一段为1~126)。


  B类地址的网络最多可有64 516个主机(网络地址的第一段为128~191)。


  C类地址用于小型网络,最多可有254主机(网络地址的第一段为192~223)。


  D类地址用于多点播送,用于多目的地信息的传输,全零(“0,0,0,0”)地址对应于当前主机,全“1”的IP地址(“225,225,225,225”)是当前子网的广播地址。



  图3  IP地址的四种类型


  6  Transmission Control Protocol (TCP)
  TCP是基于传输层的协议,协议文件可从RFC793得到,它也是Internet中使用最广泛的协议之一。


  TCP是面向连接的、可靠的协议,它能把报文分解为数段,在目的站再重新装配这些段,支持重新发送没有被收到的段,TCP提供两台设备之间的全双工连接,允许它们高效地交换大量数据。


  TCP使用滑动窗口协议来高效地使用网络,由于TCP很少干预底层投递系统的工作,它可以适应各种报递系统,由于它提供流量控制,所以TCP能够使各种不同速度的系统进行通信。


  报文段是TCP所使用的基本传输单元,用于传输数据或控制信息。



  图4  TCP报文段


  7  TCP端口
  TCP是使用端口(Socket)号把信息传到上层,为用户提供不同的服务,端口号用来跟踪同一时间内通过网络的不同会话。


  RFC1700中定义了众所周知的特殊编口号,常用的端口如表1所示。


  表1  常用端口号













































十进制数

关键字

说明

20

ftp-data

文件传输协议(数据)

21

ftp

文件传输协议

23

telnet

远程登录

25

Smtp

简单邮件传输协议

53

Domain

域名服务器

67

bootps

启动协议服务器

80

http

超文本传输协议

110

pop3

邮件接收协议

502

Modbus

自动化信息传输

  502端口目前是所有自动化公司中,唯一用于自动化信息传输的端口号。


  8  Modbus TCP/IP


  Modbus TCP/IP使用以太网OSI模型中的五层,如图5所示。


  第一层:物理层,提供设备的物理接口,与市售的介质/网络适配器相兼容。


  第二层:数据链路层,格式化信号到包含源/目的硬件地址的数据帧。


  第三层:网络层,实现带有32位IP地址的IP报文包。


  第四层:传输层,实现可靠性连接,传输,查错,重发,端口服务,传输调度等。


  第五层:应用层,Modbus协议报文。



  图5  Modbus TCP/IP的五层OSI模型


  9  Modbus TCP/IP
  在TCP/IP的以太网上传输,支持Ethernet II和802.3两种帧格式。如图6所示,Modbus TCP 数据帧包含了报文头,功能代码和数据三部分。



  图6  Modbus TCP数据帧

1楼 0 0 回复