OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4546|回复: 15

跪求原子哥出一个关于MODBUS的视频教程

[复制链接]

24

主题

107

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2014-3-29
在线时间
63 小时
发表于 2018-6-6 16:07:11 | 显示全部楼层 |阅读模式
1金钱
跪求原子哥出一个关于MODBUS的视频教程,研究半天仍然一头雾水

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4370
金钱
4370
注册时间
2017-5-30
在线时间
579 小时
发表于 2018-6-6 19:29:15 | 显示全部楼层
我来给你解释一下什么是MODBUS,你是中国人能和中国人正常说话,但是你没法和猫啊,狗啊说话,为什么呢?这就说明要想通讯必须得都是人,放在单片机就是就是走的串口通讯。然后都是人就可以通讯了吗?也不可以,为什么?你不可能和非洲人说话进行沟通,所以我们都得讲普通话才能交流,那么MODBUS就是这里的普通话。明白这个道理了,你在去看下八度空间写的移植教程就可以了。
回复

使用道具 举报

7

主题

200

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2017-7-18
在线时间
257 小时
发表于 2018-6-6 19:46:31 | 显示全部楼层
modbus就是一个通信协议,可以看一下它的手册,讲的很清楚。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-6-7 01:06:43 | 显示全部楼层
挺简单的。。。看看资料,半天入门,一天写代码。
回复

使用道具 举报

16

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2017-10-3
在线时间
42 小时
发表于 2018-6-23 11:04:41 | 显示全部楼层
正点原子 发表于 2018-6-7 01:06
挺简单的。。。看看资料,半天入门,一天写代码。

原子哥,我在网上找了很多资料,感觉很乱,能推荐一个吗?,最好附带实例。挺急的,谢谢
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-6-24 01:46:51 | 显示全部楼层
ryanwong 发表于 2018-6-23 11:04
原子哥,我在网上找了很多资料,感觉很乱,能推荐一个吗?,最好附带实例。挺急的,谢谢

之前我培训的时候讲过
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

16

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2017-10-3
在线时间
42 小时
发表于 2018-6-24 08:32:27 | 显示全部楼层
正点原子 发表于 2018-6-24 01:46
之前我培训的时候讲过

我不知道,有视频什么的吗?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-6-25 01:49:29 | 显示全部楼层
ryanwong 发表于 2018-6-24 08:32
我不知道,有视频什么的吗?

没发出来过
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2013-10-10
在线时间
12 小时
发表于 2018-6-27 15:37:58 | 显示全部楼层
说简单的都是内功深厚,出来问的都是任督二脉还没打通的
回复

使用道具 举报

24

主题

107

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2014-3-29
在线时间
63 小时
 楼主| 发表于 2018-7-14 11:26:02 | 显示全部楼层

请问原子哥有培训视频的话请分享一下,没人指点学不明白
回复

使用道具 举报

18

主题

117

帖子

0

精华

高级会员

Rank: 4

积分
513
金钱
513
注册时间
2018-6-7
在线时间
104 小时
发表于 2018-7-16 17:39:29 | 显示全部楼层
看看这个吧

Modbus详解(全书 PDF).rar

2.79 MB, 下载次数: 15040

回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-7-17 09:45:28 | 显示全部楼层
1.首先你得弄懂单片机直接是如何用串口通讯的。串口通讯的意义何在。
2.你得弄懂单片机串口通讯的协议是何物,存在意义为何,如何制定。
3.MODBUS,无非就是有个单片机是老大,其他几个单片机是小弟,老大给小弟下命令是通过串口通讯,至于如何下命令就是协议内容。从电路上看:主机能给所有的从机通过串口发送数据,而从机只能发给主机数据,发送给其他从机必须通过主机实现。

给你详细讲讲:
老大叫小弟的时候,是不是小弟们都听得见?是的,单片机之间的通讯也是如此。主机给从机发命令,不是主机单独给1个从机发命令,是给所有从机发命令,这从电路上也看得出来。所以主机发命令时,所有的从机都能接收到命令。这和老大下命令小弟们都听到是一个道理;
至于老大让“谁”去“干嘛”,是怎么传达的呢?究竟该谁去执行命令?想象一下,老大要明确地表达清楚,应该这么说:“老二,去把某人干了!”单片机也一样。主机给从机发命令时,肯定会加一位标志位,从机们接收到后会先判断这个标志位对应的是不是自己,如是则执行后续的命令,如不是,则“左耳进,右耳出”(啥都不干),老大没叫你呢,吵吵啥是吧。
这时老二办完事,到老大面前,回复说:“老大,事办完了。”一个合格的通讯协议都得有回复操作成功或失败的环节,从机完成主机下的命令后,要回复主机操作成功或者失败,好让主机判断下一步操作。

简单的例子:
主机发送一串命令帧到各从机:0x51 0x02 0x01 0x03 0xfb
0x51:枕头,如果你不知道枕头干嘛用,你还是先学学最基本的协议吧。
0x02:从机序号,代表需要执行命令的从机,相当于“上文中老二的名字”。
0x01:数据位,或者说是命令位,代表要执行的命令为何。
0x03:校验和,除枕头和枕尾外其他数据的和。这里是0x02+0x01=0x03。用于检测帧是否受到外界影响而发生数值改变。
0xfb:枕尾。

从机接收到数据后,首先判断枕头枕尾是否相符。如不符说明是异常帧,直接丢弃。如符合,继续判断从机序号。如果判断与自己的从机序号相等,则说明是从机发给自己的命令帧。即代表“老二”的从机检测到从机序号是0x02,发现是自己的序号,就知道这是老大给自己的命令,其他从机如“老三”、“老四”接收到的也是0x02,知道是老大发给老二的命令,所以“左耳进右耳出”。然后“老二”这个从机知道老大命令自己后,就接着判断数据位是啥,也就是说“老大”让自己干啥。做完老大的命令后,要发一个回复帧。然后是检验校验和(自己将接收到的数据加一次,判断是否和校验和相等),如检测出不相等,则说明是异常帧要求主机重发(对应的场景是老大说的话因为一些外部噪音影响老二没有听清,问老大你说啥?)。如相等则执行命令。
回复帧例子:
0x51 0x01 0x01 0x02 0xfb
0x51:枕头
0x01:命令位,即代表老大交代自己要做的事
0x01:操作位,0x01代表成功,0x02代表失败
0x02:校验和
0xfb:枕尾
主机接收到后判断一下帧中的各位数据就能知道自己要求的什么命令操作成功了没有。
猪猪熊呢?
回复

使用道具 举报

24

主题

107

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2014-3-29
在线时间
63 小时
 楼主| 发表于 2018-7-17 10:07:53 | 显示全部楼层
323232 发表于 2018-7-17 09:45
1.首先你得弄懂单片机直接是如何用串口通讯的。串口通讯的意义何在。
2.你得弄懂单片机串口通讯的协议是何 ...

感谢老大回复,你说的这些我都懂了。现在感觉就差一层窗户纸没捅开,比如说我想用MODbus和屏通讯,如何做。屏幕支持完整的MODBUS协议
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-7-17 10:10:25 | 显示全部楼层
EVERGREEN 发表于 2018-7-17 10:07
感谢老大回复,你说的这些我都懂了。现在感觉就差一层窗户纸没捅开,比如说我想用MODbus和屏通讯,如何做 ...

你仔细看看屏幕的协议。看看你应该怎么给他发串口命令
猪猪熊呢?
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-7-17 10:11:53 | 显示全部楼层
协议都是人定的,从来没有用modbus和屏幕通讯过...一般都是spi和i2c
猪猪熊呢?
回复

使用道具 举报

8

主题

569

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2363
金钱
2363
注册时间
2015-5-8
在线时间
320 小时
发表于 2018-7-17 10:20:43 | 显示全部楼层
怕是没看过吧,这个就一个校验,其他就是按位放呗,同理接收也是
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-16 07:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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