21ic电子技术开发论坛 综合技术交流 电子技术交流论坛 有没有纯软件的办法对485总线上的设备进行编址?
发新帖我要提问
返回列表
打印

有没有纯软件的办法对485总线上的设备进行编址?

[复制链接]
3983|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
malatang|  楼主 | 2008-1-21 22:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
来自 2楼
xiaoyu9632| | 2008-1-22 22:00 | 只看该作者

举例子

譬如:1,2,3,4,5,6,7,8,9,10  位置
   
      1,2,3,4,5,6,7,8,9,10  设备
本来是这样对应的,但现在2,3调换了顺序,7,8也调换了顺序,如下:
1,2,3,4,5,6,7,8,9,10  位置
1,2,4,3,5,6,8,7,9,10  设备

实际中是硬件连接的,可能不方便更改,怎么办呢?
在这10台设备和主机之间加一台设备
这台设备接收主机发给10台设备的地址,然后经过重新编址,就可以一一对应了,意思就是以前3是控制3的,而3的位置换成了4,那么现在是3控制的3,其实是控制的第4台。通过这台机器就将3改成控制4,那么实际上位置上仍然是3和3对应的,我这样说不知道你明白不明白。

使用特权

评论回复
板凳
xiaoyu9632| | 2008-1-21 23:05 | 只看该作者

可以

是可以通过纯软件的,不过这需要你遵循一些协议,譬如DMX512协议,应用灯光中的标准协议,你可以在rs485链接的每台设备上编制软件,设定地址,当主设备发送的数据到每台设备的时候,都根据你软件设定的地址来寻找相关设备,这也就是代替你所谓的拔码开关设定地址的方法

使用特权

评论回复
地板
malatang|  楼主 | 2008-1-22 08:33 | 只看该作者

这样的话一经设定就无法修改了哦

比如说我有1-10号设备,且必须按照严格的先后顺序运行,如果事先在软件上编址,那么实际运行时如果其中某两台设备的安装次序对调了,那么整个系统就出错了。
有没有办法再开机时能够进行一次动态编址的?
非常感谢:)

使用特权

评论回复
5
sillboy| | 2008-1-22 08:43 | 只看该作者

也可以啊

可以给设备制定两个编码,一个是MAC,固定唯一的,另一个是你所说的编码,根据每次情况设定,做个设置软件

使用特权

评论回复
6
malatang|  楼主 | 2008-1-22 13:43 | 只看该作者

还不是很明白

我再描述一下问题,10台设备放置在10个位置
       485________________________________
            |  |  |  |  |  |  |  |  |  |
   物理位置 1--2--3--4--5--6--7--8--9--10
     设备   A  B  C  D  E  F  G  H  I  J
开机的时候,我希望能确定哪一个物理位置对应着哪一个设备,那么首先就该给
设备确定一个网络号,那么下次开机的时候如果设备C和D互换了,如下图,那么他们的网络号也该调过来,否则如果想让原来3号的C动作,结果却是D在动作。
       485________________________________
            |  |  |  |  |  |  |  |  |  |
   物理位置 1--2--3--4--5--6--7--8--9--10
     设备   A  B  D  C  E  F  G  H  I  J

您说的方法好像只能识别设备在不在线,以及根据软件设置的映射关系使设备接收数据,但是设备之间的相对位置不能确定啊。

使用特权

评论回复
7
xiaoyu9632| | 2008-1-22 21:51 | 只看该作者

不是这样的

你理解错了吧,我问你,当拔码开关设置好地址过后,你调换两台设备,设备需要重新设定地址吗?不需要的,你的10台设备确实构成一个网络,但并不是需要你一定规定就是1-10吧,调换顺序过后就不是1-10了吗?

你的意思是整个网络一开机就给你顺序排个序吗?每次调换位置都重新自动分配下?

恐怕没有这样设计的,我没遇到过这种情况

使用特权

评论回复
8
xiaoyu9632| | 2008-1-22 21:54 | 只看该作者

不过还有一个办法

这种情况你必须设置一台机器,这台机器的作用就是防止在顺序错误过后你好通过这台机器重新设定每台机器对应的顺序,这样可以代替你在硬件接错过后用软件改过来。当然你也可以在第一台机器上附加这种功能

使用特权

评论回复
9
赤铸| | 2008-1-23 00:04 | 只看该作者

你的说话很难懂哦

既然顺序不能乱,那就是你的每台设备都具有唯一性,是么?

那么用不用拨码开关只是形式,重要的是必须有一个“全局唯一”代号!否则无法识别。

然后根据这些代号排序就是了,你所谓的“地址”就是排序的序号吧?

使用特权

评论回复
10
ldy216| | 2008-1-23 18:21 | 只看该作者

我目前研究了个LDYNET(巨型网络)


  我这个网络协议可以解决你的问题。只要你的每个设备上有EEPROM,支持动态网络号刷新就可以了,另外每个设备出厂后要烧写一个唯一的产品序列号,也可以写到EEPROM,由上位机在出厂前在厂家临时设定,而不是用跳线。
  我的网络的数据流通速度就是你的硬件所能达到的最大速度,协议翻译过程虽然复杂,但执行效率极高。信息传输是无错误的,每台设备根据需要,可以加入控制密码和数据传输密码。
  网络可以用任何传输方式(UART,SPI,无线,USB,光纤等)接入,在任意两个节点之间可以进行设备通话,从任何一个节点接入可以访问到整个网络。另外,可以接入第二方网络,加一个协议包转换CPU即可。也可以为某个设备打包你自己的协议,我不需要了解你的协议。

  我这协议是参考ZIGBEE等协议,历时1年研究而成的。个人认为已经高于ZIGBEE,专利问题在考虑中。
  希望广大厂家与我合作。我有产品展示。
  个人要看效果的,我可以发些图片过来。
  
  QQ:184324486

使用特权

评论回复
11
yewuyi| | 2008-1-23 19:57 | 只看该作者

LS的广告做的不错~~

使用特权

评论回复
12
mohanwei| | 2008-1-23 20:27 | 只看该作者

名字比较新奇……

使用特权

评论回复
13
王敬| | 2008-1-23 22:15 | 只看该作者

这样吧

在每一个RS485从设备中设置一个地址,主设备中包含以下从设备的地址.当主机要与其中的从机通信时,主机先发一条指令,这条指令中包含从机的地址,对从机一一进行轮询,从机把指令中的地址与自己的地址对比,要是一样则发给主机一条信息,表示已找到响应的从机,可以进行通信.要是不一样则丢弃收到的指令.从机之间进行通信也必须通过主机.
  本人以前做过RS485主从多机通信.

使用特权

评论回复
14
sun0_liang| | 2008-2-21 09:06 | 只看该作者

这个帖子有什么精华的????

lz连自己问什么都问不明白!!!!!!
什么位置啊 1对1 2对2啊的 !会议是不是干电子的,呵呵。

这个版版主是怎么当的!(*^__^*) 嘻嘻……

使用特权

评论回复
15
wswh2o| | 2008-2-21 09:39 | 只看该作者

参考以太网的做法

分mac地址和ip地址

使用特权

评论回复
16
MaLaTang| | 2011-4-11 21:28 | 只看该作者
时隔多年,再炒炒冷饭,呵呵。。。
有三个传感器,分别安装在一机械设备的三个地方,这三个传感器采用485通信,并作为从机与主机相连,这种情况下又该如何通过软件编制?

至于以前那个问题,确实如6楼所说,每次开机都要重新分配。所有的电子设备依次安装在被控机械设备上,机械设备已经排好编号,要求装在机械设备1上的电子设备其网络就是1,依次类推。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

71

帖子

0

粉丝
关闭 热门推荐
快速回复 在线客服 返回列表 返回顶部