Modbus/TCP(标准协议)寄存器映射(新边缘节点)
本文件定义“新跨平台边缘节点”的 标准 Modbus/TCP(MBAP Header)对外寄存器映射。外部系统(PLC/DCS/上位机)只需按地址读写,不依赖旧版的 12 字节自定义帧。
1. 协议与连接
- 传输:Modbus/TCP(标准 MBAP Header)
- 默认端口:
1502(推荐,Linux 下无需特权端口) - 可选端口:
502(如现场强制要求,需要以 root/能力授权方式绑定)
多仪器约定:
- 使用 MBAP Header 的
Unit Identifier(1 字节)区分仪器实例 - 单仪器场景可固定
UnitId=1
通道分段约定:
base = channelIndex * 10000- 通道 0/1/2/3 分别使用
base=0/10000/20000/30000
2. 数据类型与字节序
uint16:一个 Holding Registerascii2:每个 Holding Register 承载 2 个 ASCII 字符(高字节=第 1 个字符,低字节=第 2 个字符)float32:使用 2 个 Holding Register(高字在前),每个寄存器内部高字节在前
3. Coils(01/05/15)
说明:
- 读:Function 01
- 写:Function 05/15(写入后由边缘节点映射为对仪器主站协议的下行命令)
状态位(读):
10000:控温状态10001:分析/采集中状态10002:通道 0 采集态10003:通道 1 采集态10004:通道 2 采集态10005:通道 3 采集态10006:点火状态 110007:点火状态 210008:事件状态 bit1
控制位(写):
10000:控温 开/关(映射主站命令 16/17)10001:全部样品分析 开/关(映射主站命令 18/19)10002..10005:通道 0..3 分析 开/关(映射主站命令 22/23)10006/10007:点火动作(映射主站命令 20)
4. Holding Registers(03/06/16)
4.1 StationId(全局,强约束)
设备标识(24 位 ASCII):
- 地址:
801~812(共 12 个寄存器) - 内容:24 字节 ASCII(每寄存器 2 字节)
- 默认值与规范:见 docs/DEVICE_ID_STATIONID.md
4.2 通道快照(按 base 分段)
以下寄存器地址均指 base + offset:
元信息:
0..7:设备/通道描述(16 字节 ASCII,ascii2*8)8..15:状态文本(16 字节 ASCII,ascii2*8)16..21:采集时间yyMMddHHmmss(12 字节 ASCII,ascii2*6)22:检测器标识detMark(uint16)24:进样次数injNo(uint16)25:峰数peakCount(uint16)26..27:炉温/加热值 1(float32)28..29:炉温/加热值 2(float32)
峰表(建议):
- 起始:
1000 - 每峰宽度:
40寄存器 - 最大峰数:
20(不足则后续峰记录全 0/空)
第 i 个峰(i = 0..19)基址:p = 1000 + i*40
p + 0..15:组分名(32 字节 ASCII)p + 16..17:RT(float32,单位秒或分钟需在项目中统一)p + 18..19:峰高(float32)p + 20..21:面积(float32)p + 22..23:面积百分比(float32,0~100)p + 24..25:峰高百分比(float32,0~100)p + 26..27:含量(float32)p + 28..29:含量百分比(float32,0~100)
预留:
p + 30..39:预留扩展(后续加“状态/报警/定量单位/置信度”等)
