Skip to content

Modbus TCP-over-RTU 网络透传接入 ​

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

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

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

开始前先了解 ​

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

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

本篇平台数据格式为Modbus TCP over RTU;当前真实设备会话使用Modbus RTU/TCP,在线帧含RTU CRC,没有原生Modbus TCP的MBAP头。

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

本篇代码使用普通模板名;截图保留实际历史资源。请先完成以下核对,再保存为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. 首次配置:导入本篇寄存器点表 ​

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

导入本篇寄存器点表

0至9为采集点,100为写入设定。

截图重点说明 ​

字段 / 控件说明
起始地址与数量使用0基地址;0至9以及100各一条,数量均为1。
必填 · 填写:0~9、100;数量1
采集点表导入11个整数点;0~9是十个采集地址,100是写入地址。本轮连续十次在地址0完成。
必填 · 填写:11个字段

2. 首次配置:选择TCP承载和数据格式 ​

操作位置:产品管理→本产品→基本信息 操作步骤:****接入协议选TCP,数据格式选Modbus TCP over RTU,保存修改。 本步保留首次配置记录;本轮复用已保存资源。

选择TCP承载和数据格式

本篇最终产品为TCP与Modbus TCP over RTU。

截图重点说明 ​

字段 / 控件说明
接入协议本篇设备主动连接FMQ,保持TCP长连接。
必填 · 填写:TCP
数据格式在产品基本信息选择本篇已验证的数据格式。
必填 · 填写:Modbus TCP over RTU

3. 首次配置:开启采集点的显示和历史 ​

操作位置:产品→功能定义→修改物模型 操作步骤:采集点开启图表显示、实时监测、只读数据和历史存储。 本步保留首次配置记录;本轮复用已保存资源。

开启采集点的显示和历史

采集点只读且保留历史。

截图重点说明 ​

字段 / 控件说明
只读数据采集点0至9开启;地址100关闭,才能从平台写入。
必填 · 填写:采集点开启;写入设定关闭
历史存储11个属性均开启;写入后的历史以独立读取为准。
必填 · 填写:开启

4. 首次配置:允许写入设定并存储历史 ​

*操作位置:产品→功能定义→修改物模型 操作步骤:写入设定关闭只读数据,**开启***历史存储。 本步保留首次配置记录;本轮复用已保存资源。

允许写入设定并存储历史

地址100是可写整数属性。

截图重点说明 ​

字段 / 控件说明
只读数据采集点0至9开启;地址100关闭,才能从平台写入。
必填 · 填写:采集点开启;写入设定关闭
历史存储11个属性均开启;写入后的历史以独立读取为准。
必填 · 填写:开启
整数范围本篇采用一个16位无符号整数,无工程单位。
必填 · 填写:0~65535;步长1;单位留空

5. 首次配置:绑定本设备和从站地址 ​

**操作位置:*产品→Modbus 运行草稿→*设备绑定 操作步骤:选择本设备编号,Unit ID填1并启用。 本步保留首次配置记录;本轮复用已保存资源。

绑定本设备和从站地址

这条绑定使用已建立会话收发RTU帧。

截图重点说明 ​

字段 / 控件说明
设备 Client ID选择本产品的封装寄存器设备;与FMQX注册身份一致。
必填 · 填写:本设备编号
Unit IDRTU帧第一个字节的从站地址;平台和设备必须相同。
必填 · 填写:1

6. 首次配置:保存独立读取范围 ​

**操作位置:*产品→Modbus 运行草稿→*轮询范围 **操作步骤:**配置0至9和100共11条FC03范围,数量1,间隔5000毫秒。 本步保留首次配置记录;本轮复用已保存资源。

保存独立读取范围

每个点按正常5秒周期读取。

截图重点说明 ​

字段 / 控件说明
起始地址与数量使用0基地址;0至9以及100各一条,数量均为1。
必填 · 填写:0~9、100;数量1
读取功能码保持寄存器使用FC03;FC06回显不能代替独立读取。
必填 · 填写:3
间隔、超时与重试每条范围每5秒读取;3秒超时,重试0,优先级0。
必填 · 填写:5000 / 3000 ms;0 / 0

7. 首次配置:核对地址、类型与倍率 ​

**操作位置:*产品→Modbus 运行草稿→*点位映射 **操作步骤:**每条范围映射对应物模型,检查UINT16、BE/BE、倍率1和偏移0。 本步保留首次配置记录;本轮复用已保存资源。

核对地址、类型与倍率

地址和物模型逐点对应,不把40001直接填入零基地址。

截图重点说明 ​

字段 / 控件说明
线缆类型、字节序和字序本篇单寄存器UINT16,高字节和高字在前。
必填 · 填写:UINT16 / BE / BE
倍率与偏移实际值=原始值×倍率+偏移;本篇保持原值。
必填 · 填写:倍率1;偏移0

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

text
{

  "schemaVersion": 3,

  "groups": [

    {

      "id": "tutorial_demo-device",

      "name": "封装教程",

      "sortOrder": 62,

      "isSystem": false

    }

  ],

  "sessions": [

    {

      "id": "import_demo-device",

      "groupId": "tutorial_demo-device",

      "name": "封装寄存器",

      "protocol": "ModbusRTU",

      "transport": "TCP",

      "host": "127.0.0.1",

      "port": 8888,

      "unitId": 1,

      "clientId": "demo-device",

      "tcpPassiveRegistration": true,

      "autoReconnect": false,

      "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会话

导入本篇独立分组和会话。

截图重点说明 ​

字段 / 控件说明
导入配置在FMQX网页版配置文件菜单导入本篇会话配置。
必填 · 填写:连接配置.json

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

9. 确认发布本篇产品 ​

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

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

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

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

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

本篇节点已应用当前配置

本篇节点已应用当前配置

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

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

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

核对本篇连接方向、目标地址、端口与站号

核对本篇连接方向、目标地址、端口与站号

截图重点说明 ​

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

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

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

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

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

13. 连接本篇从站会话 ​

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

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

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

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

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

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

同一地址0的新采样值411

同一地址0的新采样值411

截图重点说明 ​

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

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

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

同一地址0的新采样值420

同一地址0的新采样值420

截图重点说明 ​

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

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

16. 首次下发地址100的设定45 ​

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

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

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

截图重点说明 ​

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

17. 确认从站收到写45请求 ​

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

FC06写入45:设备接收请求

FC06写入45:设备接收请求

18. 确认从站回显写45 ​

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

FC06写入45:设备回显

FC06写入45:设备回显

19. 查看从站地址100当前45 ​

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

设备寄存器100真实值45

设备寄存器100真实值45

20. 核对另一次FC03响应45 ​

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

独立FC03读回设定45

独立FC03读回设定45

21. 查看平台读回当前值45 ​

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

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

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

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

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

22. 正常停止本篇连接 ​

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

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

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

23. 恢复同一会话连接 ​

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

正常恢复连接后,保留当前会话、协议承载、流量、地址0当前420与变化时间。

正常恢复连接后,保留当前会话、协议承载、流量、地址0当前420与变化时间。

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

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

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

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

截图重点说明 ​

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

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

25. 恢复后下发地址100的设定55 ​

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

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

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

截图重点说明 ​

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

26. 确认从站收到写55请求 ​

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

FC06写入55:设备接收请求

FC06写入55:设备接收请求

27. 确认从站回显写55 ​

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

FC06写入55:设备回显

FC06写入55:设备回显

28. 查看从站地址100当前55 ​

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

设备寄存器100真实值55

设备寄存器100真实值55

29. 核对另一次FC03响应55 ​

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

独立FC03读回设定55

独立FC03读回设定55

30. 查看平台读回当前值55 ​

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

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

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

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

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

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

最终正常断开,保留当前会话、协议承载、流量、地址0当前421与变化时间。

最终正常断开,保留当前会话、协议承载、流量、地址0当前421与变化时间。

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

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

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

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

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

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

本篇节点已应用当前配置

本篇节点已应用当前配置

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

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

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

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

完整日期与起止时间:2026-10-16 00:09:25至2026-10-16 00:10:13

完整日期与起止时间:2026-10-16 00:09:25至2026-10-16 00:10:13

截图重点说明 ​

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

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

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

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

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

截图重点说明 ​

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

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

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

刷新并重新查询本篇历史

刷新并重新查询本篇历史

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

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

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

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

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

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

完整日期与起止时间:2026-10-16 00:10:19至2026-10-16 00:10:47

完整日期与起止时间:2026-10-16 00:10:19至2026-10-16 00:10:47

截图重点说明 ​

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

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

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

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

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

截图重点说明 ​

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

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

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

刷新并重新查询本篇历史

刷新并重新查询本篇历史

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

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

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

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

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

设备接入向导 ​

字段 / 控件填写说明
采集点表导入11个整数点;0~9为十个采集地址,100用于写入。本轮连续十次样本始终使用地址0。

协议与发布生效 ​

字段 / 控件填写说明
接入协议本篇设备主动连接FMQ,保持TCP长连接。
必填 · 填写:TCP
修改后须发布。TCP:本篇设备主动连接FMQ,保持TCP长连接;本篇设备主动连接FMQ,保持TCP长连接。
数据格式在产品基本信息选择本篇已验证的数据格式。
必填 · 填写:Modbus TCP over RTU
修改后须发布。Modbus TCP over RTU:在产品基本信息选择本篇已验证的数据格式;在产品基本信息选择本篇已验证的数据格式。
设备 Client ID选择本产品的封装寄存器设备;与FMQX注册身份一致。
必填 · 填写:本设备编号
修改后须发布。
Unit IDRTU帧第一个字节的从站地址;平台和设备必须相同。
必填 · 填写:1
修改后须发布。
起始地址与数量使用0基地址;0至9以及100各一条,数量均为1。
必填 · 填写:0~9、100;数量1
修改后须发布。
读取功能码保持寄存器使用FC03;FC06回显不能代替独立读取。
必填 · 填写:3
修改后须发布。
间隔、超时与重试每条范围每5秒读取;3秒超时,重试0,优先级0。
必填 · 填写:5000 / 3000 ms;0 / 0
修改后须发布。
线缆类型、字节序和字序本篇单寄存器UINT16,高字节和高字在前。
必填 · 填写:UINT16 / BE / BE
修改后须发布。
倍率与偏移实际值=原始值×倍率+偏移;本篇保持原值。
必填 · 填写:倍率1;偏移0
修改后须发布。
发布与同步详情保存草稿后发布,查看目标节点结果APPLIED,再连接设备。
修改后须发布。

功能定义 ​

字段 / 控件填写说明
只读数据采集点0至9开启;地址100关闭,才能从平台写入。
必填 · 填写:采集点开启;写入设定关闭
修改后须发布。
历史存储11个属性均开启;写入后的历史以独立读取为准。
必填 · 填写:开启
修改后须发布。
整数范围本篇采用一个16位无符号整数,无工程单位。
必填 · 填写:0~65535;步长1;单位留空
修改后须发布。

FMQX网页版连接 ​

字段 / 控件填写说明
导入配置在FMQX网页版配置文件菜单导入本篇会话配置。
修改后须重连。
Host / IP本篇填写FMQ监听主机;这个方向由从站主动连接平台。
必填 · 填写:127.0.0.1
修改后须重连。
Port填写管理员提供的实际FMQ TCP监听端口。
必填 · 填写:8888
修改后须重连。
协议与角色FMQ负责主站读取与命令,FMQX网页版演示从站提供寄存器及RTU协议响应。
必填 · 填写:Modbus RTU / TCP / 从站模拟器
修改后须重连。Modbus RTU / TCP / 从站模拟器:FMQ负责主站读取与命令,FMQX网页版演示从站提供寄存器及RTU协议响应;FMQ负责主站读取与命令,FMQX网页版演示从站提供寄存器及RTU协议响应。
CRC与接收间隔校验RTU CRC,保持长连接;自动重连关闭。
必填 · 填写:CRC开启;20 ms;保持长连接
修改后须重连。
连接配置已应用后连接本篇会话,确认已连接。
修改后须重连。

设备上报与演示回复 ​

字段 / 控件填写说明
初始寄存器地址0~9初值201~210;本轮地址0连续411~420并恢复421,地址100只用于两次写入。
必填 · 填写:原始0:201,…,9:210;本轮0:411~420
同一地址十次连续样本同一零基地址0依次411~420;原点表0~9各自201~210是不同地址初值。
必填 · 填写:地址0:411、412、413、414、415、416、417、418、419、420

设备运行状态 ​

字段 / 控件填写说明
恢复后的目标值写前当前45,将目标设55后发送一次;原待发图未显示目标数字,以FC06原帧核对真实55。
必填 · 填写:写前45;本次目标55
真实写入及回显核对站1、地址100、值55的FC06请求和回显。
必填 · 填写:FC06 / 1 / 100 / 55
独立读回在FC06回显之后核对另一次FC03对地址100的读取响应;期望值按当前步骤区分,不能把FC06回显当作独立读回。
必填 · 填写:连续阶段读45;恢复阶段读55
平台当前值按当前阶段核对地址100的独立FC03读回;滑块待发值不作设备执行依据。
必填 · 填写:首次读回45;恢复后读回55

历史数据 ​

字段 / 控件填写说明
设备与字段历史数据只选择本篇封装寄存器和写入设定。
必填 · 填写:封装寄存器 / 写入设定
时间范围填写覆盖本篇当前采集或写后独立读取的完整日期时间。
必填 · 填写:以本篇本轮真实历史筛选图为准
刷新后重新查询保持同一设备、字段与完整时间范围,点击结果区刷新并核对实际行。

停止与恢复 ​

字段 / 控件填写说明
停止与恢复先取消本篇产品发布停止轮询,断开会话;恢复先发布应用再连接。
保留数据结束停止发送、轮询及连接;保留产品、设备、模型、会话和历史。

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

字段 / 控件填写说明
发布与应用状态确认产品身份,发布后等待本轮运行快照APPLIED。
修改后须发布。
完整连接参数只读核对主机、端口、身份、站号、RTU校验与重连设置;本次补图未保存。
必填 · 填写:按实际配置填写
修改后须重连。
零基地址与当前值地址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