齐桂卿 李海寿 刘鸿雁 李 健 海洋石油工程股份有限公司设计院 天津 300451
AVEVA Instrumentation软件(以下简称为AI)包括Engineer、Designer、Wiring Manager、Security Manager及Process Engineer五个功能模块,它们共享底层数据库。其中AI Engineer处于仪控系统设计流程的最顶端,其在整个仪控设计中起到承上启下的作用,对外可同AVEVA Diagrams、AVEVA Engineering进行数据交互,对内向AI软件的其它模块分发共享数据。本文从应用层面围绕AI Engineer的数据交互功能开发、仪表索引表/数据表的定制方法进行探讨与阐述。
在设计过程中,仪控专业同工艺、管道、电气、安全等专业交互众多[1],其中最为典型的是仪表索引表/数据表同PID之间的数据交互。传统的设计模式是:设计人员基于PID或工艺数据手动录入完成,而AVEVA系列软件通过各专业软件之间的交互,实现工艺PID图面数据的自动获取并映射至AI软件中。仪控专业典型数据交互场景见图1。
图1 仪控设计典型数据交互场景
创建标准数据库是应用AI软件开展设计的基础工作之一,在Engineer模块或与AI进行数据交互的软件中,仪表位号命名规则和属性库的标准化定义是前置条件。
仪表位号是围绕仪表进行数据交互的重要索引,命名规则本质上是对仪表位号格式(Tag Format)的约束,AI Engineer支持设计人员基于Tag Code定义自己的位号格式,只有Area和InstrumentList中的属性可以作为Tag Code使用。位号命名规则必须遵循全设计周期统一性原则,位号格式须按照跨专业、跨软件统筹考量,组成位号的每个Tag Code在不同专业、不同软件之间有统一的认知与定义。海上石油平台仪表位号定义遵照企标Q/HS 5069-2019执行,见图2。
图2 典型仪表位号命名格式
其中,设备代号、序列号和后缀在AI Engineer均为InstrumentList中的系统定义属性,单体代号、系统代号可在InstrumentList中自行定义,也可调用所在AREA的属性。为兼顾AI Wiring Manager模块中设备树创建和数字化交付的需求,选择后者,以Area为单体代号,Sub Area为系统代号。
对于Tag Code的选取,建议选用AI软件中已定义的默认属性,减少自定义属性的使用,以充分发挥AI软件中对这些属性预设的底层逻辑关系。
AI Engineer以仪表为核心,通过属性承载仪表特性,通过在Report中引用属性值实现成果文件的输出。AI Engineer中的仪表属性可分为InstrumentList、ProcessData和InstrumentData三类。如前所述,参与位号格式的属性项必须在InstrumentList中创建,除此之外,通用性较强的属性(如仪表清单、IO清单所涉及的属性)通常也在InstrumentList中创建;而仪表数据表涉及的其它属性项可在ProcessData和InstrumentData中创建。需要注意的是,ProcessData和InstrumentData属于以不同的对象类型存储,可以设置不同的访问权限。
AVEVA系列软件中的Diagrams、Engineering和E3D基于DBCON数据库,AI基于SQL数据库,这些专业软件两两之间均可进行数据交互。从实际应用及软件定位看,Engineering更多的是作为数据中台实现数据交互的功能,在实际开发中也按该思路在Engineering中开展了大量工作。
与Engineering配套的基础工作包括:工程对象属性UDA定制,工作报表界面定制,输出报表模板定制属性传递匹配规则[2],以及Pseudo属性的赋值逻辑开发。
上述大部分工作属于AVEVE Engineering定制开发及基本操作的范畴,本文不展开论述,仅以IO类型为例,简述Pseudo属性赋值开发逻辑,见图3。IO类型可以基于Tag Code中的设备代号在Engineering中进行赋值,并通过属性映射将其传递至AI Engineer中。
图3 仪表IO类型赋值逻辑开发
除IO类型外,还进行了仪表类型、接线规则等属性赋值逻辑的开发,极大地减少了设计人员的录入工作量。
AI Engineer中会创建大量属性,包括交互属性和非交互属性,并支持开发人员对属性是否参与数据交互进行选择。在Instruments List界面下,通过Manage→Instruments-Integration→Fields进行选取,见图4。
图4 交互属性的选择
完成上述配置后,即可在AI Engineer中通过Project->Setup->Import Configuration进行映射关系配置,见图5。
图5 属性映射关系的创建
从图5可以看出,不同软件中的字段名有明显差异,从创建映射关系的可读性、便捷性考虑,建议对不同软件中的属性描述进行统一。
在AI Engineer中,默认的Lists模块Instruments是所有位号的全集,AI Engineer通过配置所显示属性并设定过滤条件,支持设计人员按需定制Grid Views。建议设计人员以成果文件需求进行定制,以海洋石油平台仪控系统为例,定制的清单见图6。
图6 清单类视图的创建
设计人员可以基于所定制的Grid Views导出Excel文件,或用Quick Report功能输出清单类文件,但两种方式均有一定的局限性,通常需设计人员进行二次加工,如调整页码、增加封皮等,为突破这种局限性,可借助Report功能实现。
在AI Engineer中可实现基于特定对象(如仪表、回路等)Report定制,不同于Grid Views中直接勾选要显示的属性项,Report定制是通过Report Designer工具进行属性项的选取并预设其输出格式见图7;其过滤条件的设置方法则同Grid Views基本一致。换言之,Report定制功能在Grid Views的基础上,借助Report Designer工具实现了文件格式排版。与此同时,在开发中实现了文件封皮及IO统计信息的定制,实现了成果文件一键生成,无需设计人员进行任何二次加工。
图7 清单文件模板定制
需要注意的是,Report是只读的,设计人员无法在Report中对仪表属性进行编辑,也无法代替Grid Views使用,建议设计人员统一Grid Views和对应Report过滤条件,借助前者开展属性的录入工作,后者则仅用于实现输出成果文件的“所见即所得”。
设计流程上,仪表索引表先于数据表,待仪表索引表完成后,方可进行仪表数据表的设计工作[3]。仪表数据表生成流程见图8。左侧为开发定制过程,右侧为设计人员使用过程。限于篇幅,本文仅展开定制过程,使用过程可参见操作手册。
图8 仪表数据表定制及生成流程
创建模板实际上就是创建一个Excel版的仪表数据表,包括封皮、汇总页及仪表数据表单等,并存放在制定的模板存储路径下,该路径可以在项目初始阶段设置。
在Engineer Catalogues模块中,Home->Select ->Datasheet Forms中新建一个数据表,选择所创建的模板,在弹出窗口中Form Types选择DataSheet,然后如图9所示,其中Max No.of Tags定义了单个模板文件中的仪表位号数量,Spreadsheet Layout用于定义模板中的行列范围。
图9 创建数据表模板
仪表数据表的属性链接通过为模板中的单元格创建datalink实现,见图10。通过该机制,不管是在仪表索引表中已经赋值的属性,还是通过数据交互从其它软件赋值的属性,均可以直接赋值到所Link的单元格,避免设计人员重复录入,实现数据赋值的“以一贯之”。
图10 基于数据表模板进行属性链接
可通过预设属性值的Pick Lists功能提高属性值的规范性、一致性,模板中的单元格关联属性后,还可以选取预定义的Pick Lists,设计人员开展工作时,以下拉菜单形式直接选取,有效规避手动录入时的笔误。
在开发过程中发现,AI软件一旦通过数据交互或表格导入获取数据,会屏蔽掉AI软件本身一些很实用的功能,如根据Function Code预设对应的仪表类型、IO类型等,导致这部分预设的开发工作前移至上游软件,这也正是在AVEVA Engineering中进行了较多开发的原因所在。
在AI软件中,所有的设计数据只需要定义或修改一次,能够在不同的设计文件中保证设计数据的一致性[3]。数据交互功能的开发,确保了专业内或不同专业间以及不同设计软件之间的协同配合,同时也统一了设计风格及深度,提高了成果文件的标准化程度,极大提升了设计效率和质量。