博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#进行Visio二次开发之电气线路停电分析逻辑
阅读量:7090 次
发布时间:2019-06-28

本文共 1632 字,大约阅读时间需要 5 分钟。

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

对一张Visio绘制的电气线路图,我们如何进行停电分析呢?下面我们看看相关的序列逻辑先。

PowerCutClass.jpg

在上面的序列图中,主要实现了这样的思路:

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

PowerCutEquipment.jpg

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

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

1、  先在ConnectionShapes寻找有-1的Equipment

得到下列模型:

 

ID

PID

1

-1

 

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

ID

PID

1

-1

2

1

 

3、  继续找2的下游设备;发现2有1、3、8、7、10和其关联,1是2的上游设备,不能使用,剩下的列出来。

ID

PID

1

-1

2

1

3

2

8

2

7

2

10

2

 

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

ID

PID

1

-1

2

1

3

2

8

2

7

2

10

2

4

3

11

3

 

继续对4、11进行分析,先对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下游设备有3、8、7、10,还有8、7、10没有分析,对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

继续分析
15
16
17
18
发现没有下游设备,结束。

根据上面的分析结果,我们就
可以得到线路的拓扑树状图,即一个倒立的树,分析的存储结果为下图所示。
PowerCutModel.jpg
其中关键的ID、PID是用来在树之间漫游的,LoginIP用来区分不同用户的分析结果,BelongTo在多个电源通电的时候,区分不同的电源(即构造几颗倒立的树),其他信息用作辅助。注意:断开的开关,看成是树的分支终点。构造模型的时候不会记录该开关设备的信息,分析的时候会自动断层。
最后附上分析的结果,红的红,绿的绿,多好看,哈哈

PowerCutResult.jpg

本文转自博客园伍华聪的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
CentOS中文件夹基本操作命令
查看>>
VS2008 Project : error PRJ0019: 某个工具从以下位置返回了错误代码: "正在执行生成后事件..."解决方案...
查看>>
js判断图片是否存在,并做处理
查看>>
windows xp 创建 Oracle(11G)数据库实例时写入系统日志失败解决方案
查看>>
菜鸟学SSH(十)——Hibernate核心接口
查看>>
转 JavaScript 实现简单的双向数据绑定
查看>>
Fiddler2汉化版使用说明
查看>>
未在本地计算机上注册 microsoft.jet.oledb.4.0 提供程序
查看>>
判断当前运行的平台
查看>>
checkbox 多选框 :jquery之全选、全不选、反选
查看>>
触摸屏
查看>>
ADO.net的学习
查看>>
AIX 中 Paging Space 使用率过高的分析与解决
查看>>
webservice 测试窗体只能用于来自本地计算机的请求
查看>>
Java 中队列的使用
查看>>
再见 2014,你好 2015
查看>>
13 SELECT 以外的内容
查看>>
存储过程分页
查看>>
Mongodb启动命令mongod参数说明
查看>>
第6章 数组----遍历数组(使用二维数组输出一个3行4列且所有元素都是0的矩阵)...
查看>>