基于Eplan二次开发的电气辅助设计工具集的设计与实现

2021-02-07 04:54袁友汶
仪器仪表用户 2021年2期
关键词:批量画图电气设计

张 旭,姚 璋,袁友汶,黄 鹏

(中国核动力研究设计院 核反应堆系统设计技术重点实验室,成都 610213)

0 引言

随着电气设计行业的发展,计算机软件在现代电气产品的设计制造过程中的作用越来越大。计算机辅助设计(Computer Aided Design,CAD)软件最早应用于机械设计,后逐渐用于电气设计,取代了电气手工绘图。使用计算机软件辅助设计可提高设计效率,减少重复工作,使得设计更加规范,便于优化设计和设计成果的重复使用。同时,该应用也大幅减轻设计人员的工作负荷,减少人因差错的数量。传统的CAD 软件通过绘制简单图形来完成电气原理设计,未赋予电气设备电气属性,后期在进行图样修改、设备命名、线号编制及物料统计时会带给设计人员大量繁琐的工作。随着制造能力的发展和产品设计复杂程度的提高,计算机辅助工程(Computer Aided Engineering,CAE)逐渐取代了传统的CAD 设计。CAE 软件可以更好地满足自动化设计的整体需求,辅助工程项目的整体实施,提供高效的电气设计与管理。

Eplan 软件作为较早被引入国内的专业CAE 软件,在专业设计平台的标准化工作上体现很好的效果,涵盖了大量标准的符号库、部件库和图框等,作为基于数据库的专业电气设计软件,对设计数据进行了统一化管理[1]。但是,面对不同使用者在设计过程中的特殊需求,Eplan 在功能上无法给予完全适合的响应,此时可对Eplan 进行二次开发,增加相应合适的功能。辅助设计工具的开发可以极大地便利设计人员,提高设计效率和质量。本文以几种不同功能需求为例,分别针对自动画图、中断点批量编辑、逻辑仿真交互、快速增加云状图标识和标签标识表自动生成功能,有效地解决了大量重复性、机械性的作业,借助计算机来规避设计人员可能由于疏忽造成的错误。

1 功能需求

基于DCS 电气设计人员日常设计过程中的反馈,自动画图、中断点批量编辑、逻辑仿真交互、快速增加云状图标识和标签标识表自动生成等功能,存在较为强烈的开发需求。

1.1 自动画图

对于一些冗余性较强的系统,其电气图纸中存在大量重复、相似的线路内容。传统的画图方法可以由设计人员在以其他类似已完成项目的图纸基础上进行修改,或手动插入页宏后进行修改,但这样工作量较大,设计人员更希望能够通过自动化的方式,实现格式固定的图纸的生成。应用二次开发的方式,可以更加高效地进行使用页宏,实现自动画图、快速画图的目的[2]。

1.2 中断点批量编辑

Eplan 软件中自带有表格式编辑的功能,能够有效地提高设计效率。表格式编辑是Eplan 中针对批量元件的属性进行修改时提供的快速编辑的功能,使用时可同时选取多个元件,如端子、连接点等在属性列表中进行修改。表格式编辑与Excel 软件同时使用,可充分利用Excel 软件对于表格数据强大的处理能力,将处理好的数据直接粘贴回Eplan 中,实现快速填充。

Eplan 通过中断点在同一页面或不同页面内实现信号的连续,在电气设计中的应用十分普遍。某些页面会通过大量中断点的使用,来避免电气线路的错综交叉。但Eplan对于中断点没有提供表格式批量编辑的功能,当涉及到大量中断点修改时,设计人员的工作会尤为繁琐,因此设计人员对中断点进行批量表格式编辑存在迫切的开发需求。

1.3 逻辑仿真交互

电气设计图纸中包括大量硬件元器件搭接的硬逻辑子模块。Eplan 软件本身不具备仿真运算功能,这为验证硬逻辑电路搭接是否正确带来了困难。对于复杂的硬逻辑功能,设计人员难以在设计过程中及时进行验证。辅助工具可以提供此方面的功能,通过与其他仿真软件的耦合来实现快速逻辑仿真的需求。

1.4 快速添加云状图标识

按照工程设计要求,在进行电气设计图纸升版或变更时需要对修改部分用“云状图”进行标识。设计人员反映在进行云图标识时工作量较大,需要根据修改部分选取合适的区域,增加方框后再修改属性为云状图。若能够开发快速云图编辑工具高效地对待标识区域进行标记,可有效地减轻设计人员负担。

1.5 标签标识表自动生成

在DCS 电气设计的布置图中,主要完成机柜及其内部设备的布置,同时完成设备的标签信息汇总。标签信息主要对机柜内部需要贴标的机箱、模块等设备的标签内容进行详细说明,用于确认机柜中各设备标签详细信息。标签列表通常包含了标签信息和设备描述,所有标签按标签编码顺序从上到下、从左到右依次排列。传统的做法由设计人员根据安装板上布置的设备,按顺序手动填写标签信息,其步骤较为繁琐。如能通过辅助工具读取设备信息后,自动生成标签汇总表,可以有效提高设计效率。

本文以上述需求为例,开发了一套电气辅助设计工具集,覆盖了上述功能需求,体现了Eplan 二次开发技术在电气设计中的应用。

2 功能设计

2.1 自动画图

宏是经常反复使用的部分电路或典型电路方案,是模块化设计的基础数据。在设计过程中,可以将经常使用的电路保存为宏,在未来使用时直接插入宏文件。Eplan 中的宏包括符号宏、窗口宏和页宏,符号宏通常为一个设备,窗口宏可以是一个简单的电路或一个单线或多线设备,页宏则包括了一页或多页的图纸。宏的使用将设计模式由传统的图形化设计改进为模块化设计,有效避免了繁重的重复性工作,节约了设计时间。

自动画图通过调用页宏的方式实现,其步骤如图1 所示,包括:

1)读取输入信息,分析得到图纸的页数和选用的页宏种类。

2)调用页宏,将输入信息填入页宏中的对应元件。

3)删除多余元件,添加缺少的元件。

4)逐页实现图纸的绘制。

其中,采用C#语言编写的插入页宏的代码如下:

Insert i = new Insert();

图1 自动画图工具实现流程Fig.1 Implementation process of automatic drawing tool

i.PageMacro(@"C:UsersPublicEPLAN 宏fan.emp",page, pj, true) ;

自动画图工具可实现在Eplan 环境下,根据提供的输入信息自动调用不同类型的页宏,生成的图表满足项目及规范要求,且支持批量处理功能。

2.2 中断点批量编辑

本文实现了一种中断点批量编辑的工具,对同页面的中断点进行批量表格式编辑,该工具的开发流程如图2 所示。

该功能的入口方式采用右键点击菜单的入口方式,借助Form 控件为框架制作人机界面对话框,供用户操作,如图3、图4 所示。

实现流程及主要功能代码如下:

1)获取选择元件集合代码

SelectionSetss = new SelectionSet();

StorableObject[] SelectedFuns = ss.Selection;

2)筛选中断点代码

if (SelectedFuns[i].GetType().Name == "InterruptionPoint"){……}

结合用户实际使用的情况,用户要填入Form 上的表格控件中的内容多是由MS Excel 软件中复制而来的,如果在Form 控件上直接进行Ctrl+V 操作,会被Eplan 软件误认为用户想要复制图纸的内容,而不是来自Excel 的内容。考虑到Eplan 软件的上述特性,故不能采用Ctrl+V 的方式粘贴,因而设置“粘贴”按钮实现粘贴功能。

选择待粘贴区域的左上角或选择完整的粘贴区域,再点击“粘贴”按钮,此时剪切板上的内容会粘贴到Form 上的表格控件上。用户点击“确认”按钮后,遍历表格控件的每行,获取用户输入的中断点信息,并回填Eplan 图纸中。随后清空中断点信息,结束本次操作。

图2 中断点批量编辑工具实现流程Fig.2 Breakpoint batch editing tool implementation process

图3 中断点批量编辑功能入口Fig.3 Function entry for batch editing of breakpoints

Form 的三列中,“原标识符”不可修改,用于为用户直观地对应每个元件。新标识符默认填充原标识符相同的信息,可以修改。连接点描述信息对应中断点的连接点描述属性,该属性也是常用的填充属性之一。新标识符和连接点描述信息在点击确认后,会填入Eplan。

2.3 逻辑仿真交互

借助Simulink 等仿真软件或自研的仿真逻辑运算程序,可实现逻辑仿真交互功能。为了实现和仿真软件的对接,应对Eplan 二次开发两种功能,即导出硬逻辑信息的功能和与仿真程序数据交互的功能。

2.3.1 导出硬逻辑信息的功能

导出信息包括元部件信息、连接线信息,见表1、表2。

2.3.2 与仿真程序交互数据功能

利用进程间通信技术,实现两个软件的数据交互。如图5 所示,采用共享内存的方法,二者共同维护共享内存的数据,实现输入数据的赋值和输出数据的读取。

图4 中断点批量编辑界面Fig.4 Batch editing interface of breakpoints

图5 仿真程序数据交互示意图Fig.5 Simulation program data interaction diagram

图6为Eplan 中通过继电器搭接的逻辑“与”电路,与仿真程序交互后,可在图中K1、K2 和300UM 元件旁直接看到逻辑运算结果。

2.4 快速添加云状图标识

本文实现了一种快捷工具可以对图纸中修改部分进行云状图标识,流程图如图7 所示。

实现流程及部分代码如下:

1)获取选中元件集合

StorableObject[] SelectedFuns = ss.Selection;

2)遍历各元件位置坐标

foreach (StorableObject f in SelectedFuns){……}

3)按类别获取元件位置坐标

if (f.GetType().Name == "InterruptionPoint"){

x = ((InterruptionPoint)f).Location.X;

表1 元部件信息表Table 1 Component information table

表2 连线信息表Table 2 Connection information table

图6 逻辑“与”电路Fig.6 The circuit of logical "and"

y = ((InterruptionPoint)f).Location.Y;

}

else if (f.GetType().Name == "Text"){

x = ((Text)f).Location.X;

y = ((Text)f).Location.Y;

}

else if (f.GetType().Name == "Function"){

x = ((Function)f).Location.X;

y = ((Function)f).Location.Y;

}

4)插入矩形,修改线型

Rectangle rec = new Rectangle();

rec.Create((Page)ss.Document);

Pen pen = new Pen();

pen.ColorId = Color.Id.Green;

pen.StyleId = 41;

rec.Pen = pen;

图7 快速增加云状图工具实现流程Fig.7 Implementation process of rapidly adding cloud graph tool

图8 标签标识表自动生成实现流程Fig.8 Implementation process of automatic generation of label identification table

图9 自动生成的标签标识表Fig.9 Automatic label generation table

2.5 标签标识表自动生成

本文实现了一种快捷工具可以自动生成标签标识表,流程图如图8 所示。

获取布置图中元件的名称的代码如下:

foreach (ArticleReference a in f.ArticleReferences){

string name = (a.IdentifyingName.Contains("-")) ?a.IdentifyingName.Split('-')[1]: a.IdentifyingName;

……}

该工具自动生成的标签标识表如图9 所示。

3 总结

针对电气设计软件Eplan 的二次开发可以有效地解决软件在实际项目中的不足。本文使用C#语言编写了动态链接库格式的函数库,通过Eplan 中的API 接口加载运行,设计并实现了几种辅助设计工具,针对DCS 系统电气设计中的实际问题而开发,几种辅助工具的应用均取得了良好的效果。

猜你喜欢
批量画图电气设计
建筑电气设计常见问题解答
怎样画图
批量提交在配置分发中的应用
画图比多少
画图理解“同样多”
节能技术在民用建筑电气设计中的应用
画图理解“多多少”
对民用建筑电气设计节能措施的几点探讨
在数控车床上批量钻铰孔类工件的实践
浅析BIM电气设计