Modbus调试工具用于测试网关能否连接指定的Modbus设备,同时也可以测试该Modbus设备所属产品的物模型是否配置正确。

前提条件

  • 请您确保已根据环境搭建内容创建完成边缘实例。
  • 根据官方驱动中Modbus驱动使用步骤,为边缘实例分配Modbus驱动和子设备。

操作步骤

  1. 登录物联网平台控制台
  2. 单击左侧导航栏中边缘计算 > 边缘实例
    找到已分配Modbus设备的实例,单击对应操作栏中的查看
  3. 实例详情页面单击设备驱动配置页签,选择全部驱动下的Modbus驱动,单击设备名称右侧的调试

    调试modbus设备
  4. 通信通道调试页面,单击添加属性点,配置调试。
    • 线圈配置参数说明如下:
      通信通道调试
      表 1. 线圈参数说明
      参数 描述
      地址 线圈的地址。十六进制,以0x开头。

      根据您自己设备的属性地址设置线圈地址。例如,要调试温度属性,您设备的温度属性地址为1,则线圈地址可设置为0x1

      属性名称 方便阅读的功能名称。

      设置属性名称,并保存配置后,在该调试设备所属产品的产品详情页面功能定义页签自定义功能区域框中,功能名称一列中可看到已设置的属性名称。

      读取功能码 用于读取或输入该线圈状态的功能码。
      写入功能码 用于写入该线圈的功能码。
      说明 读取功能码设置为0x02(输入状态)的线圈不支持此功能。
      当前值 显示被调试的Modbus设备所属产品物模型中设置的测量值,例如光照度、温度、湿度等的当前值。
      操作
      • 读取:向网关发送读取测量值的指令。网关会尝试向该设备发送读取指令并将结果返回到当前值一栏。
      • 写入:向网关发送写入测量值的指令。网关会尝试向该设备发送写入指令,并根据结果更新当前值一栏。
        说明 读取功能码设置为0x02(输入状态)时不支持写入指令。
      • 删除:从设备所属产品的物模型中删除此线圈。
        注意 执行删除操作,并保存配置后,该操作会影响此产品下的所有设备。
    • 寄存器配置参数说明如下所示。
      寄存器设置
      表 2. 寄存器参数说明
      参数 描述
      地址 属性的起始地址。十六进制,以0x开头。
      注意 添加多个配置项时寄存器地址不可重叠,若产生重叠,在保存配置时会提示配置异常。

      根据您自己设备的属性地址设置寄存器地址。例如,要调试温度属性,您设备的温度属性地址为1,则寄存器地址可设置为0x1

      属性名称 方便阅读的功能名称。
      读取功能码 用于读取该寄存器的功能码。
      写入功能码 用于写入该寄存器的功能码。
      说明
      • 读取功能码设置为0x04(输入寄存器)的寄存器不支持此功能。
      • 对于除int16和uint16之外的数据类型,如果想要写入保持寄存器,请选择0x10功能码。
      数据类型 寄存器的数据类型,可选数据类型有int16、uint16、int32、uint32、int64、uint64、float、double。不同数据类型使用的寄存器个数不同,如本文下方“各数据类型寄存器个数说明”表格所示。
      单位 选择被调试Modbus设备的测量值单位。
      当前值 显示被调试Modbus设备的所属产品物模型中设置的测量值,例如光照度、温度、湿度等的当前值。
      操作
      • 读取:向网关发送读取测量值的指令。网关会尝试向该设备发送读取指令并将结果返回到当前值一栏。
      • 写入:向网关发送写入指令,输入十进制数字。网关会尝试向该设备发送写入指令,并根据结果更新当前值一栏。
        说明 读取功能码设置为0x04(输入寄存器)时不支持写入指令。
      • 高级:为寄存器配置更多配置项,参数说明请参考本文下方“高级参数配置说明”表格。
      • 删除:从设备所属产品的物模型中删除此寄存器。
        注意 执行删除操作,并保存配置后,该操作会影响此产品下的所有设备。
      表 3. 高级参数配置说明
      参数 描述
      交换字节 此开关控制解析寄存器内部的字节顺序。系统默认使用大端序(big-endian)的解析方式。
      • true:使用小端序(little-endian)的解析方式。
      • false:使用大端序的解析方式。

      示例1,当写入12345时,对应的十六进制值为0x3039,当该功能设置为false时,发送/接收顺序为30 39;设置为true时,发送/接收顺序为39 30。

      示例2,若使用0x10功能码向slaveID为1的从站发送写入保持寄存器的RTU报文,当该功能设置为false时,报文完整内容是:01 10 02 00 01 30 39 F7 E1;设置为true时,报文完整内容是:01 10 02 00 01 39 30 33 14。

      交换寄存器 此开关控制解析寄存器的顺序(仅在除int16、uint16的数据类型中有效)。系统默认认为较高位的数值在较低地址的寄存器中,因此先解析较低地址的寄存器,即先发送较高位的数据。

      例如,发送int64数据类型的数据:0x1234567890ABCDEF到设备端,会拆分成4个寄存器发送(假设上文中交换字节设置为false),当该功能设置为false时,发送顺序为12 34 56 78 90 AB CD EF;设置为true时,发送顺序为CD EF 90 AB 56 78 12 34。

      缩放因子 设置如何缩放设备的原始数据。通常情况下,浮点运算性能较差时会以整数型表示浮点型,如果设备使用此方案,则可以使用缩放因子缩放设备的原始数据。

      例如设备使用1234表示12.34时,缩放因子参数应当设置为0.01。此时所有向该设备设置的数值,会被自动乘以100并发送到设备上,当云端或控制台设置12.34数值时,驱动会自动将12.34转换为1234发送到设备上。反过来,设备发送的1234也会被驱动转换为12.34发送到云端或其他设备上。

      表 4. 各数据类型寄存器个数说明
      数据类型 暂用寄存器个数 描述
      int16 1 16位有符号整型
      uint16 1 16位无符号整型
      int32 2 32位有符号整型
      uint32 2 32位无符号整型
      int64 4 64位有符号整型
      uint64 4 64位无符号整型
      float 2 单精度浮点型(32位)
      double 4 双精度浮点型(64位)
  5. 配置调试完成后,单击保存配置,将产品的功能定义更新到服务器中。
    系统弹出保存成功的提示,表示数据已经保存到服务器中。
    说明 保存配置后,配置项所设置的内容会在该调试设备所属产品的产品详情页面功能定义页签的自定义功能区域框中,生成一条自定义功能,该条自定义功能中的标识符,是在保存配置后系统自动生成标识符。生成原理如下:

    标识符是物模型中Identifier参数的值,Identifier参数是由:寄存器类型_4位十六进制地址该规范生成。例如,设置配置项中的读取功能码为01时,寄存器类型为coilStatus;设置地址为0x00,则4位十六进制地址是0000,因此Identifier的值(即标识符)为coilStatus_0000。

其他操作

  • 重置:在配置调试页面左下方单击重置,可重置当前已配置的内容
  • 通道设置:在配置调试页面右上方单击通道设置,可修改该Modbus通信通道的参数,设置完成后需单击确定保存修改。
  • 调试日志:在通信通道调试页面选择调试日志,可查看调试日志信息;单击清屏可清除该页面日志信息。

功能码与寄存器/线圈类型对应表

类型 功能码 对应操作类型(operateType)
线圈(线圈状态) 0x01 coilState
输入状态(输入线圈) 0x02 inputState
保持寄存器 0x03 holdingRegister
输入寄存器 0x04 inputRegister