定义
Protocol Adaptation(协议适配)将 Modbus、OPC UA、BACnet、CoAP 等异构协议统一转换为平台标准格式(如 Thing Model),实现多协议设备统一管理。通常由 Edge Gateway 或协议网关完成。
适配层职责
协议适配负责:协议解析(读取寄存器、点位、对象属性等)、数据映射(将原始值映射为 Thing Model 属性,含单位换算、数据类型转换)、双向转换(上行遥测、下行控制)、设备虚拟化(将子设备抽象为平台设备实体)。适配配置通常通过点位表、映射规则或可视化配置界面完成。
典型协议
工业协议如 Modbus RTU/TCP、OPC UA、BACnet、EtherNet/IP;物联网协议如 MQTT、LwM2M、CoAP。适配层可部署于 Edge Gateway 边缘网关(靠近设备)或云端(设备直连云端协议网关)。边缘部署可降低延迟、减少带宽,云端部署便于集中管理。
与设备接入的关系
协议适配是 Device Access 设备接入的扩展能力。直连设备使用原生 MQTT、LwM2M 等;通过网关接入的工业设备经协议适配后,以统一物模型形式接入平台,上层 Device Monitoring 监控、Rule Engine 规则引擎无需区分底层协议。
点位表里的工程量与原始寄存器
协议适配要解决的不是“多一种协议能连上”,而是把现场报文里的地址翻译成平台已经约定好的属性与服务。从站号、寄存器区、对象节点或资源路径只存在于映射表;进入平台之后,监控、规则和存储只认识物模型标识、单位和读写方向。原始值多为无量纲整数、位或字节串,工程值才带量程和小数位。因此适配层必须同时处理字序、字节序、缩放、有符号解释和无效值,缺任何一项,上层看到的曲线就不是工艺量。
同一张点位表还要写明采集方式。慢变过程量适合按周期轮询;开关量和越限量更适合带死区的变化上报,否则网关会把大量重复值送进遥测链路。下行写点必须复用上行同一套缩放和字节序,设定值才会在设备侧落成预期的工程量。一条总线上的多个从站应拆成多个平台设备,避免把整柜数据堆进一个设备的属性列表,导致权限、告警和历史都无法按单体追溯。
适配层适合放在网关还是云端
串行总线到不了公网,Modbus RTU 和 BACnet MS/TP 只能在现场网关完成解析。网关侧适配的使用条件是:点位表能随网关版本保存,断网期间仍按最后一版映射采集并带时间戳缓存,恢复后补传而不是重新编号。Modbus TCP、OPC UA 若设备地址已可达,可以把解析放在云端协议网关,便于集中改表;代价是轮询周期受抖动影响,写超时很难区分“链路断了”还是“从站无应答”。
点位表和物模型要一起发布。只增加属性时,旧网关可以继续上报已有点;删除属性或改数据类型前,应先停写再切换映射,防止新旧两套解释同时生效。调试时需要能对单个点对照原始报文和工程值,确认后再批量下发到同型号网关。没有这层对照,就不具备把映射推进生产站点的条件。报文投递可靠性另按服务质量等级配置,不要写进点位表,以免换协议时把传输策略和量纲绑死。
字节序和缩放系数写反之后
字序、字节序和缩放不能互相“凑”。32 位浮点的高低字颠倒后,数值会跳到毫无规律的极大或极小,规则连续误报;缩放只差一个数量级时,曲线形状仍然像,阈值却永远对不上工艺卡片。正确的排查顺序是先锁定原始报文,再核对工程值,而不是先改告警阈值把异常压下去。把通信超时报成工艺量零,同样会让规则对着假零值动作。
只读输入寄存器被配成可写服务、保持寄存器基址整体偏移一位,都会把控制写到错误从站或错误地址。低速串口上把轮询间隔压得过短,正常从站也会成片超时,看起来像设备离线。适配层应为每条总线设置轮询预算,并把超时、异常码、连续失败次数作为独立状态上报。点位若直接用寄存器地址当名字,换表或改量程后历史和规则会一起失效;地址只应留在映射表,平台侧保持稳定标识。
联调时还应保留一份失败样本:原始帧、解释后的工程值和当时使用的映射版本三者放在一起。只保存工程值时,事后无法判断是字节序写反还是传感器本身异常。映射版本要能随网关配置回读,现场若被人改过表,平台上的发布记录和网关实际运行的表必须能对上差异。对不上就先停止按该表做自动告警,改完再恢复。同一从站被两台网关同时轮询时,串行总线会互相抢占,表现为偶发超时;点位表应注明这条总线的唯一采集者,第二台网关只做备用,不能同时开轮询。