基于tcpip协议的ModBus
⼀ 以太⽹的标准
  以太⽹是⼀种局域⽹。早期标准为IEEE 802.3,数据链路层使⽤CSMA/CD,10Mb/s速度物理层有:
(1)10 Base 5粗同轴电缆,RG-8,⼀段最长为500m;
(2)10 Base 2细同轴电缆,RG-58,⼀段最长为185m;
(3)10 Base T双绞线,UTP或STP,⼀段最长为100m。
  快速以太⽹为100Mb/s,标准为802.3a,介质为100 Base Tx双绞线、100 Base Fx光纤。
  ⽬前10/100M以太⽹使⽤最为普遍,很多企事业⽤户已实现100M到以太⽹桌⾯,确实体验到⾼速“冲浪”的快感,另外从距离⽽⾔,⾮屏蔽双绞线(UTP)为100m,多模光纤可达2~3km,单模光纤可⼤于100km。千兆以太⽹1000Mb/s为802.3z/802.3ab,万兆以太⽹10Gb/s为802.3ae,将为新⼀轮以太⽹的发展带来新的机遇与冲击。
⼆ ⼯业以太⽹与商⽤以太⽹的区别
  什么是⼯业以太⽹?技术上,它与IEEE802.3兼容,故从逻辑上可把商⽤⽹和⼯业⽹看成是⼀个以太⽹,⽽⽤户可根据现场情况,灵活装配⾃⼰的⽹络部件,但从⼯业环境的恶劣和抗⼲扰的要求,设计者希望采⽤市场上可到的以太⽹芯⽚和媒介,兼顾考虑下述⼯业现场的特殊要求:⾸先要考虑⾼温、潮湿、振动;⼆是对⼯业抗电磁⼲扰和抗辐射有⼀定要求,如满⾜EN50081-2、EN50082-2标准,⽽办公室级别的产品未经这些⼯业标准测试,表1列出了⼀些常⽤⼯业标准。为改善抗⼲扰性和降低辐射,⼯业以太⽹产品多使⽤多层线路板或双⾯电路板,且外壳采⽤⾦属如铸铝屏蔽⼲扰;三是电源要求,因集线器、交换机、收发器多为有源部件,⽽现场电源的品质⼜较差,故常采⽤双路直流电或交流电为其供电,另外考虑⽅便安装,⼯业以太⽹产品多数使⽤DIN导轨或⾯板安装;四是通信介质选择,在办公室环境下多数配线使⽤UTP,⽽在⼯业环境下推荐⽤户使⽤STP(带屏蔽双绞线)和光纤。
三 TCP/IP
1. 为什么使⽤TCP/IP?
  最主要的⼀个原因在于它能使⽤在多种物理⽹络技术上,包括局域⽹和⼴域⽹技术。TCP/IP协议的成功很⼤程度上取决于它能适应⼏乎所有底层通信技术。
20世纪80年代初,先在X.25上运⾏TCP/IP协议;⽽后⼜在⼀个拨号语⾳⽹络(如电话系统)上使⽤TCP/IP协议,⼜有TCP/IP在令牌环⽹上运⾏成功;最后⼜实现了TCP/IP远程分组⽆线⽹点与其他Internet⽹点间TCP/IP通信。所以TCP/IP协议极其灵活,具备连接不同⽹络的能⼒。
  另外,使⽤TCP/IP也简化了OSI模型,因为它省略了表⽰层和会话层。如果现在把以太⽹的物理层和数据链路层加到OSI模型就构成了基于以太⽹的TCP/IP⽹,如图1所⽰。⽤以太⽹实现TCP/IP也是经济的⼀种⽅式。
2. Internet Protocol(IP)
  IP是Internet最基本的协议,⽤户可从下载RFC79来得到其⽂件,(要求评论RFC: Request For Comments:⼀系列备忘录的名称,包括概述、评价、意见、技术和研究,以及所提出的和被接受的互联⽹标准)。
  IP层主要⽬的是到IP报⽂的“下⼀个连接点”,它可以是路由器、计算机、控制器甚⾄I/O,关键该设备须有⾃⼰的IP地址。凡在⽹络层使⽤IP协议的⽹络,都通过IP地址寻址,所以使⽤时⾸先要进⾏复杂的设置,每个节点⾄少需⼀个“IP地址”、⼀个“⼦⽹掩码”、⼀个“默认⽹点”和⼀个“主机名”,如此复杂的设置,对于⼀些初识⽹络的⽤户来说的确带来不便,不过随着对⽹络熟悉,有许多IP地址配置⼯具,可⽅便进⾏IP设置,甚⾄是⾃动设置。
  IP是⾯向报⽂的协议,它独⽴处理每个报⽂包,每个报⽂包必须含有完整的寻址信息。IP报⽂包的格式如图2所⽰。
  IP地址的类型共有4种(如图3所⽰):A类⽤于处理超⼤型⽹络,最多16387064个主机(1~126);B类⽹络最多可有64516个主机(⽹络地址的第⼀段为128~191);C类⽤于⼩型⽹络,最多可有254个主机(⽹络地址的第⼀段为192~223);D类⽤于多点播送,⽤于多⽬的信息的传输。全零(“0.0.0.0”)地址对应于当前主机,全1地址(“255.255.255.255”)是当前⼦⽹的⼴播地址。
3. Transmission Control Protocol (TCP)
  TCP是基于传输层的协议(如图4所⽰),协议⽂件可从RFC793得到,使⽤⼴泛,⾯向连接的可靠协议。它能把报⽂分解为数段,在⽬的站再重新装配这些段,⽀持重新发送未被收到的段,提供两台设备间的全双⼯连接,允许它们⾼效地交换⼤量数据。TCP使⽤滑动窗⼝协议来⾼效使⽤⽹络。由于TCP很少⼲预底层投递系统的⼯作,它适应各种投递系统;且提供流量控制,能使各种不同速率的系统进⾏通信。报⽂段是TCP所使⽤的基本传输单元,⽤于传输数据或控制信息。
4. TCP端⼝
  TCP是使⽤端⼝(Socket)号把信息传到上层,为⽤户提供不同服务,端⼝号跟踪同⼀时间内通过⽹络的不同会话。RFC1700中定义了众所周知的特殊端⼝号,常⽤端⼝如表2所列。其中502端⼝是⾃动化公司唯⼀所拥有的端⼝号码。
5. 协议(Protocal)的功能
  组建⽹络时,必须选择⼀种⽹络通信协议,使得⽤户之间能相互进⾏“交流”。协议是⽹络设备⽤来通信的⼀套规则,可理解为⼀种彼此都能听懂的公⽤语⾔。如在⽹络层使⽤IP协议,在传输层使⽤TCP协议,就构成了⽬前常⽤的TCP/IP协议,现在⼏乎所有⼚商和操作系统都⽀持它。同时,TCP/IP也是Internet的基础协议。
如在应⽤层使⽤⼯业上事实标准的Modbus协议(如图5所⽰),就构成了完整⼯业以太⽹应⽤。
四 开放和标准的Modbus TCP
  Modbus是开放协议,IANA(Internet Assigned Numbers Authority, 互联⽹编号分配管理机构)给Modbus协议赋予TCP端⼝502,Modbus协议可免费从得到。
  Modbus是标准协议,它已提交给IETF(Internet Engineering Task Force, 互联⽹⼯程任务部),将成为Internet标准。因⾃1978年,⼯业⾃动化⾏业已安装了百万计串⼝Modbus设备和⼗万计Modbus TCP/IP设备,拥有超过300个Modbus兼容设备⼚商,还有90%的第三⼚家I/O⽀持Modbus TCP/IP,所以是使⽤⼴泛的事实标准。Modbus的普及得益于使⽤门坎很低,⽆论⽤串⼝还是⽤以太⽹,硬件成本低廉,Modbus和Modbus TCP都可以免费得到,不需交任何费⽤,且在⽹上有很多免费资源,如C/C++、JAVA样板程序、ActiveX控件、各种测试⼯具等,所以⽤户使⽤很⽅便。另外,⼏乎可到任何现场总线到Modbus TCP的⽹点,⽅便⽤户实现各种⽹络之间的互联。
1. Modbus TCP/IP
  如果使⽤TCP/IP以太⽹的5层:
第⼀层:物理层,提供设备的物理接⼝,与市售的介质/⽹络适配器相兼容;
第⼆层:数据链路层,格式化信号到源/⽬的硬件地址的数据帧;
第三层:⽹络层,实现带有32位IP地址的IP报⽂包;
第四层:传输层,实现可靠性连接、传输、查错、重发、端⼝服务、传输调度;
第五层:应⽤层,Modbus协议报⽂。
2. Modbus TCP数据帧
  在TCP/IP以太⽹上传输,⽀持Ethernet II和802.3两种帧格式。图6所⽰,Modbus TCP数据帧包含报⽂头、功能代码和数据3部分。 
MBAP报⽂头(MBAP、Modbus Application Protocol、Modbus应⽤协议)分4个域,共7个字节,如表3所⽰。
3. Modbus功能代码
  共有3种类型分别为:
(1)公共功能代码(如表4所⽰):已定义好的功能码,保证其唯⼀性,由认可;
(2)⽤户⾃定义功能代码有两组,分别为65~72和100~110,⽆需认可,但不保证代码使⽤的  唯⼀性。如变为公共代码,需交RFC 认可;(3)保留的功能代码,由某些公司使⽤在某些传统设备的代码,不可作为公共⽤途。
  功能代码划分:按应⽤深浅,可分为3个类别。
1. 类别0,对于客户机/服务器最⼩的可⽤⼦集:读多个保持寄存器(fc.3);写多个保持寄存器(fc.16)。
2. 类别1,可实现基本互易操作的常⽤代码:读线圈(fc.1);读开关量输⼊(fc.2);读输⼊寄存器(fc.4);写线圈(fc.5);写单⼀寄存器
(fc.6)。
3. 类别2,⽤于⼈机界⾯、监控系统的例⾏操作和数据传送功能:
4. 强制多个线圈(fc.15);读通⽤寄存器(fc.20);写通⽤寄存器(fc.21);屏蔽写寄存器(fc.22);读写寄存器(fc.23)。
4. Modbus应⽤举例
2. 读寄存器(见表5)。
3. Modbus TCP请求报⽂举例(见表6)。
4. Modbus TCP客户端的实况。
⽤Connect()命令建⽴⽬标设备TCP 502端⼝的连接数据通信的过程:
1. 准备Modbus报⽂,包括7个字节的MBAP在内的请求;
tcpip路由协议2. 使⽤send()命令发送;
3. 在同⼀连接等待应答;
4. 同recv()读报⽂,完成⼀次数据交换过程。
当通信任务结束时,关闭TCP连接,使服务器可以为其他服务。
5. Modbus TCP的样板程序
⽤户可通过⽹站ansparent-factory下载到:
1. JAVA的应⽤程序;
2. 基于Unix系统下,C的应⽤程序;
3. 基于Win32系统下,C的应⽤程序。
6. Modbus TCP协议
协议⽂本的英⽂版可从www. 下载,如需协议⽂本的中⽂版,可向施耐德电⽓(中国)投资有限公司各地区办事处索要。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。