Skip to content

Modbus RTU 经 MQTT 透传接入 ​

本文依据已有操作手册整理为线上操作参考。原文标为预期或未执行的操作,仍须按实际环境验证。

完成同一地址连续十次采集、两次FC06写入、独立FC03读回、历史刷新及正常停止恢复。

**开始前准备:**具有产品、设备、模型、发布、控制与历史权限;本地应用、单节点FMQ和FMQX网页版可用,本设备连接参数已获取

开始前先了解 ​

本篇通过MQTT承载完整Modbus RTU帧,FMQX网页版作为演示从站,完成读取、写入、独立读回、历史查询与正常停止恢复。

点表零基地址0~9各自201~210是十个地址的初始样例。本轮十次连续样本是在同一个零基地址0依次411~420,恢复后再读421。

写入设定使用零基地址100。FC06接收、回显、寄存器状态与另一FC03响应分别核对。

复制模板前先替换这些参数 ​

本篇代码使用普通模板名;截图保留实际历史资源。请先完成以下核对,再保存为UTF-8文件或发送报文。

  • register_0等是点表模板标识;平台点表、映射、FMQX物模型中的identifier必须逐项相同。地址、站号与读写属性以现场正式点表为准。
  • demo-device是设备编号模板。将clientId中的设备编号、每个收发主题中的设备编号和TCP上报的clientId一起替换为平台该设备编号;MQTT身份中的产品号、租户号也须替换为当前设备连接参数。
  • 连接文件中的host、port及监听方向须改为当前环境实际地址;127.0.0.1表示运行FMQX的本机。涉及MQTT时同步核对产品号、用户名、订阅主题和responseRoute,密码仅在连接页面安全填写。
  • 分组、会话及订阅id是导入文件内部引用;如需改名,groupId必须与对应分组id一致。先核对再导入,不要在保留会话上重复创建同名连接。
  • 代码块是按既有无密码资产或原代码改写的客户模板,尚未证明本版模板已成功导入。历史截图、发送时间和业务通过范围仍以各步骤记录为准;不要将模板名当作旧证据中的实际资源名。

一、首次配置与沿用资源 ​

保留2026-10-13首次配置或导入的原始来源;本轮复用既有产品、设备、点表与会话,没有重新创建、保存模型或导入。

完整11点UTF-8采集点表CSV模板csv

text
identifier,name,datatype,unit,registerarea,wiredatatype,byteorder,wordorder,functioncode,addressbase,startaddress,quantity,scale,offset,intervalms

register_0,采集点1,integer,,HOLDING_REGISTER,UINT16,BE,BE,3,0,0,1,1,0,5000

register_1,采集点2,integer,,HOLDING_REGISTER,UINT16,BE,BE,3,0,1,1,1,0,5000

register_2,采集点3,integer,,HOLDING_REGISTER,UINT16,BE,BE,3,0,2,1,1,0,5000

register_3,采集点4,integer,,HOLDING_REGISTER,UINT16,BE,BE,3,0,3,1,1,0,5000

register_4,采集点5,integer,,HOLDING_REGISTER,UINT16,BE,BE,3,0,4,1,1,0,5000

register_5,采集点6,integer,,HOLDING_REGISTER,UINT16,BE,BE,3,0,5,1,1,0,5000

register_6,采集点7,integer,,HOLDING_REGISTER,UINT16,BE,BE,3,0,6,1,1,0,5000

register_7,采集点8,integer,,HOLDING_REGISTER,UINT16,BE,BE,3,0,7,1,1,0,5000

register_8,采集点9,integer,,HOLDING_REGISTER,UINT16,BE,BE,3,0,8,1,1,0,5000

register_9,采集点10,integer,,HOLDING_REGISTER,UINT16,BE,BE,3,0,9,1,1,0,5000

register_100,写入设定,integer,,HOLDING_REGISTER,UINT16,BE,BE,3,0,100,1,1,0,5000

共11个数据点和1行表头;0~9为十个采集地址,100为写入地址。保存为RTU点表.csv。 此处使用可替换的客户模板名;导入或发送前按本节替换清单核对。

1. 首次配置:导入11个正式寄存器点 ​

**操作位置:*物联网→设备接入→*采集点表 操作步骤:将上方完整CSV按替换清单核对后保存为UTF-8文件RTU点表.csv,再导入平台;核对11个字段及零基地址。原截图为首次配置记录,本轮复用已保存资源。

导入11个正式寄存器点

采集点0~9与写入点100,数量均为1。

截图重点说明 ​

字段 / 控件说明
轮询起始地址0~9和100各一条范围;使用零基地址。
必填 · 填写:0~9、100
地址基准、倍率与偏移零基地址0在参考标号中常写40001;物理量=原值×倍率+偏移。
必填 · 填写:基准0 / 倍率1 / 偏移0
采集点表导入11个整数点;0~9是十个采集地址,100是写入地址。本轮连续十次在地址0完成。
必填 · 填写:RTU点表.csv

2. 首次配置:填写本篇设备身份与站号 ​

**操作位置:*设备接入向导→*设备 操作步骤:****设备标识填本篇编号,名称为本篇名称,从站地址1。 本步保留首次配置记录;本轮复用已保存资源。

填写本篇设备身份与站号

设备编号与后续绑定和会话一致。MQTT接入IP/端口使用FMQX Broker参数。

截图重点说明 ​

字段 / 控件说明
设备标识产品内唯一设备编号;与运行绑定及FMQX身份一致。
必填 · 填写:FastBee_RtuMQTT_Tutorial_01
从站地址/Unit IDRTU帧第一个字节的站号。
必填 · 填写:1

3. 首次配置:确认产品、协议与设备范围 ​

**操作位置:*设备接入向导→*确认 操作步骤:核对MODBUS_RTU、传输方式、1台设备和11个采集字段。 本步保留首次配置记录;本轮复用已保存资源。

确认产品、协议与设备范围

确认本篇独立产品与设备,不混用其他教程资源。

截图重点说明 ​

字段 / 控件说明
产品名称每篇使用独立产品;复验复用已保留资源。
必填 · 填写:FastBee_透传寄存器
设备协议载荷为带站号、功能码和CRC的Modbus RTU二进制帧。
必填 · 填写:MODBUS_RTU
传输方式承载RTU帧的网络通道,需要与FMQX会话一致。
必填 · 填写:MQTT

4. 首次配置:设置采集点为只读并保存历史 ​

**操作位置:*产品详情→功能定义→*采集点1 操作步骤:****开启图表、实时监测、只读与历史;核对其余9点同样设置。 本步保留首次配置记录;本轮复用已保存资源。

设置采集点为只读并保存历史

采集点允许查询历史,无写入控件。

截图重点说明 ​

字段 / 控件说明
采集点标识0~9映射为FastBee_register_0~9,原始初值分别201~210;本轮地址0改为411~420。
必填 · 填写:FastBee_register_0
只读数据十个采集点开启;写入设定关闭。
必填 · 填写:采集点开;写入设定关
历史存储11个属性均开启,独立读回才能产生相应属性历史。
必填 · 填写:开启
图表显示与实时监测十个采集点开启;写入设定关闭。
必填 · 填写:采集点开;写入设定关
整数范围与单位UINT16取0~65535、步长1;本篇无工程单位,实物按正式点表填写。
必填 · 填写:0~65535;步长1;单位留空

5. 首次配置:设置地址100为可写属性 ​

**操作位置:*产品详情→功能定义→*写入设定 **操作步骤:**取消只读,开启历史,图表与实时监测关闭后保存。 本步保留首次配置记录;本轮复用已保存资源。

设置地址100为可写属性

写入设定保留运行状态控制与历史。

截图重点说明 ​

字段 / 控件说明
写入属性标识保持寄存器地址100对应的可写整数属性。
必填 · 填写:FastBee_register_100
只读数据十个采集点开启;写入设定关闭。
必填 · 填写:采集点开;写入设定关
历史存储11个属性均开启,独立读回才能产生相应属性历史。
必填 · 填写:开启
整数范围与单位UINT16取0~65535、步长1;本篇无工程单位,实物按正式点表填写。
必填 · 填写:0~65535;步长1;单位留空

6. 首次配置:核对设备绑定与Unit ID ​

**操作位置:*产品详情→Modbus协议配置→*设备绑定 **操作步骤:**选本篇设备,Unit ID为1并启用。 本步保留首次配置记录;本轮复用已保存资源。

核对设备绑定与Unit ID

所有读取与写入均绑定同一个从站身份。

截图重点说明 ​

字段 / 控件说明
设备绑定选择本篇设备,Unit ID为1,启用;不要绑定其他教程设备。
必填 · 填写:FastBee_RtuMQTT_Tutorial_01 / 1 / 启用
从站地址/Unit IDRTU帧第一个字节的站号。
必填 · 填写:1

7. 首次配置:核对FC03轮询范围 ​

**操作位置:*产品详情→Modbus协议配置→*轮询范围 **操作步骤:**地址0~9与100各读1个寄存器,间隔5000毫秒。 本步保留首次配置记录;本轮复用已保存资源。

核对FC03轮询范围

11条启用范围,超时3000毫秒、重试0。

截图重点说明 ​

字段 / 控件说明
读取功能码FC03读取保持寄存器;不能把FC06回显当作读取。
必填 · 填写:3
轮询起始地址0~9和100各一条范围;使用零基地址。
必填 · 填写:0~9、100
数量每次读取一个16位寄存器。
必填 · 填写:1
轮询间隔每个范围每5000毫秒读取;复验结束应停止轮询。
必填 · 填写:5000 ms
超时与重试本篇3000毫秒超时、重试0、优先级0;失败先查连接与地址。
必填 · 填写:3000 ms / 0 / 0

**完整连接与点位JSON模板(不含密码)**json

text
{

  "schemaVersion": 3,

  "groups": [

    {

      "id": "tutorial_demo-device",

      "name": "RTU透传教程",

      "sortOrder": 60,

      "isSystem": false

    }

  ],

  "sessions": [

    {

      "id": "import_demo-device",

      "groupId": "tutorial_demo-device",

      "name": "透传寄存器",

      "protocol": "ModbusRTU",

      "transport": "MQTT",

      "host": "127.0.0.1",

      "port": 1883,

      "unitId": 1,

      "autoReconnect": false,

      "clientId": "S&demo-device&883&1",

      "username": "admin",

      "mqttProtocolVersion": "3.1.1",

      "qos": 1,

      "requestTopic": "/883/demo-device/function/get",

      "responseTopic": "/883/demo-device/property/post",

      "modbusThingModels": [

        {

          "modelName": "采集点1",

          "identifier": "register_0",

          "type": 1,

          "dataType": "Integer",

          "isReadonly": true,

          "initialValue": 201,

          "mapping": {

            "dataArea": "HoldingRegisters",

            "address": 0,

            "length": 1,

            "wireFormat": "UInt16",

            "byteOrder": "BigEndian",

            "wordOrder": "HighWordFirst",

            "scale": 1,

            "offset": 0

          }

        },

        {

          "modelName": "采集点2",

          "identifier": "register_1",

          "type": 1,

          "dataType": "Integer",

          "isReadonly": true,

          "initialValue": 202,

          "mapping": {

            "dataArea": "HoldingRegisters",

            "address": 1,

            "length": 1,

            "wireFormat": "UInt16",

            "byteOrder": "BigEndian",

            "wordOrder": "HighWordFirst",

            "scale": 1,

            "offset": 0

          }

        },

        {

          "modelName": "采集点3",

          "identifier": "register_2",

          "type": 1,

          "dataType": "Integer",

          "isReadonly": true,

          "initialValue": 203,

          "mapping": {

            "dataArea": "HoldingRegisters",

            "address": 2,

            "length": 1,

            "wireFormat": "UInt16",

            "byteOrder": "BigEndian",

            "wordOrder": "HighWordFirst",

            "scale": 1,

            "offset": 0

          }

        },

        {

          "modelName": "采集点4",

          "identifier": "register_3",

          "type": 1,

          "dataType": "Integer",

          "isReadonly": true,

          "initialValue": 204,

          "mapping": {

            "dataArea": "HoldingRegisters",

            "address": 3,

            "length": 1,

            "wireFormat": "UInt16",

            "byteOrder": "BigEndian",

            "wordOrder": "HighWordFirst",

            "scale": 1,

            "offset": 0

          }

        },

        {

          "modelName": "采集点5",

          "identifier": "register_4",

          "type": 1,

          "dataType": "Integer",

          "isReadonly": true,

          "initialValue": 205,

          "mapping": {

            "dataArea": "HoldingRegisters",

            "address": 4,

            "length": 1,

            "wireFormat": "UInt16",

            "byteOrder": "BigEndian",

            "wordOrder": "HighWordFirst",

            "scale": 1,

            "offset": 0

          }

        },

        {

          "modelName": "采集点6",

          "identifier": "register_5",

          "type": 1,

          "dataType": "Integer",

          "isReadonly": true,

          "initialValue": 206,

          "mapping": {

            "dataArea": "HoldingRegisters",

            "address": 5,

            "length": 1,

            "wireFormat": "UInt16",

            "byteOrder": "BigEndian",

            "wordOrder": "HighWordFirst",

            "scale": 1,

            "offset": 0

          }

        },

        {

          "modelName": "采集点7",

          "identifier": "register_6",

          "type": 1,

          "dataType": "Integer",

          "isReadonly": true,

          "initialValue": 207,

          "mapping": {

            "dataArea": "HoldingRegisters",

            "address": 6,

            "length": 1,

            "wireFormat": "UInt16",

            "byteOrder": "BigEndian",

            "wordOrder": "HighWordFirst",

            "scale": 1,

            "offset": 0

          }

        },

        {

          "modelName": "采集点8",

          "identifier": "register_7",

          "type": 1,

          "dataType": "Integer",

          "isReadonly": true,

          "initialValue": 208,

          "mapping": {

            "dataArea": "HoldingRegisters",

            "address": 7,

            "length": 1,

            "wireFormat": "UInt16",

            "byteOrder": "BigEndian",

            "wordOrder": "HighWordFirst",

            "scale": 1,

            "offset": 0

          }

        },

        {

          "modelName": "采集点9",

          "identifier": "register_8",

          "type": 1,

          "dataType": "Integer",

          "isReadonly": true,

          "initialValue": 209,

          "mapping": {

            "dataArea": "HoldingRegisters",

            "address": 8,

            "length": 1,

            "wireFormat": "UInt16",

            "byteOrder": "BigEndian",

            "wordOrder": "HighWordFirst",

            "scale": 1,

            "offset": 0

          }

        },

        {

          "modelName": "采集点10",

          "identifier": "register_9",

          "type": 1,

          "dataType": "Integer",

          "isReadonly": true,

          "initialValue": 210,

          "mapping": {

            "dataArea": "HoldingRegisters",

            "address": 9,

            "length": 1,

            "wireFormat": "UInt16",

            "byteOrder": "BigEndian",

            "wordOrder": "HighWordFirst",

            "scale": 1,

            "offset": 0

          }

        },

        {

          "modelName": "写入设定",

          "identifier": "register_100",

          "type": 1,

          "dataType": "Integer",

          "isReadonly": false,

          "initialValue": 0,

          "mapping": {

            "dataArea": "HoldingRegisters",

            "address": 100,

            "length": 1,

            "wireFormat": "UInt16",

            "byteOrder": "BigEndian",

            "wordOrder": "HighWordFirst",

            "scale": 1,

            "offset": 0

          }

        }

      ]

    }

  ]

}

按替换清单核对后保存为连接配置.json,在FMQX网页版选择导入配置;本次正文改写不代表此模板已实际导入。 此处使用可替换的客户模板名;导入或发送前按本节替换清单核对。

8. 首次配置:导入FMQX网页版连接配置 ​

**操作位置:*FMQX网页版→*配置文件 操作步骤:将本节完整JSON按替换清单核对后保存为UTF-8文件连接配置.json,在FMQX网页版 更多操作 中选择 导入配置。原步骤截图保留原批次操作。

导入FMQX网页版连接配置

使用本篇分组与会话,凭据另行填写。

截图重点说明 ​

字段 / 控件说明
协议与运行模式FMQ负责主站读取与命令,FMQX网页版演示从站提供寄存器及RTU协议响应。
必填 · 填写:Modbus RTU / MQTT / 从站模拟器
导入配置在FMQX网页版配置文件菜单导入本篇UTF-8 JSON;凭据由管理员另行提供。
必填 · 填写:连接配置.json

二、发布并确认运行配置 ​

9. 确认发布本篇产品 ​

**操作位置:*产品详情→*基本信息 **操作步骤:**核对本篇产品名称和编号,在发布确认框点击 确定。

确认发布当前MQTT透传产品,保留产品名称、ID及完整确认框。

确认发布当前MQTT透传产品,保留产品名称、ID及完整确认框。

10. 确认运行配置已应用 ​

**操作位置:*产品详情→*同步详情 **操作步骤:**打开同步详情,核对当前快照的应用状态。

本篇节点已应用当前配置

本篇节点已应用当前配置

三、核对参数并连接从站 ​

11. 只读核对完整连接参数 ​

**操作位置:*FMQX网页版→本篇会话→*连接配置 **操作步骤:**只读核对主机、端口、身份、站号及RTU参数。

核对本篇连接方向、目标地址、端口与站号、MQTT身份和请求响应Topic

核对本篇连接方向、目标地址、端口与站号、MQTT身份和请求响应Topic

截图重点说明 ​

字段 / 控件说明
完整连接参数只读核对主机、端口、身份、站号、RTU校验与重连设置;本次补图未保存。
必填 · 填写:按实施方案填写 · 示例:按实际环境填写

12. 确认账号与凭据已保存 ​

**操作位置:*FMQX网页版→本篇会话→*连接配置 **操作步骤:**核对 Client ID 和 Username,确认密码框提示已保存且不回显。

透传MQTT密码已保存且不会回显

透传MQTT密码已保存且不会回显

截图重点说明 ​

字段 / 控件说明
MQTT账号与已保存凭据使用本设备正式连接信息;密码保存后不回显,不填入手册。
必填 · 填写:按实施方案填写 · 示例:已保存的凭据不会在此显示

13. 核对沿用点表和写入点 ​

**操作位置:*FMQX网页版→本篇会话→*物模型参数 **操作步骤:**核对零基地址0~9与100,并确认地址100可写。

本篇11个正式寄存器点和初始值

本篇11个正式寄存器点和初始值

14. 连接本篇从站会话 ​

**操作位置:*FMQX网页版→*本篇会话 **操作步骤:**核对会话名称后点击 连接,等待显示已连接。

本篇原身份从站会话已连接。

本篇原身份从站会话已连接。

四、同一地址连续采集十次 ​

15. 填写同一地址的首个值411 ​

**操作位置:*FMQX网页版→物模型参数→*采集点1 **操作步骤:**在零基地址0的编辑框输入 411,核对地址后确认。

同一地址0的新采样值411

同一地址0的新采样值411

截图重点说明 ​

字段 / 控件说明
从站寄存器值在同一零基地址0依次输入411~420;恢复后再设421。
必填 · 填写:按实施方案填写 · 示例:411~420;恢复421
零基地址用于完成“填写同一地址的首个值411”。
必填 · 填写:0
首个值用于完成“填写同一地址的首个值411”。
必填 · 填写:411

16. 在同一地址依次采集到420 ​

**操作位置:*FMQX网页版→物模型参数→*采集点1 **操作步骤:**仍在地址0依次设置412~420,每次确认后等待一次实际采集;图中为最后420待确认态。

同一地址0的新采样值420

同一地址0的新采样值420

截图重点说明 ​

字段 / 控件说明
从站寄存器值在同一零基地址0依次输入411~420;恢复后再设421。
必填 · 填写:按实施方案填写 · 示例:411~420;恢复421
连续值用于完成“在同一地址依次采集到420”。
必填 · 填写:411~420
零基地址用于完成“在同一地址依次采集到420”。
必填 · 填写:0

五、首次写42并独立读回 ​

17. 首次下发地址100的设定42 ​

**操作位置:*设备详情→运行状态→*写入设定 操作步骤:核对写前当前值,将待下发目标设为42并点击发送一次;图中只保留写前基线和发送入口,实际目标由下一步原帧确认。

本次写前当前值和发送入口;原图没有显示待发目标数字。

本次写前当前值和发送入口;原图没有显示待发目标数字。

截图重点说明 ​

字段 / 控件说明
写入地址用于完成“首次下发地址100的设定42”。
必填 · 填写:100
本次目标用于完成“首次下发地址100的设定42”。
必填 · 填写:42

18. 确认从站收到写42请求 ​

**操作位置:*FMQX网页版→本篇会话→*真实日志 **操作步骤:**查看本次接收的FC06写单寄存器请求,核对地址100与数值42。

FC06写入42:设备接收请求

FC06写入42:设备接收请求

19. 确认从站回显写42 ​

**操作位置:*FMQX网页版→本篇会话→*真实日志 **操作步骤:**查看紧随本次请求的发送回显,核对功能码、地址和值。

FC06写入42:设备回显

FC06写入42:设备回显

20. 查看从站地址100当前42 ​

**操作位置:*FMQX网页版→本篇会话→*物模型参数 **操作步骤:**核对零基地址100的当前值为42。

设备寄存器100真实值42

设备寄存器100真实值42

21. 核对另一次FC03响应42 ​

**操作位置:*FMQX网页版→本篇会话→*真实日志 **操作步骤:**查看FC06之后另一条FC03响应,核对地址100读回值42,不要把FC06回显当作读取。

独立FC03读回设定42

独立FC03读回设定42

22. 查看平台读回当前值42 ​

**操作位置:*设备详情→*运行状态 **操作步骤:**刷新本篇设备运行状态,查看写入设定当前值42。

独立FC03读回后平台当前值42

独立FC03读回后平台当前值42

六、正常停止与恢复读取 ​

本轮由操作员正常断开再连接,不将这一过程称为网络故障恢复。

23. 正常停止本篇连接 ​

**操作位置:*FMQX网页版→*本篇会话 **操作步骤:**点击 断开,等待本篇会话显示已断开。

从站已断开,配置和历史继续保留

从站已断开,配置和历史继续保留

24. 恢复同一会话连接 ​

**操作位置:*FMQX网页版→*本篇会话 **操作步骤:**继续使用原会话和身份点击 连接,核对已连接及保留的地址0当前420。

正常恢复连接后,保留当前会话、Modbus RTU/MQTT、流量、地址0当前420与变化时间。

正常恢复连接后,保留当前会话、Modbus RTU/MQTT、流量、地址0当前420与变化时间。

25. 核对恢复后的新读取421 ​

**操作位置:*FMQX网页版→本篇会话→*真实日志 操作步骤:查看正常恢复后地址0的新FC03响应,核对新值421。

恢复后FC03读取地址0,返回421

恢复后FC03读取地址0,返回421

截图重点说明 ​

字段 / 控件说明
零基地址用于完成“核对恢复后的新读取421”。
必填 · 填写:0
恢复后新值用于完成“核对恢复后的新读取421”。
必填 · 填写:421

七、恢复后写43并独立读回 ​

26. 恢复后下发地址100的设定43 ​

**操作位置:*设备详情→运行状态→*写入设定 操作步骤:核对写前当前值,将待下发目标设为43并点击发送一次;图中只保留写前基线和发送入口,实际目标由下一步原帧确认。

本次写前当前值和发送入口;原图没有显示待发目标数字。

本次写前当前值和发送入口;原图没有显示待发目标数字。

截图重点说明 ​

字段 / 控件说明
写入地址用于完成“恢复后下发地址100的设定43”。
必填 · 填写:100
本次目标用于完成“恢复后下发地址100的设定43”。
必填 · 填写:43

27. 确认从站收到写43请求 ​

**操作位置:*FMQX网页版→本篇会话→*真实日志 **操作步骤:**查看本次接收的FC06写单寄存器请求,核对地址100与数值43。

FC06写入43:设备接收请求

FC06写入43:设备接收请求

28. 确认从站回显写43 ​

**操作位置:*FMQX网页版→本篇会话→*真实日志 **操作步骤:**查看紧随本次请求的发送回显,核对功能码、地址和值。

FC06写入43:设备回显

FC06写入43:设备回显

29. 查看从站地址100当前43 ​

**操作位置:*FMQX网页版→本篇会话→*物模型参数 **操作步骤:**核对零基地址100的当前值为43。

设备寄存器100真实值43

设备寄存器100真实值43

30. 核对另一次FC03响应43 ​

**操作位置:*FMQX网页版→本篇会话→*真实日志 **操作步骤:**查看FC06之后另一条FC03响应,核对地址100读回值43,不要把FC06回显当作读取。

独立FC03读回设定43

独立FC03读回设定43

31. 查看平台读回当前值43 ​

**操作位置:*设备详情→*运行状态 **操作步骤:**刷新本篇设备运行状态,查看写入设定当前值43。

独立FC03读回后平台当前值43

独立FC03读回后平台当前值43

八、停止轮询并保留资源 ​

32. 最终断开并保留当前值 ​

**操作位置:*FMQX网页版→*本篇会话 **操作步骤:**点击 断开,核对已断开、未启动以及保留的地址0当前421。

最终正常断开,保留当前会话、Modbus RTU/MQTT、流量、地址0当前421与变化时间。

最终正常断开,保留当前会话、Modbus RTU/MQTT、流量、地址0当前421与变化时间。

33. 确认取消发布停止轮询 ​

**操作位置:*产品详情→*取消发布 **操作步骤:**在本篇产品的取消发布确认框点击 确定。

停止本篇轮询并保留配置和历史

停止本篇轮询并保留配置和历史

34. 确认停止配置已应用 ​

**操作位置:*产品详情→*同步详情 **操作步骤:**核对取消发布后的REMOVE快照及应用结果。

本篇节点已应用当前配置

本篇节点已应用当前配置

九、筛选、刷新与核对实际历史 ​

写入历史会保留写前值及正常轮询产生的重复值。按本次时间与原帧核对两次写后读回,不以历史总行数等同于写入次数。

35. 填写采集点1的完整时间范围 ​

**操作位置:*数据中心→*历史数据 **操作步骤:**填写覆盖本次运行的开始和结束日期时间。

完整日期与起止时间:2026-10-16 00:32:50至2026-10-16 00:33:37

完整日期与起止时间:2026-10-16 00:32:50至2026-10-16 00:33:37

截图重点说明 ​

字段 / 控件说明
本轮完整日期时间使用真实运行时间范围;避免混入首次配置或其他运行。
选填 · 填写:按实施方案填写 · 示例:按实际环境填写
开始时间用于完成“填写采集点1的完整时间范围”。
必填 · 填写:2026-10-16 00:32:50
结束时间用于完成“填写采集点1的完整时间范围”。
必填 · 填写:2026-10-16 00:33:37

36. 筛选本篇设备与采集点1 ​

**操作位置:*数据中心→*历史数据 操作步骤:选择本篇设备与采集点1字段,核对查询对象。

核对本篇设备、属性和时间范围后查询

核对本篇设备、属性和时间范围后查询

截图重点说明 ​

字段 / 控件说明
设备与字段筛选采集点1对应地址0,写入设定对应地址100;保持本篇设备。
选填 · 填写:按实施方案填写 · 示例:按实际环境填写
查询字段用于完成“筛选本篇设备与采集点1”。
必填 · 填写:采集点1

37. 刷新查询采集点1历史 ​

**操作位置:*数据中心→*历史数据 **操作步骤:**保留本篇设备、字段和时间条件,点击结果区的刷新按钮重新查询。

刷新并重新查询本篇历史

刷新并重新查询本篇历史

38. 核对采集点1实际历史结果 ​

**操作位置:*数据中心→历史数据→*查询结果 **操作步骤:**按时间和值核对同一零基地址0的411~420十条连续变化。

刷新后核对本篇实际历史记录

刷新后核对本篇实际历史记录

39. 填写写入设定的完整时间范围 ​

**操作位置:*数据中心→*历史数据 **操作步骤:**填写覆盖本次运行的开始和结束日期时间。

完整日期与起止时间:2026-10-16 00:33:42至2026-10-16 00:34:07

完整日期与起止时间:2026-10-16 00:33:42至2026-10-16 00:34:07

截图重点说明 ​

字段 / 控件说明
本轮完整日期时间使用真实运行时间范围;避免混入首次配置或其他运行。
选填 · 填写:按实施方案填写 · 示例:按实际环境填写
开始时间用于完成“填写写入设定的完整时间范围”。
必填 · 填写:2026-10-16 00:33:42
结束时间用于完成“填写写入设定的完整时间范围”。
必填 · 填写:2026-10-16 00:34:07

40. 筛选本篇设备与写入设定 ​

**操作位置:*数据中心→*历史数据 操作步骤:选择本篇设备与写入设定字段,核对查询对象。

核对本篇设备、属性和时间范围后查询

核对本篇设备、属性和时间范围后查询

截图重点说明 ​

字段 / 控件说明
设备与字段筛选采集点1对应地址0,写入设定对应地址100;保持本篇设备。
选填 · 填写:按实施方案填写 · 示例:按实际环境填写
查询字段用于完成“筛选本篇设备与写入设定”。
必填 · 填写:写入设定

41. 刷新查询写入设定历史 ​

**操作位置:*数据中心→*历史数据 **操作步骤:**保留本篇设备、字段和时间条件,点击结果区的刷新按钮重新查询。

刷新并重新查询本篇历史

刷新并重新查询本篇历史

42. 核对写入设定实际历史结果 ​

**操作位置:*数据中心→历史数据→*查询结果 **操作步骤:**按时间和值核对同一零基地址100的42、43两次写后读回。

刷新后核对本篇实际历史记录

刷新后核对本篇实际历史记录

参数从哪里获取与如何填写 ​

设备接入向导 ​

字段 / 控件填写说明
产品名称每篇使用独立产品;复验复用已保留资源。
必填 · 填写:FastBee_透传寄存器
设备协议载荷为带站号、功能码和CRC的Modbus RTU二进制帧。
必填 · 填写:MODBUS_RTUMODBUS_RTU:载荷为带站号、功能码和CRC的Modbus RTU二进制帧;载荷为带站号、功能码和CRC的Modbus RTU二进制帧。
传输方式承载RTU帧的网络通道,需要与FMQX会话一致。
必填 · 填写:MQTTMQTT:承载RTU帧的网络通道,需要与FMQX会话一致;承载RTU帧的网络通道,需要与FMQX会话一致。
采集点表导入11个整数点;0~9为十个采集地址,100用于写入。本轮连续十次样本始终使用地址0。
设备标识产品内唯一设备编号;与运行绑定及FMQX身份一致。
必填 · 填写:FastBee_RtuMQTT_Tutorial_01
从站地址/Unit IDRTU帧第一个字节的站号。
必填 · 填写:1

功能定义 ​

字段 / 控件填写说明
采集点标识0~9映射为FastBee_register_0~9,原始初值分别201~210;本轮地址0改为411~420。
必填 · 填写:FastBee_register_0
修改后须发布。
写入属性标识保持寄存器地址100对应的可写整数属性。
必填 · 填写:FastBee_register_100
修改后须发布。
只读数据十个采集点开启;写入设定关闭。
必填 · 填写:采集点开;写入设定关
修改后须发布。
历史存储11个属性均开启,独立读回才能产生相应属性历史。
必填 · 填写:开启
修改后须发布。
图表显示与实时监测十个采集点开启;写入设定关闭。
必填 · 填写:采集点开;写入设定关
修改后须发布。
整数范围与单位UINT16取0~65535、步长1;本篇无工程单位,实物按正式点表填写。
必填 · 填写:0~65535;步长1;单位留空
修改后须发布。

协议与发布生效 ​

字段 / 控件填写说明
设备绑定选择本篇设备,Unit ID为1,启用;不要绑定其他教程设备。
必填 · 填写:FastBee_RtuMQTT_Tutorial_01 / 1 / 启用
修改后须发布。
读取功能码FC03读取保持寄存器;不能把FC06回显当作读取。
必填 · 填写:3
修改后须发布。
轮询起始地址0~9和100各一条范围;使用零基地址。
必填 · 填写:0~9、100
修改后须发布。
数量每次读取一个16位寄存器。
必填 · 填写:1
修改后须发布。
轮询间隔每个范围每5000毫秒读取;复验结束应停止轮询。
必填 · 填写:5000 ms
修改后须发布。
超时与重试本篇3000毫秒超时、重试0、优先级0;失败先查连接与地址。
必填 · 填写:3000 ms / 0 / 0
修改后须发布。
线缆类型、字节序与字序每点UINT16、BE/BE;BE表示高字节/高字在前。单寄存器仍按正式配置保存。
必填 · 填写:UINT16 / BE / BE
修改后须发布。
地址基准、倍率与偏移零基地址0在参考标号中常写40001;物理量=原值×倍率+偏移。
必填 · 填写:基准0 / 倍率1 / 偏移0
修改后须发布。
保存并发布模型与协议草稿保存后发布,等待本篇快照实际应用。
修改后须发布。

FMQX网页版连接 ​

字段 / 控件填写说明
导入配置在FMQX网页版配置文件菜单导入本篇UTF-8 JSON;凭据由管理员另行提供。
修改后须重连。
协议与运行模式FMQ负责主站读取与命令,FMQX网页版演示从站提供寄存器及RTU协议响应。
必填 · 填写:Modbus RTU / MQTT / 从站模拟器
修改后须重连。Modbus RTU / MQTT / 从站模拟器:FMQ负责主站读取与命令,FMQX网页版演示从站提供寄存器及RTU协议响应;FMQ负责主站读取与命令,FMQX网页版演示从站提供寄存器及RTU协议响应。
连接主机本地回归连接当前FMQ;实物需要填写设备侧可达的FMQ地址。
必填 · 填写:127.0.0.1
修改后须重连。
连接端口取实际FMQ监听端口;更改后重新连接。
必填 · 填写:1883
修改后须重连。
校验RTU CRCRTU帧末两字节为CRC低字节在前;保持开启。
必填 · 填写:开启
修改后须重连。
自动重连本篇关闭,停止与恢复均由操作员明确执行。
必填 · 填写:关闭
修改后须重连。
连接确认本篇会话已连接;仅连接成功不能代替实际采集与写后读回。
修改后须重连。
MQTT Client ID使用本设备连接信息的完整身份;S、产品与租户编号不能省略。
必填 · 填写:S&FastBee_RtuMQTT_Tutorial_01&883&1
修改后须重连。
请求TopicFMQX订阅该地址接收FMQ主站读取或写入的RTU帧。
必填 · 填写:/883/FastBee_RtuMQTT_Tutorial_01/function/get
修改后须重连。
响应TopicFMQX将从站RTU响应发布到该地址。
必填 · 填写:/883/FastBee_RtuMQTT_Tutorial_01/property/post
修改后须重连。
MQTT版本与TLS本地使用MQTT3.1.1、TLS关闭;现场按已启用的监听及凭据填写。
必填 · 填写:3.1.1 / TLS关闭
修改后须重连。

设备上报与演示回复 ​

字段 / 控件填写说明
同一地址十次连续样本同一零基地址0依次411~420;原点表0~9各自201~210是不同地址初值。
必填 · 填写:地址0:411、412、413、414、415、416、417、418、419、420

设备运行状态 ​

字段 / 控件填写说明
平台当前值按当前阶段核对地址100的独立FC03读回;滑块待发值不作设备执行依据。
必填 · 填写:首次读回42;恢复后读回43
写入设定42在运行状态设置42并点击发送;对应FC06、站1、地址100。
必填 · 填写:42
恢复写入43停止并恢复连接后下发新目标43,独立FC03读回。
必填 · 填写:43
写后独立读取FC06回显后等待下一次FC03读地址100,核对平台与历史。
必填 · 填写:FC03 / 100 / 1

历史数据 ​

字段 / 控件填写说明
设备与字段只查询本篇设备和需要核对的属性。
必填 · 填写:FastBee_RtuMQTT_Tutorial_01 / FastBee_register_0或100
采集时间窗填写覆盖本篇当前采集或写后独立读取的完整日期时间。
必填 · 填写:以本篇本轮真实历史筛选图为准
42时间窗填写覆盖本篇当前采集或写后独立读取的完整日期时间。
必填 · 填写:以本篇本轮真实历史筛选图为准
43时间窗填写覆盖本篇当前采集或写后独立读取的完整日期时间。
必填 · 填写:以本篇本轮真实历史筛选图为准
查询与刷新完整选择设备、字段和时间,等页面加载完成后逐行核对。

停止与恢复 ​

字段 / 控件填写说明
停止与断开停止本篇发送、轮询与连接;资源与历史保留。
取消发布停止轮询结束取消本篇产品发布并等待REMOVE应用;再次验收需要重新发布。

当前运行复验与历史核对 ​

字段 / 控件填写说明
发布与应用状态确认产品身份,发布后等待本轮运行快照APPLIED。
修改后须发布。
完整连接参数只读核对主机、端口、身份、站号、RTU校验与重连设置;本次补图未保存。
必填 · 填写:按实际配置填写
修改后须重连。
MQTT账号与已保存凭据使用本设备正式连接信息;密码保存后不回显,不填入手册。
必填 · 填写:已保存的凭据不会在此显示
修改后须重连。
零基地址与当前值地址0用于连续411~420及恢复421;地址100用于两次写入。
连接当前会话保持本篇原身份连接;已连接后继续真实采集。
断开当前会话由操作员正常停止;定时与自动回复均保持停止。
从站寄存器值在同一零基地址0依次输入411~420;恢复后再设421。
必填 · 填写:411~420;恢复421
地址100设定与发送核对写前值、设置新目标并只发送一次;以FC06原帧确认目标。
真实RTU帧分开查看接收FC06、发送回显和另一FC03响应,核对方向、时间、地址和值。
平台读回当前值当前值应与独立FC03响应一致;不把下发状态当执行。
取消发布停止轮询只停止本篇运行轮询;确认REMOVE/APPLIED,保留业务资源与历史。
本轮完整日期时间使用真实运行时间范围;避免混入首次配置或其他运行。
选填 · 填写:按实际配置填写
设备与字段筛选采集点1对应地址0,写入设定对应地址100;保持本篇设备。
选填 · 填写:按实际配置填写
查询与刷新保留相同设备、字段和完整时间范围重新查询。
实际历史结果核对地址0十次411~420和地址100两次写后读回;恢复421单独核对。

遇到问题时先查哪里 ​

看到什么现象可能原因先检查哪里如何恢复
无法连接地址、端口、设备身份或凭据不一致核对本篇产品已应用状态及平台连接信息保持停止,修正连接参数后先读取已知点。
已连接但读数不符地址基准、站号、数据类型或CRC配置不一致对照正式点表与真实FC03请求和响应停止重复写入,先验证已知地址。
写入后当前值未更新仅下发或回显,尚未取得独立读取分别核对FC06请求、回显和后续独立FC03等待独立轮询,再刷新历史,避免连续重发。
连接信息尚未就绪产品发布或运行同步尚未完成确认产品和快照已应用后重新获取本设备连接信息等待正式凭据就绪,不填空身份或复用其他设备口令。

蜂信物联 | fastbee.cn