搜索
bottom↓
回复: 11

初学MODBUS,有个问题请教大家:由于项目对实时性要求较高,想问一下如果有6个子节点,

[复制链接]

出0入0汤圆

发表于 2010-12-3 21:14:43 | 显示全部楼层 |阅读模式
由于项目对实时性要求较高,想问一下如果有6个子节点,不考虑主机数据处理、显示、按键扫描等因素,9600波特率,轮训一遍最快需要多久?再如果提高到115200波特率呢?

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

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

出0入0汤圆

发表于 2010-12-3 21:55:36 | 显示全部楼层
3-6s。

出0入0汤圆

发表于 2010-12-3 22:24:01 | 显示全部楼层
每个节点有多少数据呀?

出0入0汤圆

 楼主| 发表于 2010-12-3 22:27:07 | 显示全部楼层
每个节点只是2字节(16bit)数据

出0入0汤圆

 楼主| 发表于 2010-12-3 22:33:39 | 显示全部楼层
3到6秒,时间太长了,项目要求不能大于100ms读一次数据,运算后输出相应的动作,如果3秒读一次再判断可能早出事故了,不知道用MODBUS这种控制方式合适不?

出0入0汤圆

发表于 2010-12-4 00:38:36 | 显示全部楼层
----------------------------------------------------------------------
//计算不对,看8楼的新计算
----------------------------------------------------------------------
9600的BPS 一字节大约需要1ms,自己计算下。
看下Modbus消息帧,数据帧与数据帧之间的间隔为3.5char,3.5字符数据的间隔约4ms,数据帧内字节与字节有一个1.5char的时间间隔。以上为标准Modbus。

每个节点 2bytes 数据数据需要2ms,加上数据间隔时间3.5char(4ms)和1.5char(2ms),算6ms。接收每个节点数据需要7ms,算上节点数据间隔,可以做到远小于100ms,足够一切按键操作和屏幕刷新、数据处理。Modbus足够处理完成了。
--------------------------------------------------------------------------------

出0入0汤圆

 楼主| 发表于 2010-12-4 11:31:39 | 显示全部楼层
谢谢阿丑的分析,这周在硬件上模拟试验一下。实验完后报告结果。

出0入0汤圆

发表于 2010-12-4 12:20:46 | 显示全部楼层
9600波特率不行,看modbus-RTU标准,下行一般不少于8个字节(05等某些功能码除外),比如03功能码 :地址  功能码03  起始地址高 起始地址低 寄存器数高 寄存器数低 校验低 校验高 共8个字节,上行是:地址  功能码  字节数 数据高 数据低 ... ... 校验低 校验高,按你的情况,一个来回有8+7共15个字节加上帧间隔最小3.5字节时间*2即7个字节,即使其他时间全部为0也有22个字节的时间,6个节点共132个,9600波特兰按1ms一个字节,也得132ms,115200也许差不多

出0入0汤圆

发表于 2010-12-4 14:16:47 | 显示全部楼层

(原文件名:2010-12-04_141545.jpg)
是我计算糊涂了。
  在简单的消息帧模型下,重新计算下每帧数据耗时时间。9600bps,传送1bit用时1/9600*1000=0.104ms,传送1BYTE大概1.04ms(数据位+停止位+校验位=10bits)。
每节点数据2字节,每帧数据=1(address)+1(function code)+2(Data大于2字节)+2(CRC16)=4 字节,约为4*1.04=4.16ms。加上2*3.5char(1.04*7=7.28ms),每帧数据发送耗时4.16+7.28=12ms。
  加上数据接收,数据处理,100ms足够了。具体的可以实际验证下。还有错误的话欢迎请大家指出

Modbus分 发送帧 和 返回帧,以03指令为例

(原文件名:发送帧 和 返回帧.jpg)
发送和返回数据大小就不一样。
modbus通讯中的上位机,下位机处理信息的机制又不一样。是中断还是轮询,就会造成时间响应上的不同,具体看程序设计了。
考虑时间因素的话,可以提高BPS。

出0入0汤圆

发表于 2010-12-5 21:26:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2013-1-3 18:00:34 | 显示全部楼层
算得真仔细,赞一个

出0入0汤圆

发表于 2013-1-6 14:44:00 | 显示全部楼层
什么都不考虑,单独考虑总线负载最大化得话,6个接点,每接点10字节以下,基本500毫秒内足足有余
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-8-26 03:21

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

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