zoukankan      html  css  js  c++  java
  • 开放的Modbus TCP(二)

    2007年11月22日 13:48:00
    导读:
      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 开放和标准的ModbusTCP
      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 自动化信息传输
      502端口目前是所有自动化公司中,唯一用于自动化信息传输的端口号。
      8 ModbusTCP/IP
      ModbusTCP/IP使用以太网OSI模型中的五层,如图5所示。
      第一层:物理层,提供设备的物理接口,与市售的介质/网络适配器相兼容。
      第二层:数据链路层,格式化信号到包含源/目的硬件地址的数据帧。
      第三层:网络层,实现带有32位IP地址的IP报文包。
      第四层:传输层,实现可靠性连接,传输,查错,重发,端口服务,传输调度等。
      第五层:应用层,Modbus协议报文。
      

    本文转自
    http://www.fieldbuses.com/n1007c45.aspx

    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1897723


  • 相关阅读:
    卡特兰数
    Tree
    关于树上DP的转移方式与复杂度证明
    Tarjan进阶
    排队
    Perm 排列计数
    [bzoj1227]虔诚的墓主人
    [BZOJ1195]最短母串
    ValueError: Variable vgg_16/conv1/conv1_1/weights already exists, disallowed
    《链家网技术架构的演进之路》读后感
  • 原文地址:https://www.cnblogs.com/feisky/p/1586619.html
Copyright © 2011-2022 走看看