nanjijufeng 发表于 2013-2-19 16:18

485通信中,多个从机如何通过竞争选出一个主机

我现在做的一个产品是用485通信的,要实现自组网,
大概的要求是:多台控制器联网使用时,自动生成一个网络,
其中地址码最小的一个为主机,其余为从机,构成自动控制系统;
如果个别从机故障,自动退出,不影响其余工作,
如果主机故障,自动退出,在其余从机中产生一个新的主机,
组成一个新的系统;
那位兄弟做过这样的网络,谢谢了!

airwill 发表于 2013-2-19 22:34

这套协议还是有点复杂了.

如果主机故障,自动退出,在其余从机中产生一个新的主机,组成一个新的系统;
这一条, 由于涉及竞争主机的问题, 实现起来有点困难哦

nanjijufeng 发表于 2013-2-19 22:41

是比较复杂,但是市面上确实有,应该有实际需求

jlass 发表于 2013-2-20 09:33

用主备切换的概念去做,也就是说新产生的主机是预先设计好的,不是随机选一台。

nanjijufeng 发表于 2013-2-20 10:37

jlass的想法不错,这是一个折中的方案,不过我现在试验一下,完全的竞争也是可行的,只是程序比较复杂,连自己都没信心

nanjijufeng 发表于 2013-2-20 10:38

今天上午写了3个装置的联机程序,还是容易竞争出主机的

airwill 发表于 2013-2-20 11:31

由于 485 不具有竞争和仲裁机制. 完全的竞争必然存在缺陷. 只能在要求不高的场合试试.
在正式工业应用, 小于 1‰ 的差错和数据缺陷, 也可能导致系统瘫痪.
所以做协议一定要非常严谨!

千里风123 发表于 2013-2-20 13:48

谁主发谁做主机呗

flyinginred 发表于 2013-2-25 13:10

本帖最后由 flyinginred 于 2013-2-25 13:15 编辑

地址码当时间槽
主机定时发主机广播命令,其它从机收到命令后,作为时间同步。
主机挂掉后,其它从机在约定的时间内,就收不到约定的主机广播命令,然后,开始竞争主机。根据地址码对应的时间槽发送,无人反对即为主机!

nanjijufeng 发表于 2013-2-25 16:16

flyinginred,水平高,我就是这么写了,确实没问题

flyinginred 发表于 2013-2-25 23:05

rwdxty 发表于 2013-3-5 19:49

这样的应用建议用CAN总线之类的,成本也高不了多少

zf_015820 发表于 2013-3-7 19:23

CAN总线可以用下

加油吧小鱼儿 发表于 2013-3-8 00:20

同意楼上

fristbear 发表于 2013-3-13 14:03

大家还有个问题没注意,系统用的是485总线,一般的485总线都是各系统并联在一起的。如果有一台机器的485芯片有问题了,整个系统就不能通讯了。

wfarlen 发表于 2015-3-19 11:05

nanjijufeng 发表于 2013-2-25 16:16
flyinginred,水平高,我就是这么写了,确实没问题

楼主,目前在编写485项目,遇到的问题是,刚上电时,会同时出现多个主机,而项目的要求是一主多从,不知楼主有什么好的解决办法么?分配地址时,也是按照地址码来当时间槽的,但初始的地址码是随机的,会导致产生重复的随机数。

细风 发表于 2015-7-14 14:52

你好你们说的地址码当时间槽是什么意思呢

细风 发表于 2015-7-14 16:18

nanjijufeng 发表于 2013-2-25 16:16
flyinginred,水平高,我就是这么写了,确实没问题

你好,我现在遇到同样问题,这个要怎么实现呢

acguy 发表于 2015-7-15 20:51

有一些标准定义了Rs485的令牌协议

DYQR 发表于 2015-12-2 10:17

fristbear 发表于 2013-3-13 14:03
大家还有个问题没注意,系统用的是485总线,一般的485总线都是各系统并联在一起的。如果有一台机器的485芯 ...

这个问题是因为你单片机初始化时,或者复位时,单片机的管脚都是高电平导致你所有并联在上面的RS485都处于发送的状态,所以会出现很多主机,建议管脚在RS485前取非门,那么就可以避免这个问题。
页: [1] 2
查看完整版本: 485通信中,多个从机如何通过竞争选出一个主机