示例54:Modbus 传感器设备配置
只读仪表模板
当前源码提供此入口;是否已部署及实物兼容性需按目标设备核验。支持内置 Eastron SDM120-Modbus 电压模板,或读取最多16KiB的v1 JSON模板文件。先在外设页核对实际UART波特率/校验/停止位,在Modbus页选择该UART和JSON传输模式,再填写现场从站地址;模板不会替换串口配置,也不猜测地址。
在“导入只读仪表模板”中预览并核对确切型号、资料版本、读功能码、零基地址、字序、倍率和单位。确认只追加本地禁用任务;仍须单独保存、检查并明确启用。预览后配置或文件变化要求重新确认;不导入写命令、继电器、电机或其他控制设备,字段冲突和超出8个任务也会被拒绝。来源URL仅显示,不会被访问。hardwareVerified:false 表示没有实物验收,不可改为true冒充验证。
以下可保存为UTF-8 JSON并在此入口选择“导入模板文件”。它不是整机protocol.json。型号与来源信息用于预览,当前固件任务结构只持久化名称/读取参数/映射;请保留原JSON和手册作为配置依据。
{
"type": "fastbee-modbus-instrument",
"version": 1,
"templateId": "eastron-sdm120-voltage-v1",
"model": "Eastron SDM120-Modbus",
"revision": "Modbus implementation V2.4",
"source": "https://www.eastroneurope.com/images/uploads/products/protocol/SDM120-MODBUS_Protocol.pdf",
"sourcePages": "1,3,5",
"hardwareVerified": false,
"name": "SDM120 volts",
"read": {
"functionCode": 4,
"startAddress": 0,
"quantity": 2,
"mappings": [{"regOffset": 0, "dataType": 4, "wordOrder": 0, "scaleFactor": 1, "decimalPlaces": 1, "sensorId": "voltage", "unit": "V"}]
}
}资料依据为 Eastron 官方 SDM120-Modbus Protocol Implementation V2.4:第1页说明IEEE754两寄存器格式;第3页给出FC04起始0、数量2和高字在前的43 66 33 34约230.2示例;第5页登记电压单位Volts。资料核对不等于实际仪表兼容或测量校准,不应套用到型号/版本不明的同名产品。本例不提供带电测量接线方案。
v1只接受FC03/04、1~32个寄存器、1~8个映射,根/read/映射层不接受未知字段。字段名须为唯一ASCII标识符(字母或下划线开头,后接字母/数字/下划线,最多15字节);单位最多7个UTF-8字节,小数位0~6。32位类型的wordOrder 0为高字在前、1为低字在前;16位类型只能为0,不支持寄存器内字节交换。模板导入要求显式填写映射全部字段;既有任务缺少字序时仍按0解释。
后续须分别确认软件门禁、真实总线读数与校准、平台收件和独立用户操作,不能以预览成功当作NC03验收通过。
总线接入与采样
先在外设配置创建UART(type1),配置实际TX/RX、波特率、校验位和停止位。通过3.3V兼容RS485收发器接现场A/B,按实际收发器选择DE/RE;A/B不能直连GPIO。再在通信协议选择Modbus RTU主站、该UART及JSON传输。配置前开启开发模式,参数需对照设备手册;示例保持禁用。
通用任务结构见温湿度任务示例。不同仪表的每个mapping.sensorId单独形成工程量,不拼接成temperature:25,humidity:60的字符串。条件联动使用实际映射的数据源,核对质量和单位。最多8个采集任务与每任务映射限制不能等同RS485电气节点上限;地址数量、线缆长度、终端电阻和隔离按总线设计核验。
模板只生成禁用草稿,预览不轮询;保存与启用分别执行。采样值和平台收件需在实际设备测试,不把内置模板资料核对当成仪表实物通过。

