zoukankan      html  css  js  c++  java
  • C#进行Visio二次开发之电气线路停电分析逻辑

    停电分析,顾名思义,是对图纸进行停电的逻辑分析。在电气化线路中,一条线路是从一个电源出来,连接着很多很多的设备的,进行停电分析,有两个重要的作用:一是看图纸上的Shape元件是否连接正常,二是看哪些设备有电无电。通过给有电的设备一种颜色(如绿色),无电的设备一种颜色(如红色),那么就可以很明显地看到通电的不同变化。
    对一张Visio绘制的电气线路图,我们如何进行停电分析呢?下面我们看看相关的序列逻辑先。
    PowerCutClass.jpg

    在上面的序列图中,主要实现了这样的思路:
    停电分析是通过保存设备相关连接信息到数据库,以电源(如飞达)为起点,对设备信息进行线路的拓扑分析,把分析保存到数据库中,然后获得拓扑模型中有电的设备,对图纸的设备颜色进行更新(有电为绿色,无电为红色),如果撞电,则恢复所选开关的颜色。

    PowerCutEquipment.jpg

    由于以上的关系表,只是对一个飞达进行了线损模型分析,因此只会存在一个-1即飞达的情况,其他ID都是和该飞达相关联的下游设备ID;如果我们找到每一个的设备ID和其父ID(上游设备ID)即满足要求。

    Equipment为设备的IDConnectionShapes为关联的设备ID集合

     

    1、  先在ConnectionShapes寻找有-1Equipment

    得到下列模型:

     

    ID

    PID

    1

    -1

     

    2、  下面再找1下游设备;在关系表中寻找Equipment=1ConnectionShapes有那些关联设备,发现有-12-11的上游设备,不能使用,因此剩下2,得到如下表。

    ID

    PID

    1

    -1

    2

    1

     

    3、  继续找2的下游设备;发现2138710和其关联,12的上游设备,不能使用,剩下的列出来。

    ID

    PID

    1

    -1

    2

    1

    3

    2

    8

    2

    7

    2

    10

    2

     

    4、  依次对38710进行分析,得到以下数据,下面先对3下游设备进行分析

    ID

    PID

    1

    -1

    2

    1

    3

    2

    8

    2

    7

    2

    10

    2

    4

    3

    11

    3

     

    继续对411进行分析,先对11进行分析,发现11只有3相连,3为上游设备,结束;

    再对4进行分析,如下。

    ID

    PID

    1

    -1

    2

    1

    3

    2

    8

    2

    7

    2

    10

    2

    4

    3

    11

    3

    5

    4

    12

    4

     

    继续对5、和12进行分析,先对12进行分析,发现12只有4相连,4为上游设备,结束;对5进行分析,如下。

    ID

    PID

    1

    -1

    2

    1

    3

    2

    8

    2

    7

    2

    10

    2

    4

    3

    11

    3

    5

    4

    12

    4

    6

    5

     

    继续对6进行分析,有13相连;继续分析13下游设备没有,结束,得到如下。

    ID

    PID

    1

    -1

    2

    1

    3

    2

    8

    2

    7

    2

    10

    2

    4

    3

    11

    3

    5

    4

    12

    4

    6

    5

    13

    6

     

    5、  继续第上面步骤的分析,上面说到2下游设备有38710,还有8710没有分析,对8下游设备继续分析。

    ID

    PID

    1

    -1

    2

    1

    3

    2

    8

    2

    7

    2

    10

    2

    4

    3

    11

    3

    5

    4

    12

    4

    6

    5

    13

    6

    9

    8

     

    9继续分析

    ID

    PID

    1

    -1

    2

    1

    3

    2

    8

    2

    7

    2

    10

    2

    4

    3

    11

    3

    5

    4

    12

    4

    6

    5

    13

    6

    9

    8

    15

    9

    16

    9

    17

    9

    18

    9

    继续分析15161718发现没有下游设备,结束。

    根据上面的分析结果,我们就可以得到线路的拓扑树状图,即一个倒立的树,分析的存储结果为下图所示。
    PowerCutModel.jpg

    其中关键的ID、PID是用来在树之间漫游的,LoginIP用来区分不同用户的分析结果,BelongTo在多个电源通电的时候,区分不同的电源(即构造几颗倒立的树),其他信息用作辅助。注意:断开的开关,看成是树的分支终点。构造模型的时候不会记录该开关设备的信息,分析的时候会自动断层。

    最后附上分析的结果,红的红,绿的绿,多好看,哈哈
    PowerCutResult.jpg
    主要研究技术:代码生成工具、会员管理系统、客户关系管理软件、病人资料管理软件、Visio二次开发、酒店管理系统、仓库管理系统等共享软件开发
    专注于Winform开发框架/混合式开发框架Web开发框架Bootstrap开发框架微信门户开发框架的研究及应用
      转载请注明出处:
    撰写人:伍华聪  http://www.iqidi.com 
        
  • 相关阅读:
    ASCII对应码表-键值(完整版)
    node.js中使用路由方法
    关于vscode自动跳转回车的解决方法(关闭vscode自动保存功能;可能和其他插件有冲突)
    js中 !==和 !=的区别是什么
    spring 请求参数和路径变量
    PowerShell因为在此系统中禁止执行脚本解决方法
    SQL server 2008数据库的备份与还原(亲测,效果良好)注意采用单用户模式呀
    webpack-dev-server提示css模块解析失败,但已经装了css-loader
    webpack集成vue单文件模式的很多坑(研究了1个星期)
    npm全局模块卸载及默认安装目录修改方法
  • 原文地址:https://www.cnblogs.com/wuhuacong/p/1217348.html
Copyright © 2011-2022 走看看