技术论坛

 关于modbus通讯传送数据的速率

返回主题列表
作者 主题
WWCWWC
至圣

经验值: 71992
发帖数: 8037
精华帖: 145
楼主    2019-11-02 08:54:33
主题:关于modbus通讯传送数据的速率 精华帖  精编帖 

关于modbus通讯传送数据的速率

   昨天写了一篇关于200 smart PLC与富士温控器的modbus rtu通讯1的贴子,因为最终测试完毕已经比较晚了,原打算测试一下完成一个字数据的读、写,PLC大概需要多少通讯周期,今天做完了这个测试,图示:

程序思路:

取MSG指令的驱动开始及完成标志位Done位,用间隔时间定时器获取每次的时间数据。

下载,监控数据:

一个MSG指令在通讯正常条件下,完成一个字数据所需要的时间,在9600bps通讯频率下需要近60mS的时间周期,另一个MSG指令完成的时间周期情况基本相近。这个通讯时间周期应该包含PLC扫描周期及通讯硬件标设符,试了增加Count管脚数据,大概每增加一个字,通讯所需要的时间为近1 ~ 2mS。这个测试主要是为了在多从站多读、写信息时,一个轮询周期所需要的时间,为准备做类似的通讯提供一些通讯周期时间的参考。


quiet
奇侠

经验值: 7587
发帖数: 1989
精华帖: 0
1楼    2019-11-02 09:09:49
主题:回复:关于modbus通讯传送数据的速率
试试19200的速度
WWCWWC
至圣

经验值: 71992
发帖数: 8037
精华帖: 145
2楼    2019-11-02 09:19:11
主题:回复:关于modbus通讯传送数据的速率

没有测试这个速率,双方均支持这个速率的,新的富士温控器通讯速率在9600~115kbps之间选择。

本次测试也仅仅只是在相对条件下,没有其它程序的“干涉”为测试条件的。

Zaxife
至圣

经验值: 12573
发帖数: 2503
精华帖: 31
3楼    2019-11-02 09:45:01
精编帖  主题:回复:关于modbus通讯传送数据的速率
波特率9600的话,Modbus的数据位8位、停止位1位、无校验、一个起始位,也就是传输一个字节大概10位,也就是大概传输一个字节需要1/9600/10=1.04ms。
理想的一次读取返回单个寄存器数据消耗时间: 沉默4ms、主站读取指令8个字节9ms、沉默4ms、等待从站处理数据5ms、从站返回字节7个8ms、沉默4ms、主站接收处理完成5ms,一个流程下来 4 + 9 + 4 + 5 + 8 + 4 + 5 = 39ms。
如果超出这个时间说明时间都消耗在从站处理数据、主站处理数据上消耗太多时间。比如那RTOS单片机系统,每个任务时间片10ms的话,上面的任务时间就在39ms以上了。不过,对于处理器更快的单片机系统,从站处理等待2ms就完成、PLC处理2ms就完成,上面一次通讯任务时间可以缩短到29ms,嗯这是最快的了。
WWCWWC
至圣

经验值: 71992
发帖数: 8037
精华帖: 145
4楼    2019-11-02 12:50:09
精编帖  主题:回复:关于modbus通讯传送数据的速率

主站从发送数据请求到接收到从站数据的应答,真如你说的那样七七八八加起来的总时间和的过程。

这个时间就包含主、从双方接收到数据,再处理,再发送的全过程。


WWCWWC
至圣

经验值: 71992
发帖数: 8037
精华帖: 145
5楼    2019-11-04 11:05:26
精编帖  主题:回复:关于modbus通讯传送数据的速率

回3楼:

   我用V2.04版本让同事测试速率基本接近你描述的时间,一个字的通讯数据大概在38~39mS,这个与软件版本可能有一些关系,我这个测试软件版本是V2.01版本的。

昨天,因为需要说明这个通讯过程,我让4个同事测试,测试的通讯地址与方法基本是我上面的方法,测试出来的结果均小于40mS。

梧桐云
侠士

经验值: 1953
发帖数: 122
精华帖: 1
6楼    2019-11-04 13:25:42
精编帖  主题:回复:关于modbus通讯传送数据的速率

按这个方法测试了200SMART和宇电表的通讯时间,读4个字,时间在29-47MS之间变化,

为什么通讯时间不稳定且变化幅度很大呢?

WWCWWC
至圣

经验值: 71992
发帖数: 8037
精华帖: 145
7楼    2019-11-04 15:01:31
精编帖  主题:回复:关于modbus通讯传送数据的速率

这个modbus有一个说明,当通讯数据校验出错时,会发送(默认2次)的通讯数据,如果再次发送仍然错误,则在初始化timeout管脚定义的时间到达后报警故障,这样这个时间就有一个范围了。

确保通讯链路的可靠性和抗干扰是一种提升通讯速率的有效途径。

不断攀登
至圣

经验值: 12543
发帖数: 1843
精华帖: 0
8楼    2019-11-05 08:01:34
主题:回复:关于modbus通讯传送数据的速率

感谢分享!

邮箱 yongquancun@126.com
yecao2006
至圣

经验值: 18043
发帖数: 1524
精华帖: 2
9楼    2019-11-05 08:49:20
主题:回复:关于modbus通讯传送数据的速率

最近一直在做和modbus仪表的通讯工作,这个时间还真的没有去考虑。

我回来了!继续努力!
WWCWWC
至圣

经验值: 71992
发帖数: 8037
精华帖: 145
10楼    2019-11-05 09:00:51
精编帖  主题:回复:关于modbus通讯传送数据的速率

我这个测试引出了若干问题。

1)不同200smart软件版本下的速率;目前,我用同一个通讯程序,不同版本测试是有区别的。

2)通讯连接正确性和可靠性条件下的速率;相当于我在7楼描述情况

3)10mS及以上时基定时器下的异步刷新问题。另外有贴子阐述这个问题,链接:http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1591742&b_id=64&s_id=83&num=2#anch

萌新一号
游侠

经验值: 389
发帖数: 55
精华帖: 0
11楼    2019-11-05 15:33:55
主题:回复:关于modbus通讯传送数据的速率

感谢分享!

quiet
奇侠

经验值: 7587
发帖数: 1989
精华帖: 0
12楼    2019-11-06 09:09:07
主题:回复:关于modbus通讯传送数据的速率

就没人用19200, 38400,57600的波特率试一下吗

这个还与编程软件版本有关,费解啊

读写的速度有区别吗

WWCWWC
至圣

经验值: 71992
发帖数: 8037
精华帖: 145
13楼    2019-11-06 09:19:07
精编帖  主题:回复:关于modbus通讯传送数据的速率

还没有测试过其它频率的实际时间。

是的,我也是首次偶遇的。我在让他们测试,开始的目的是让他们熟悉仪表的数据地址范围、区域,我测试是近60mS,而他们测试出来的结果基本是在40mS之内,我想到了版本问题了,因为我给他们安装的是V2.04的版本,我自己电脑仍然在用V2.01的版本。

读、写基本一致。


WWCWWC
至圣

经验值: 71992
发帖数: 8037
精华帖: 145
14楼    2019-11-06 10:40:35
精编帖  主题:回复:关于modbus通讯传送数据的速率

刚刚测试了在相同程序下,相同通讯参数下,仅仅变更通讯频率的测试:用软件V2.04版本测试

19200bps:

38400bps:

115kbps:

不支持这个频率。


WWCWWC
至圣

经验值: 71992
发帖数: 8037
精华帖: 145
15楼    2019-11-06 10:51:08
精编帖  主题:回复:关于modbus通讯传送数据的速率

用同样的程序我再在另一台电脑测试,通讯频率9600:

还是我文档中描述的那样,近60mS。


yzm_cumt
至圣

经验值: 18280
发帖数: 2653
精华帖: 14
16楼    2019-11-06 10:56:03
主题:回复:关于modbus通讯传送数据的速率

,很不错啊,这个从来没有深究过,这次算是有了一个清晰的认识了

sometimes you have to be your own hero!
WWCWWC
至圣

经验值: 71992
发帖数: 8037
精华帖: 145
17楼    2019-11-06 11:05:08
精编帖  主题:回复:关于modbus通讯传送数据的速率

再在V2.04版本上测试通讯频率9600bps状态下的速率,好家伙,想当然的错误理解出现了,

由此特此更正,我前面的多处错误观点!

频率与通讯速率有关!

差一点给大家造成误解,在此表示歉意!


WWCWWC
至圣

经验值: 71992
发帖数: 8037
精华帖: 145
18楼    2019-11-06 11:10:09
精编帖  主题:回复:关于modbus通讯传送数据的速率

在本次测试中9600与19200bps通讯频率下通讯速率反映比较明显。

Laohuai
至圣

经验值: 17410
发帖数: 6227
精华帖: 18
19楼    2019-11-07 08:19:51
主题:回复:关于modbus通讯传送数据的速率

建议楼主进一步测试:
用BGN_ITIME指令记录这几个时间
时间1:发送第一个字节的时间
时间2 :发送最后一个字节的时间
时间3 :接收从站第一个字节的时间
时间4 :接收从站最后一个字节的时间
时间5:发送第一个字节的时间

再变换功能码,数量等测试


quiet
奇侠

经验值: 7587
发帖数: 1989
精华帖: 0
20楼    2019-11-07 12:10:16
主题:回复:关于modbus通讯传送数据的速率
modbus rtu太慢了,带的从站多的话那叫一个等
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。