前言

将Modbus数据发布成HTTP接口,目的是为了供上位系统调用。目前在工业企业的两化融合过程中,存在很多问题要解决,其中之一就是工业现场数据的采集。在传统的方案中工业现场数据采集都是用工业实时数据库,以OPC形式发布。对于软件开发人员调用不太方便,而且没有跨平台的特性。下面介绍我开发好的一款将modbus数据以http接口发布的实时数据库软件。


一、登录网关管理系统

当设置好网络以后,通过浏览器访问: http://${ip}/web/login,登录页面如下图所示:

账号是:admin,默认密码:111111。

java modbus rtu连接ip端口号发送指令 java实现modbus数据采集_java

二、创建设备

在设备管理页面,点击右上角的新增按钮,会弹窗新增设备窗口,填写完设备连接信息以后,点击确定,即可完成设备新增。

新增弹窗如下图所示:

java modbus rtu连接ip端口号发送指令 java实现modbus数据采集_网络协议_02

  1. 设备名称(必填):可根据需要来对设备进行重新命名,但不能和其他设备同名,最大支持50个字符。
  2. 备注(选填):可以根据需要修改,最大支持100个字符。
  3. 通讯方式(必填):根据要采集数据的设备选择。
  4. 品牌(必填):根据要采集数据的设备,选择对应的品牌。
  5. 型号(必填):根据要采集数据的设备,选择对应的品牌。
  6. 设备地址(必填):根据要采集数据的设备填写。
  7. 最小采集时间(必填):网关采集设备的数据的时间间隔。默认是1000ms,最小可设置为10ms。
  8. 通讯等待时间(必填):默认是1000ms,最小可设置为500ms。不能设置太小否则会导致通讯不上,此外现场通讯状况不是很好时,可适当调大此参数。
  9. 其他:其他属性请参考对应的设备驱动说明。

三、创建变量

点击右上角的新增按钮,会弹窗新增变量窗口,填写完变量信息以后,点击确定,即可完成变量新增。新增弹窗如下图所示:

java modbus rtu连接ip端口号发送指令 java实现modbus数据采集_网络_03

  1. 变量名称(必填):可根据需要来对变量进行重新命名,但不能和其他变量同名,最大支持50个字符。
  2. 所属设备(必填):选择变量所属的下位设备。
  3. 寄存器类型(必填):不同协议的寄存器类型有所不同,根据实际情况选择,具体参考设备驱动说明。
  4. 数据类型(必填):要与下位设备中存储的数据类型一致。
  5. 寄存器地址(必填):要与下位设备的寄存器类型一致。
  6. 小数位数(必填):当数据为浮点数时,要保留的小数位数。
  7. 变化灵敏度(必填):当网关采集到是数值与上次采集到的数值差大于变化灵敏度,才会更新数据,否则不更新。
  8. 权限(必填):根据实际要求设置。
  9. 上限(必填):超出上限的数据会被丢弃。
  10. 下限(必填):超出下限的数据会被丢弃。
  11. 读取公式(选填):使用“X”替代当前值,会将采集的变量值经过公式运算后返给上位系统
  12. 写入公式(选填):使用“X”替代当前值,会将下位系统要写入的变量值经过运算后写入到下位设备
  13. 备注(选填):可以根据需要修改,最大支持100个字符。

四、测试接口

参考接口文档,对接口进行测试,如下是使用postman调用"查询所有设备的实时数据"接口的示例:

请求头:设置token。

body:无参数

java modbus rtu连接ip端口号发送指令 java实现modbus数据采集_http_04

总结

目前该系统还只能采集Modbus数据,后续会增加OPC、BACnet、S7,三菱等工业协议。