Advertisement
深圳市英威腾电气股份有限公司
Advertisement Advertisement
当前位置:
Modbus TCP通讯概述
回复 | 人气 | 打印
ye_w 个人主页 给TA发消息 加TA为好友 发表于:2011-04-30 17:50:19 楼主

       MODBUS/TCP是简单的、中立厂商的用于管理和控制自动化设备的 MODBUS系列通讯协议的派生产品,显而易见,它覆盖了使用TCP/IP协议的“Intranet”和“Internet”环境中MODBUS报文的用途。协议的最通用用途是为诸如 PLC’s,I/O模块,以及连接其它简单域
总线或 I/O模块的网关服务的.
        MODBUS/TCP 使 MODBUS_RTU协议运行于以太网,MODBUS TCP使用 TCP/IP和以太网在站点间传送 MODBUS报文,MODBUS TCP结合了以太网物理网络和网络标准TCP/IP以及以 MODBUS作为应用协议标准的数据表示方法。MODBUS TCP通信报文被封装于以太网 TCP/IP数据包中。与传统的串口方式,MODBUS TCP插入一个标准的MODBUS报文到 TCP报文中,不再带有数据校验和地址。


1.1通讯所使用的以太网参考模型
Modbus TCP传输过程中使用了 TCP/IP以太网参考模型的 5层:
第一层:物理层,提供设备物理接口,与市售介质/网络适配器相兼容
第二层:数据链路层,格式化信号到源/目硬件址数据帧
第三层:网络层,实现带有 32位 IP址 IP报文包
第四层:传输层,实现可靠性连接、传输、查错、重发、端口服务、传输调度
第五层:应用层,Modbus协议报文.

 

1.2 Modbus TCP数据帧

Modbus数据在 TCP/IP以太网上传输,支持 Ethernet II和 802.3两种帧格式,Modbus TCP
数据帧包含报文头、功能代码和数据 3部分,MBAP报文头(MBAP、Modbus Application Protocol、Modbus应用协议)分 4个域,共 7个字节,如下图所示:

                                                                                  图 : MODBUS TCP报文
        由于使用以太网 TCP/IP数据链路层的校验机制而保证了数据的完整性,MODBUS TCP 报文中不再带有数据校验”CHECKSUM”,原有报文中的“ADDRESS”也被“UNIT ID”替代而加在 MODBUS应用协议报文头中
1.3 Modbus TCP使用的通讯资源端口号
        在 Moodbus服务器中按缺省协议使用 Port 502 通信端口,在Modus客户器程序中设置任意通信端口,为避免与其他通讯协议的冲突一般建议 2000开始可以使用.

1.4 Modbus TCP使用的功能代码
按照使用的通途区分,共有 3种类型分别为:
1) 公共功能代码:已定义好功能码,保证其唯一性,由 Modbus.org认可;
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,用于人机界面、监控系统例行操作和数据传送功能:强制多个线圈(fc.15);读 通用寄存器(fc.20);写通用寄存器(fc.21);屏蔽写寄存器(fc.22);读写寄存器(fc.23)
1.5 Modbus TCP通讯应用举例
        在读寄存器的过程中,以Modbus TCP请求报文为例,具体的数据传输过程如下:
1) Modbus TCP客户端实况,用 Connect()命令建立目标设备 TCP 502端口连接数据通信过程
2) 准备 Modbus报文,包括 7个字节 MBAP内请求;
3) 使用send()命令发送;
4) 同一连接等待应答;
5) 同 recv()读报文,完成一次数据交换过程
6) 当通信任务结束时,关闭 TCP连接,使服务器可以为其他服务
 
分享到: 收藏 回复 举报
Advertisement
ye_w 个人主页 给TA发消息 加TA为好友 发表于:2011-04-30 17:52:18 1楼
 

上面的图大了点,重新处理了一下

  回复引用举报
莫其麟 个人主页 给TA发消息 加TA为好友 发表于:2011-09-23 19:46:26 2楼
  虽然我不懂通讯,但我还是要顶帖子。
  回复引用举报
genru 个人主页 给TA发消息 加TA为好友 发表于:2011-09-29 09:48:07 3楼
  MODBUS RTU是楼宇自动化常用的协议,传输感觉有点像网络协议,挺复杂的
  回复引用举报
ye_w 个人主页 给TA发消息 加TA为好友 发表于:2011-10-01 23:49:34 4楼
  现在仪表支持modbus-RTU协议的很多,所以几乎所有品牌PLC都支持此种协议
  回复引用举报
ye_w 个人主页 给TA发消息 加TA为好友 发表于:2011-10-13 13:03:36 5楼
  当然也有不直接支持,可以通过指令按照modbus帧格式来编写也行
  回复引用举报
lichunyu139137 个人主页 给TA发消息 加TA为好友 发表于:2012-03-19 16:04:30 6楼
  我们公司有modbus RTU转modbus TCP网关,在modbus RTU侧做主站,在modbus TCP侧做服务器。有需要的请加QQ:550395705
  回复引用举报
zhaiyaolily 个人主页 给TA发消息 加TA为好友 发表于:2012-03-19 16:14:37 7楼
 

协议我们了解的换是很多的,不过大多数情况下都要总线桥的身影

  回复引用举报
控友华安 个人主页 给TA发消息 加TA为好友 发表于:2012-04-16 15:42:35 8楼
 

Modbus 协议已经成为开放式的,有众多支持厂商的广泛应用的工业协议。Modbus 协议已成为越来越多打算采用数据通信协议的首选协议。Modbus/RTU 协议定义了主站如何实时读取或写入数据到一个或多个从站的串行协议。虽然Modbus 协议不是最强有力的协议,但它足够简单并且有很高的灵活性,能够应用于任何工业场合。Modbus/TCP协议是Modbus/RTU协议的扩展,它定义了Modbus/RTU协议如何在其于TCP/IP 的网络中传输和应用。Modbus/TCP Modbus/RTU 协议一样简单灵活。我有在工业中应用过!我的QQ群:185081758欢迎讨论

  回复引用举报
bjkkxtest 个人主页 给TA发消息 加TA为好友 发表于:2012-06-20 11:41:41 9楼
  北京地区权威Modbus设备协议测试实验室,机械工业仪器仪表综合技术研究所检测中心,需要测试可以咨询010-63469388;网址:http://www.test114.com.cn
  回复引用举报
gbdajiaoban 个人主页 给TA发消息 加TA为好友 发表于:2014-06-26 09:50:15 10楼
 

分析得不错,但是如果配上例子的话就更好!

  回复引用举报
小朱520 个人主页 给TA发消息 加TA为好友 发表于:2014-08-11 13:10:31 11楼
 

modbus tcp与modbus有什么区别吗

  回复引用举报
ye_w 个人主页 给TA发消息 加TA为好友 发表于:2014-08-16 20:33:14 12楼
 

回复内容:

对: 小朱520 modbus tcp与modbus有什么区别吗 内容的回复!



这么说吧,前者都已经带了TCP的帽子,自然是基于以太网的;后者一般都是基于串口的方式说法。否则就得加帽子说明

  回复引用举报
rect_er 个人主页 给TA发消息 加TA为好友 发表于:2015-06-25 13:30:13 13楼
 

TCP/IP是传输层和网络层协议,而Modbus-tcp是应用层协议,可以理解成在TCP/IP基础上跑的Modbus协议。

------------------------------------

矩形PLC内置的Modbus-TCP(服务器/客户端)标准协议,最多可扩展7个本地模块,十分适合于做现场设备层的采集终端,做为子站通过以太网远程连接到西门子/施耐德/AB/GE等中大型PLC主站,可与WINCC、组态王、iFix、力控等任意上位机组态软件无缝连接!

矩形plc,有网就是这么任性!


  回复引用举报
rect_er 个人主页 给TA发消息 加TA为好友 发表于:2015-07-08 09:25:10 14楼
 

modbus协议是一种只规定了上层报文的协议,底层的物理介质,可以是232、485等串口,这时候的协议称为modbus-rtu协议,如果底层的物理介质,是以太网,则称为Modbus-tcp协议。

国产的矩形PLC内置了Modbus-tcp主从协议。

  回复引用举报
robrotbo 个人主页 给TA发消息 加TA为好友 发表于:2015-11-25 11:51:30 15楼
 

深度好文,谢谢楼主  

  回复引用举报
liaoliyang8865 个人主页 给TA发消息 加TA为好友 发表于:2016-04-07 10:24:23 16楼
 

谢谢分享,谢谢分享~~~~

  回复引用举报
luomisun 个人主页 给TA发消息 加TA为好友 发表于:2016-04-07 10:53:10 17楼
 

LM Gateway201-M

Modbus网关,实现Modbus RTU 与以太网Modbus TCP转换的解决方案

  • 内嵌Modbus RTU,Modbus  / TCP协议

  • 以太网口:10/100Mbps x 1,自适应

  • 串口:RS-232 / 485 × 2,波特率为115.2Kbps

  • 单串口挂载设备最大数量:16

  • 最多可支持Modbus / TCP Slaves x 32 

  • 支持Modbus功能码:01、02、03、04、05、06、10

  • 可配置通讯状态寄存器,获取挂载设备的通讯状态

  • 支持数据点线性变换及加减运算

  • 电压输入:9-36VDC


西安罗米测控技术服务有限公司 

www.luomisun.com

029-87545950 18049040679


  回复引用举报
追梦赤子心666 个人主页 给TA发消息 加TA为好友 发表于:2017-05-15 15:51:13 18楼
 

谢谢楼主,长知识啊啊

  回复引用举报
江山一笑 个人主页 给TA发消息 加TA为好友 发表于:2018-05-17 17:09:43 19楼
  我在MODBUS模拟软件上,怎么接受的数据里有从站的地址呢?并没有被UNITID所取代,不过没有关系,反正这个应该是用不着了!
  回复 引用 举报
车神0515 个人主页 给TA发消息 加TA为好友 发表于:2018-05-19 16:37:30 20楼
 

看不懂啊,你说的是什么

  回复 引用 举报
车神0515 个人主页 给TA发消息 加TA为好友 发表于:2018-05-19 16:37:38 21楼
 

看不懂啊,你说的是什么?

  回复 引用 举报
周欢ZX 个人主页 给TA发消息 加TA为好友 发表于:2018-07-04 16:06:33 22楼
 

研究,学习了

  回复 引用 举报
刘露彬 个人主页 给TA发消息 加TA为好友 发表于:2018-07-05 21:26:54 23楼
 

感谢楼主分享,先学习学习!

  回复 引用 举报

相关主题
周点击排行
周回复排行
    最新求助
      Advertisement Advertisement