Skip to content

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. 产品特点

  1. 标准 Modbus-RTU 协议,RS-485 接口,9600bps,接入门思 KC11 DTU 即可上云。
  2. 加热继电器 + 风机继电器双路控制,加热/风机状态可读。
  3. 完整温控参数:St 停机温度、F01 温度上限、F02 温度下限、F03 控温回差、F04 温度校正,可远程读写。
  4. 探头自检:探头故障/禁用时读数返回 0x5050,便于上层判定置空。
  5. 开关机与启动/停止独立控制位,控制值采用 0xFF00/0x0000。

3. 适用范围

  • 餐饮后厨/食堂消毒柜温度达标监管。
  • 医疗、实验室器械高温消毒过程留痕与告警。
  • 连锁门店消毒柜集中管控、远程开关机与参数下发。

4. 采集器信息

4.1 硬件信息

项目内容
DTU 型号KC11(市电版,DIN 导轨)
接口类型RS-485
供电方式AC 85–270V
LoRaWAN ClassClass C(常在线)

4.2 接线信息

控制器引脚信号接 KC11
485ARS-485 AKC11 485A
485BRS-485 BKC11 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,原值不缩放)

地址参数范围默认步长
0x0000St 停机温度F02~F01905
0x0001F01 温度上限St~150905
0x0002F02 温度下限-10~St05
0x0003F03 控温回差0~2051
0x0004F04 温度校正-20~2001

控制命令(FC05,2 字节无符号)

地址项目ONOFF
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 配置参数

项目
namexc227
port22
version0x87
dataType0x10
upPeriodIndex70
串口9600 / 8 / 1 / NONE
BzType22111
BzVersion1
SwVersion31
Batteryfalse(Class C)

6.2 EB 代码

typescript
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 触发上行)。
  • 未启用 COVupPeriodIndexperiodIndex 同为 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}]。

indexfield_nametype说明
6cabinet_tempint16BE ÷10柜温℃
8probe_faultbitLE0-0探头故障
9heat_relaybitLE0-0加热继电器
9fan_relaybitLE1-1风机继电器
9power_statusbitLE2-2开关机状态
9heating_statusbitLE3-3加热状态
9fan_statusbitLE4-4风机状态

柜温读数为 0x5050(探头故障)时置空(null)。

7.3 物模型脚本

数据物模型与参数物模型脚本见项目 thinklink/thingModel/xc227_22111.jsxc227_para_22111.js

8. 第三方平台数据订阅

8.1 MQTT Topic

/v32/{组织账号}/tkl/up/telemetry/{eui}

8.2 上报示例数据

json
{
    "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] 22111xc227_set_22111
参数读取[XC227 GET] 22111xc227_get_22111
动作控制[XC227 ACT] 22111xc227_action_22111

9.2 参数定义

DTU app 参数(Set/Get RPC,port 214)

参数地址名称field_name单位类型说明
app_70上传/采集周期period_upsuint32LE1–3600,DTU 轮询并上报间隔
app_150Modbus 地址addr_modbusuint81–199,DTU 查询目标从站地址

设备控制 / 温控参数(Action RPC,透明通道 FC05/FC06)

field_name寄存器类型说明
power_cmdFC05 0x0000bool开关机:true=开/false=关
run_cmdFC05 0x0001bool启停:true=启动/false=停止
stop_tempFC06 0x0000int16St 停机温度
temp_upperFC06 0x0001int16F01 温度上限
temp_lowerFC06 0x0002int16F02 温度下限(可负,补码)
temp_diffFC06 0x0003int16F03 控温回差
temp_calibFC06 0x0004int16F04 温度校正(可负,补码)

Action RPC 每次只下发一个参数;下发后经透明通道(port 51)回显帧 echo 校验,成功后同步 telemetry/shared 并回填表单。

9.3 RPC 代码

参数设置 / 读取 / 动作 RPC 脚本见项目 thinklink/rpc/xc227_set_22111.jsxc227_get_22111.jsxc227_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℃ 迟滞),使用前在设备分组配置通知群。