搜索
bottom↓
回复: 7

请教用ModbusPoll测试MODBUS TCP的问题

[复制链接]

出0入0汤圆

发表于 2021-4-14 09:10:54 | 显示全部楼层 |阅读模式
请教用ModbusPoll测试MODBUS TCP时,ModbusPoll作为MODBUS主机,当启动并连接后ModbusPoll软件发了一些命令,我在MODBUS协议里没有找到这样的命令,这些命令连校验都没有,麻烦大神帮忙看看,非常感谢。
发送的数据如下:
ModbusPoll发送:00 00 00 00 00 06 01 03 00 00 00 0a
板卡回复:         00 00 00 00 00 17 01 03 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

ModbusPoll发送:00 05 00 00 00 06 01 03 00 00 00 0a
板卡回复:         00 01 00 00 00 17 01 03 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

ModbusPoll发送:00 06 00 00 00 06 01 03 00 00 00 0a
板卡回复:         00 06 00 00 00 17 01 03 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

ModbusPoll发送:00 07 00 00 00 06 01 03 00 00 00 0a
板卡回复:         00 07 00 00 00 17 01 03 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入20汤圆

发表于 2021-4-14 09:18:24 | 显示全部楼层
Modbus TCP 跑在以太网物理层上,用TCP协议承载数据包,TCP本身就是可靠连接,从握手到校验都做过了,不需要在高层协议里面再体现一遍.

"在此我们着重讨论Modbus RTU协议,而Modbus TCP协议则是在RTU协议上加一个MBAP报文头,由于TCP是基于可靠连接的服务,RTU协议中的CRC校验码就不再需要,所以在Modbus TCP协议中是没有CRC校验码,用一句比较通俗的话说就是:Modbus TCP协议就是Modbus RTU协议在前面加上五个0以及一个6,然后去掉两个CRC校验码字节就OK.虽然这句话说得不是特别准确,但是也基本上把RTU与TCP之间的区别说得比较清楚了。"

https://zhuanlan.zhihu.com/p/38920259

出0入0汤圆

 楼主| 发表于 2021-4-14 09:26:23 | 显示全部楼层
Error.Dan 发表于 2021-4-14 09:18
Modbus TCP 跑在以太网物理层上,用TCP协议承载数据包,TCP本身就是可靠连接,从握手到校验都做过了,不需要在 ...

朋友,非常感谢,能不能这样理解。
头:00 00 00 00 00 06,这里的06表示后面MODBUS命令的长度。后面的命令和非TCP的MODBUS协议是一样的了,只是不再加入两字节CRC校验。所有的命令都可以在头的6个字节后面来写。

另外再请教一个问题:软件发的头里面,01,02,03,04代表什么呢,测试的次数吗?非常感谢您。
00 01 00 00 00 06
00 02 00 00 00 06
00 03 00 00 00 06
00 04 00 00 00 06

出0入0汤圆

 楼主| 发表于 2021-4-14 10:11:11 | 显示全部楼层
Error.Dan 发表于 2021-4-14 09:18
Modbus TCP 跑在以太网物理层上,用TCP协议承载数据包,TCP本身就是可靠连接,从握手到校验都做过了,不需要在 ...

朋友,非常感谢,开始忘记了看下面的网站,看了您发的知乎的介绍,非常清楚了。非常感谢!

出20入12汤圆

发表于 2021-4-14 18:29:27 | 显示全部楼层
ModbusPoll发送:00 05 00 00 00 06 01 03 00 00 00 0a
板卡回复:         00 01 00 00 00 17 01 03 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
这条回复肯定是要抛弃掉的,因为所答非所问.前两个字节是命令序列号(流水号),不一致就不是对应的回答.

出0入0汤圆

发表于 2021-4-14 18:53:19 来自手机 | 显示全部楼层
可以用Modbus RTU over TCP

出0入0汤圆

发表于 2021-4-14 19:45:04 来自手机 | 显示全部楼层
看协议文档吧,上面写得很清楚。有7个字节的报头,后面的才是应用层协议。

出0入0汤圆

 楼主| 发表于 2021-4-15 21:10:55 | 显示全部楼层
gaolf_2012 发表于 2021-4-14 18:29
ModbusPoll发送:00 05 00 00 00 06 01 03 00 00 00 0a
板卡回复:         00 01 00 00 00 17 01 03 14 00 ...

非常感谢。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-17 21:08

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表