首页 上一页 1 2 下一页 尾页

Modbus TCP通讯概述 点击:12912 | 回复:27



ye_w

    
  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于: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连接,使服务器可以为其他服务
 



ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2011-04-30 17:52:18
1楼

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

莫其麟

  • 精华:14帖
  • 求助:0帖
  • 帖子:120帖 | 5688回
  • 年度积分:0
  • 历史总积分:29157
  • 注册:2004年2月27日
发表于:2011-09-23 19:46:26
2楼
虽然我不懂通讯,但我还是要顶帖子。

genru

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 27回
  • 年度积分:0
  • 历史总积分:189
  • 注册:2011年6月15日
发表于:2011-09-29 09:48:07
3楼
MODBUS RTU是楼宇自动化常用的协议,传输感觉有点像网络协议,挺复杂的

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2011-10-01 23:49:34
4楼
现在仪表支持modbus-RTU协议的很多,所以几乎所有品牌PLC都支持此种协议

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2011-10-13 13:03:36
5楼
当然也有不直接支持,可以通过指令按照modbus帧格式来编写也行

lichunyu139137

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 29回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2012年3月19日
发表于:2012-03-19 16:04:30
6楼
我们公司有modbus RTU转modbus TCP网关,在modbus RTU侧做主站,在modbus TCP侧做服务器。有需要的请加QQ:550395705

zhaiyaolily

  • 精华:4帖
  • 求助:5帖
  • 帖子:46帖 | 4250回
  • 年度积分:0
  • 历史总积分:2553
  • 注册:2011年10月11日
发表于:2012-03-19 16:14:37
7楼

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

控友华安

  • 精华:0帖
  • 求助:3帖
  • 帖子:45帖 | 502回
  • 年度积分:3
  • 历史总积分:2254
  • 注册:2011年10月28日
发表于: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

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2010年12月17日
发表于:2012-06-20 11:41:41
9楼
北京地区权威Modbus设备协议测试实验室,机械工业仪器仪表综合技术研究所检测中心,需要测试可以咨询010-63469388;网址:http://www.test114.com.cn

gbdajiaoban

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

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

小朱520

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 41回
  • 年度积分:0
  • 历史总积分:8
  • 注册:2014年7月08日
发表于:2014-08-11 13:10:31
11楼

modbus tcp与modbus有什么区别吗

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2014-08-16 20:33:14
12楼

回复内容:

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



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

rect_er

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 185回
  • 年度积分:0
  • 历史总积分:283
  • 注册:2014年10月25日
发表于: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

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 185回
  • 年度积分:0
  • 历史总积分:283
  • 注册:2014年10月25日
发表于:2015-07-08 09:25:10
14楼

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

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

robrotbo

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 260回
  • 年度积分:50
  • 历史总积分:859
  • 注册:2011年7月04日
发表于:2015-11-25 11:51:30
15楼

深度好文,谢谢楼主  

liaoliyang8865

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 57回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2016年2月25日
发表于:2016-04-07 10:24:23
16楼

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

luomisun

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 27回
  • 年度积分:0
  • 历史总积分:18
  • 注册:2009年5月06日
发表于: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

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 213回
  • 年度积分:14
  • 历史总积分:191
  • 注册:2016年9月12日
发表于:2017-05-15 15:51:13
18楼

谢谢楼主,长知识啊啊

江山一笑

  • 精华:0帖
  • 求助:0帖
  • 帖子:13帖 | 52回
  • 年度积分:15
  • 历史总积分:754
  • 注册:2016年8月13日
发表于:2018-05-17 17:09:43
19楼
我在MODBUS模拟软件上,怎么接受的数据里有从站的地址呢?并没有被UNITID所取代,不过没有关系,反正这个应该是用不着了!

车神0515

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 70回
  • 年度积分:6
  • 历史总积分:154
  • 注册:2013年5月30日
发表于:2018-05-19 16:37:30
20楼

看不懂啊,你说的是什么


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页