结论:数采仪屏幕显示“连接成功”,平台却一条数据都没有,最可能的原因是MN码与平台登记不一致。平台在应用层校验MN码,对不上就直接丢弃报文,所以链路看起来是通的。排查顺序建议先平台、再设备、后抓包。
故障现象:连接成功,平台就是没数据
一位运维工程师的原话是:“数采仪显示已连接,平台上啥也没有。”现场看TCP连接正常,心跳也有,但实时数据一条都上不去。这种时候不要先怀疑网络,先把MN码拿出来对一遍。
原因分四层看
- 协议层:HJ 212报文中MN=字段后面到分号之前的内容,必须与平台登记完全一致。实时数据命令码2000–2999、历史数据3020、上位机下发常用1013/1014,这些报文中都带MN=字段。常见问题是首尾带空格、用了全角字符、大小写混用、长度多一位少一位。部分省份对MN码位数有地方要求,不能照搬外省配置。
- 网络层:TCP连接成功只说明链路通,不代表平台接收了应用层报文。端口通、心跳正常,但MN码错误时平台照样返回异常或直接不响应。
- 设备层:数采仪配置页里MN码改完没有重启,或者多套配置切换时被旧配置覆盖。有的设备修改MN码后需要重新注册才会生效。
- 平台层:平台侧设备档案里的MN码可能带隐藏空格,或者大小写与现场不一致。部分平台还会校验MN码前缀,前缀不对直接判为无效设备。
排查顺序:为什么先平台后设备
先查平台,是因为平台侧改一个字符成本最低,而且平台丢弃报文时往往不给明确提示,现场容易白折腾。顺序是:平台设备档案→数采仪配置→抓包看报文→网络链路。
- 平台登记:逐字符比对MN码,重点看首尾空格和大小写。判断:不一致就改;动作:统一成平台要求的格式,改完让平台侧刷新设备档案。
- 数采仪配置:在配置页找到MN码字段,确认没有多余空格和全角字符。判断:与平台不一致就改;动作:保存后重启数采仪,观察是否重新注册。
- 抓包报文:在数采仪侧或交换机镜像口抓包,看上报报文里MN=后面的实际内容。判断:报文里的MN码与配置页不一致,说明配置没生效;动作:检查是否有旧配置覆盖,必要时恢复出厂后重新配。
- 网络链路:前面都一致再查IP、端口、防火墙。判断:TCP能建连但应用层无响应,重点看平台返回码;动作:联系平台确认是否收到该MN码的报文。
三个容易误判的坑
- 把“TCP连接成功”当成“数据上传成功”。连接成功只代表链路层通了,平台应用层可能因为MN码不匹配把报文丢了。判断有没有真正上传,要看平台侧有没有该MN码的记录,或者抓包看平台返回。
- 改完MN码没重启数采仪。部分设备配置保存后不会立即生效,尤其是改了MN码这种注册类参数。现场改完就等数据,结果还是旧的MN码在上报。
- 只改一边。数采仪改了MN码,平台档案没改;或者平台改了,数采仪没改。两边必须逐字符一致,包括大小写和长度。部分省份的协议扩展对MN码位数有单独要求,跨省项目照搬配置容易出错。
FAQ
问:我这个情况到底要不要传MN码?答:只要走HJ 212协议上传,MN码就是必填字段,平台靠它认设备。不传或者传错,平台都不会收你的数据。
问:MN码大小写有关系吗?答:多数平台按字符严格比对,大小写不一致就可能被判为不同设备。建议现场和平台统一用大写或统一用小写,不要混用。
问:平台说收到了但显示无效,是不是MN码错了?答:先看平台返回的提示,再看报文里MN=字段和平台登记是否逐字符一致。无效设备多数是MN码对不上,或者MN码长度不符合平台要求。
问:换了一台数采仪,MN码要重新登记吗?答:要。MN码是设备身份,换设备后要么沿用原MN码并在平台更新设备信息,要么用新MN码在平台重新登记,两边保持一致才能正常上传。