MODBUS 协议整理
本帖最后由 xukai871105 于 2012-7-14 21:43 编辑前段时间详细研究了MODBUS协议
网上也可以下载到MODBUS的协议说明,但是个人感觉写的有点乱,所以我自己精简了一下!
在使用MODBUS的时候请大家注意两个地址!
一个是PLC定义的地址,例如1XXXX,2XXXX,3XXXX,4XXXX
一个是MODBUS定义的地址,一般都是16位整数,例如0x0002,0x0003
这些地址有对应关系,在文中也有说明。
还有,虽然MODBUS的指令很多,但是从输入输出,可读可写,单个操作多个操作来理解的话
modbus还是很工整的协议。
modbus本质来说还是四种寄存器,AO AI DO DI。这个和PLC中德概念还是统一的。
在文中有简单的说明。
最后这段时间实在是有点忙,不然可以把freemodbus的东西和大家分享一下!
不好意思,个人精力有限啊!
沙发
简单明了,顶LZ mark,顶LZ modbus本质来说还是四种寄存器,AO AI DO DI。这个和PLC中德概念还是统一的。
因为这玩意一开始就是用在PLC上的 顶一个! 顶一个! 今天有用到,顶一下! 始终搞不懂,4X001对应的单片机地址是001还是40001? 不能说是单片机地址,我喜欢称之为协议地址!
40001对应0x0000! 挺好的
{:smile:}{:smile:}{:smile:} 顶一个! 好东西,顶
谢谢你,这些时间正在收集MODBUS 协议的资料。{:victory:} xshflove 发表于 2012-10-5 23:12 static/image/common/back.gif
谢谢你,这些时间正在收集MODBUS 协议的资料。
我发现里面还有不少的错误,找些时间还要好好修改一下! 嗯,不错。看看 {:victory:} www.modbus.org 上面有很多资料,比较权威吧.前段时间搞modbus/tcp的时候找到很多的资料.例如
[*]http://www.simplymodbus.ca/TCP.htm (这个不是modbus.org.)
[*]mbap http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf
[*]mbap实现指导 http://www.modbus.org/docs/Modbus_Messaging_Implementation_Guide_V1_0b.pdf
[*]mobus说明书 http://www.modbus.org/specs.php
zodiac1111 发表于 2012-10-6 16:30 static/image/common/back.gif
www.modbus.org 上面有很多资料,比较权威吧.前段时间搞modbus/tcp的时候找到很多的资料.例如
[*]http://ww ...
非常感谢您的资料! 资料很齐全,很好,谢谢。
今天调modbus,顶一下帖子 好资料,顶! 顶一下好好研究一下 mark meirenai 发表于 2012-11-27 00:47 static/image/common/back.gif
mark
我会再好好整理的,这个里面有好多错误! 学习中,谢谢楼主分享。 一直以为MBUS是modbus缩写的,罪过罪过 实在不理解为什么MODBUS定义的地址与PLC地址要出现错位?既然PLC在先,MODBUS在后,MODBUS定义地址时严格跟随PLC不挺好吗?
xizi 发表于 2013-2-13 21:30 static/image/common/back.gif
实在不理解为什么MODBUS定义的地址与PLC地址要出现错位?既然PLC在先,MODBUS在后,MODBUS定义地址时严格跟 ...
我个人觉得PLC的定义有问题。
PLC的厂家很多,现在也各自为战,你不服我我不服你!
自然就会产生和标准MODBUS不相同的地址
个人不是很懂PLC,总是无法理解为什么PLC要使用梯形图。
一旦使用了梯形图,基本的程序框架就无法实现,例如if-else do-while;for;switch-case。
吐槽一下,就怪自己PLC水平太臭!
不过再吐槽一下,arduino再集成下去的话是否可以成为下一代PLC呢! modbus 就是modbus 跟PLC没关系。 PLC只是应用这个协议而已。单独弄明白了,再来看是如何应用的 分享快乐 能qq交流下modbus吗qq:2572136520,我一直想用51搞个,不知道怎么个思路
爱电子1122 发表于 2013-3-23 20:31 static/image/common/back.gif
能qq交流下modbus吗qq:2572136520,我一直想用51搞个,不知道怎么个思路
我现在的水平,只能做modbus从机,modbus主机功能做的不完善!
请问你要解决什么问题,我还有一个帖子是关于freemodbus的应用的,请问是否可以满足你的应用! 我的是传感器采用rtu走modbus bu cuo jing hua 谢谢分享。 正在学习modbus,你的资料非常好,下载研究,谢谢 非常感谢 {:smile:}
感谢分享, 这个是远程抄表用的? sky_zhangchao 发表于 2013-5-3 10:50 static/image/common/back.gif
非常感谢
里面有很多的错误,我这几天也在修改!
不对的地方请各位原谅了! 从单片机 到PLC 又回到单片机…… 支持原创,分享了 正好缺这个概念,充电。。。
这个文档现在是无错了吗 myxiaonia 发表于 2014-8-17 10:46
这个文档现在是无错了吗
不是,这个论坛发了帖子之后没有办法修改,所以写错的只能写错了!
http://blog.csdn.net/xukai871105/article/details/16368615 xukai871105 发表于 2014-8-17 10:50
不是,这个论坛发了帖子之后没有办法修改,所以写错的只能写错了!
http://blog.csdn.net/xukai871105/ar ...
我一直在看这个有错版本啊,看看新的 请问徐大哥,能不能发一帧功能码为04的报文,然后接收到比如1000个保持寄存器的内容呢?还有为什么modbus调试精灵,读的寄存器超过100个就说“读出数量数据格式不合规范,放弃读操作呢”? mikeliujia 发表于 2014-10-15 14:19
请问徐大哥,能不能发一帧功能码为04的报文,然后接收到比如1000个保持寄存器的内容呢?还有为什么modbus调 ...
你说的modbus调试精灵我没有印象
1000个寄存器好像有点多了,超过了modbus的限制了。 xukai871105 发表于 2014-10-16 09:16
你说的modbus调试精灵我没有印象
1000个寄存器好像有点多了,超过了modbus的限制了。 ...
嗯,谢谢,我刚刚弄清楚了,是最多125个寄存器,那个精灵确实不大好用,我改用modbuspoll了,
想再请教您一个问题,就是比如:我可以,读取100个保持寄存器,从0号开始,可是为什么从100号开始,如果再读100个,就有几个(大概4、5个)寄存器的内容每次都会变呢?读一次变一次的很奇怪。 本帖最后由 smiler 于 2014-10-21 14:20 编辑
谢谢楼主分享 mikeliujia 发表于 2014-10-16 21:03
嗯,谢谢,我刚刚弄清楚了,是最多125个寄存器,那个精灵确实不大好用,我改用modbuspoll了,
想再请教您 ...
当然可以这样做了! 没法下载啊 楼上的朋友发的资料不错,下载下来好好看看
谢谢,分享。 多谢分享, 刚好要这方面的资料 aitchow 发表于 2015-2-27 14:56
多谢分享, 刚好要这方面的资料
这里有不少错误,建议你看看博客吧,发现问题,及时留言吧! mark下备用 感谢楼主!!!!!
页:
[1]