搜索
bottom↓
回复: 24

求助-485串口通信协议提速

[复制链接]

出0入0汤圆

发表于 2024-7-30 07:32:16 | 显示全部楼层 |阅读模式

1、产品是:智能家居,现在用的是Modbus协议,考虑到最长800米通信距离,所以波特率是9600
2、架构是:主站,从站1(继电器开关),从站2(按键面板),从站3,从站4......   一主多从
3、问题是:如果从站很多,如64个,那从站2(按键面板)发出打开命令要经过主站轮询后才到从站1(继电器开关),那反应慢,实时性不好。
4、如何提高从站1(继电器开关)和从站2(按键面板)反应速度。方法不限,要基于标准串口,可以改硬件。




我这两天看了一些文章
1、加仲裁机制
2、CSMA/CD载波监听
3、换通信协议
4、通过主站透传

https://blog.csdn.net/qq_33784286/article/details/121427290


有经验直接加我手机微信 1五675九432三4。有偿

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入147汤圆

发表于 2024-7-30 07:40:24 来自手机 | 显示全部楼层
用坛友的cdbus

出100入0汤圆

发表于 2024-7-30 07:50:15 | 显示全部楼层
数据量应该很小啊,1-2Bytes吧。
5ms一次,也很快吧。

出20入62汤圆

发表于 2024-7-30 07:57:24 | 显示全部楼层
抓主要矛盾。
楼主波特率800米一定要9600么。你搞个38400试试啊~比你优化逻辑爽歪歪的多。

出0入0汤圆

发表于 2024-7-30 08:02:39 | 显示全部楼层
主站工作方式:输出1,输出2,获取输入1,输出3,输出4,获取输入2,......

出0入0汤圆

发表于 2024-7-30 08:22:32 | 显示全部楼层
主站工作方式:输出1,输出2,输出3,输出2,输出4,输出2,......

出0入9汤圆

发表于 2024-7-30 08:55:18 | 显示全部楼层
回头是岸,485改变了布线习惯。

出1325入193汤圆

发表于 2024-7-30 08:59:42 | 显示全部楼层
最长800米通信距离,  波特率是9600 ;  从站64个  

够呛了,这个项目
有可能是这栋楼完全正常;换一家之后;是不是故障就冒出来

出0入8汤圆

发表于 2024-7-30 09:00:57 来自手机 | 显示全部楼层
主站轮留:输出,获取输入,从机无按键动作,不响应主机的获取输入,主站的获取输入是广播令牌

出0入0汤圆

发表于 2024-7-30 09:02:25 | 显示全部楼层
只轮询按键面板,继电器开关点对点控制

出0入4汤圆

发表于 2024-7-30 09:26:42 | 显示全部楼层
刚做完一个项目,485使用分时复用方法,不需要主机轮询,效果还挺好。
具体方法:主机一次性把所有分站需要的数据下发,各个分站接收到之后根据自己的地址提取对应位置的字节。以主站下发的这一帧数据为时间0点,各个分站根据自己的地址延时相应的时间后再上传自己的状态。
优点:比标准的modbusRTU响应速度快,理论上能达到2-3倍(如果是控制继电器,能达到N倍)。
缺点:1、不是标准的modbusRTU;
2、为了达到较快的响应速度,从站地址最好从1开始向后排,中间不要有空;
3、扩展性不大好,如果要增加从站,不光要更改主站发送的指令,还要酌情修改主站的发送时间间隔。

出715入1076汤圆

发表于 2024-7-30 10:28:39 | 显示全部楼层
zqf441775525 发表于 2024-7-30 09:26
刚做完一个项目,485使用分时复用方法,不需要主机轮询,效果还挺好。
具体方法:主机一次性把所有分站需要 ...
(引用自11楼)

可以看一下 CDBUS 的 BS 模式,和你说的这个方式很像

出0入0汤圆

发表于 2024-7-30 10:50:18 | 显示全部楼层
在一个轮询周期内对响应需要快的站可均匀多次访问,即在慢的站号之间隔几个就插入访问需要快的站号。另外按标准,485在100K速率下距离是1KM,800m用38400波特率完全可以

出0入0汤圆

发表于 2024-7-30 11:12:50 | 显示全部楼层
用坛友的POWERBUS呗连供电都省了。

出1325入193汤圆

发表于 2024-7-30 11:18:12 | 显示全部楼层
zqf441775525 发表于 2024-7-30 09:26
刚做完一个项目,485使用分时复用方法,不需要主机轮询,效果还挺好。
具体方法:主机一次性把所有分站需要 ...
(引用自11楼)

遇到复杂的干扰环境; 丢包很正常   这样异常情况处理起来逻辑不会被改变吧

出0入0汤圆

发表于 2024-7-30 11:38:01 | 显示全部楼层
zqf441775525 发表于 2024-7-30 09:26
刚做完一个项目,485使用分时复用方法,不需要主机轮询,效果还挺好。
具体方法:主机一次性把所有分站需要 ...
(引用自11楼)

和 EtherCAT有点像

出0入4汤圆

发表于 2024-7-30 11:46:56 | 显示全部楼层
lb0857 发表于 2024-7-30 11:18
遇到复杂的干扰环境; 丢包很正常   这样异常情况处理起来逻辑不会被改变吧 ...
(引用自15楼)

不会,主站发送的数据带有校验,而且从站还是以主站的数据为时间基准做的,从站回复的数据是带有从站地址和校验的,数据不会错乱,顶多就是丢数。
我使用的是每隔一定时间(目前我的项目是30mS)通信一次,这样就能达到30Hz的刷新率,而且即使有丢数,也不大会影响。

出0入0汤圆

发表于 2024-7-30 12:37:15 | 显示全部楼层
主机发出从站序列和对应的从站数据,从机对应处理自己的数据,然后从站根据序列按顺序发出数据,例如1号发送完成,2号接着发,。。。

如果中途出现数据错误,总线就会空闲,主机检测到总线超时,重新发出剩余序列 。。。

这样主机一个收发就可以完成全部从站的数据交换

出0入10汤圆

发表于 2024-7-30 13:50:08 | 显示全部楼层
zqf441775525 发表于 2024-7-30 11:46
不会,主站发送的数据带有校验,而且从站还是以主站的数据为时间基准做的,从站回复的数据是带有从站地址 ...
(引用自17楼)

假如  有一个从机 收到的数据校验没有通过。那么他还回复不回复数据了?如果不回复,就等待下次周期。下次的时间节点再发数据嘛?

出0入4汤圆

发表于 2024-7-30 13:55:52 | 显示全部楼层
jaywen 发表于 2024-7-30 13:50
假如  有一个从机 收到的数据校验没有通过。那么他还回复不回复数据了?如果不回复,就等待下次周期。下 ...
(引用自19楼)

不回复了,等下个周期再回。

出0入89汤圆

发表于 2024-7-30 14:17:05 | 显示全部楼层
楼主说的还是不太明确,
比如按下面板最迟多久能响应,这个系统最多多少个面板
每个面板需要传输多少数据

出0入0汤圆

发表于 2024-7-30 15:11:59 | 显示全部楼层
modbus tcp速度不就上来了?布线也简单了

出0入89汤圆

发表于 2024-7-30 15:26:50 | 显示全部楼层
我想到一种方法,需要根据楼主的具体要求来看看是否满足

出0入0汤圆

发表于 2024-7-30 15:29:20 | 显示全部楼层
zqf441775525 发表于 2024-7-30 09:26
刚做完一个项目,485使用分时复用方法,不需要主机轮询,效果还挺好。
具体方法:主机一次性把所有分站需要 ...
(引用自11楼)

分站的地址是怎么设置的?

出0入4汤圆

发表于 2024-7-30 16:05:58 | 显示全部楼层
dgdzas 发表于 2024-7-30 15:29
分站的地址是怎么设置的?
(引用自24楼)

目前是手动设置。我也一直在想办法能自动设置,但还没找到合适的方案。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-8-15 11:19

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

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