如何做一个“完美”的设备监控系统

daizhicun
daizhicun This guy is lazy,Introduction has not been set

0 People liked this article · 857 views

说是“完美”,其实是吹牛了;
实际一点是:性价比;

每次架构一个系统,就如老衲修炼那样,总要静心,心如止水般的修炼数周,甚至数月;
中间的过程如蝴蝶破茧一样的痛苦纠结;

要不要架构,yes or no ?
不架构:类似于手工制作,虽然可以做的很精细,但是成本太高,质量的好坏和工匠的手艺关系很大;
   架构: 前期有投入,有涅槃重生的一个过程;这是一个风险;而且未必能够架构的合适;

举个例子,假如你是一个做钟表的精湛工匠,一个机械手表需要1200多道工序,每一个步骤都是你亲自认真打磨,自然会造出一块好表;
但是这里有两个问题:
    1.你造这块表非常辛苦;
    2.因为像你这样有精湛水平的人太少,普通人肯定帮不上忙,就算找到跟你旗鼓相当的人帮忙,那个人的要价可能也不菲;所以只能你一个人苦逼的完成所有环节;

所以你就想办法实现把你的一手绝学转换出一种机械化生成的方式;
好处是:1.简化自己的劳动;2.可以找普通的廉价人来帮你干活;
当然,你要构思把那些费劲的工序转换成机械化结构代替,这可能未必能实现的很好;可能误差高于手工;
但是,不能因为这些可能性就因噎废食;
批量生产 和 使用廉价人员(技能要求不强)是必然的趋势;

言归正传:
         对于一个好的设备调度系统,我觉得有几点要做好;

         1.好的通讯机制
          最好使用设备自身的原生协议进行通讯;
           目前大部分设备和上位的通讯的本质都是基于TCP/IP 的socket通讯;但是有些设备厂商不开放协议(但是可以通过一些通讯嗅觉工具监测具体的通讯内容);
           当时只能通过OPC这样的通用接口方式去处理,也针对OPC的方式做了两版通讯架构;
           但是追求本质的想法,还是有点不能释怀,有空再尝试一下吧,一直找不到志同道合者;绕过OPC这样的”中介“机构,成本和性能上都会有所提高的;

           有个以前的同事一直研究各种数据库的内部结构原理,就像研究猪肉的吃法一样,炖的、炸的,烧的,烤的;各种方式都打通了;
           我们项目中,数据库坏了,往往只能找最近的备份文件恢;他能直接恢复;你不慎删除了,修改了数据,想恢复,他也能;
           你直接把数据库物理文件删除了,他也能通过碎片技术还原;只要不是粉碎文件,他都能修复,反正数据怎么坏了,都能修复;
           这就是认识事物本质的好处;当然很多本质的知识是网上没有的,要有痛苦的摸索过程;

         2. 灵活的调度架构:
               早期项目”硬“开发,想在回想就是hell(地狱),很痛苦,很不小心写出自己发现不了的漏洞,
              忐忑不安的投入使用,开始往往使用源程序编译成debug的调试模式运行;
                而且谁也帮不了你;后期开始慢慢架构;主要分两块:
                       1.通讯配置;
                       2.事件配置;
                细节不说了,反正用到了很多反射,hash运算,脚本解析之类的东西;就是在一直的琢磨着;
                1993年,英国数学家怀尔斯解决了300多年前的费马大定理的时候,就感叹:每次解决了一个问题后,就要走到另一个黑屋子,一切未知,
                摸索明白后,又要去下一个黑屋子;   总之是一个有点痛苦的过程;
              
          3.  强大的监控:
                 很多人,往往在乎调度的稳定性;有些”洁癖“的人,还计较调度的实时性;
                 但是对于小白客户来说,他最希望看到的是 有个拟人化的监控,能够掌控各种变化状态和异常,并能遥控做一些方便的人工干预;
                 客户对你系统的好坏认识,往往就是你有没有一个好的监控来判断的;就像看见美女大家都会有个好的第一印象;
                  开始做的时候,一下子没弄出特别好的架构,虽然做出来了,但是”手工“成分太多;这就非常消耗成本;
                 就如宋太祖一开始没狠心把燕云十六州拿下,导致后患无穷;
                 所以,痛定思痛,得实现一个先让自己满意的监控架构;
                    
                  每个监控元素都有以下几个属性:
                     text: 显示的文本;比如设备号,托盘号,去向,变化时间等;
                     hint:  鼠标停靠提醒;比如订单,客户,sku,数量等;
                     color: 不同颜色的显示条件;比如,托盘号是99打头的显示蓝色;去向等于当前位置的显示青色;有异常的显示红色;
                     flash: 闪烁条件; 比如:堆垛机正在调度,设备有严重的异常;
                     event: 事件配置,比如:可以修改条码或去向;可以分析当前条码最近日志和库存等;


                 这些属性如何做成合适的配置模式展现出来,也是一个有点痛苦的过程;
                 
                但是,既然有了想法,胜利的曙光也不远了;

Published on 2020-10-13 11:41

Disclaimers:

This document is written by daizhicun Original published on 大董知识库 ,The copyright belongs to the author。

Log in,More exciting content waiting for you to find,Contribute wonderful answers,Participate in comment interaction

go Sign in! No accountgoregister

All Rights Reserved Powered BY WeCenter V4.1.0 © 2023 京ICP备16065701号