我们会看看 贵方的设备 并告诉您 从它身上实际能取到什么
依据控制器文档和设备群的构成:哪些读数马上就能取到、哪里需要加装传感器、哪些设置可以远程调整。
设备在各个现场,而您在办公室。我们给它装上传感器、接入互联网,并把读数汇总到一个可以在浏览器里打开的程序里。一旦温度越限、门被敞着或者断电——责任员工立即收到消息,而不是第二天早上从变质的货品上才知道。
说白了就是:在设备上装几个小装置,持续测量要紧的东西——冷库内的温度、门是否开着、有没有电、压缩机在不在转。每分钟一次,这些测量值通过互联网发到服务器。您打开浏览器,就能看到所有网点上每一台设备的状态。
IoT 的意思是「物联网」。它的要义在于:不是靠人拿着本子四处抄读数,而是设备自己把读数发进程序。为此您什么都不用做:数据自己就来了,全天候,包括夜里和周末。
它与「一块显示数字的屏幕」最大的区别在于:系统不会等着谁去看它。它会自动把每一次测量与您为这台设备设定的正常范围作比较。一旦越界——就在台账里找到负责这个场地的员工,把消息发给他。
举个例子。 仓库的冷冻库允许温度为 −18 °C。21:04,传感器传回 −16.8 °C。那一刻没有人在看屏幕。15 分钟后温度还在上升——系统生成一个事件,把库号、仓库地址、时间和当前数值写进去,并把消息发给仓库值班员。21:33 他赶到,发现是缓冲间的门没关严。货品完好。
与此同时,设备不必更换。冰柜、售货机、水泵或通风机组都留在原地——补上的只是它们原本没有的东西:传感器、通信装置,以及一个能把整个设备群列成一份清单的程序。
任何一个项目都从三个问题开始: 这台设备在物理上能测到什么;数据怎么从现场送上互联网;谁对异常负责、他必须在几分钟内做出反应。只要第三个问题还没有答案,做出来的就是一块好看的数字屏,而不是一个能防住事故的系统。
| 实现了什么 | 这算是什么 |
|---|---|
| 读数实时显示在屏幕上 | 观察 |
| 读数连同精确时间保存进历史 | 基础 |
| 越限被记录为一个独立事件 | 基础 |
| 事件有具体的员工和响应时限 | 监控 |
| 员工的处理被记录下来并关闭该事件 | 监控 |
界线划在两件事上:事件有人负责,也有时限。单看一块显示当前温度的屏幕,什么也救不了——只要还没有指派谁去处理,异常就只是曲线上的一根线。因此正常范围、责任人、响应时限和关闭标记,都是系统的必填字段,而不是「可选」的设置。

能力的边界不是由程序决定的,而是由设备本身决定:只能取到它测量的、或者能用传感器测到的东西;只能改动它的控制器允许改动的东西。贵方那台设备上具体有哪些可用,我们会在调研时按厂商文档确认。
一次测量所走完的全程——从冰柜上的装置到手机上的一条消息。本页后面会对其中六个环节逐一做更详细的解析。

我们要盯的对象:冷库、陈列柜、冷冻柜、售货机、水泵、通风机组、生产线。每一台都在系统里建成一张独立卡片——它是什么、装在哪个场地、铭牌参数是什么、上次维护是什么时候。
负责测量的装置。传感器是一个测量单一量值的小装置:温度、湿度、压力、电流、门是否开着、有没有电压。控制器则是设备自身的「大脑」:有些型号能把自己的读数和错误码对外输出,那样就不必再加传感器。做不到的,我们就装自己的。
读数是怎么上互联网的。现场装一个小的通信装置:它从各传感器采集测量值,通过网线、Wi-Fi 或 SIM 卡发到服务器。断网时测量值先攒在它的存储里,等连接恢复再发出。而这个装置本身的沉默,同样算作一次告警。
数据住在哪里。服务器是一台放在安全数据中心、全天候运行的计算机。「云」的意思是它不在贵公司办公室里:不必购买、散热和维护,而程序在任何地方都能访问。服务器接收测量值、存入历史、与正常范围比对,并把异常转成事件。
您看到的那个程序。在电脑或手机的浏览器里用账号密码打开——无需安装任何东西。一个屏幕上就有场地、设备、当前读数和未结异常清单。不同品牌的设备长得一模一样。
整条链路的产出:发给具体员工的消息、供复盘用的曲线和日志、月度报表,以及在控制器允许的情况下,直接在面板里修改设备设置。
测量频率和允许区间按每一类设备分别设定,而不是给全网设一个数。冷冻柜、熟食冷藏柜和仓库冷库,正常温度不同,允许越限的时长也不同。
制冷是监控回本最快的一个方向,因为工况被破坏时肉眼看不出来。夜里被顶开一条缝的门,到早上都不会有人注意到,而到那时结果已经替您定好了。
举个例子。 周五傍晚,冷冻库的压缩机坏了。一夜之间货品化冻,周六被部分二次冷冻,周一整批报损。有了监控,故障消息在周五 21:00 就到了,事情止于叫一次维修服务。
而且设备各不相同。冷冻柜和熟食冷藏柜,允许温度不同、越限速度不同、出错代价也不同。因此正常范围不是给全网设一个,而是按每一台来设——并考虑里面放的是什么。
一台制冷设备上能取到什么:
具体能取哪些,取决于设备型号。如果原装控制器对外输出数值和错误码,系统就直接读取。如果不输出,就加装外置的温度、门磁和电源传感器。贵方设备上具体有哪些可用,在调研时按其文档确定,而不是事先承诺。

因此正常范围要按设备类型和里面的货品来配置。不这么做,消息就会没完没了地来,员工也就不再点开它们——系统于是空转。
这几类设备用的装置大体相同。区别在于允许的工况、出错的代价,以及消息发给谁。结构则完全一致:一台设备、一个场地、一组读数、一套正常范围、一批事件、一位责任人。

没有店员的网点:门没关上或机组停了,根本没人会注意到。设备装在办公楼、工厂或共享办公里,员工每隔几天才来一次。在这里,温度和门的监控是及时得知问题的唯一办法。
深度低温、蓄冷量大:异常发展得很慢,而被发现时往往是整批货已经坏了。监控的是温度、越限持续了多久、压缩机运行和化霜。
在卖场里,一个班次门要被开几十次,工况持续被打破。因此要紧的不是越限本身,而是它持续多久、一天内重复多少次。
容积大、有几个温度不同的分区:一个测点描述不了整个库。因此要装多个传感器,门和供电单独监控——冷库停机意味着损失全部库存,而不是一层货架。
同一个场地上有多个冷库和机组,倒班且全天候运行。需要按分区划分责任、需要长历史,以及一份按月或按季度的工况合规报表。
连锁网点设备相同:分布在不同地址的几十台陈列柜和岛柜。这里的价值在于横向对比——哪里的异常在重复出现、哪个网点系统性地越出工况、哪一台该送修了。
原料和成品的存储,工况是硬性要求而不是舒适问题。除了消息之外还需要可证明性:每个冷库一段时间的曲线,以及谁在什么时候、如何处理了异常的记录。
还有单独的一类:控制器根本就没有对外通信设计的机组。它们靠外置传感器接入:温度、门磁、电源、工作电流。取到的数据比「智能」机组少,但最要紧的——工况、门、供电和压缩机运行——都看得见,这样一台设备也就与其余设备并列在同一份清单里。
每一项读数在系统里都以两种形态存在。第一种是数值本身,它单纯地保存进历史。第二种是一条规则:数值到多少、持续多少分钟,才算成为一个需要通知某人的异常。
举个例子。 冷冻库里 −16 °C 这个温度始终每分钟都在保存。而消息只有在它连续高于 −18 °C 超过十五分钟时才会发出。
能取到并被监控的完整清单:
失联不是小事,而是一次完整的故障。 沉默的设备不代表「没有数据」,而是「关于这个场地我们一无所知」。那里的温度可能正常,也可能已经涨了一个小时。因此失联会产生和温度故障同等的事件,而不是在曲线上留下一段空白。

级别有四档,级别决定系统去打扰谁、以及怎么打扰:
系统里每个场地都指定了责任员工,每一类事件也都有自己的下发规则。系统不会把所有东西发给所有人:它会看异常发生在哪个场地、属于哪一类、现在几点,再按规则挑出接收人。
如果员工在规定时间内没有接手某个事件,它会自动转给链条上的下一个人。夜间、周末和节假日的接收人可以不同——这同样是事先配置好的。
类型、设备与场地、开始和结束时间、发生那一刻的各项读数、消息发给了谁、什么时候发的、谁接手的、做了什么、最后怎么了结。有这些就足以在一个月后按记录复盘一个案例,而不是靠当班的人回忆。
| 条件 | 保持时长 | 事件 |
|---|---|---|
| 温度高于工况上限 | 15 分钟 | 提醒 |
| 温度高于上限 | 45 分钟 | 故障 |
| 门持续敞开 | 5 分钟 | 提醒 |
| 门关着而温度在上升 | 10 分钟 | 故障 |
| 设备上没有电压 | 1 分钟 | 故障 |
| 控制器返回了错误码 | 立即 | 故障 |
| 设备没有上线 | 20 分钟 | 故障 |
| 压缩机 24 小时内运行时间超过平常 | 24 小时 | 转入维护 |
系统界面截图,数值为演示用。「保持时长」这一列,是系统在报警之前所等待的时间。没有它,上货、正常化霜和卖场保洁就会带来一串误报,之后消息就再也没人看了。
每个场景走的路都一样:设备上发生了变化 → 系统把它记为一个事件 → 某位具体员工收到消息。区别只在于原因,以及发给谁。
发生了什么: 门磁报告门被打开,而在超过允许时长之后仍未报告它被关上。 系统都做什么: 生成一个「门敞开超过正常时长」的事件,含设备编号、场地地址和开始时间。 谁会知道: 网点上的员工——消息里能看到门已经开了多久。在门被关上之前,这个事件不会自行关闭。
发生了什么: 测量值显示持续上升,而此时门是关着的。 系统都做什么: 把异常连同当前数值和上升速度一起记录下来。 谁会知道: 该场地的责任人收到一条提醒——货品目前还正常,还有反应时间。如果继续上升,提醒就升级为故障,并发给多名员工。
发生了什么: 设备沉默超过了允许间隔。 系统都做什么: 生成一次故障——不是「没有数据」,而恰恰是故障:场地上正在发生什么,无从得知。 谁会知道: 与温度故障时相同的那批员工,因为后果可能是一样的。
发生了什么: 设备自己返回了一个故障码。 系统都做什么: 原样记录该错误码,并按这个型号的文档解释它的含义。 谁会知道: 错误出现在设备卡片上,并附历史——同样的码已经从这台设备上来过多少次。
发生了什么: 需要化霜的迹象——控制器信号、运行时长或温度周期的形态——越出了正常范围。 系统都做什么: 生成的不是故障,而是一项任务。 谁会知道: 责任员工——任务里写明了是哪台设备、在哪个场地、要在什么时限之前完成。
发生了什么: 设备上没有电压。 系统都做什么: 生成一次带精确断电时间的故障;与此同时,只要通信装置还靠自带电池工作,温度就仍在记录。 谁会知道: 消息立即发出——人们据此决定要不要把货转移出去,而不是决定什么时候叫维修。
系统界面截图,数字为演示用。这里最要紧的不是那条消息,而是最后一行:原因和持续时长进入了这个冷库的历史。如果「缓冲间的门没关严」一个月内再重复三次,它就会出现在报表里,而不是随着交接班一起被忘掉。
凡是设备无人常驻看管、故障要靠后果才被发现的地方,都需要这套系统。变的是读数的组合和出错的代价——系统的结构始终不变。

如果这五条里至少有三条与贵方的情况相符,就可以按贵方过去几个周期已经发生过的具体损失来算回本——报损的货品、停机、白跑一趟的上门。
自动售货与微型市场:遥测模块、设备端程序和事件采集——销售、机构报错、温度、开门、支付模块和通信状态——都是我们做的,详见 自助服务系统一节。清单里的其他方向,是把同一套方案用到另一类设备上。
真实的设备群几乎从来都不是清一色的。同一个场地上摆着不同年份、不同厂商的设备:有的控制器能把数据对外输出;有的有控制器但不会「说话」;还有的除了动力部分什么都没有。
由此就有了常见的局面: 四类设备对应四个程序,各有各的登录入口、各有各的状态叫法、各有各的通知。它们当中没有一个能给出这个场地的全貌,而把两台不同品牌的机组放在一起比较,根本无从谈起。
这种情况下我们怎么做:
哪些事我们不会事先说。 在调研之前,我们不会宣称支持某些品牌的设备和工业协议。哪些能读、哪些能控,是研读贵方设备群文档并到现场验证之后的结果,而不是演示文稿里的一行字。唯一有成品开发作背书的是自动售货这条链路:我们自研的遥测模块,带 MDB 和 EVA-DTS 驱动,详见 自助服务系统.

在浏览器里改设备设置,并不是任何时候都能做到。这是设备本身的属性,而不是程序的属性,情况分三种:
这一点用软件绕不过去。因此可用指令的清单,我们是在调研之后才给出,而不是之前。
品牌上的参差不是在现场消除的,而是在程序内部消除的:为每一类设备写一个翻译器,往后一切都一样。因此接入一种新设备只需要写一个模块,而不必重做面板、规则和报表。

能把数据对外输出的控制器;不具备这种能力的控制器;外置传感器;通信装置。每一种都有自己的格式、自己的计量单位、自己的状态叫法和自己的上报频率。
为每一类来源写一个独立模块:它知道怎么专门从这一种上取数据,并把它转换成统一的内部格式。设备本身不变——去适应的是程序。这样的模块被称为适配器。
统一的计量单位、统一的状态清单、统一的事件描述。此后冷库和水泵就能用同一种语言来描述,正常范围规则也只需写一次、适用于全部,而不必按品牌各写一遍。
整个设备群共用一个屏幕:场地、设备、读数、未结异常、历史、报表和可用指令。员工在一个程序里工作,不必在四个之间来回切换。
| 数据来源 | 能读到什么 | 操控 | 状态 |
|---|---|---|---|
| 能对外输出数据的控制器 | 数值、运行模式、错误码 | 部分可控,以文档为准 | 在线 |
| 什么都不输出的控制器 | 通过外置传感器 | 否 | 在线 |
| 接在通信装置上的外置传感器 | 温度、门、供电、电流 | 否 | 提醒 |
| 自动售货遥测模块 | 销售、机构报错、温度、门 | 是 | 离线 |
系统界面截图,构成为演示用。在面板里这四行看起来完全一样——区别只留在「能读到什么」和「操控」两列里,也就是数据源在物理上允许什么。有没有操控,由设备的控制器决定,而不是由程序决定。
面板用账号密码在浏览器里打开——就像一个普通网站。无需安装任何东西,手机上也能用。
第一屏。 顶部是计数:现在有多少台设备在线、多少台沉默、此刻有多少条未结异常。下面是场地清单,每个场地下挂着它的设备,每台设备都有一个彩色状态(正常、提醒、故障、离线)和当前数值。
设备卡片 点击任何一台设备即可打开。它汇总了关于这台冰柜或机组的一切:
设置只需做一次 此后就自行运转:按设备类型设定的正常范围和保持时长;按场地、事件类型和时段设定的责任人与消息下发规则;员工角色——谁能看到什么、能做什么;按场地、地区和设备类型划分的分组与筛选。
为什么要保存历史。 它就是全部测量值和全部事件,连同精确时间一并保存,随时可以调取。它有五个用处:
关于曲线还要单说一句:它们是为复盘用的,不是为报表用的。当温度线上同时标出了开门、压缩机启动和断电,异常的原因一眼就读出来了——不必再去比对四个不同的屏幕。

如果控制器不接受指令,卡片上的操控区就干脆不显示。那里不会摆一个按不动的按钮——免得让当班的人误以为可以从这里操控设备。
一个只有五台冰柜的场地,怎么管都行,用本子都可以。差别是从五十台、五百台开始显现的:清单装不下一个屏幕,消息汇成了一股洪流,而那个「什么都负责」的员工也就不再对任何具体的事负责了。
举个例子。 夜里某个网点断电了。没有配置的话,系统会发来三十条独立故障——每台设备一条,而其余一切都会淹没在这股流里。配置之后来的是一条消息:某某场地,断电,影响 30 台设备。
设备群变大之后有什么变化:
系统界面截图,数字为演示用。数字的排序不是随手定的:排在最前的不是设备群的规模,而是此刻有多少个场地处于失察状态。六台沉默的设备,就是六个我们一无所知的网点。

报表可导出为文件,也可以按计划自动生成——例如每月一号。对制冷这条链路来说,这样一份报表同时也是该周期存储工况的凭据。
权限按同一套结构发放:网点员工只看到自己的设备,部门负责人看到本类型的全部场地,调度员看到整张网络的汇总。查看、接手事件和远程操控是分开的,而不是打包成一个权限发出去。
传感器与控制器
上传云端
统一面板
消息与报表
系统的主要工作建立在简单规则之上:某个数值持续超过多少分钟 = 向某个人发某条消息。这已经足以覆盖突发状况,任何一次落地也都从这里开始。
当历史积累了几个月,就可以在它之上再加一层数据分析。它找的不是越限,而是某一台设备惯常行为的变化。
举个例子。 压缩机平时八分钟就能进入工作状态。最近三周它需要十二分钟。没有任何一条界限被突破,按规则一条消息都不会发出——但这台机组显然正在走向故障,最好赶在它周末罢工之前把它维护掉。
边界我们直说。 故障预测是在数据积累之后才成为可能的东西,而不是第一天就能用的功能。它需要的历史不只是读数,还包括故障本身:没有真实案例,模型就无从训练。因此在项目里它是数据采集运行一段时间之后的一个独立阶段,而不是首个版本里的一条。
相邻的方向是 把人工智能引入 业务流程,在那里同样的思路被用在订单、咨询和文档的数据上。

这些都不能取代告警规则:规则的反应以分钟计,分析的视野以周计。两层都需要,而且落地的顺序正是这个。
这些阶段的顺序不能变。跳过调研,是系统最后被搭在一台根本给不出所需数据的设备上的最常见原因。
设备群普查:型号、控制器、文档、每一台在物理上能取到什么、各场地有没有互联网。产出是一份清单:哪些马上就能用、哪些必须靠外置传感器来补。
一个场地和几台设备:安装、在真实控制器上验证数据交互、按设备的实际表现而不是按文档去调整正常范围和保持时长。
谁对哪些场地负责、哪些事件发给谁、什么算故障、什么只算一条记录。升级机制和同类事件的合并也在这一步配置,否则消息洪流一个月就能把这套系统的价值消耗殆尽。
其余场地按已跑通的方案铺开,新类型的设备则作为单独的交互模块接入。此后历史逐渐积累,跨周期的报表和数据分析也就有了。
请写明各场地装的是什么设备、有多少台,以及现在有哪些问题您只能靠后果才知道。我们会回答:从它身上实际能取到什么、哪里需要外置传感器,以及试点从哪里开始比较合理。