DGIOT实战教程——虚拟ModbusRTU接入

2年前 (2022) 程序员胖胖胖虎阿
176 0 0

[小 迪 导读]
本教程首先通过全链路虚拟环境讲述如何用DG-IoT开源工业物联网平台完成虚拟modbus设备的接入,在掌握基础modbusRTU标准协议概念和业务流程之后,先通过虚拟的ModbusRTU和DTU来进行模拟演练。

系统需要使用的三个软件:

  • 虚拟串口软件:在电脑上模拟com口,用来连接虚拟ModbusRTU设备和dgiot_DTU
  • 虚拟ModbusRTU设备(ModbusSlave):用来模拟ModbusRTU设备运行数据上报到DTU
  • dgiot_DTU模拟软件:通过虚拟串口连接虚拟ModbusRTU设备和dgiot_DTU进行串口通信,通过TCP协议模拟dgiot_DTU和dgiot平台进行通信

系统架构逻辑图如下,包括设备模拟,通道通信,模型设置,应用显示部分
DGIOT实战教程——虚拟ModbusRTU接入

操作步骤:

1.创建虚拟串口

点击了解虚拟串口使用

2.创建虚拟ModbusRTU

本次教程不提供ModbusSlave的下载链接请见谅,建议自行搜索并下载。
安装modbus slave软件,打开后进行如下配置

主界面

DGIOT实战教程——虚拟ModbusRTU接入

第一步:点位数据

DGIOT实战教程——虚拟ModbusRTU接入
DGIOT实战教程——虚拟ModbusRTU接入

第二步:点位设置

DGIOT实战教程——虚拟ModbusRTU接入

第三步:连接设置

DGIOT实战教程——虚拟ModbusRTU接入

完成标志

DGIOT实战教程——虚拟ModbusRTU接入

3.创建虚拟DTU

1.获取软件
软件下载链接: dgiot-DTU
软件源代码链接:dgiot_DTU source
2.运行软件

  • 在dgiot_dtu 选择上一步创建的成对串口 com4,波特率:115200,校验位:无,数据位:8 停止位:1
  • 在dgiot_dtu 选择tcp 客户端通道,服务器地址为平台地址,服务器端口为ModbusRTU设备通道端口。
    注:模拟器开启了20111端口,需要在云服务开启防火墙端口。

DGIOT实战教程——虚拟ModbusRTU接入

  • 点击扫描,扫描成功建立com4的tcp桥接

DGIOT实战教程——虚拟ModbusRTU接入

4.创建采集通道

1.创建ModbusRTU采集通道。位置在通道管理-创建通道
DGIOT实战教程——虚拟ModbusRTU接入
2.选择Modbus采集通道并配置
DGIOT实战教程——虚拟ModbusRTU接入

DGIOT实战教程——虚拟ModbusRTU接入

3.产品添加通道后需对通道进行重启

4.通道日志查看

DGIOT实战教程——虚拟ModbusRTU接入
DGIOT实战教程——虚拟ModbusRTU接入

5.创建产品

1.要连接ModbusRTU,创建一种产品即可
2.创建产品
DGIOT实战教程——虚拟ModbusRTU接入
ModbusRTU
DGIOT实战教程——虚拟ModbusRTU接入

3.产品物模型配置
将以下物模型代码直接复制即可
ModbusRTU

{
    "events": [],
    "properties": [
        {
            "accessMode": "r",
            "dataForm": {
                "address": "0X10",
                "afn": "",
                "byteType": "",
                "bytelen": "",
                "collection": "%s/10",
                "control": "%d",
                "countcollection": "%s",
                "countround": "all",
                "countstrategy": 20,
                "da": "",
                "data": "null",
                "dt": "",
                "iscount": "0",
                "offset": 0,
                "operatetype": "readCoils",
                "order": 0,
                "originaltype": "short16_AB",
                "protocol": "MODBUSRTU",
                "rate": 1,
                "round": "all",
                "slaveid": "0X10",
                "strategy": "3"
            },
            "dataSource": {
                "": [],
                "_dlinkindex": "",
                "address": "0",
                "operatetype": "readHregs",
                "originaltype": "short16_AB",
                "registersnumber": "1",
                "slaveid": "0X01"
            },
            "dataType": {
                "das": [],
                "specs": {
                    "max": 1000000,
                    "min": -100,
                    "precision": 3,
                    "step": 0,
                    "unit": "℃"
                },
                "type": "float"
            },
            "devicetype": "温度传感器",
            "identifier": "temp",
            "isaccumulate": false,
            "isshow": true,
            "isstorage": true,
            "moduleType": "properties",
            "name": "温度",
            "required": true,
            "updateAt": "1660825389940",
            "index": 0
        }
    ],
    "services": [],
    "tags": []
}

4.如何复制物模型

在产品管理-配置-物模型-查看物模型处

DGIOT实战教程——虚拟ModbusRTU接入

将物模型代码复制粘贴即可

DGIOT实战教程——虚拟ModbusRTU接入

复制完后可以点击编辑查看配置情况
DGIOT实战教程——虚拟ModbusRTU接入

下方数据来源与ModbusSlave配置的一致
DGIOT实战教程——虚拟ModbusRTU接入
DGIOT实战教程——虚拟ModbusRTU接入

6.ModbusRTU设备连接的DTU注册成功

1.ModbusRTU设备连接的DTU点击连接,平台注册成功

DGIOT实战教程——虚拟ModbusRTU接入
2.ModbusRTU设备连接的DTU上线成功

DGIOT实战教程——虚拟ModbusRTU接入

3.设备地图显示成功

DGIOT实战教程——虚拟ModbusRTU接入

7.ModbusRTU数据采集成功

1.ModbusRTU实时数据

DGIOT实战教程——虚拟ModbusRTU接入
DGIOT实战教程——虚拟ModbusRTU接入
2.ModbusRTU历史数据
DGIOT实战教程——虚拟ModbusRTU接入

[小 迪 点评]

  • dgiot支持ModbusRTU协议的设备接入,方便没有真实设备的用户尝试并进行模拟设备接入演练。

想了解更多 dgiot 的具体细节,欢迎大家在GitHub上查看相关源代码。

版权声明:程序员胖胖胖虎阿 发表于 2022年11月23日 下午8:48。
转载请注明:DGIOT实战教程——虚拟ModbusRTU接入 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...