ZigBee无线自组网技术的应用局限性之五:诊断可靠性分析 二维码
来源:原创网址:http://www.wiminet.cn 前段时间,有一个南方的朋友在聊天中提到过他们公司做的一个采用改良的ZigBee系统做的电表抄表的应用,遇到了一些特别郁闷的事情。这个ZigBee模块的供应商应该说还是挺有实力的,是ZigBee技术联盟的会员单位,从事ZigBee技术开发的都是一些博士大拿。这位朋友最开始对于ZigBee不是很懂,经过和这家公司的大拿们的“反复磨合”,本身也算是“久病成医”,竟然能够讲出来不少ZigBee技术的门道,着实令人意外。 其实这个项目最开始在实验室搭建了一个模拟系统,只有几十个节点的规模,跑的还算可以,虽然成功率没有达到100%,但是多采集几次也都能够回来数据,因此领导觉得没有什么大的问题,决定采购几百支模块安装一栋楼作为试点。按照模块厂家的要求,现场施工统一选用采用增益较高的吸盘天线,并且将天线引到了窗户的外面以保证信号无阻挡,应该说准备工作做得还是比较扎实的。没过多久,现场安装施工完成了,出人意料的是,系统运转起来之后发现超收的成功率比之前的实验室环境低了很多,有的节点即便采用多次重试也无法超收上来,领导对此很不满意,工程师们忙成一团赶紧想办法查找问题。 **个被怀疑的对象当然是现场施工了,毕竟这些模块在出厂的时候都经过检测,组装成整机之后也做过整机测试,会不会是现场施工的过程中工人操作错误?比如没有给设备供电,或者是天线接触不良?于是领导提出能不能通过后台软件检查出每一个模块是怎么通过一跳一跳的形式将数据完成远程接力传输的。问题很快有了回复,模块厂家的技术人员说ZigBee里面没有这个功能!领导感觉很奇怪,说我总不能现场去一个一个扒开来看吧,模块厂家中间各种推诿,最后实在扛不住压力,决定加上这个功能。 中间是漫长的等待,模块厂家的技术人员在加班加点的赶这个功能。 通过附加的数据信息,终于将每一个节点的路由信息上传到了后台的数据库中,也算是填补了ZigBee技术的一块空白吧!大家带着紧张和激动的心情,将所有的设备全部拆下来,然后接上编程器的电缆,将所有的设备的程序重新烧录了一遍,顺便仔细的检查了一遍电源供电和天线的连接,确保没有任何问题之后又重新安装上去,这工作那真是一个苦逼啊!然而对于所有参与的人而言,所有这一切的辛苦和劳累都不算什么,大家只为了在后台上可以看到每一个节点的跳转路径,想想这一刻的到来也是蛮兴奋的,没准这还是全球独一份呢...... 不幸的是打击接踵而至!系统重新上线之后仍然有很多的节点的数据无法传递回来,而且情况似乎比之前还要严重,一会儿是这一批,一会儿是那一批,完全没个准。这一回大家早有了心理准备,恨不得带上放大镜来在系统的后台查看每一个节点的跳转路径,结果让他们大吃一惊,原来这些节点的每一次的跳转路径竟然是不断变化的,一会儿走这条路径,一会儿又换到另外一条路径。领导疑惑的问道:“能不能固定下来,每一次的路径不要变来变去......”,模块厂家的工程师们把ZigBee的技术规格书看了一遍又一遍,对着源代码反复核对,最终确定地回答说:“这个不可以,ZigBee就是靠这个机制来工作的,这是ZigBee网络的核心技术之一……”,领导听完之后一言不发,转身离开会议室。 这听起来似乎是一个新的“刻舟求剑”的故事,船儿一直在往前走,而那把佩剑掉到水里之后却永远停留刚掉下去的那个地方。你如果要是等到船儿靠岸之后从船舷上刻下的记号下水打捞,只会什么也不会得到。 上述的案例其实倒不是说不允许新生的事物有品质问题。其实作为试点的项目,大家都有心理准备,只要问题可以测量,并且可以控制,那么给你时间你都会慢慢完善的。只要市场空间足够大,同时也没有其他的更好的选择方案,大家是有理由可以等你的,这一点在业界可以说是公开的秘密。最关键的一点就是问题要可以测量,可以控制,也就是说系统本身的调试和诊断需要是收敛的,不能来回发散。 在我们的日常生活中,大家都有一个概念,从来没有一个用不坏的东西,是产品总有需要维修的时候,即便是我们人本身,也会经常生病要上医院让医生给“修理修理”,因此这个系统或者产品应该是可诊断或者可维修的。对于苹果手机的用户来说,这可能刚好是一个反例,因为苹果手机的电池是是不可拆卸的,其机身的螺丝也是特制的,需要专门的工具才可以打开。但是不要忘了,世界上有且仅有一个苹果公司,而且苹果公司的制造工艺那可是世界上最顶尖的哦,也不会轻易需要进行维修,所以这一点不仅没有给苹果公司带来麻烦,反倒进一步提高了其逼格。所以说一般公司的产品设计是绝对不敢照抄苹果的,一定要做好产品的诊断,维修的准备工作,产品批量生产之前一定要考虑好售后服务,否则完全就是作死的节奏。 我们生活中所有成功的产品,几乎都是可维修的,而可维修的前提则是可诊断的。比防水你的一台老式电视机坏了,屏幕输出有不规则的条文在滚动,那么有经验的维修师傅则很快就知道是哪一个元器件坏了,直接更换这个零部件就可以修好了。如果维修的师傅看到任何一种现象就说:“好吧,你放这里,我把所有的元器件都换一遍,你一个月之后再来取吧……”,你肯定会被吓得半身不遂,这么个搞法即便修好了,那得多少钱啊,没准还会把好的部件给搞坏了,因此根据现象快速锁定潜在的问题点,然后逐步诊断,最终解决问题,这才是经济可行的维修方法。 从方法论的范畴来讲,基于“诊断à锁定问题à二次诊断à二次锁定”这样的迭代逻辑,其故障的搜索半径是越来越小的,整个工作是越来越小,逐步收敛的;而整体替换法则刚好相反,其覆盖半径并没有减小,甚至会随着诊断工作的进行而进一步扩大,完全是发散式的,这种发散到了一定的程度就是失败。回过头来看,ZigBee的Mesh技术固然是一种很重要的发明,每一个节点都可以选择周边的若干条通道到达目标节点,但是这样也从另外一个侧面同时带来了2个严重的困难: (1) 整个网络从逻辑上都是关联在一起的,任何一个节点除了故障,整个网络中的所有的节点都是嫌疑对象。 (2) 每一个节点到达一个固定目标节点的路径都是动态变化的,一会儿选择路径A,一会儿选择路径B,完全没有规律可循。 这两个问题反馈到诊断层面上,就是说这个网络的内部拓扑结构是动态变化的,非常难以用经典的可解析的手段进行表达,即便勉强导出来这种拓扑关系,也是没有任何诊断的价值,因为等你拿到这个拓扑关系的时候,说不准下一刻这个关系就已经改变了,你看到的拓扑关系已经过期了,如果你依据这个信息去做诊断,完全就是“骑驴找马”,白费功夫。 事实上人们对于品质的追求从来就没有止境,从来也没有一条生产线或者工程施工是一次性100%的成功的,几乎都需要做检测和维修。即便是工程或者产品通过了验收阶段投入了运行之后,也是需要维修和保养的。好比你花了几十万块钱买了一辆奔驰轿车,开了几年之后,怎么也得要需要保养保养,而这些4S店的维修人员肯定是有针对性的进行诊断,绝对不会上来就把你的爱车大卸八块全拆了,不然你还不得跟他拼命啊。
事实上全球PC芯片巨头英特尔公司能有今天的市场地位,也全是归因于品质控制。在早期IBM公司作为面向最终用户的整机组装厂商是占据主动地位的,英特尔公司没法直接将处理器直接销售给最终用户,因此在价格谈判中英特尔公司只能非常被动的屈服于IBM公司的报价。有一天英特尔公司的CEO安迪.格鲁夫去IBM公司商谈一个很大的订单,回来之后他气得像发了疯似的在公司里大吼大叫,他把所有的高管全部叫到他的办公室,厉声责问大家:“我们的处理器是多么的高技术含量啊,IBM不过是找了一个漂亮的铁皮箱子把它装起来而已,为什么我们要心甘情愿的作为IBM电脑里面的一个普通零件呢,我们为什么不能直接将处理器销售给最终用户呢?”,工程师们战战兢兢的说因为我们的处理器从生产线上下来总有一些数量的产品存在难以描述的瑕疵,而IBM公司则可以准确的检测出来,将那些不良品退回给我们,因此我们的产品无法卖出更高的价格…… 几天之后,英特尔公司的总裁办公室向全体员工下达了一条指令,要求所有人放弃硅谷的白领工作节奏,加班加点要解决工艺的不良率问题;这个问题一天不解决,这种不正常状态就一天不结束!接下来他还亲自制定了举世闻名的“Intel Inside”战略,成功的处理器销售给了全世界的大众消费者,彻底的扭转了与IBM和Compaq等整机厂商的十分不利的合作关系,堪称是世界商业史上的一个传奇。 |