Modbus TCP 寄存器终端接入
本文依据已有操作手册整理为线上操作参考。原文标为预期或未执行的操作,仍须按实际环境验证。
读取保持寄存器、远程单寄存器写入、独立读回及历史和恢复。
**开始前准备:**已登录并具备产品、设备、模型、发布、控制及历史查询权限;本地应用、单节点FMQ与FMQX网页版可用,设备地址和正式点表已确认
开始前先了解
首次接入按配置章节操作;已有相同产品和设备时复用保留配置,从上报与收发验证开始。配置图与恢复示例保留原操作时点,当前复验另行核对。
本篇使用一台寄存器终端,完成Modbus TCP直连、读取保持寄存器、平台下发单寄存器写入、独立读回、历史刷新以及暂停后的恢复。适合支持原生Modbus TCP、能够监听TCP端口的设备。
蜂信物联(FastBee)平台负责产品、设备、控制与历史查询;FMQ是设备接入服务;FMQX网页版在本文扮演演示从站。它接收真实Modbus请求并改变内部寄存器,不能据此代替实物动作或现场设备安全验收。
需要已登录的账号,具有产品、设备、物模型编辑、发布、控制与历史查询权限。准备正式点表、设备可达IP与端口、站号及可写地址。新建独立产品演示,避免暂停同型号共享产品影响其他设备。
功能关系示意
配置与收发方向;不是运行截图。
复制模板前先替换这些参数
本篇代码使用普通模板名;截图保留实际历史资源。请先完成以下核对,再保存为UTF-8文件或发送报文。
- register_0等是点表模板标识;平台点表、映射、FMQX物模型中的identifier必须逐项相同。地址、站号与读写属性以现场正式点表为准。
- 连接文件中的host、port及监听方向须改为当前环境实际地址;127.0.0.1表示运行FMQX的本机。涉及MQTT时同步核对产品号、用户名、订阅主题和responseRoute,密码仅在连接页面安全填写。
- 分组、会话及订阅id是导入文件内部引用;如需改名,groupId必须与对应分组id一致。先核对再导入,不要在保留会话上重复创建同名连接。
- 代码块是按既有无密码资产或原代码改写的客户模板,尚未证明本版模板已成功导入。历史截图、发送时间和业务通过范围仍以各步骤记录为准;不要将模板名当作旧证据中的实际资源名。
先核对连接方向与点表
连接方向是FMQ主动连接设备;设备侧监听,本例为127.0.0.1:15020、站号1。设备换到其他电脑后,应填写FMQ能够访问的设备IP;不要把FMQ服务器IP错填成设备监听IP。
FC03表示读取保持寄存器,FC06表示写入单个保持寄存器。地址采用零基:参考号40001对应地址0,40101对应地址100。本篇地址0~9用于采集,地址100用于写入设定。
全部点使用UINT16、数量1、字节序BE、字序BE、倍率1、偏移0、轮询5000毫秒。UINT16范围是0~65535,本文没有单位;接入实物时由厂家点表决定类型、单位与倍率,不能把本文整数随意解释成温度。
本篇完整UTF-8采集点表csv
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保存为CSV后,在接入向导的采集字段中导入;核对11个字段及零基地址。 此处使用可替换的客户模板名;导入或发送前按本节替换清单核对。
一、创建产品与设备
1. 从新建产品开始
**操作位置:*物联网→设备接入→*从哪里开始 操作步骤:选择 新建产品,填写产品名称 FastBee_寄存器终端。已有本篇资源复验时直接进入产品。

新建产品已选中;下方其他未完成记录不属于本篇,不点击继续接入。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 接入来源 | 新型号选新建产品;同型号已有产品可复用,不要重复创建。 必填 · 填写: 新建产品 |
| 产品名称 | 给这类寄存器设备取名。 必填 · 填写: FastBee_寄存器终端 |
2. 选择原生Modbus TCP
**操作位置:*设备接入向导→*产品与协议 操作步骤:在 协议 选择 Modbus TCP,确认传输方式为TCP。
本篇是FMQ主动连接设备的Modbus TCP,不是JSON/TCP或RTU透传。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 协议 | 本篇选择原生Modbus TCP直连。 必填 · 填写: Modbus TCP |
| 传输方式 | 本场景使用TCP连接,随协议确定。 必填 · 填写: TCP |
3. 填写设备监听地址与站号
**操作位置:*设备接入向导→*添加设备 操作步骤:填写本篇设备标识,设备IP地址 为 127.0.0.1,端口15020、从站地址1。

这组地址由设备提供;只有设备和FMQ在同一台电脑时才填127.0.0.1。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设备标识 | 平台设备编号;绑定时选择这一台设备,不是在Modbus报文中额外写编号。 必填 · 填写: FastBee_ModbusTCP_Tutorial_01 |
| 设备名称 | 列表中识别当前终端的业务名称。 必填 · 填写: FastBee_寄存器终端 |
| 设备IP地址 | 填写被FMQ主动连接的设备地址。此例设备与FMQ同机。 必填 · 填写: 127.0.0.1 |
| 端口 | 设备端监听端口,与FMQX配置一致。 必填 · 填写: 15020 |
| 从站地址 | 同一设备连接中的站号,也叫Unit ID。 必填 · 填写: 1 |
4. 核对采集字段与接入概况
**操作位置:*设备接入向导→*接入确认 **操作步骤:**核对接入概况为本篇产品、Modbus TCP、1台设备 和 11个采集字段。

此图为接入概况,11个属性对应点表地址0~9及100;字段数不是十个可区分样本的替代。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 采集字段 | 导入下方UTF-8点表,检查11个字段与零基地址。 必填 · 填写: 地址0~9及100,共11个 |
| 设备标识 | 平台设备编号;绑定时选择这一台设备,不是在Modbus报文中额外写编号。 必填 · 填写: FastBee_ModbusTCP_Tutorial_01 |
| 协议 | 本篇选择原生Modbus TCP直连。 必填 · 填写: Modbus TCP |
二、核对绑定、轮询和映射
5. 核对本设备的站号绑定
**操作位置:*产品管理→寄存器终端→协议设置→*设备绑定 操作步骤:核对绑定设备标识与本篇一致,Unit ID 为 1,保持启用。

截图为当前真实绑定;本篇停止轮询使用取消发布,不以关闭绑定开关作为成功停机路径。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 绑定设备 | 选择本篇设备,避免点表落在另一台同名终端。 必填 · 填写: FastBee_寄存器终端 |
| Unit ID | 绑定站号必须与从站一致。 必填 · 填写: 1 |
| 启用 | 本篇绑定、轮询范围和点位映射保持启用。 必填 · 填写: 开启 |
6. 核对FC03轮询范围
**操作位置:*产品管理→寄存器终端→协议设置→*轮询范围 **操作步骤:**按字段逐项核对保持寄存器、功能码3、零基地址及数量1,轮询间隔 5000 毫秒。

示例行为地址0,随后为数量1、间隔5000、超时3000、重试0、优先级0;其余点按完整点表。当前窄图缺列标题,待补采标题区域。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 寄存器区域 | 本篇全部使用保持寄存器。 必填 · 填写: HOLDING_REGISTER |
| 读取功能码 | FC03表示读取保持寄存器。 必填 · 填写: 3(FC03) |
| 起始地址/零基地址 | 地址0对应参考号40001,地址100对应40101;不要把40001直接填为零基地址。 必填 · 填写: 0~9;写入设定100 |
| 数量 | 每个UINT16占用1个16位寄存器。 必填 · 填写: 1 |
| 轮询间隔 | 每个点约每5秒读取一次,单位毫秒。 必填 · 填写: 5000 |
| 超时 | 本篇等待设备响应最长3000毫秒。 必填 · 填写: 3000 |
| 最大重试 | 本篇配置0,不自动增加重试轮次。 必填 · 填写: 0 |
| 优先级 | 本篇所有读取范围使用相同优先级。 必填 · 填写: 0 |
7. 核对地址100的整数映射
**操作位置:*产品管理→寄存器终端→协议设置→*点位映射 操作步骤:核对写入设定地址 100,类型 UINT16,字节序和字序均为BE,倍率1、偏移0。

实际保存值为UINT16/BE/BE,枚举映射留空;不要沿用旧BIG_ENDIAN填写值。当前行缺列标题,待补采。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 起始地址/零基地址 | 地址0对应参考号40001,地址100对应40101;不要把40001直接填为零基地址。 必填 · 填写: 0~9;写入设定100 |
| 数量 | 每个UINT16占用1个16位寄存器。 必填 · 填写: 1 |
| 寄存器数据类型 | UINT16表示无符号16位整数,0~65535。 必填 · 填写: UINT16 |
| 字节序 | 平台填BE,FMQX导入配置中的BigEndian表达同一方向。 必填 · 填写: BE |
| 字序 | 本篇UINT16只占一个字;保持BE,与点表一致。 必填 · 填写: BE |
| 倍率 | 展示值=原始寄存器值×倍率+偏移,本篇不缩放。 必填 · 填写: 1 |
| 偏移 | 本篇不增加固定偏移。 必填 · 填写: 0 |
| 枚举映射 | 本篇为普通整数,不配置枚举映射。 选填 · 填写: 留空 |
绑定通过平台设备标识关联这台终端,Modbus请求本身使用站号和寄存器地址。各地址不能互相套用;保存后重新发布,接入侧生效后才继续。
三、启动FMQX演示从站
在FMQX网页版导入下方JSON到直连教程分组,选择寄存器终端。已有保存会话复验时直接复用,避免重新导入造成同名会话。此配置自动重连关闭。
FMQX网页版完整从站配置json
{
"schemaVersion": 3,
"groups": [
{
"id": "tutorial_modbus_tcp_group",
"name": "直连教程",
"sortOrder": 52,
"isSystem": false
}
],
"sessions": [
{
"id": "tutorial_modbus_tcp_01",
"groupId": "tutorial_modbus_tcp_group",
"name": "寄存器终端",
"protocol": "ModbusTCP",
"transport": "TCP",
"host": "127.0.0.1",
"port": 15020,
"unitId": 1,
"autoReconnect": false,
"modbusThingModels": [
{
"modelName": "采集点1",
"identifier": "register_0",
"type": 1,
"dataType": "Integer",
"isReadonly": true,
"initialValue": 101,
"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": 102,
"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": 103,
"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": 104,
"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": 105,
"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": 106,
"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": 107,
"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": 108,
"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": 109,
"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": 110,
"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
}
}
]
}
]
}另存为UTF-8 JSON后导入;此例为演示从站,监听地址与平台设备地址必须对应。 此处使用可替换的客户模板名;导入或发送前按本节替换清单核对。
8. 在FMQX启动演示从站
**操作位置:*FMQX网页版→直连教程→*寄存器终端 **操作步骤:**导入下方配置,点击 连接 启动从站监听,确认 已连接。

FMQX演示从站监听127.0.0.1:15020、站号1;FMQ从外部主动连接。顶部提示遮住部分右侧按钮,待补采无遮挡区域。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 导入配置 | 把下方UTF-8 JSON导入FMQX网页版,保存到直连教程分组。 必填 · 填写: Modbus TCP从站,11个属性 |
| 连接/断开 | FMQX在此场景扮演从站设备,连接按钮启动监听,FMQ主动来连接。 必填 · 填写: 127.0.0.1:15020;Unit ID 1 |
四、读取十个可区分样本
下列201至210是原完整十样本操作图;最近一次独立复验使用91至100,设备与历史保留。复验需选新时间窗,不能把寄存器点数当成样本次数。
9. 给地址0写入第一个演示样本
**操作位置:*FMQX网页版→物模型参数→*地址0 **操作步骤:**编辑地址0的当前值为 201,点击输入框旁的 勾号,等待至少一个5秒轮询周期。

这是在FMQX演示设备内部修改寄存器,随后由FMQ读取;不是从平台直接改实时值。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 当前值编辑 | 在地址0一行编辑设备内寄存器值,点击勾号保存,等待FMQ轮询。 必填 · 填写: 依次201~210 |
| 起始地址/零基地址 | 地址0对应参考号40001,地址100对应40101;不要把40001直接填为零基地址。 必填 · 填写: 0~9;写入设定100 |
| 轮询间隔 | 每个点约每5秒读取一次,单位毫秒。 必填 · 填写: 5000 |
10. 依次产生十个不同样本
**操作位置:*FMQX网页版→*物模型参数 **操作步骤:**按同样方法依次保存 202~210;每次等待平台读到上一值再继续。

地址0最终为210;其余采集点保持102~110。十样本来自同一地址逐次变化,不是把十个字段算作十条数据。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 当前值编辑 | 在地址0一行编辑设备内寄存器值,点击勾号保存,等待FMQ轮询。 必填 · 填写: 依次201~210 |
| 轮询间隔 | 每个点约每5秒读取一次,单位毫秒。 必填 · 填写: 5000 |
| 地址0采样当前值 | 核对地址0每次保存后的实际值;本步完成后应为210。 必填 · 填写: 202~210,最终210 · 示例:地址0最终210 |
依次把地址0改为201~210,每次保存后等待至少一个轮询周期并核对平台当前值;速度过快时中间值可能还未被读取就被下一值覆盖。地址1~9保持102~110。
同一个值被后续轮询再次读到是正常现象。检查一次处理应使用每次读取的独立记录,不要把相同数值的不同轮询误判为重复。最后通过历史页核对十个值,不用字段数量代替样本数量。
五、配置可写属性并发布
11. 撤回发布以编辑写入属性
**操作位置:*产品管理→寄存器终端→*取消发布 操作步骤:确认当前是本篇独立产品,点击 取消发布 并在提示中选择 确定。

提示会影响该产品设备及重新发布后的对应缓存数据;历史存储记录不在本篇删除范围内。共享产品操作前应先安排影响窗口。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 取消发布 | 停止本产品运行配置,或允许修改物模型;会影响本产品全部设备。 必填 · 填写: 本篇独立产品 |
12. 把地址100配置为可写并核对保存
**操作位置:*产品管理→寄存器终端→功能定义→*写入设定 操作步骤:填写模型翻译 RegisterSetpoint,取消 只读数据,开启历史存储,完成表单后保存。

模型翻译非空才会提交;写入设定只读关闭、历史开启,整数范围0~65535、步长1、单位空,保存后重新打开核对。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 模型翻译 | 必填英文名称,留空会阻止保存。 必填 · 填写: RegisterSetpoint |
| 模型标识 | 写入设定须与地址100的点位映射使用相同标识。 必填 · 填写: FastBee_register_100 |
| 模型类别 | 寄存器当前值是属性。 必填 · 填写: 属性 |
| 只读数据 | 采集点0~9只读;写入设定取消只读。 必填 · 填写: 写入设定不勾选 |
| 历史存储 | 开启后把后续采集到的实际值写入历史。 必填 · 填写: 勾选 |
| 图表展示/实时监测 | 写入设定在本篇均不勾选,保留运行状态控制入口。 必填 · 填写: 均不勾选 |
| 分享权限 | 本篇不开放分享,按所在租户权限使用。 必填 · 填写: 不勾选 |
| 整数范围与步长 | UINT16设定范围0~65535,步长1,单位留空。 必填 · 填写: 0~65535;步长1 |
13. 发布已保存的点表与物模型
**操作位置:*产品管理→寄存器终端→*发布产品 **操作步骤:**核对参数后点击 发布产品,在确认框选择 确定。

保存和发布是两个动作;本图只表示确认发布,下一步继续核对接入侧生效结果。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 发布产品 | 保存配置后重新发布;仅保存不表示已经生效。 必填 · 填写: 确认发布 |
14. 确认接入配置实际生效
**操作位置:*产品管理→寄存器终端→*接入配置同步 **操作步骤:**展开同步结果,确认目标节点 APPLIED 且失败原因为空。

本次完整发布已经在接入节点应用;仍需继续做设备读取、下行和历史验证。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 接入配置同步结果 | APPLIED表示目标接入节点已应用本次配置。 必填 · 填写: APPLIED |
写入设定的模型翻译填RegisterSetpoint,标识对应地址100。只读关闭、历史开启,图表展示和实时监测在本例均关闭;这些展示选项会联动只读,保存后重新打开核对。整数范围0~65535、步长1、单位留空。
模型翻译留空时前端会阻止保存,看见弹窗关闭或点过按钮不能代替保存成功。完成保存、重新打开核对、发布并确认APPLIED,之后才发送写入。
六、暂停并恢复收发
15. 暂停本轮收发并保留资源
**操作位置:*产品管理/FMQX网页版→*寄存器终端 操作步骤:先取消发布并确认接入侧停止,再在FMQX点击 断开,确认 已断开。

此图对应恢复前的暂停阶段,产品、设备、点表与历史保留;单独关闭绑定的保存没有成功。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 保留与再次验收 | 结束取消发布并断开FMQX;保留产品、设备、点表、会话和历史。 必填 · 填写: 最终取消发布;从站已断开 |
| 取消发布 | 停止本产品运行配置,或允许修改物模型;会影响本产品全部设备。 必填 · 填写: 本篇独立产品 |
| 连接/断开 | FMQX在此场景扮演从站设备,连接按钮启动监听,FMQ主动来连接。 必填 · 填写: 127.0.0.1:15020;Unit ID 1 |
16. 恢复产品发布
**操作位置:*产品管理→寄存器终端→*发布产品 操作步骤:重新点击 发布产品 并确认,待同步结果APPLIED后继续。

恢复发布重新启用这台独立设备的运行配置,不能只看到确认框就认定恢复成功。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 接入配置同步结果 | APPLIED表示目标接入节点已应用本次配置。 必填 · 填写: APPLIED |
| 发布产品 | 保存配置后重新发布;仅保存不表示已经生效。 必填 · 填写: 确认发布 |
17. 恢复FMQX从站监听
**操作位置:*FMQX网页版→直连教程→*寄存器终端 **操作步骤:**选择保留会话点击 连接,确认 已连接,等待FC03重新读取。

恢复同一站号、IP和端口;连接方向仍为FMQ主动连接FMQX从站。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 保留与再次验收 | 结束取消发布并断开FMQX;保留产品、设备、点表、会话和历史。 必填 · 填写: 最终取消发布;从站已断开 |
| 连接/断开 | FMQX在此场景扮演从站设备,连接按钮启动监听,FMQ主动来连接。 必填 · 填写: 127.0.0.1:15020;Unit ID 1 |
本篇暂停通过取消发布独立产品并断开FMQX完成,随后重新发布至APPLIED再恢复监听。同一个端口不可启动两个演示从站。地址和站号保持一致,恢复后继续读取再发送新指令。
当前版本单独关闭本设备绑定再保存被拒绝,不能把它写成已成功暂停的操作。取消发布会影响该产品全部设备,因此此例使用独立产品。
七、写43并确认独立读回
本段图示为原完整写43并独立读回的操作。最近一次按同一路径写45,也已由FC06真实请求、设备回显、后续独立FC03及实际历史核对;两次使用不同时间窗口。
18. 通过运行状态正式写入43
**操作位置:*设备管理→寄存器终端→运行状态→*设备控制 操作步骤:聚焦写入设定滑块,用方向键微调至提示值 43,立即核对后点击 纸飞机。

图中平台当前值仍为42,而滑块待发值为43;发送前以tooltip为准。周期轮询可能覆盖待发值,不要按滑块大致位置猜值。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 写入设定滑块 | 先聚焦滑块,用方向键微调;发送前核对tooltip为43,点击纸飞机发送。 必填 · 填写: 43 |
| 整数范围与步长 | UINT16设定范围0~65535,步长1,单位留空。 必填 · 填写: 0~65535;步长1 |
19. 确认演示设备真实接受写入
**操作位置:*FMQX网页版→物模型参数→*地址100 **操作步骤:**找到零基地址100,确认 当前值43 和新的最后变化时间。

FMQX演示从站地址100在00:56:22变为43,使用FC06单寄存器写入;这一步核对设备侧真实状态。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设备寄存器当前值 | 下行后检查地址100实际值及最后变化时间。 必填 · 填写: 43 |
| 起始地址/零基地址 | 地址0对应参考号40001,地址100对应40101;不要把40001直接填为零基地址。 必填 · 填写: 0~9;写入设定100 |
| Unit ID | 绑定站号必须与从站一致。 必填 · 填写: 1 |
20. 等待独立FC03读回平台
**操作位置:*设备管理→寄存器终端→*运行状态 **操作步骤:**等待后续轮询,再刷新详情,确认 当前值 为 43。

当前43来自后续FC03读取,并非只依据下发提示;实际首个读回发生在00:56:25。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 平台当前值 | 当前值来自后续独立FC03读取;不能用滑块待发值或已派发提示代替。 必填 · 填写: 43 |
| 轮询间隔 | 每个点约每5秒读取一次,单位毫秒。 必填 · 填写: 5000 |
本例正式控制主线是写43:发送前平台当前值42、滑块提示43;FMQX地址100随后变43;接入服务下一轮FC03再读回43,平台当前值随之更新。
不要只看到“已派发”就认定设备执行。依次核对设备实际寄存器、后续独立读回、平台当前值和历史。滑块范围较宽时先聚焦再用方向键微调,发送前再看提示值;轮询刷新可能覆盖尚未发送的滑块值。
八、查询历史并刷新确认
21. 选择设备字段和历史时段
**操作位置:*数据中心→*历史数据 **操作步骤:**选择本篇设备及 写入设定,时间范围覆盖指令前后,再点击 查询。

查看写42过渡时选择00:43:45~00:44:15;查看正式写43选择00:56:15~00:56:40。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 历史设备与字段 | 选择本篇设备和写入设定,避免查询同名其他设备。 必填 · 填写: 本篇设备/写入设定 |
| 历史时间范围 | 按设备输入及指令时间选择;本篇记录发生在2026-10-13。 必填 · 填写: 00:43:45~00:44:15;00:56:15~00:56:40 |
| 查询/刷新 | 刷新后重新选择相同设备、字段和时间范围,再查询。 必填 · 填写: 查询后仍能看到43 |
22. 刷新重查写43后的实际历史
**操作位置:*数据中心→*历史数据 操作步骤:刷新后重新选择相同设备、字段和43时间窗口,点击 查询,核对 42→43。

00:56:20仍为42,00:56:25起为43;刷新重查后记录仍存在。旧写42也有独立读回与历史,正式控制主例使用本节43。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 历史时间范围 | 按设备输入及指令时间选择;本篇记录发生在2026-10-13。 必填 · 填写: 00:43:45~00:44:15;00:56:15~00:56:40 |
| 平台当前值 | 当前值来自后续独立FC03读取;不能用滑块待发值或已派发提示代替。 必填 · 填写: 43 |
| 查询/刷新 | 刷新后重新选择相同设备、字段和时间范围,再查询。 必填 · 填写: 查询后仍能看到43 |
历史选择本篇设备和写入设定:00:56:20仍为42,00:56:25开始为43。刷新页面后重新选择相同字段和时间范围,再查一次,记录应仍存在。
较早写42的独立读回在00:44:00,查询00:43:45~00:44:15可见30转42;这一段是历史过渡,写入准备操作以本篇43流程为准。查看十样本时切换采集点1并选00:17~00:21。
重新验收会增加历史,按新的起止时间核对。实际存储按每次读取记录保存,页面按秒显示;界面行数不能替代逐条消息核对。
九、结束与再次验收
23. 结束收发并保留设备与历史
**操作位置:*产品管理/FMQX网页版→寄存器终端→*统计 操作步骤:先撤回产品发布以停止轮询,再停止FMQX从站监听,确认已断开。

结束收发并保留设备与历史
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 保留与再次验收 | 结束取消发布并断开FMQX;保留产品、设备、点表、会话和历史。 必填 · 填写: 最终取消发布;从站已断开 |
| 取消发布 | 停止本产品运行配置,或允许修改物模型;会影响本产品全部设备。 必填 · 填写: 本篇独立产品 |
| 连接/断开 | FMQX在此场景扮演从站设备,连接按钮启动监听,FMQ主动来连接。 必填 · 填写: 127.0.0.1:15020;Unit ID 1 |
完成后取消发布本篇独立产品,等待接入配置停止生效,再断开FMQX从站。保留产品、设备、物模型、点表、分组会话和全部历史,不删除或清空数据。
本篇结束时产品已取消发布,FMQX已断开。再次验收先恢复发布并确认APPLIED,再连接保存的从站会话,确认FC03重新读取后才写入新值。不要因为页面还保留43就误以为连接仍在运行。
记录新的开始时间,在地址0依次产生至少十个不同值,下发允许范围内的新目标,核对设备寄存器、独立读回、实时和历史,刷新重查,再做一次暂停恢复。结束继续取消发布并断开,保留资源供复验。
字段与参数参考
设备接入向导
| 字段 / 控件 | 填写说明 |
|---|---|
| 接入来源 | 新型号选新建产品;同型号已有产品可复用,不要重复创建。 必填 · 填写: 新建产品已有产品:复用同型号配置添加设备;复用同型号配置添加设备。新建产品:创建本篇独立型号;创建本篇独立型号。复制产品:从同类产品复制后调整;从同类产品复制后调整。使用模板:从已有模板开始;从已有模板开始。 |
| 产品名称 | 给这类寄存器设备取名。 必填 · 填写: FastBee_寄存器终端 |
| 协议 | 本篇选择原生Modbus TCP直连。 必填 · 填写: Modbus TCPModbus TCP:运行服务主动连接设备,并按点表轮询;运行服务主动连接设备,并按点表轮询。 |
| 传输方式 | 本场景使用TCP连接,随协议确定。 必填 · 填写: TCP |
| 设备标识 | 平台设备编号;绑定时选择这一台设备,不是在Modbus报文中额外写编号。 必填 · 填写: FastBee_ModbusTCP_Tutorial_01 |
| 设备名称 | 列表中识别当前终端的业务名称。 必填 · 填写: FastBee_寄存器终端 |
| 设备IP地址 | 填写被FMQ主动连接的设备地址。此例设备与FMQ同机。 必填 · 填写: 127.0.0.1 |
| 端口 | 设备端监听端口,与FMQX配置一致。 必填 · 填写: 15020 |
| 从站地址 | 同一设备连接中的站号,也叫Unit ID。 必填 · 填写: 1 |
| 采集字段 | 导入下方UTF-8点表,检查11个字段与零基地址。 必填 · 填写: 地址0~9及100,共11个 |
Modbus协议设置
| 字段 / 控件 | 填写说明 |
|---|---|
| 绑定设备 | 选择本篇设备,避免点表落在另一台同名终端。 必填 · 填写: FastBee_寄存器终端修改后须发布。本篇寄存器终端:使用设备标识一致的本设备;使用设备标识一致的本设备。 |
| Unit ID | 绑定站号必须与从站一致。 必填 · 填写: 1修改后须发布。 |
| 启用 | 本篇绑定、轮询范围和点位映射保持启用。 必填 · 填写: 开启修改后须发布。开启:参与本设备运行配置;参与本设备运行配置。关闭:本篇单独关闭绑定保存被拒绝;停止流程使用取消发布;本篇单独关闭绑定保存被拒绝;停止流程使用取消发布。 |
| 寄存器区域 | 本篇全部使用保持寄存器。 必填 · 填写: HOLDING_REGISTER修改后须发布。HOLDING_REGISTER:保存16位寄存器,使用FC03读取;保存16位寄存器,使用FC03读取。 |
| 读取功能码 | FC03表示读取保持寄存器。 必填 · 填写: 3(FC03)修改后须发布。 |
| 起始地址/零基地址 | 地址0对应参考号40001,地址100对应40101;不要把40001直接填为零基地址。 必填 · 填写: 0~9;写入设定100修改后须发布。 |
| 数量 | 每个UINT16占用1个16位寄存器。 必填 · 填写: 1修改后须发布。 |
| 轮询间隔 | 每个点约每5秒读取一次,单位毫秒。 必填 · 填写: 5000修改后须发布。 |
| 超时 | 本篇等待设备响应最长3000毫秒。 必填 · 填写: 3000修改后须发布。 |
| 最大重试 | 本篇配置0,不自动增加重试轮次。 必填 · 填写: 0修改后须发布。 |
| 优先级 | 本篇所有读取范围使用相同优先级。 必填 · 填写: 0修改后须发布。 |
| 寄存器数据类型 | UINT16表示无符号16位整数,0~65535。 必填 · 填写: UINT16修改后须发布。UINT16:占用一个寄存器的非负整数;占用一个寄存器的非负整数。 |
| 字节序 | 平台填BE,FMQX导入配置中的BigEndian表达同一方向。 必填 · 填写: BE修改后须发布。BE:高字节在前;高字节在前。LE:低字节在前,只有厂家点表明确要求才选;低字节在前,只有厂家点表明确要求才选。 |
| 字序 | 本篇UINT16只占一个字;保持BE,与点表一致。 必填 · 填写: BE修改后须发布。BE:高字在前;本篇单寄存器保持此项;高字在前;本篇单寄存器保持此项。LE:低字在前,多寄存器数值须按厂家资料选用;低字在前,多寄存器数值须按厂家资料选用。 |
| 倍率 | 展示值=原始寄存器值×倍率+偏移,本篇不缩放。 必填 · 填写: 1修改后须发布。 |
| 偏移 | 本篇不增加固定偏移。 必填 · 填写: 0修改后须发布。 |
| 枚举映射 | 本篇为普通整数,不配置枚举映射。 选填 · 填写: 留空修改后须发布。 |
产品功能定义
| 字段 / 控件 | 填写说明 |
|---|---|
| 模型翻译 | 必填英文名称,留空会阻止保存。 必填 · 填写: RegisterSetpoint修改后须发布。 |
| 模型标识 | 写入设定须与地址100的点位映射使用相同标识。 必填 · 填写: FastBee_register_100修改后须发布。 |
| 模型类别 | 寄存器当前值是属性。 必填 · 填写: 属性修改后须发布。属性:保存设备当前读数或可写设定;保存设备当前读数或可写设定。功能:独立功能调用,本篇不用;独立功能调用,本篇不用。事件:设备主动事件,本篇不用;设备主动事件,本篇不用。 |
| 只读数据 | 采集点0~9只读;写入设定取消只读。 必填 · 填写: 写入设定不勾选修改后须发布。勾选:只展示,不提供本篇写入控制;只展示,不提供本篇写入控制。不勾选:允许按权限发送写入指令;允许按权限发送写入指令。 |
| 历史存储 | 开启后把后续采集到的实际值写入历史。 必填 · 填写: 勾选修改后须发布。勾选:保存后续采集历史;保存后续采集历史。不勾选:不能按本文核对后续历史;不能按本文核对后续历史。 |
| 图表展示/实时监测 | 写入设定在本篇均不勾选,保留运行状态控制入口。 必填 · 填写: 均不勾选修改后须发布。勾选:展示方式会与只读设置联动,需重查只读;展示方式会与只读设置联动,需重查只读。不勾选:本篇写入设定采用的展示方式;本篇写入设定采用的展示方式。 |
| 分享权限 | 本篇不开放分享,按所在租户权限使用。 必填 · 填写: 不勾选修改后须发布。勾选:是否开放分享由租户业务决定;是否开放分享由租户业务决定。不勾选:维持本篇当前权限范围;维持本篇当前权限范围。 |
| 整数范围与步长 | UINT16设定范围0~65535,步长1,单位留空。 必填 · 填写: 0~65535;步长1修改后须发布。 |
发布与生效
| 字段 / 控件 | 填写说明 |
|---|---|
| 取消发布 | 停止本产品运行配置,或允许修改物模型;会影响本产品全部设备。 |
| 发布产品 | 保存配置后重新发布;仅保存不表示已经生效。 |
| 接入配置同步结果 | APPLIED表示目标接入节点已应用本次配置。 必填 · 填写: APPLIED |
FMQX网页版从站
| 字段 / 控件 | 填写说明 |
|---|---|
| 导入配置 | 把下方UTF-8 JSON导入FMQX网页版,保存到直连教程分组。 修改后须重连。 |
| 连接/断开 | FMQX在此场景扮演从站设备,连接按钮启动监听,FMQ主动来连接。 修改后须重连。 |
| 当前值编辑 | 在地址0一行编辑设备内寄存器值,点击勾号保存,等待FMQ轮询。 必填 · 填写: 依次201~210修改后须重连。 |
| 设备寄存器当前值 | 下行后检查地址100实际值及最后变化时间。 必填 · 填写: 43修改后须重连。 |
| 地址0采样当前值 | 核对地址0每次保存后的实际值;本步完成后应为210。 必填 · 填写: 202~210,最终210修改后须重连。 |
设备运行状态
| 字段 / 控件 | 填写说明 |
|---|---|
| 写入设定滑块 | 先聚焦滑块,用方向键微调;发送前核对tooltip为43,点击纸飞机发送。 必填 · 填写: 43 |
| 平台当前值 | 当前值来自后续独立FC03读取;不能用滑块待发值或已派发提示代替。 必填 · 填写: 43 |
平台历史数据
| 字段 / 控件 | 填写说明 |
|---|---|
| 历史设备与字段 | 选择本篇设备和写入设定,避免查询同名其他设备。 必填 · 填写: 本篇设备/写入设定 |
| 历史时间范围 | 按设备输入及指令时间选择;本篇记录发生在2026-10-13。 必填 · 填写: 00:43:45~00:44:15;00:56:15~00:56:40 |
| 查询/刷新 | 刷新后重新选择相同设备、字段和时间范围,再查询。 |
暂停、恢复与保留
| 字段 / 控件 | 填写说明 |
|---|---|
| 保留与再次验收 | 结束取消发布并断开FMQX;保留产品、设备、点表、会话和历史。 必填 · 填写: 最终取消发布;从站已断开 |
遇到问题时先查哪里
| 看到什么现象 | 可能原因 | 先检查哪里 | 如何恢复 |
|---|---|---|---|
| 设备连不上或FC03始终超时 | 连接方向、设备IP端口、监听或站号不符。 | 设备作为从站监听,FMQ主动连接;检查15020、站号1和本机地址的适用范围。 | 修正并保存发布,确认APPLIED和从站监听后先读一个点。 |
| 值偏移一位或读到别的寄存器 | 把参考号40001当作零基地址,或绑定错设备。 | 参考号40001→0,40101→100;核对设备标识与Unit ID。 | 停止写入,按厂家点表修正地址并重新发布。 |
| 数值反常、倍率或单位不对 | 类型、字节序、字序、倍率或偏移与设备点表不符。 | 本例UINT16、BE/BE、倍率1、偏移0、无单位;平台字节序保存值用BE。 | 按正式点表修正;先读取已知值,再开放写入。 |
| 改了只读或范围却没有保存 | 模型翻译等必填项为空,或保存后未发布。 | 写入设定翻译非空、只读关闭、历史开启;重新打开表单核对保存值。 | 补齐RegisterSetpoint等字段,保存、发布并确认APPLIED。 |
| 滑块想发43却发了旧值 | 宽范围拖动不精确,或轮询覆盖了待发值。 | 区分平台当前值和滑块tooltip;发送前再次核对43。 | 聚焦滑块用方向键微调,确认后立即发送,勿连续点击纸飞机。 |
| 已派发或响应回显正确,但不确定设备执行 | 派发提示和FC06回显不足以证明设备最终状态。 | 看FMQX地址100实际值,再等待独立FC03读回,核对实时和历史。 | 未读回时停止重复下发,保留时间和现有状态后检查设备应答。 |
| 命令生成器或旧原始发送提示迁移 | 当前两个旧调试入口不可用,返回不支持。 | 本篇使用设备运行状态中的正式服务滑块控制,不依赖旧生成器或原始发送。 | 回到运行状态控制区,按43流程下发并独立读回。 |
| 关闭唯一设备绑定后保存失败 | 本篇该保存路径被配置校验拒绝。 | 不要将绑定关闭当作已生效;查看接入同步实际结果。 | 本独立产品使用取消发布并断开从站;恢复时重新发布与连接。 |
| 十个值只看到几个 | 改值快于5秒轮询,后值覆盖了还未读取的前值。 | 每个值保存后等平台读到,再改下一值;历史选采集点1。 | 用新的可区分数值逐个重测,保留原历史。 |
| 实时有43但历史或刷新后查不到 | 历史开关、设备、字段、日期或查询窗口不对。 | 写入设定历史开启,日期2026-10-13,时间覆盖00:56:25及其后。 | 修正条件再查询;新启用历史只保证后续采集,不自动补旧记录。 |
| 结束后仍看到旧值,以为轮询未停 | 平台保留最后当前值和历史,展示旧值不表示正在收发。 | 核对取消发布同步结果、FMQX断开状态和更新时间是否继续变化。 | 确需恢复时重新发布至APPLIED再连接;不删除历史来清理页面。 |

