客服电话:4001140636

当前位置:新闻资讯 » 行业资讯 » 巧妙利用网关串行自定义协议解决多台仪表数据采集问题

巧妙利用网关串行自定义协议解决多台仪表数据采集问题

发布日期:2026-07-07 15:25:48    来源:中商互联

客户在使用Anybus网关时,遇到了一个很有意思的应用,在这里分享给大家。

客户通过ABC3000网关,将串行仪表接入PROFIBUS DP网络控制系统中,如下图所示。

简单介绍一下网关设备:

  • Anybus 网关ABC3000实现将任何RS-232/485串行设备接入到PROFIBUS控制系统。
  • 使用基于 Web 的拖拽式配置界面,非常易于使用。
  • 采用屡获殊荣的 NP40 网络处理器,实现数据即时传输,使您可以利用高速工业网络。

客户遇到的问题:

  • 客户的仪表是RS485接口,支持标准的ModbusRTU协议。仪表寄存器从40001开始到40020共20个寄存器,这20个寄存器必须连续读取,不支持分开访问。客户只需要其中的40001,40002和40010,40011这4个寄存器的数值传输到PROFIBUS控制系统中。
  • 一个寄存器的数值占2个字节,连续读取20个寄存器对应的是40字节,客户需要连接20台仪表,总的数据量是800个字节,虽然网关的存储区是1500字节,但是PROFIBUS DP协议传输的数据量**是244字节,显然受PROFIBUS协议限制,一台网关无法实现,需要4台才能满足连接20台仪表的需求,可是这样明显的增加了成本,并且里面有很多数据是不需要的。
  • 可能有的人会提出,网关里为什么不增加一些数据处理功能,这样不管采集了什么样的数据,对数据过滤一下不就解决了。但是我们知道,只要增加了数据处理,就不仅仅是数据过滤,还需要包括客户很多别的处理需求,这样就会占用时间,而我们的网关为保证数据的即时传输,不对传输的数据做任何处理,只进行协议的转换,这样使得两侧网络的延迟控制在1ms以内,数据的处理在PLC侧完成即可。那么在无法对数据进行过滤的情况下,我们就需要想一些别的办法来解决客户当前的问题。

如何解决:

我们使用网关串行自定义协议来解决此问题,在指令的请求中依旧是请求连续读取20个寄存器数值,但在指令的响应中只把需要的数据映射到PROFIBUS 侧,不需要的数据不进行映射,间接的实现了过滤功能,这样1台网关就可以解决客户的问题。

让我们看看具体是如何实现的吧:

  • 这是标准的03功能码读取40001到40020寄存器指令结构:

我们对指令的响应报文中,20个寄存器的数值区进行拆分,如下图所示。

没有修改指令前,在串行侧和PROFIBUS侧的数据映射关系中,读取到的这40个字节数据都需要传输到PROFIBUS侧。

经过修改后,在数据映射时,我们将需要的数据映射到PROFIBUS侧共8个字节,不需要的数据不进行映射。这样连接20台仪表,共160个字节,没有超过PROFIBUS侧244字节的上限,一台网关就可以搞定了!

 
免责声明
• 
中商互联为国内互联网信息服务提供者,平台内所展示的商品/服务的标题、价格、详情等信息内容系由店铺经营者发布,其真实性、准确性和合法性均由店铺经营者负责。中商互联提醒您购买商品/服务前注意谨慎核实,如您对商品/服务的标题、价格、详情等任何信息有任何疑问的,请及时通过电话与店铺经营者沟通确认;如您发现店铺内有任何违法/侵权信息,请立即向中商互联举报并提供有效线索,我们会积极协助配合。
 

中商互联(河北)电子商务发展集团有限公司版权所有
联系地址:河北省石家庄市中山东路118号东方新世界中心6层
ICP备案:冀ICP备19018905号-1
冀公网安备13010402002621
电信业务经营许可证:冀B2-20220423
平台电话:4001140636