打印

MODBUS协议适合用在现场仪表上吗?

[复制链接]
3641|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wzf3151|  楼主 | 2011-1-13 10:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Modbus协议适合用在现场仪表上输出仪表的测量结果吗?我目前觉得似乎不合适。请这方面的专家给点意见。我初次接触,我把我的一些观点写出来,欢迎拍砖。

在现场仪表上用modbus来把测量结果传给PLC或者其他上位机,只能采用一问一答的方式,而测量结果有时候需要每秒实时更新,这每秒钟一问一答的多耗费资源,不仅耗费现场仪表的资源,也耗费PLC的,而且从modbus最初规定的初衷上好像也不是用来传输现场仪表的测量结果的,虽然现在现场仪表已经变成了智能仪表,可以实现modbus协议,但是用来传输测量结果还是感觉有点不合适。如果说现场仪表的测量依赖于中断的及时响应,那么频繁的一问一答的通信就会影响我的测量,即使采取一些手段处理,但是可能也会得不偿失。

如果是用modbus协议做一些仪表上的参数设置我觉得还是比较适合的。

如果谁知道那个现场仪表提供了modbus传输测量数据的能力,并且在实际应用中是用modbus协议来传输测量数据的,也请告诉我,让我学习一下。

刚刚接触,请大家批评指正!谢谢!

相关帖子

沙发
RGB123| | 2011-1-13 10:53 | 只看该作者
电站自动化,大大小小的变电站里用的是这个

使用特权

评论回复
板凳
wzf3151|  楼主 | 2011-1-13 11:07 | 只看该作者
自动化里当然这个用的很多了,但是我指的是我上面特定的应用场景,是仪表用它来传出测量,如果上位机是在它需要某个测量量的时候去问问仪表也不在我这里的讨论范围之内。

换句话说,我现场有个仪表本来是用4-20ma输出到PLC的,但是现在我把4-20ma给去掉,改成用modbus协议将测量结果实时的传送到PLC,这个合适吗?系统也需要实时的知道这个测量量,每一秒的测量结果都要知道

使用特权

评论回复
地板
wzf3151|  楼主 | 2011-1-13 14:17 | 只看该作者
这个板块不热闹啊!斑竹把这个移到技术交流吧,我急需要各路专家对此发表意见

使用特权

评论回复
5
受不了了| | 2011-1-13 16:10 | 只看该作者
一秒更新一次,对MODBUS来说小意思了,几乎不占用资源和时间,就算9600都能满足,而且你就几个字节变化,还不是发送接收一大片

使用特权

评论回复
6
wzf3151|  楼主 | 2011-1-13 16:24 | 只看该作者
问题是仪表有个关键中断不能被频繁打扰,从通信速率上讲,一秒不算什么,但是每次通信都要中断处理,处理的稍有不慎便可能会引起灾难。

而且,如果我的目标仅仅是将一次表的测量结果实时送到PLC的话,总感觉那个modbus协议设计的也有点太烦琐了。

我感觉是modbus协议设计的初衷应该不是为完成那样的功能的,要是为完成那样的功能我觉得用一次表广播数据岂不更爽,谁爱用用去。

使用特权

评论回复
7
受不了了| | 2011-1-13 16:43 | 只看该作者
你把通讯中断级别设置到低就可以了,我很多中断都需要精确到uS的,通讯和中断都互不影响

使用特权

评论回复
8
wzf3151|  楼主 | 2011-1-13 16:59 | 只看该作者
我的中断是要精确到us以下的,刚才看了一下协议,如果把响应超时之类的算上,其实开销挺大的,占用了过多的总线带宽,如果总线上多挂几个设备,对系统也挺不利的。

如果有的单片机中断不能嵌套,那么就会丢失数据,这样还可能造成恶性循环。感觉用modbus去完成这个数据传递还不如用4-20mA了

使用特权

评论回复
9
ahzll| | 2011-1-13 23:43 | 只看该作者
我是做过个小东西,走的是MODBUS协议。采集变频器的频率,通过无线数传模块发送出去。对传输的要求比较低,主要是监控状态。我见过许多仪表,像流量计,粉尘监测仪由于分布点数多,大部分都走MODBUS;用模拟量只能点对点通信。

使用特权

评论回复
10
wzf3151|  楼主 | 2011-1-14 09:52 | 只看该作者
4-20ma是可以一点到多点,就是点数比较少。modbus要一问一答,显得比较繁琐,而且消耗资源。而我的应用就是想把测量结果传送到上位机而已,没有必要上位机来问我,这个没有更好的协议设计吗?

使用特权

评论回复
11
mytempid| | 2011-1-14 10:37 | 只看该作者
一般,由4-20mA信号改为通讯方式的很大原因是成本考虑
就目前来说,rs485+modbus是性价比较高的方式。

使用特权

评论回复
12
airwill| | 2011-1-14 13:32 | 只看该作者
本帖最后由 airwill 于 2011-1-14 13:34 编辑
问题是仪表有个关键中断不能被频繁打扰,从通信速率上讲,一秒不算什么,但是每次通信都要中断处理,处理的稍有不慎便可能会引起灾难。

而且,如果我的目标仅仅是将一次表的测量结果实时送到PLC的话,总感觉那个mod ...
wzf3151 发表于 2011-1-13 16:24


既然关键中断不允许打扰,那楼主可有评估,最大允许打扰时间是多少,然后设计 MODBUS 通信中断,把响应时间控制在这个打扰时间之内, 不就安全了吗?
另外软件设计是否可以避开这个关键中断,就是不在关键中断的时候打扰哇

使用特权

评论回复
13
qczq| | 2011-1-15 00:02 | 只看该作者
现在32bit的ARM也很常见了

使用特权

评论回复
14
charrijon| | 2011-1-15 22:56 | 只看该作者
就这速度,没什么问题的,我都已经把MODBUS协议做到100us了,当然通信速度提到了5M,不影响采集,关键是你要安排好各个任务的时间

使用特权

评论回复
15
ccxlslr| | 2011-1-17 19:55 | 只看该作者
看情况,如果你的仪表对速度要求不高,像温度什么的,一两秒一次没问题
就算高一点儿的,一秒几十次也不成问题,当然,挂的仪表不要太多.

一秒超过几十次的,且速度要求严格的仪表,其它协议也未必也满足吧!
只要不是挂太多设备,还是能满足大多数需要的,波特率高,上百次一秒,也是可能的!
如果测一般的温度,想当然的讨论,不讲究实际,就没必要了!

使用特权

评论回复
16
wzf3151|  楼主 | 2011-1-20 17:22 | 只看该作者
今天看PLC的资料,看到也可以使用自由端口模式,指的好像通信协议自己定,那样我就把通信协议自己定好,仪表在自己方便时发出去,当然前提是下面就挂这一个仪表。一般是不是大家不这么做啊?

使用特权

评论回复
17
lhkjg| | 2011-1-21 13:02 | 只看该作者
modbus本来就是定位在数据传输量不大的现场参数传递上!如果过于频繁的话你需要考虑你的这个系统构架是否合理!因为modbus的整个性价比在这里!数据传输还有很做种,实在不行你可以考虑网络连接传输数据,这个是做系统的人需要综合考虑方案的范畴!而至于对下位机仪表是否不利,则跟你实际选择的产品有关系,做仪表的人当然也要考虑到通讯对自己的实时采集影响有多大!这些东西的考虑范畴都是在方案设计上。而跟modbus本身没有任何关系

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
lws + 1 我很赞同
18
wzf3151|  楼主 | 2011-1-21 13:39 | 只看该作者
modbus本来就是定位在数据传输量不大的现场参数传递上!如果过于频繁的话你需要考虑你的这个系统构架是否合理!因为modbus的整个性价比在这里!数据传输还有很做种,实在不行你可以考虑网络连接传输数据,这个是做系 ...
lhkjg 发表于 2011-1-21 13:02

有道理,我也这么想,但是就怕老板知道一点点modbus协议就觉得非得支持那个玩意,我又给他说不清,他还觉得我逃避问题。其实从系统架构上我也有我的想法,毕竟我是公司负责技术的啊,我从技术角度考虑问题,老板从市场角度考虑,他要考虑怎么给别人吹起来显得高级。
做技术难啊,做人更难!

使用特权

评论回复
19
yhn1973| | 2011-1-22 16:40 | 只看该作者
楼主思路或设计方法有问题。凡事都有个量和度的概念,如果每秒都要求传几百兆的数据,估计千兆以太网也不行,你的仪表数量有多少,每个仪表上传的数据有多少这些很重要的数据都没明确。32个仪表,每个仪表每秒上传16字节的测量数据,19200波特率的ModBus-RTU能应付过来。

使用特权

评论回复
20
lws| | 2011-1-22 17:22 | 只看该作者
建议楼主在怀疑前先根据自己的情况计算一下。MODBUS本身不用怀疑。

使用特权

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

本版积分规则

150

主题

832

帖子

0

粉丝