# ModBus TCP/IP

简述

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

ModBus TCP/IP数据集成

# ModBus TCP/IP 性能读取配置

  • 在配置页面选择ModBus TCP/IP 性能读取

选择DIP实例类型图

# DIP实例配置

DIP实例配置

  • 名称:DIP实例名称

# IN配置

DIP实例 IN配置

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

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

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

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

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

    • ip地址:ModBus设备所在服务器地址
    • 端口:ModBus设备所使用的端口
    • 设备地址:从机地址(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位
    • 设备唯一标识:测点对应的设备的信息索引值,多个信息索引值用英文,分隔
    • 指标名称:测点对应的名称
    • 设备部件:如果系统无法标识到测点具体的设备部件,则在此填写具体的设备部件
    • 单位:测点对应的单位 选择DIP实例类型图

# 数据映射

  • 映射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实例。

PerftDIP

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

PerftDIP

名词解释

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

# ModBus TCP/IP Kafka 控制写入配置

简述

ModBus TCP/IP Kafka 控制写入DIP实例可以订阅Kafka指定的Topic接收标准的性能数据,并写入到ModBus服务中。

  • 在配置页面选择ModBus TCP/IP 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设备数据是否为小端存储

  • 是否反字节序: ModBus设备数据是否为反字节存储

  • 配置文件: 通过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实例的保存与启动

  • 配置信息填写完成后,点击保存,成功保存后会在数据集成页面看到新建的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 TCP/IP HTTP 控制写入配置

简述

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

  • 在配置页面选择ModBus TCP/IP HTTP 控制写入

选择DIP实例类型图

# DIP实例配置

DIP实例配置

  • 名称:DIP实例名称

# IN配置

DIP实例 IN配置

  • http服务路径: http发布服务的路径。默认路径是/http/rest,可自定义。例如:/http/rest/ibm/event

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

  • 是否反字节序: ModBus设备数据是否为反字节存储

  • 配置文件: 通过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实例的保存与启动

  • 配置信息填写完成后,点击保存,成功保存后会在数据集成页面看到新建的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 TCP/IP ActiveMQ 控制写入配置

简述

ModBus TCP/IP ActiveMQ 控制写入DIP实例可以订阅ActiveMQ指定的队列接收标准的性能数据,并写入到ModBus服务中。

  • 在配置页面选择ModBus TCP/IP 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位
    • 设备唯一标识:测点对应的设备标识
    • 指标名称:测点对应的名称
    • 设备部件:如果系统无法标识到测点具体的设备部件,则在此填写具体的设备部件
    • 单位:测点对应的单位 选择DIP实例类型图

# DIP实例的保存与启动

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

新建DIP实例

  • 点击启动按钮。

启动DIP实例

名词解释

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

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

# 向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