客户的原话
“数采仪屏幕上显示连接成功,心跳看着也在发,平台页面上就是一条数据都没有,是不是仪表坏了?”
先给结论:多数情况是MN码对不上
在HJ 212协议里,MN是现场机的唯一标识,平台收到任何一个包,第一件事就是拿MN去匹配企业档案。匹配不上的包,大部分平台的处理方式是丢弃,或者归到“未知设备”里,页面上自然一片空白。现场看到的“连接成功”只是TCP建链成功,它只能证明IP和端口通,证明不了平台认了这个身份。
四层原因,按出现频率排
- 协议层:MN字段与平台登记的不一致——少一位、多一位、前缀不同(部分地区要求带行政区划或行业前缀)、大小写不一致、全角半角混用;MN后面多敲了一个空格;数据段长度按字节填,实际报文里混进了中文字符;CRC算错,整包在第一道校验就被扔掉。
- 网络层:3020心跳这种短包能出去,2000–2999区间的实时数据包因为包体长,被中间防火墙或NAT按长度截断;VPDN卡的APN配成公网后能连上,但到不了指定平台地址。
- 设备层:MN改完没点保存或者没重启,参数没生效;主备双通道只改了主通道的MN;QN时间戳取本地时钟且漂移较大,平台判为过期数据直接不收。
- 平台层:企业档案未备案或未激活,MN挂在待分配状态;部分平台对MN做了白名单,新号必须先在后台加进去。
为什么先查心跳,后查数据包
3020心跳报文最短,只带MN、ST、CN、PW这几个字段,一次能同时验证三件事:网络通不通、协议版本对不对、平台认不认这个号。如果心跳在平台侧有记录,说明MN和网络都没有问题,故障范围立刻收窄到数据包本身;如果心跳都没有,再去抓2000–2999的数据包就是白费功夫。反过来做,很多人会一头扎进报文分析,最后发现根子在平台根本没收到过这个号。
判断标准和处置动作
- 现象:平台显示设备在线,就是没有数据。判断:MN已匹配,问题在数据包。动作:抓2000–2999的实时数据包,核对CN命令码与因子编码是否在该平台支持的范围内。
- 现象:平台既无心跳也无数据。判断:网络不通,或MN根本未备案。动作:先测平台IP和端口是否可达,再登录平台查设备列表里有没有这个MN。
- 现象:数采仪侧显示已发出,平台无任何记录。判断:CRC或数据段长度算错,包被判为无效。动作:导出原始报文,重新核对##后4位长度字段与实际字符数,重算CRC。
- 现象:平台有数据,但归到了别的企业名下。判断:MN串号。动作:改MN后重启数采仪,并在平台侧同步修正档案。
三个容易误判的坑
- 把“连接成功”当成MN正确。TCP建链不校验身份,平台可以先回一个1013应答再丢包,屏幕上照样是绿色的。
- 只改一头。数采仪改了MN,平台档案没同步;或者平台改了,现场没重启,配置还在内存之外。
- 从工单或Excel里复制MN。带不可见字符、全角数字、末尾空格,肉眼完全看不出来,粘贴进去就是一串“看起来一样”的错号。
FAQ
问:我这个情况到底要不要重新备案?
先看平台设备列表里有没有这个MN。有但显示未激活,找平台侧开通;列表里压根没有,才需要走备案或添加流程。
问:MN码填错了,但数据看着能上去,还用改吗?
要改。能上去多半是平台做了模糊匹配或归到了未知设备,一旦平台收紧校验,数据会突然断掉,而且历史数据对不上企业。
问:换个省的项目,MN码能沿用原来那个吗?
不建议。不同地区编码规则不一样,重新按当地要求申请,比事后排查省事得多。
问:数采仪换新了,MN码照抄旧的可以吗?
可以沿用,但要在平台侧确认旧号已经解绑,否则新设备上线后会出现两个设备争同一个MN的情况。