兄弟们,干工业互联网的都知道,设备数据上云这事,听起来很美好,做起来很烧钱。老板一问:“为啥这个月4G卡流量又超了?云上存储账单咋这么高?”你一看,好家伙,车间里几十台设备,每台每200毫秒往云上报一次温度、压力、转速,JSON报文一条两百多字节,一天下来流量跟开闸放水一样。
今天咱不聊虚的,就聊两招最实用的:边缘聚合和MQTT压缩。说白了,就是别让每个传感器都直接找老板汇报,先让班长汇总;别让数据穿着大棉袄上路,能轻装就轻装。
先说说坑:原始数据直传,等于拿水管往云里灌
我见过一个注塑车间,80台设备,每台每秒10个点位,直接MQTT上云。算笔粗账:一条JSON 200字节,80台×10条×200字节=160KB/s,一天就是13GB左右。这还没算MQTT包头、重连、TLS握手。一个月下来,流量费、云数据库写入费、存储费,全上来了。
更气人的是,很多数据根本没变。温度一直是26.3℃,压力一直0.5MPa,你每秒报一次,云上存了一堆重复值。这不叫数据采集,这叫给云厂商送温暖。
边缘聚合:让网关当“班长”,别让每个点位都找老板
边缘网关或者工控机,就是车间里的班长。它的活儿很简单:先汇总,再上报。
第一,时间窗聚合。 比如原来1秒报10次,现在边缘侧按5秒算一次平均值、最大值、最小值,只把这三个数发上去。要是只看趋势,甚至1分钟发一次都够。就像老板不需要知道每个员工每分钟敲了几下键盘,他只看今天产出多少。
第二,变化上报,也叫死区压缩。 温度波动0.1℃别报,超过0.5℃再报。设备没启停、没报警,就发个低频心跳。群里别老刷“收到”,有事说事。
第三,事件优先。 报警、故障、启停这些,必须立刻报,QoS设高一点。正常数据可以攒着批量发。别把报警和普通温度混在一起,该快的不快,该慢的不慢。
第四,批量打包。 攒50条或者5秒发一次,MQTT连接不用频繁建,包头开销也摊薄了。就像寄快递,一件一件寄和装箱寄,运费差远了。
第五,断网缓存。 车间网络抖一下很正常,边缘网关本地存队列,网通了再续传。关键数据别丢,非关键数据可以丢。
MQTT压缩:别让JSON穿棉袄
JSON好用,但字段名太长。“temperature”“pressure”“rotationSpeed”,每次都写全称,跟发短信每句都带“尊敬的