# ModBus RTU

简述

ModBus RTU DIP插件主要适用于采用ModBus RTU方式进行数据交互对接的场景。包括通过ModBus RTU方式读取性能数据,通过kafka、http、ActiveMQ三种方式接收标准的性能数据,并将接收的数据通过ModBus RTU的方式反写到ModBus设备中。

ModBus RTU 数据集成

# ModBus RTU 性能读取配置

  • 在配置页面选择ModBus RTU 性能读取

选择DIP实例类型图

# DIP实例配置

DIP实例配置

  • 名称:DIP实例名称

# IN配置

DIP实例 IN配置

  • 批次大小: 分批次读取,每批次读取寄存器的最大数量

  • 批量获取时间间隔(秒): 获取每批次数据的时间间隔

  • 轮询间隔(秒): 获取性能数据的周期

  • 是否为小端: ModBus设备数据是否为小端存储

  • 配置文件: 通过Excel配置性能指标相关属性,列标题定义如下:

    • COM端口号:ModBus设备所在的端口,只填写端口号
    • 波特率:按照ModBus设备说明书中波特率填写,只填写数值
    • 数据位:按照ModBus设备说明书中数据位填写,只填写数值
    • 停止位:按照ModBus设备说明书中停止位填写,只填写数值
    • 校验位:按照ModBus设备说明书中校验位填写,在下拉框中选取校验类型对应的数字即可。数字与校验类型对应的关系:
    数字 校验类型
    0 无校验位
    1 奇校验
    2 偶校验
    • 设备地址:从机地址(SlaveID)
    • 功能码:funCode,按照设备说明书中测点对应的funCode填写
    • 寄存器起始地址:测点开始的寄存器地址
    • 读取寄存器数量:测点所占用的寄存器数量
    • 起始bit: 如果测点占寄存器中一个byte,或一个bit位,则填写byte或bit开始的bit位置,如选取寄存器中的低字节,则从0选取到7,此处填写0
    • 终止bit: 如果测点占寄存器中一个byte,或一个bit位,则填写byte或bit结束的bit位置,如选取寄存器中的低字节,则从0选取到7,此处填写7
    • 计算公式:对计算出的结果进行二次计算,变量格式:${R1},${R2}...${Rn},如${R1} + ${R2}
    • 数据类型:测点对应的数据格式,如二进制类型、无符号byte、有符号byte等,依照Excel表头中的批注,在下拉框中选取数据类型对应的数字即可。数字与数据类型对应的关系:
    数字 数据类型
    0 二进制
    1 无符号8位
    2 有符号8位
    3 无符号16位
    4 有符号16位
    5 无符号32位
    6 有符号32位
    7 float 32位
    8 有符号64位
    9 double 64位
    • 设备唯一标识:测点对应的设备的信息索引值,多个信息索引值用英文,分隔
    • 指标名称:测点对应的名称
    • 设备部件:如果系统无法标识到测点具体的设备部件,则在此填写具体的设备部件
    • 单位:测点对应的单位

"excel配置"

# 数据映射

  • 映射CI:映射CI是为了将ModBus TCP/IP 性能数据匹配到设备上。

    • 为空(即不写任何字符):适用于设备唯一标识值为设备的信息索引值。
    • CI分类名.属性名的方式填写:即代表性能所属设备的属性在系统中对应的CI分类属性名属性名具体值是设备的信息索引值,设备的信息索引值通过说明书填写。

# Out配置

告警的发送方式选择:点击添加,选择对应的发送方式将数据进行发送

输出方式选择


  • MYSQL

选择此项会将数据保存至mysql库,配置项如下:

MysqlOut

配置项名称 配置项描述 示例
URL(必填项) 数据库地址 jdbc:mysql://0.0.0.0:3306/db_vmdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
用户名(必填项) 数据库用户名 username
密码(必填项) 数据库密码 password
是否保存历史数据(必填项) 默认为是,保存历史数据

  • ES

选择此项会将数据保存至ES库,配置项如下:

EsOut

配置项名称 配置项描述 示例
ES请求地址(必填项) 数据库地址 0.0.0.0:9200
用户名 数据库用户名 username
密码 数据库密码 password
ES性能数据保留天数(必填项) 默认为7,保存7天内的性能数据 7
数据域 ThingJS-X数据域ID (可选)

  • ACTIVEMQ

选择此项会将数据发送至ActiveMQ,配置项如下:

ActivemqOut

配置项名称 配置项描述 示例
URL(必填项) ActiveMQ地址 failover://(tcp://0.0.0.0:61616,tcp://0.0.0.0:61616)?randomize=false&timeout=5000&maxReconnectAttempts=-1
队列名(必填项) ActiveMQ队列名称 queue
用户名 ActiveMQ用户名 username
密码 ActiveMQ密码 password

  • RABBITMQ

选择此项会将数据发送至RabbitMQ,配置项如下:

RabbitmqOut

配置项名称 配置项描述 示例
URL(必填项) RabbitMQ地址 0.0.0.0
端口(必填项) RabbitMQ端口号 12000
用户名 RabbitMQ用户名 username
密码 RabbitMQ密码 password
RabbitMq工作模式(必填项) 共有:简单模式,订阅模式,路由模式和Topic四种模式;默认为简单模式 简单模式
RabbitMq交换机或队列名称以及路由键(必填项) 根据工作模式填写json数据 如下表所示
交换机或队列是否持久化(必填项) 默认为否,不支持持久化
无服务时是否自动删除队列或者交换机(必填项) 默认为否,不会自动删除队列或交换机
RabbitMq工作模式 对应json
简单模式 {"name":"交换机名称"}
订阅模式 {"name":"交换机名称"}
路由模式 {"name":"交换机名称","routingKey":"路由键"}
Topic模式 {"name":"交换机名称","routingKey":"路由键"}

注:此处的交换机名称和路由键按照实际情况填写


  • ROCKETMQ

选择此项会将数据发送至RocketMQ,配置项如下:

RocketmqOut

配置项名称 配置项描述 示例
请求地址(必填项) RocketMQ地址 0.0.0.0:9876;0.0.0.0:9876
生产者组别 RocketMQ生产者组别 producerGroup
消息发送主题 消息发送主题 topicA
消息标签 消息标签 tagA
超时时间 消息发送超时时间,单位为毫秒 30000
字符集 字符编码集,默认UTF-8 UTF-8
消息发送类型 分为:异步发送,单向发送,同步发送共三种;默认为异步发送 异步发送

  • KAFKA

选择此项会将数据发送至kafka,配置项如下:

KafkaOut

配置项名称 配置项描述 示例
请求地址(必填项) kafka地址 0.0.0.0:9092;0.0.0.0:9092
消息发送主题(必填项) 消息发送主题 topicA
sasl静态认证文件地址(非必填) sasl conf认证文件位置 /uinnova/dix/kafka_sasl_jaas.conf
用户名(非必填) Kafka动态认证用户名 username
密码(非必填) Kafka动态认证密码 password
密码加密算法(非必填) 对密码进行加密的算法,下拉框中二选一 SCRAM-SHA-256 或 SCRAM-SHA-512
延迟(非必填) 消息发送延迟,单位为秒 1

  • MQTT

选择此项会将数据发送至mqtt,配置项如下:

MqttOut

配置项名称 配置项描述 示例
URL(必填项) mqtt地址 tcp://127.0.0.0:1883
MQTT客户端ID(必填项) mqtt客户端ID clientID101
用户名 mqtt用户名 username
密码 mqtt密码 password
消息发送主题 消息发送主题 topicA
消息发送质量 分为:仅分发一次,至少分发一次,最多分发一次共三种;默认仅分发一次 仅分发一次
字符集 字符编码集,默认UTF-8 UTF-8

  • HTTPPOST

选择此项会将数据通过post请求发送至http服务,配置项如下:

HttppostOut

配置项名称 配置项描述 示例
http服务路径(必填项) http服务地址 http://0.0.0.0:0000
请求头 填写json格式的参数 {"key":"value"}
字符集 字符编码集,默认utf-8 utf-8

  • HTTPSPOST

选择此项会将数据通过post请求发送至https服务,配置项如下:

HttpspostOut

配置项名称 配置项描述 示例
http服务路径(必填项) https服务地址 https://0.0.0.0:0000
请求头 填写json格式的参数 {"key":"value"}
字符集 字符编码集,默认utf-8 utf-8

# DIP实例的保存与启动

  • 配置信息填写完成后,点击保存,保存成功后会在数据集成页面看到创建好的DIP实例 DIP实例

  • 点击启动按钮

启动DIP

名词解释

已接入:当前数据接口接入到的总数据量
处理中:当前数据接口正在进行处理的数据量
发送中:当前数据接口正在向外部发送的数据量
已发送:当前数据接口发送到外部的总数据量

  • 待启动成功之后,点击日志按钮,查看数据是否能正常接入。

# ModBus RTU Kafka 控制写入配置

简述

ModBus RTU Kafka 控制写入DIP实例可以订阅指定的kafka的Topic获取性能数据,并写入到ModBus服务中。

在配置页面选择ModBus RTU Kafka 控制写入

DIP实例类型图

# DIP实例配置

DIP实例配置

  • 名称:DIP实例名称

# IN 配置

"DIP实例 IN配置"

  • Kafka 服务地址: Kafka服务地址 格式${ip}:${port},${ip}:${port},${ip}:${port} 例如192.168.1.1:9092,192.168.1.2:9092
  • Kafka 主题名称: Kafka订阅主题名称
  • Kafka 分组ID: Kafka消费者分组ID
  • Kafka 超时时间(毫秒): Kafka消费者拉取数据超时时间,单位毫秒
  • 是否小端: ModBus设备数据是否为小端存储,如大端为ABCD,则小端为DCBA
  • 是否反字节序: ModBus设备数据是否为反字节存储,如大端为ABCD,反字节序为BADC
  • 配置文件: 通过Excel配置性能指标相关属性,列标题定义如下:
  • COM端口号:ModBus设备所在服务端口
  • 波特率:按照ModBus设备说明书中波特率填写,只填写数值
  • 数据位:按照ModBus设备说明书中数据位填写,只填写数值
  • 停止位:按照ModBus设备说明书中停止位填写,只填写数值
  • 校验位:按照ModBus设备说明书中校验位填写,在下拉框中选择校验类型对应的数据即可,数字与校验类型的对应关系:
数字 校验类型
0 无校验位
1 奇校验
2 偶校验
  • 设备地址:ModBus从机地址(SlaveID)
  • 功能码: 按照ModBus设备说明书中功能码填写
  • 寄存器起始地址:测点开始的寄存器地址
  • 写入的寄存器数量:测点所占用的寄存器数量
  • 数据类型:测点对应的数据格式,如二进制类型、无符号byte、有符号byte等,依照Excel表头中的批注,在下拉框中选取数据类型对应的数字即可。数字与数据类型对应的关系:
数字 数据类型
0 二进制
1 无符号8位
2 有符号8位
3 无符号16位
4 有符号16位
5 无符号32位
6 有符号32位
7 float 32位
8 有符号64位
9 double 64位
  • 设备唯一标识:测点对应的设备标识
  • 指标名称:测点对应的名称
  • 设备部件:如果系统无法标识到测点具体的设备部件,则在此填写具体的设备部件
  • 单位:测点对应的单位 "excel配置"

# DIP实例的保存与启动

  • 配置信息填写完成后,点击保存,保存成功后会在数据集成页面看到创建的DIP实例 "新建DIP实例" 点击启动 "DIP实例启动"

名词解释

已接入:当前数据接口接入到的总数据量
处理中:当前数据接口正在进行处理的数据量
发送中:当前数据接口正在向外部发送的数据量
已发送:当前数据接口发送到外部的总数据量

  • 待启动成功之后,点击日志按钮,查看数据是否能正常接入。

# 向Kfaka推送的数据格式

# 数据样例

写开关量(写入二进制类型数据):

[
    {
        "ciCode":"P191-E1-21",
        "instance":"switch1",
        "metric":"温度器开关状态",
        "value": 0
    }
]
1
2
3
4
5
6
7
8

性能数据属性说明:

参数名 必选/可选 参数类型 参数说明
ciCode 必选 String 设备唯一标识,对应配置文件设备唯一标识
instance 必选 String 设备部件,对应配置文件设备部件一致,若无则填英文字符下划线"_"
metric 必选 String 指标名称,对应配置文件指标名称一致
value 必选 Number/Boolean 测点值(可推送1、0 或true、false )

写寄存器:

[
    {
        "ciCode":"P211-E1-01",
        "instance":"cpu0",
        "metric":"CPU使用率",
        "value": 50
    }
]
1
2
3
4
5
6
7
8

性能数据属性说明:

参数名 必选/可选 参数类型 参数说明
ciCode 必选 String 设备唯一标识,对应配置文件设备唯一标识
instance 必选 String 设备部件,对应配置文件设备部件一致,若无则填英文字符下划线"_"
metric 必选 String 指标名称,对应配置文件指标名称一致
value 必选 String/Number 测点值(String 或 Number类型)

# ModBus RTU HTTP 控制写入配置

简述

ModBus RTU HTTP 控制写入DIP实例可以创建一个HTTP应用服务用于接收标准的性能数据,并写入到ModBus设备中。

  • 在配置页面选择ModBus RTU HTTP 控制写入

"选择DIP实例类型图"

# DIP实例配置

"DIP实例配置"

  • 名称:DIP实例名称

# IN配置

"DIP实例 IN配置"

  • http服务路径: http发布服务的路径。默认路径是/http/rest,可自定义。例如:/http/rest/ibm/event
    • 是否小端: ModBus设备数据是否为小端存储,如大端为ABCD,则小端为DCBA

    • 是否反字节序: ModBus设备数据是否为反字节存储,如大端为ABCD,反字节序为BADC

    • 配置文件: 通过Excel配置性能指标相关属性,列标题定义如下:

      • ip地址:ModBus设备所在服务器地址
      • 端口:ModBus设备所使用的端口
      • 设备地址:从机地址(SlaveID)
      • 功能码:funCode,按照设备说明书中测点对应的funCode填写
      • 寄存器起始地址:测点开始的寄存器地址
      • 写入寄存器数量:测点所占用的寄存器数量
      • 数据类型:测点对应的数据格式,如二进制类型、无符号byte、有符号byte等,依照Excel表头中的批注,在下拉框中选取数据类型对应的数字即可。数字与数据类型对应的关系:
      数字 数据类型
      0 二进制
      1 无符号8位
      2 有符号8位
      3 无符号16位
      4 有符号16位
      5 无符号32位
      6 有符号32位
      7 float 32位
      8 有符号64位
      9 double 64位
      • 设备唯一标识:测点对应的设备标识
      • 指标名称:测点对应的名称
      • 设备部件:如果系统无法标识到测点具体的设备部件,则在此填写具体的设备部件
      • 单位:测点对应的单位 excel配置

# DIP实例的保存与启动

  • 配置信息填写完成后,点击保存,成功保存后会在数据集成页面看到新建的DIP实例

新建DIP实例

  • 点击启动按钮。

启动DIP实例

名词解释

已接入:当前数据接口接入到的总数据量
处理中:当前数据接口正在进行处理的数据量
发送中:当前数据接口正在向外部发送的数据量
已发送:当前数据接口发送到外部的总数据量

  • 待启动成功之后,点击日志按钮,查看数据是否能正常接入。

# HTTP数据推送格式

# 数据样例

写开关量(写入二进制类型数据):

[
    {
        "ciCode":"P191-E1-21",
        "instance":"switch1",
        "metric":"温度器开关状态",
        "value": 0
    }
]
1
2
3
4
5
6
7
8

性能数据属性说明:

参数名 必选/可选 参数类型 参数说明
ciCode 必选 String 设备唯一标识,对应配置文件设备唯一标识
instance 必选 String 设备部件,对应配置文件设备部件一致,若无则填英文字符下划线"_"
metric 必选 String 指标名称,对应配置文件指标名称一致
value 必选 Number/Boolean 测点值(可推送1、0 或true、false )

写寄存器:

[
    {
        "ciCode":"P211-E1-01",
        "instance":"cpu0",
        "metric":"CPU使用率",
        "value": 50
    }
]
1
2
3
4
5
6
7
8

性能数据属性说明:

参数名 必选/可选 参数类型 参数说明
ciCode 必选 String 设备唯一标识,对应配置文件设备唯一标识
instance 必选 String 设备部件,对应配置文件设备部件一致,若无则填英文字符下划线"_"
metric 必选 String 指标名称,对应配置文件指标名称一致
value 必选 String/Number 测点值(String 或 Number类型)

# ModBUS RTU ActiveMQ 控制写入配置

简述

ModBus RTU ActiveMQ 控制写入DIP实例可以订阅ActiveMQ中指定的队列获取标准的性能数据,并写入到ModBus设备中。

在配置界面中选择ModBus RTU ActiveMQ 控制写入

"DIP实例类型图"

# DIP实例配置

"DIP实例配置"

  • 名称:DIP实例名字

# IN配置

"DIP实例 IN配置"

  • ActiveMQ 服务地址: ActiveMQ服务地址 格式tcp://${ip}:${port} 例如tcp://192.168.1.1:61616

  • ActiveMQ 用户名: ActiveMQ服务用户名

  • ActiveMQ 密码: ActiveMQ服务密码

  • ActiveMQ 消息模型: 消息传递模式,Queue点对点和Topic广播

  • ActiveMQ 队列名称: 消息队列名称

  • 是否小端: ModBus设备数据是否为小端存储,如大端为ABCD,则小端为DCBA

  • 是否反字节序: ModBus设备数据是否为反字节存储,如大端为ABCD,反字节序为BADC

  • 配置文件: 通过Excel配置性能指标相关属性,列标题定义如下:

    • ip地址:ModBus设备所在服务器地址
    • 端口:ModBus设备所使用的端口
    • 设备地址:从机地址(SlaveID)
    • 功能码:funCode,按照设备说明书中测点对应的funCode填写
    • 寄存器起始地址:测点开始的寄存器地址
    • 写入寄存器数量:测点所占用的寄存器数量
    • 数据类型:测点对应的数据格式,如二进制类型、无符号byte、有符号byte等,依照Excel表头中的批注,在下拉框中选取数据类型对应的数字即可。数字与数据类型对应的关系:
    数字 数据类型
    0 二进制
    1 无符号8位
    2 有符号8位
    3 无符号16位
    4 有符号16位
    5 无符号32位
    6 有符号32位
    7 float 32位
    8 有符号64位
    9 double 64位
    • 设备唯一标识:测点对应的设备标识
    • 指标名称:测点对应的名称
    • 设备部件:如果系统无法标识到测点具体的设备部件,则在此填写具体的设备部件
    • 单位:测点对应的单位 excel配置

# 向ActiveMQ进行数据推送

# 数据样例

写开关量(写入二进制类型数据):

[
    {
        "ciCode":"P191-E1-21",
        "instance":"switch1",
        "metric":"温度器开关状态",
        "value": 0
    }
]
1
2
3
4
5
6
7
8

性能数据属性说明:

参数名 必选/可选 参数类型 参数说明
ciCode 必选 String 设备唯一标识,对应配置文件设备唯一标识
instance 必选 String 设备部件,对应配置文件设备部件一致,若无则填英文字符下划线"_"
metric 必选 String 指标名称,对应配置文件指标名称一致
value 必选 Number/Boolean 测点值(可推送1、0 或true、false )

写寄存器:

[
    {
        "ciCode":"P211-E1-01",
        "instance":"cpu0",
        "metric":"CPU使用率",
        "value": 50
    }
]
1
2
3
4
5
6
7
8

性能数据属性说明:

参数名 必选/可选 参数类型 参数说明
ciCode 必选 String 设备唯一标识,对应配置文件设备唯一标识
instance 必选 String 设备部件,对应配置文件设备部件一致,若无则填英文字符下划线"_"
metric 必选 String 指标名称,对应配置文件指标名称一致
value 必选 String/Number 测点值(String 或 Number类型)
上次更新时间: 3/20/2023, 9:06:32 AM