XC-227+ 消毒柜温度控制器 接入说明(22111)
1. 传感器简介
| 项目 | 内容 |
|---|---|
| 设备名称 | XC-227+ 消毒柜温度控制器 |
| 厂商 | 徐州睿德电器有限公司(Ringder) |
| 型号 | XC-227+ |
| 协议类型 | Modbus-RTU(RS-485,9600/8N1) |
| 业务代码 | 22111 |
| 接入方式 | EdgeBus KC11 市电版 DTU |
| 模板名称 | XC227-22111 |
XC-227+ 是用于高温消毒柜的温度控制器,内置加热与风机双继电器,支持柜温采集、远程开关机/启停、温控参数(停机温度/上下限/回差/校正)远程读写,并在探头故障时返回特征值 0x5050。
2. 产品特点
- 标准 Modbus-RTU 协议,RS-485 接口,9600bps,接入门思 KC11 DTU 即可上云。
- 加热继电器 + 风机继电器双路控制,加热/风机状态可读。
- 完整温控参数:St 停机温度、F01 温度上限、F02 温度下限、F03 控温回差、F04 温度校正,可远程读写。
- 探头自检:探头故障/禁用时读数返回 0x5050,便于上层判定置空。
- 开关机与启动/停止独立控制位,控制值采用 0xFF00/0x0000。
3. 适用范围
- 餐饮后厨/食堂消毒柜温度达标监管。
- 医疗、实验室器械高温消毒过程留痕与告警。
- 连锁门店消毒柜集中管控、远程开关机与参数下发。
4. 采集器信息
4.1 硬件信息
| 项目 | 内容 |
|---|---|
| DTU 型号 | KC11(市电版,DIN 导轨) |
| 接口类型 | RS-485 |
| 供电方式 | AC 85–270V |
| LoRaWAN Class | Class C(常在线) |
4.2 接线信息
| 控制器引脚 | 信号 | 接 KC11 |
|---|---|---|
| 485A | RS-485 A | KC11 485A |
| 485B | RS-485 B | KC11 485B |
KC11 由 AC L/N 市电供电(85–270V);通讯总线末端需要时短接 120Ω 匹配电阻到 485A。
5. 数据采集
本方案通过 Modbus-RTU 分功能码轮询读取以下数据点:
- FC04 读传感器数据:柜温探头温度(0x0000)
- FC01 读状态信息:加热继电器/风机继电器/开关机/加热/风机状态(0x0000–0x0004)
- FC02 读报警信息:柜温探头故障(0x0000)
5.1 寄存器定义
传感器数据(FC04,有符号整数)
| 地址 | 项目 | 数据类型 | 系数 | 说明 |
|---|---|---|---|---|
| 0x0000 | 柜温探头温度 | int16BE | ÷10 | 探头故障/禁用=0x5050 |
系统参数(FC03 读 / FC06·FC10 写,有符号整数 °C,原值不缩放)
| 地址 | 参数 | 范围 | 默认 | 步长 |
|---|---|---|---|---|
| 0x0000 | St 停机温度 | F02~F01 | 90 | 5 |
| 0x0001 | F01 温度上限 | St~150 | 90 | 5 |
| 0x0002 | F02 温度下限 | -10~St | 0 | 5 |
| 0x0003 | F03 控温回差 | 0~20 | 5 | 1 |
| 0x0004 | F04 温度校正 | -20~20 | 0 | 1 |
控制命令(FC05,2 字节无符号)
| 地址 | 项目 | ON | OFF |
|---|---|---|---|
| 0x0000 | 开/关机 | 0xFF00 开机 | 0x0000 关机 |
| 0x0001 | 启动/停止 | 0xFF00 启动 | 0x0000 停止 |
5.2 状态位定义
状态信息(FC01,bit,低位=低地址)
| 地址 | 项目 | 说明 |
|---|---|---|
| 0x0000 | 加热继电器 | 0断/1闭 |
| 0x0001 | 风机继电器 | 0断/1闭 |
| 0x0002 | 开关机状态 | 0关/1开 |
| 0x0003 | 加热状态 | 0否/1是 |
| 0x0004 | 风机状态 | 0否/1是 |
报警信息(FC02,bit)
| 地址 | 项目 | 说明 |
|---|---|---|
| 0x0000 | 柜温探头故障 | 0无/1报警 |
6. EdgeBus 模型
6.1 EB 配置参数
| 项目 | 值 |
|---|---|
| name | xc227 |
| port | 22 |
| version | 0x87 |
| dataType | 0x10 |
| upPeriodIndex | 70 |
| 串口 | 9600 / 8 / 1 / NONE |
| BzType | 22111 |
| BzVersion | 1 |
| SwVersion | 31 |
| Battery | false(Class C) |
6.2 EB 代码
import { Buffer } from "buffer";
import { buildOtaFile } from "@EBSDK/run";
import { EBModel } from "@EBSDK/EBCompiler/EBModel/EBModel";
import { EventInfoItem } from "@EBSDK/EBCompiler/plugins/EBHelper";
import type { UserConfUPItem } from "@EBSDK/EBCompiler/plugins/EBHelper";
import { CheckbitEnum, getOtaConfig } from "@EBSDK/otaConfig";
const eventInfo: UserConfUPItem[] = [
{
name: "xc227", port: 22, version: "0x87", dataType: "0x10", upPeriodIndex: 70,
quInfo: [
{ protocol: "modbus", addr: "0x01", code: "0x04", periodIndex: 70,
indexAPP: 150, indexCMD: 0, copySize: 1, isLast: false,
listVal: [ { start: "0x0000", end: "0x0000" } ] },
{ protocol: "modbus", addr: "0x01", code: "0x02", periodIndex: 70,
indexAPP: 150, indexCMD: 0, copySize: 1, isLast: false,
listVal: [ { start: "0x0000", end: "0x0000", covType: "HEX" } ] },
{ protocol: "modbus", addr: "0x01", code: "0x01", periodIndex: 70,
indexAPP: 150, indexCMD: 0, copySize: 1, isLast: true,
listVal: [ { start: "0x0000", end: "0x0004", covType: "HEX" } ] }
]
}
];
let otaConfig = getOtaConfig({
SwVersion: 31, BaudRate: 9600, StopBits: 1, DataBits: 8,
Checkbit: CheckbitEnum.NONE, Battery: false, ConfirmDuty: 60,
BzType: 22111, BzVersion: 1
});
const MODBUS_TT = (ebModel: EBModel) => {
for (let i = 0; i < eventInfo.length; i++) {
let event = new EventInfoItem(eventInfo[i]);
event.upEventSetup();
event.eventInstall();
}
return JSON.stringify(ebModel, null, 2);
};
buildOtaFile(import.meta.url, otaConfig, MODBUS_TT);6.3 说明
- EB 代码含 1 个上报事件 + 3 个查询事件,按顺序轮询:FC04 读柜温 → FC02 读探头故障 → FC01 读 5 个状态位(最后一条
isLast:true触发上行)。 - 未启用 COV,
upPeriodIndex与periodIndex同为 70,采集与上传共用一个周期参数(默认 300s)。 - 上行帧长 10 字节,布局:
[0]=0x87 [1]=0x10 [2]=cov [3]=status [4]=ds [5]=addr [6-7]=柜温(int16BE÷10) [8]=报警字节 [9]=状态字节。 - Modbus 从站地址由 DTU app_150 注入(默认 1)。
7. 物模型
7.1 物模型基本信息
| 类型 | 名称 | id Name |
|---|---|---|
| 数据物模型 | [XC227] | xc227_22111 |
| 参数物模型 | [XC227-PARA] | xc227_para_22111 |
7.2 上行帧结构
frameInfo:port 22,dataLen 10,rssi true,battery index 4,tagList [{0:0x87},{1:0x10}]。
| index | field_name | type | 说明 |
|---|---|---|---|
| 6 | cabinet_temp | int16BE ÷10 | 柜温℃ |
| 8 | probe_fault | bitLE0-0 | 探头故障 |
| 9 | heat_relay | bitLE0-0 | 加热继电器 |
| 9 | fan_relay | bitLE1-1 | 风机继电器 |
| 9 | power_status | bitLE2-2 | 开关机状态 |
| 9 | heating_status | bitLE3-3 | 加热状态 |
| 9 | fan_status | bitLE4-4 | 风机状态 |
柜温读数为 0x5050(探头故障)时置空(null)。
7.3 物模型脚本
数据物模型与参数物模型脚本见项目 thinklink/thingModel/xc227_22111.js 与 xc227_para_22111.js。
8. 第三方平台数据订阅
8.1 MQTT Topic
/v32/{组织账号}/tkl/up/telemetry/{eui}
8.2 上报示例数据
{
"eui": "6353012af10a9331",
"active_time": "2026-06-01T08:35:48.000Z",
"thingModelId": "22111",
"thingModelIdName": "xc227_22111",
"telemetry_data": {
"snr": 13.5,
"rssi": -51,
"cabinet_temp": 98.5,
"power_status": 1,
"heating_status": 1,
"fan_status": 0,
"heat_relay": 1,
"fan_relay": 0,
"probe_fault": 0
}
}9. RPC
9.1 RPC 名称
| 类型 | 名称 | id Name |
|---|---|---|
| 参数设置 | [XC227 SET] 22111 | xc227_set_22111 |
| 参数读取 | [XC227 GET] 22111 | xc227_get_22111 |
| 动作控制 | [XC227 ACT] 22111 | xc227_action_22111 |
9.2 参数定义
DTU app 参数(Set/Get RPC,port 214)
| 参数地址 | 名称 | field_name | 单位 | 类型 | 说明 |
|---|---|---|---|---|---|
| app_70 | 上传/采集周期 | period_up | s | uint32LE | 1–3600,DTU 轮询并上报间隔 |
| app_150 | Modbus 地址 | addr_modbus | — | uint8 | 1–199,DTU 查询目标从站地址 |
设备控制 / 温控参数(Action RPC,透明通道 FC05/FC06)
| field_name | 寄存器 | 类型 | 说明 |
|---|---|---|---|
| power_cmd | FC05 0x0000 | bool | 开关机:true=开/false=关 |
| run_cmd | FC05 0x0001 | bool | 启停:true=启动/false=停止 |
| stop_temp | FC06 0x0000 | int16 | St 停机温度 |
| temp_upper | FC06 0x0001 | int16 | F01 温度上限 |
| temp_lower | FC06 0x0002 | int16 | F02 温度下限(可负,补码) |
| temp_diff | FC06 0x0003 | int16 | F03 控温回差 |
| temp_calib | FC06 0x0004 | int16 | F04 温度校正(可负,补码) |
Action RPC 每次只下发一个参数;下发后经透明通道(port 51)回显帧 echo 校验,成功后同步 telemetry/shared 并回填表单。
9.3 RPC 代码
参数设置 / 读取 / 动作 RPC 脚本见项目 thinklink/rpc/ 下 xc227_set_22111.js、xc227_get_22111.js、xc227_action_22111.js。
10. 模板选择
在 ThinkLink 平台搜索模板:
- XC227-22111
或按业务类型查找:
- 22111 / 消毒柜温度控制器
11. 补充说明
- 通讯地址只能在控制器面板上设置,范围 1–199;默认 1。
- 柜温读数为有符号整数,÷10 得实际温度;探头故障/禁用时读数固定 0x5050。
- 温控参数(St/F01/F02/F03/F04)为原始整数 °C,不做 ÷10;F02、F04 可为负,采用补码。
- 开关机/启动停止控制值为 0xFF00(ON)/0x0000(OFF),非 0x0001。
- 告警触发器
xc227_trigger_22111:探头故障即时告警;高/低温以柜温对比 F01/F02 阈值(带 0.5℃ 迟滞),使用前在设备分组配置通知群。