# ModBus RTU
简述
ModBus RTU DIP插件主要适用于采用ModBus RTU方式进行数据交互对接的场景。包括通过ModBus RTU方式读取性能数据,通过kafka、http、ActiveMQ三种方式接收标准的性能数据,并将接收的数据通过ModBus RTU的方式反写到ModBus设备中。
# ModBus RTU 性能读取配置
- 在配置页面选择ModBus RTU 性能读取
# DIP实例配置
- 名称: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位 - 设备唯一标识:测点对应的设备的信息索引值,多个信息索引值用英文
,
分隔 - 指标名称:测点对应的名称
- 设备部件:如果系统无法标识到测点具体的设备部件,则在此填写具体的设备部件
- 单位:测点对应的单位
# 数据映射
映射CI:映射CI是为了将ModBus TCP/IP 性能数据匹配到设备上。
- 为空(即不写任何字符):适用于
设备唯一标识
值为设备的信息索引值。 CI分类名.属性名
的方式填写:即代表性能所属设备的属性在系统中对应的CI分类
和属性名
,属性名
具体值是设备的信息索引值,设备的信息索引值通过说明书填写。
- 为空(即不写任何字符):适用于
# Out配置
告警的发送方式选择:点击添加,选择对应的发送方式将数据进行发送
MYSQL
选择此项会将数据保存至mysql库,配置项如下:
配置项名称 | 配置项描述 | 示例 |
---|---|---|
URL(必填项) | 数据库地址 | jdbc:mysql://0.0.0.0:3306/db_vmdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8 |
用户名(必填项) | 数据库用户名 | username |
密码(必填项) | 数据库密码 | password |
是否保存历史数据(必填项) | 默认为是,保存历史数据 | 是 |
ES
选择此项会将数据保存至ES库,配置项如下:
配置项名称 | 配置项描述 | 示例 |
---|---|---|
ES请求地址(必填项) | 数据库地址 | 0.0.0.0:9200 |
用户名 | 数据库用户名 | username |
密码 | 数据库密码 | password |
ES性能数据保留天数(必填项) | 默认为7,保存7天内的性能数据 | 7 |
数据域 | ThingJS-X数据域ID (可选) |
ACTIVEMQ
选择此项会将数据发送至ActiveMQ,配置项如下:
配置项名称 | 配置项描述 | 示例 |
---|---|---|
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,配置项如下:
配置项名称 | 配置项描述 | 示例 |
---|---|---|
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,配置项如下:
配置项名称 | 配置项描述 | 示例 |
---|---|---|
请求地址(必填项) | RocketMQ地址 | 0.0.0.0:9876;0.0.0.0:9876 |
生产者组别 | RocketMQ生产者组别 | producerGroup |
消息发送主题 | 消息发送主题 | topicA |
消息标签 | 消息标签 | tagA |
超时时间 | 消息发送超时时间,单位为毫秒 | 30000 |
字符集 | 字符编码集,默认UTF-8 | UTF-8 |
消息发送类型 | 分为:异步发送,单向发送,同步发送共三种;默认为异步发送 | 异步发送 |
KAFKA
选择此项会将数据发送至kafka,配置项如下:
配置项名称 | 配置项描述 | 示例 |
---|---|---|
请求地址(必填项) | 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,配置项如下:
配置项名称 | 配置项描述 | 示例 |
---|---|---|
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服务,配置项如下:
配置项名称 | 配置项描述 | 示例 |
---|---|---|
http服务路径(必填项) | http服务地址 | http://0.0.0.0:0000 |
请求头 | 填写json格式的参数 | {"key":"value"} |
字符集 | 字符编码集,默认utf-8 | utf-8 |
HTTPSPOST
选择此项会将数据通过post请求发送至https服务,配置项如下:
配置项名称 | 配置项描述 | 示例 |
---|---|---|
http服务路径(必填项) | https服务地址 | https://0.0.0.0:0000 |
请求头 | 填写json格式的参数 | {"key":"value"} |
字符集 | 字符编码集,默认utf-8 | utf-8 |
# DIP实例的保存与启动
配置信息填写完成后,点击保存,保存成功后会在数据集成页面看到创建好的DIP实例
点击启动按钮
名词解释
已接入:当前数据接口接入到的总数据量
处理中:当前数据接口正在进行处理的数据量
发送中:当前数据接口正在向外部发送的数据量
已发送:当前数据接口发送到外部的总数据量
- 待启动成功之后,点击日志按钮,查看数据是否能正常接入。
# ModBus RTU Kafka 控制写入配置
简述
ModBus RTU Kafka 控制写入
DIP实例可以订阅指定的kafka的Topic获取性能数据,并写入到ModBus服务中。
在配置页面选择ModBus RTU Kafka 控制写入
# DIP实例配置
- 名称: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位 |
- 设备唯一标识:测点对应的设备标识
- 指标名称:测点对应的名称
- 设备部件:如果系统无法标识到测点具体的设备部件,则在此填写具体的设备部件
- 单位:测点对应的单位
# DIP实例的保存与启动
- 配置信息填写完成后,点击保存,保存成功后会在数据集成页面看到创建的DIP实例
点击启动
名词解释
已接入:当前数据接口接入到的总数据量
处理中:当前数据接口正在进行处理的数据量
发送中:当前数据接口正在向外部发送的数据量
已发送:当前数据接口发送到外部的总数据量
- 待启动成功之后,点击日志按钮,查看数据是否能正常接入。
# 向Kfaka推送的数据格式
# 数据样例
写开关量(写入二进制类型数据):
[
{
"ciCode":"P191-E1-21",
"instance":"switch1",
"metric":"温度器开关状态",
"value": 0
}
]
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
}
]
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实例名称
# 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位 - 设备唯一标识:测点对应的设备标识
- 指标名称:测点对应的名称
- 设备部件:如果系统无法标识到测点具体的设备部件,则在此填写具体的设备部件
- 单位:测点对应的单位
# DIP实例的保存与启动
- 配置信息填写完成后,点击保存,成功保存后会在数据集成页面看到新建的DIP实例
- 点击启动按钮。
名词解释
已接入:当前数据接口接入到的总数据量
处理中:当前数据接口正在进行处理的数据量
发送中:当前数据接口正在向外部发送的数据量
已发送:当前数据接口发送到外部的总数据量
- 待启动成功之后,点击日志按钮,查看数据是否能正常接入。
# HTTP数据推送格式
# 数据样例
写开关量(写入二进制类型数据):
[
{
"ciCode":"P191-E1-21",
"instance":"switch1",
"metric":"温度器开关状态",
"value": 0
}
]
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
}
]
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实例名字
# 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位 - 设备唯一标识:测点对应的设备标识
- 指标名称:测点对应的名称
- 设备部件:如果系统无法标识到测点具体的设备部件,则在此填写具体的设备部件
- 单位:测点对应的单位
# 向ActiveMQ进行数据推送
# 数据样例
写开关量(写入二进制类型数据):
[
{
"ciCode":"P191-E1-21",
"instance":"switch1",
"metric":"温度器开关状态",
"value": 0
}
]
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
}
]
2
3
4
5
6
7
8
性能数据属性说明:
参数名 | 必选/可选 | 参数类型 | 参数说明 |
---|---|---|---|
ciCode | 必选 | String | 设备唯一标识,对应配置文件设备唯一标识 |
instance | 必选 | String | 设备部件,对应配置文件设备部件 一致,若无则填英文字符下划线"_" |
metric | 必选 | String | 指标名称,对应配置文件指标名称 一致 |
value | 必选 | String/Number | 测点值(String 或 Number类型) |