搜索
bottom↓
回复: 51

请教一种RS485通讯的方案

[复制链接]

出0入12汤圆

发表于 2017-2-8 12:06:35 | 显示全部楼层 |阅读模式
假如有10台RS485设备,地址分别为1#-10#,要求2#读1#数据,3#读2#数据......10#读9#数据,通讯时间间隔100ms,如果各设备只有一个RS485接口,那么怎样的物理连接和协议处理可以保证各设备间通讯数据的可靠性?

出0入228汤圆

发表于 2017-2-8 12:25:53 | 显示全部楼层
不如用一个总控 保险吧

出0入0汤圆

发表于 2017-2-8 12:27:34 | 显示全部楼层
楼主的意思就是 多主嘛。

简单的:把1号,作为总裁器,一次询问其他设备 要不要主动操作总线,要就回“要”,操作完了,向1号发“结束”,1号再询问下一个。

出0入12汤圆

 楼主| 发表于 2017-2-8 12:27:49 | 显示全部楼层
wxws 发表于 2017-2-8 12:25
不如用一个总控 保险吧

项目要求这样

出0入0汤圆

发表于 2017-2-8 12:28:01 | 显示全部楼层
楼主的意思就是 多主嘛。

简单的:把1号,作为总裁器,一次询问其他设备 要不要主动操作总线,要就回“要”,操作完了,向1号发“结束”,1号再询问下一个。

出0入12汤圆

 楼主| 发表于 2017-2-8 12:29:44 | 显示全部楼层
xivisi 发表于 2017-2-8 12:27
楼主的意思就是 多主嘛。

简单的:把1号,作为总裁器,一次询问其他设备 要不要主动操作总线,要就回“要 ...

仅地址相邻的2台间可以通讯,如2#和1#,3#和2#,其他设备不允许通讯

出0入4汤圆

发表于 2017-2-8 12:29:48 | 显示全部楼层
通过主机转

出0入12汤圆

 楼主| 发表于 2017-2-8 12:30:48 | 显示全部楼层

没有主机,都是独立设备

出0入8汤圆

发表于 2017-2-8 12:33:44 | 显示全部楼层
换CAN总线吧

出0入12汤圆

 楼主| 发表于 2017-2-8 12:34:44 | 显示全部楼层

只有485接口,

出0入0汤圆

发表于 2017-2-8 12:36:51 | 显示全部楼层
waterx3 发表于 2017-2-8 12:29
仅地址相邻的2台间可以通讯,如2#和1#,3#和2#,其他设备不允许通讯

那就令牌呗(不允许某个设备突然离开总线),一个传递给下一个

出0入4汤圆

发表于 2017-2-8 12:38:15 | 显示全部楼层
waterx3 发表于 2017-2-8 12:30
没有主机,都是独立设备

485没有主机?
过节吃的太好了,胆子也肥了。

出0入4汤圆

发表于 2017-2-8 12:41:09 | 显示全部楼层
1# 做主机,让每个设备发送数据,都带地址的,要的获取数据 不要的不处理

出0入12汤圆

 楼主| 发表于 2017-2-8 12:42:21 | 显示全部楼层
fulitun 发表于 2017-2-8 12:38
485没有主机?
过节吃的太好了,胆子也肥了。

用485,仅是距离要求

出0入12汤圆

 楼主| 发表于 2017-2-8 13:50:41 | 显示全部楼层
还有没有什么建议呢?

出0入4汤圆

发表于 2017-2-8 13:57:27 | 显示全部楼层
没主机的话,怎样解决冲突问题呢,难...

出0入12汤圆

 楼主| 发表于 2017-2-8 13:59:50 | 显示全部楼层
除了1#机只向2#机回复数据,10#机只向9#机要数据,其他的都是向前一个地址要数据,又给上一个地址回复数据

出0入0汤圆

发表于 2017-2-8 14:03:38 | 显示全部楼层
通告 令牌 方式通讯。。。。 不太可靠的是死机处理。

出0入4汤圆

发表于 2017-2-8 15:06:34 来自手机 | 显示全部楼层
改成2个485口吧,

出0入12汤圆

 楼主| 发表于 2017-2-8 15:07:49 | 显示全部楼层
cwei 发表于 2017-2-8 15:06
改成2个485口吧,

没法改,就一个485口

出0入0汤圆

发表于 2017-2-8 15:27:37 | 显示全部楼层
依次读取的?那就简单了

各自读取,那基本上不可能,非常容易冲突

出0入0汤圆

发表于 2017-2-8 15:29:33 | 显示全部楼层



你这种情况只能用协议法

所有设备都处于监听状态

1号设备发一个同步包


后面的设备根据轮训原理

各种发送带地址的数据包


不同设备根据协议只解析特定地址的数据包

就可以了






如果是极其极限的情况

所有机器都是同等级

无法规定主机


就是同步包的发送者是一个困难点


出0入0汤圆

发表于 2017-2-8 15:32:58 | 显示全部楼层



想到一个办法解决问题


设备本身是只有一个485

没有问题




但是不代表总线不能带处理器啊

所以在总线盒子方面想办法

加一个小的单片机进行一下数据转发


反正总线要进行T型接线

在接线盒里可以方便做手脚




出0入0汤圆

发表于 2017-2-8 15:35:23 | 显示全部楼层
数据量多大?传令牌是个好方法

出0入0汤圆

发表于 2017-2-8 15:49:44 | 显示全部楼层
主从 令牌环

出0入12汤圆

 楼主| 发表于 2017-2-8 17:16:57 | 显示全部楼层
唉,新的要求来了。正常情况下,5#问4#要数据,假如4#不在线,5#就要向3#要数据,3#也不在线就要向2#要数据......我要疯了

出300入477汤圆

发表于 2017-2-8 17:24:08 | 显示全部楼层
waterx3 发表于 2017-2-8 17:16
唉,新的要求来了。正常情况下,5#问4#要数据,假如4#不在线,5#就要向3#要数据,3#也不在线就要向2#要数据 ...

你以为485的令牌环是这么好做的?
西门子MPI/多主PPI是常用协议里面仅有的例子。而且国内99%以上的所谓“MPI协议”的实现都是有缺陷的,谁做谁知道。
你如果能做个99.9%场合可用的MPI,就可以直接拿来卖钱了。就这么简单。少年赶紧动手吧

出300入477汤圆

发表于 2017-2-8 17:26:36 | 显示全部楼层
所有人都知道在485的框架下,多主机能用的做法只有令牌环。
但是,写个正确的令牌环协议真是难之又难~

出90入4汤圆

发表于 2017-2-8 18:50:32 来自手机 | 显示全部楼层
多主,令牌,西门子MPI,prσfⅰbus一DP就这样的

出90入4汤圆

发表于 2017-2-8 18:54:51 来自手机 | 显示全部楼层
redroof 发表于 2017-2-8 17:24
你以为485的令牌环是这么好做的?
西门子MPI/多主PPI是常用协议里面仅有的例子。而且国内99%以上的所谓“ ...

其实也没你想的难,只是多你这想法。没人想用。另外,用高大上的西门子做项目造价高,好处多多。在乎钱的,没有愿意用西门子

出300入477汤圆

发表于 2017-2-8 20:53:15 来自手机 | 显示全部楼层
john78 发表于 2017-2-8 18:54
其实也没你想的难,只是多你这想法。没人想用。另外,用高大上的西门子做项目造价高,好处多多。在乎钱的 ...

光说不难的不算,,哈哈,我也可以说哥德巴赫猜想不难。
得写岀可以正确连在多个s7-300网络里的东西才算。
放心,只要能做的足够稳定,就是能卖钱的!
我就说一句,我们见过的各种触摸屏,国产台产,没一个做到接好几个plc加我们模块一起还能非常稳定的,除了西门子原厂的!就这么狠!
我们曾经调了好久,发现一个台系大厂的做法竟然导致经常岀错,等plc重新产生令牌,这样也能卖!而且它还算好的,至少确实在三个站的多主网络里跑起来了!别的几乎都只能接一个plc,也就是一共两个站,如果把我们模块再接进来形成三个站就不能用了!

你说这事还不够难吗?

出300入477汤圆

发表于 2017-2-8 21:01:09 来自手机 | 显示全部楼层
john78 发表于 2017-2-8 18:54
其实也没你想的难,只是多你这想法。没人想用。另外,用高大上的西门子做项目造价高,好处多多。在乎钱的 ...

我们卖岀的好多模块竟然主要被用于给西门子300接modbus从机用!
能省钱的事情一定有人想用,如果用户不用,大部分是因为没找到好的!

所以,千万不要以为令牌环简单。虽然那个令牌环的操作理论早就在profibus标准里面写了,MPI底层也一样。但正确实现岀来就是另外一回事!

出0入0汤圆

发表于 2017-2-8 21:03:03 | 显示全部楼层
waterx3 发表于 2017-2-8 17:16
唉,新的要求来了。正常情况下,5#问4#要数据,假如4#不在线,5#就要向3#要数据,3#也不在线就要向2#要数据 ...

新的要求中只有5个机位吗?让5#做主机,1234做从机。又做主机又做从机不太好实现。

出300入477汤圆

发表于 2017-2-8 21:18:25 来自手机 | 显示全部楼层
Percychiu 发表于 2017-2-8 21:03
新的要求中只有5个机位吗?让5#做主机,1234做从机。又做主机又做从机不太好实现。 ...

告诉你的甲方或者老板,改成can吧!
用485那么必须用令牌环,但正确实现令牌环是非常难的,难到你很难想象…

出0入4汤圆

发表于 2017-2-8 21:33:06 | 显示全部楼层
每个站加个RS485转CAN模块   https://item.taobao.com/item.htm ... ;abbucket=16#detail

出0入0汤圆

发表于 2017-2-8 22:15:00 来自手机 | 显示全部楼层
同意楼上,采用令牌。可以参考dp协议中的多主实现方式

出300入477汤圆

发表于 2017-2-8 22:40:52 来自手机 | 显示全部楼层
hz_fujian 发表于 2017-2-8 21:33
每个站加个RS485转CAN模块   https://item.taobao.com/item.htm?spm=a230r.1.14.13.duwmkG&id=543533640550 ...

这是个好主意!如果现有硬件不能改动,就可以直接加这个转换器变成can
当然如果你重新做硬件,用原生的can更好做

出90入4汤圆

发表于 2017-2-8 23:19:47 | 显示全部楼层
redroof 发表于 2017-2-8 21:01
我们卖岀的好多模块竟然主要被用于给西门子300接modbus从机用!
能省钱的事情一定有人想用,如果用户不用 ...

你想表达的意思是,你会做,别人不会做?

出300入477汤圆

发表于 2017-2-9 08:20:06 来自手机 | 显示全部楼层
john78 发表于 2017-2-8 23:19
你想表达的意思是,你会做,别人不会做?

业内我看到会做的人屈指可数。
我们的实现也只算二流,因为不支持高速。
所以我说它非常难,让楼主最好别这么干了。
如果认为简单的人,完全可以自已做岀这种东西来卖钱了。就是这样。做岀来能卖挺贵的哦!

出0入0汤圆

发表于 2017-2-9 08:57:38 | 显示全部楼层
之前做过BACnet MS/TP是主从令牌环 不过要点时间研究的
再仔细想了一下需求,感觉想复杂了,每台设备以收到上一个帧数据的地址与本机地址的差值定时100毫秒后发送数据就好了,接收方能收到所有设备的数据,选择下就好

出0入0汤圆

发表于 2017-2-9 09:06:14 | 显示全部楼层
谁设计的?推到重来。
做产品,要用最简单可靠的方法做。

出0入0汤圆

发表于 2017-2-9 09:16:53 | 显示全部楼层
很难,相当于一条485总线上10台机,每台机既要当主机又要当从机。光这一点就很难

出0入0汤圆

发表于 2017-2-9 09:21:44 | 显示全部楼层
总线上每一个子设备都回收到 主机发的命令 只有设备的地址和自己的地址是一样的时候 才会回应

出0入0汤圆

发表于 2017-2-9 09:51:05 | 显示全部楼层
选一个做主机,其他的都为从机,然后由主机调度这些通讯

出0入0汤圆

发表于 2017-2-9 09:58:23 | 显示全部楼层
只做最简单的令牌总线、不考虑兼容谁并不难,但要做到完全兼容西门子的profibus协议难度非常大

出0入0汤圆

发表于 2017-2-9 13:04:34 来自手机 | 显示全部楼层
如果设备通讯量不大的话能不能把100毫秒分成若干时隙,地址最低的设备占用第一个时隙然后依次后推,一个循环结束时由地址最低的设备发出时隙重启的命令,重新一轮循环。每个设备根据地址不同都有相应的超时定时器,以便接管发送时隙重启信号。监听到有更低地址设备时退出发送时隙命令。

出0入12汤圆

 楼主| 发表于 2017-2-9 21:08:34 | 显示全部楼层
感谢大家的回复,最后决定单独做个通讯模块做主机,其他的都是从机,

出0入0汤圆

发表于 2017-2-9 22:32:41 来自手机 | 显示全部楼层
redroof说的是事实,反正wenview不支持ppi多主,虽然他说明书上写可以,实际根本不能。

出300入477汤圆

发表于 2017-2-10 08:34:32 来自手机 | 显示全部楼层
zsfddd 发表于 2017-2-9 22:32
redroof说的是事实,反正wenview不支持ppi多主,虽然他说明书上写可以,实际根本不能。 ...

威伦已经是国产里面最好的了!
它的多主ppi至少在三个主机的情况下能跑起来:我们通迅模块+西门子200+它的屏。它有不够标准的地方我们都尽量兼容了
别的国产屏更不行

出0入0汤圆

发表于 2017-2-10 09:03:44 | 显示全部楼层
来个主机作为调度就行,类似lin bus

出0入0汤圆

发表于 2017-2-10 17:46:01 来自手机 | 显示全部楼层
我2个屏接一个s7 200不行,问wenview支持,他们也承认不行。

出300入477汤圆

发表于 2017-2-10 18:33:53 来自手机 | 显示全部楼层
zsfddd 发表于 2017-2-10 17:46
我2个屏接一个s7 200不行,问wenview支持,他们也承认不行。

哦,两个屏接一个plc多主机,这我真没见过。看来他们的屏能跟别的设备做多主机,但跟他们自己不行,搞笑,自己跟自己不是更好调试吗!
跟我们的时候通迅经常断,但能用
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-19 22:32

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

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