开放和标准的Modbus/TCP 点击:664 | 回复:1



天下三分明月夜

    
  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2008-04-26 20:31:35
楼主
Modbus是开放协议,IANA(Internet Assigned Numbers Authority, 互联网编号分配管理机构)给Modbus协议赋予TCP端口502,Modbus协议可免费从www.Modbus.org到。

  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所示):已定义好功能码,保证其唯一性,由Modbus.org认可;

(2)用户自定义功能代码有两组,分别为65~72和100~110,无需认可,但不保证代码使用 唯一性。如变为公共代码,需交RFC认可;(3)保留功能代码,由某些公司使用某些传统设备代码,不可作为公共用途。



  功能代码划分:按应用深浅,可分为3个类别。

类别0,客户机/服务器最小可用子集:读多个保持寄存器(fc.3);写多个保持寄存器(fc.16)。

类别1,可实现基本互易操作常用代码:读线圈(fc.1);读开关量输入(fc.2);读输入寄存器(fc.4);写线圈(fc.5);写单一寄存器(fc.6)。

类别2,用于人机界面、监控系统例行操作和数据传送功能:

强制多个线圈(fc.15);读通用寄存器(fc.20);写通用寄存器(fc.21);屏蔽写寄存器(fc.22);读写寄存器(fc.23)。

4. Modbus应用举例

 

读寄存器。

Modbus TCP请求报文

Modbus TCP客户端实况。

用Connect()命令建立目标设备TCP 502端口连接数据通信过程:

准备Modbus报文,包括7个字节MBAP内请求;

使用send()命令发送;

同一连接等待应答;

同recv()读报文,完成一次数据交换过程。
当通信任务结束时,关闭TCP连接,使服务器可以为其他服务。

Modbus TCP样板程序

用户可网站www.transparent-factory.com下载到:

JAVA应用程序;

基于Unix系统下,C应用程序;

基于Win32系统下,C应用程序。

Modbus TCP协议

协议文本英文版可从www. Modbus.org下载,如需协议文本中文版,可向施耐德电气(中国)投资有限公司各区办事处索要。







gbdajiaoban

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 81回
  • 年度积分:0
  • 历史总积分:87
  • 注册:2009年7月09日
发表于:2014-06-26 10:01:38
1楼

如果能给出实质情的程就更好


热门招聘
相关主题

官方公众号

智造工程师