张 旭,刘明明,刘全东,金兴连,高 楠,李尉弘
(中国核动力研究设计院 核反应堆系统设计技术重点实验室,成都 610213)
当前传统的电气设计软件已满足不了人们的工作需求,在传统软件的基础之上,对软件进行二次开发成为了核心研究内容。二次开发后的软件不同于传统软件,它的研究重点在于如何最大可能地实现自动化,并且在哪些模块方面可以进行二次工具的开发和使用。伴随着人们设计项目的增多、工作量的增大,二次开发软件所带来的速度和效率成为软件自动化发展的必然趋势。使用自动化软件能完成许多手工设计问题,正确、合理地实施自动化,能快速地进行设计,从而提高工作效率,缩短产品的设计周期。同时,自动化工具也会排除一些人为所带来的因素,如遗漏或填错某个信号端子等。在多次进行项目设计的情况下,自动化工具不需要人们每次都重复相同的过程。自动化工具一旦建立起来,可以多次迭代使用,设计人员也会从繁重的任务中解脱出来,从而,他们可以投入大量的时间和精力进行下一个设计。同时,自动化软件也可以对设计过程中出现的结果进行一定的检查。一旦实现了软件自动化,就可以比人工设计更快地进行工作。
鉴于当前核电项目设计的严谨性与任务的繁重度,硬件设计人员手工设计已经无法满足当前需求,所以对电气硬件图纸中涉及的常用表格生成、图纸检查等部分项目进行二次开发,采用自动化代替人工操作方式可以更好地完成设计任务和设计质量。目前,DCS 硬件设计采用的是Eplan 软件,因而本文研究的核电厂DCS 硬件设计辅助系统会基于Eplan 软件进行。
Eplan 作为电气计算机辅助设计软件,其强大的设计功能及标准化数据库,多年来已被业内人士所认可。Eplan软件支持不同的电气标准,如IEC、DIN 等,且都对应相应的标准符号库。同时也提供了各种标准模板,各种图表可以自动生成,如端子接线图、物料清单等。每条记录的详细属性都可以反映在图表中,一旦在原理图中做了修改,只需要刷新表格就可以更新数据,不需要手动修改,保证了数据的准确性。在电气设计过程中,对应相同类似的项目,只需要修改一些相关的项目数据,如项目名称、编号、用户信息,就可以成为新项目的图纸,可以避免项目的重复修改。
相关领域国内外已有一些研究成果,国内如发明专利“基于Auto CAD的二次电气原理图的自动生成方法”,公开了一种基于Auto CAD的二次电气原理图的自动生成方法[1],将二次电气原理图按CT电流回路、控制回路、开关柜辅助回路、PT电压回路、其它辅助回路5大类进行分类,建立二次电气原理图选型表,进而实现二次电气原理图的自动生成;发明专利“一种用于自动绘制电气图的方法”[2],先确认一个数据库是唯一的组态依据和根本并且可更新,并根据所述数据库生成出不同类型的电气图。国外有如专利“System for automatically-drawing single line diagram based on substation organizing language, has electric power substation included with configuration information, and drawing part automatically inputting point mapping information”[3],实现了变电所配置信息、绘制部分自动输入点映射信息的基于变电所组织语言的单线图自动绘制系统。
目前,尚未有主流的针对核安全级仪控系统的特点设计的基于Eplan 软件的电气设计辅助软件。因此,二次开发技术应用于核安全级仪控系统电气设计具有重要的意义。
图1 Eplan二次开发技术路线图Fig.1 Eplan Secondary development technology roadmap
选取硬件设计图纸中数量最多、规律性最强的两部分图纸,即IO 部分图纸和供电部分图纸,开发自动出图功能。自动出图的主要研究内容是基于当前已知的输入信息或从其他方案中得到的基本信息,通过电气辅助系统读取,按照制图原则来自动生成所需图纸。
自动出表是指在Eplan 环境下自动生成各种条件要求的表格清单电气辅助工具,自动从机柜的硬件设计图纸图中读取满足专业要求和施工要求的清单,支持的表格清单类型有:“端接清单”“网络连接清单”“柜间电缆清单”“系统对外接口表”以及“Eplan 回填IO 清单”功能等。
通过调用电气辅助工具集中的API 函数,不需要在Eplan 中增设额外设置,正常的硬件设计图纸图即可进行出表操作,生成的图表表达方式满足项目及规范要求,且支持批量出表功能,以提高设计质量和效率。
工程项目的绘图人员众多,即使有明确的制图规范,也难免在个别情况下出现失误,将信息填错位置或格式不符合规范。图纸检查功能实现批量查找绘图中不规范之处,供设计人员查询修改,提高图纸的规范性与准确性。
自动批量修改主要指“机柜号整体修改功能”“跨机柜位置盒名称修改功能”。现有的Eplan 软件只能对图纸进行手动修改处理,不能实现自动化批量修改,若要处理多个项目图纸需要制图人员进行逐个编辑、修改,工作量巨大,耗费大量的时间,而Eplan 的自动批量修改辅助插件提供自动修改柜号、修改文件名及位置盒名称等功能,实现图纸自动批量修改处理。
图2 加载软件后的菜单栏Fig.2 Menu bar after loading the software
如图1 是Eplan 二次开发技术路线框架图。Eplan 软件可接收指定格式的动态链接库(*.dll)的形式的函数库加载,因而,可通过为Eplan 软件开发函数库的方式,将功能函数编译为动态链接库的形式,并加载到Eplan 入口点函数库,在Eplan 软件界面上以按钮的形式呈现。在执行具体功能时,使用触发式机制调用动态链接库,即在制图人员使用过程中,点击相应的功能按钮即可。流程如图1所示,制图人员调用用户加载的函数库,作用于Eplan 工程文件,在其中读取、增加或修改内容。向Eplan 工程文件中读取、增加或修改内容,分别为自动导出数据表格、自动绘图、批量修改检查图纸提供了技术层面的支持。如读取Eplan 工程文件内容后,可将信息汇总、整理并写入内存数据中,进而可导出各种格式的物理文件。
二次开发过程需引用Eplan 软件自带的基本动态链接 库Eplan.EplApi.Base、Eplan.EplApi.MasterData、Eplan.EplApi.DataModel 等链接库,可使用C#、VB 等语言。以C#语言为例,引用动态链接库的方法如下:
using Eplan.EplApi.DataModel;
using Eplan.EplApi.Base;
using Eplan.EplApi.MasterData;
公有类AddInModule 继承Eplan.EplApi.ApplicationFramework.IEplAddIn, 包 含OnInitGui、OnInit、OnRegister、OnUnregister、OnExit 等函数。
OnInitGui 函数负责初始化“工具”下拉条最下方的按钮入口与右键菜单入口;OnRegister 函数中可通过AddMainMenu 方法添加菜单栏中的按钮。上述添加按钮的方式为执行实际功能的函数提供了触发机制,即可通过按钮指向实际的功能函数的入口,再由所指函数执行具体所需的功能。OnInitGui 或OnRegister 的AddMenuItem 方法的参数中包括了具体指向功能的注册名称,该名称与具体功能的类文件中的OnRegister 函数的引用参数Name 一致,保证了点击某个按钮可执行相应的功能。OnUnregister 实现卸载链接库时,将按钮从界面删除的功能。
如前文所述,利用Eplan 自带的API 函数接口,可构建后台函数库与用户界面的关系。在加载函数库时,只需要点击“工具”—“API 插件”—“加载”,然后找到该动态链接库,点击“确定”即可。本文的研究通过在OnRegister 函数中增加菜单栏按钮的方式,增加“自动画图”“自动出表”“修改与检查”3 个按钮,并在每个按钮中增加了一系列的具体功能按钮,当点击上层按钮时出现。每种具体功能可通过点击某个按钮进入执行函数,该函数作为点击事件函数与加载的动态链接库中的函数之间的桥梁。
项目中的端子有三类,分别是:PLC 端子、普通端子、汇流条,信息填写规范如下:
1)PLC 端子
PLC 端子默认二线制,需在主端子元件属性“连接点描述”“地址”“功能文本”“安全等级 有且仅有主端子填写信息,副端子不需填写,否则生成的信息可能会出错。副端子的名称由主端子推知,如主端子号为1,则副端子号为2,若主端子号为1A,则副端子号为1B。 PLC 端子的特殊情况是非二线制PLC 端子。 非二线制PLC 端子(如热电阻端子)的识别方法是,如果“备注”中填写了包含“&”和“,”的字符,则认为是非二线制端子。具体填法是“A1,B1,A2,B2&I1+,I-,V+,V-”,表示端子是A1,B1,A2,B2 其极性从前到后依次对应I1+,I-,V+,V-,中间使用英文逗号分隔。 2)普通端子与汇流条 普通端子需要填写“显示设备标识符:(D)”“信号名称”“信号描述”“地址”“信号类型”“安全等级”“信号端子管脚号”“信号极性(端子属性)”,其中“信号端子管脚号 当出现跨端子排时,在“信号端子管脚号”中应填写“GF611&1,GF612&1”的形式,使用英文逗号分隔。填写了去向和端子号的端子才会出现在端接清单中,该信息未必要填在主端子上,可选择任意一个端子。对于跨端子排的情况,原端子排属性处填的信息无效。 端接清单用于体现DCS 系统与第三方的接口信息,图4 是自动生成的端接清单示例。 图3 信息填写示例Fig.3 Example of information filling 图4 自动生成端接清单示例Fig. 4 Example of automatically generating a termination list 图5 自动生成柜间电缆示例Fig.5 Example of automatic generation of cabinet cable 图6 自动生成图纸示例Fig.6 Example of automatically generating drawings 柜间电缆清单用于体现DCS 系统内各机柜间的信号连接关系。图5 是自动生成的柜间电缆示例。 图6 是根据IO 分配清单及机柜供电信息文件自动生成的图纸。 在软件系统实际使用过程中,发现一些工程设计人员容易出现的错误。这些错误既可能导致图纸的不规范,又可能影响软件正常运行。比如,由设计人员的输入信息自动绘制图纸的过程中,不同设计人员对同一类机柜的名称有些使用的是首字母大写,有些是全大写或其它情况,如果软件不加判断处理,则可能出现图纸不规范的情况。对于由人工绘制的图纸制作表格清单的过程中,如果软件只按照绘图规范的命名形式,如全大写,如果某些绘图人员使用的是首字母大写的命名形式,则可能出现软件从图纸中获取信息不全的情况。另外,在考虑软件容错性时,比如前文所述端子号与端子属性分别应该用逗号隔开,形如“A1,B1,A2,B2&I1+,I-,V+,V-”,如果出现两个属性的数量不一致的情况,例如“A1,B1,A2,B2&I1+,I-,V+”,软件应做容错处理,避免存储空间数量大于实际内容的情况,产生严重的错误。3.4 实施效果
4 总结和改进