DEXPI 是过程控制行业的数据交换标准,它基于信息模型构建的。本文介绍DEXPI 1.3 规范中的信息模型。该标准共有1200多页,非常复杂。作为学习,建议同时阅读1.0 版本(284页),其中有更多的描述和解释。不过1.0版本与1.3 有很多区别。
DEXPI 信息模型
- DEXPI 是过程控制行业的信息模型,它不仅仅是P&ID 图形符号的标准。
- DEXPI的符号格式采纳了Proteus XML 方案。
- 所有DEXPI 类是ISO 15926 的类
- DEXPI 是建立在诸多国际标准之上的规范。
DEXPI 模型中会使用数据字典、数据库的数据,主要的包括:
DEXPI 沙盒 RDL 是符合 ISO 15926 标准的参考数据库 (RDL)。它为 DEXPI P&ID 规范使用的类提供定义。
多个标准交织在一起,显得比想象的繁琐。
DEXPI 沙盒 - DEXPI 沙盒
DEXPI 沙盒 - DEXPI 沙盒
UML 模型
DEXPI 信息模型基于UML 的类(class)模型。DEXPI 是从工程的视角构建P&ID 中呈现的对象,而不是从图形的角度构建的图形模型。也就是说,它包含的不仅是图形,而且包含了大量的工程信息模型(反应釜的图形和管道)还包括了温度,温度的单位,值等等工程信息。
通用属性(GenericAttribute)
类中包含了属性(attributes) 在DEXPI 中称为通用属性(GenericAttribute)。例如
<GenericAttributes Number="3" Set="DexpiAttributes">
<GenericAttribute Name="TagNamePrefixAssignmentClass" Value="AN" Format="string" AttributeURI="http://sandbox.dexpi.org/rdl/TagNamePrefixAssignmentClass" />
<GenericAttribute Name="TagNameSequenceNumberAssignmentClass" Value="43" Format="string" AttributeURI="http://sandbox.dexpi.org/rdl/TagNameSequenceNumberAssignmentClass" />
<GenericAttribute Name="TagNameSuffixAssignmentClass" Value="" Format="string" AttributeURI="http://sandbox.dexpi.org/rdl/TagNameSuffixAssignmentClass" />
</GenericAttributes>
物理量(Physical Quantity)
<GenericAttribute
Name=”InsulationThickness”
AttributeURI=”http://data.posccaesar.org/rdl/RDS4238040”
Value=”80”
Format=”double”
Units=”Millimetre”
UnitsURI=”http://data.posccaesar.org/rdl/RDS1357739”/>
DEXPI 沙盒 RDL 是符合 ISO 15926 标准的参考数据库 (RDL)。它为 DEXPI P&ID 规范使用的类提供定义。
包和模型(Package and Model)
包是成员的命名空间,在DEXPI中,使用包(package)作为元素的容器。构建信息模型的结构。DEXPI信息模型包含了11个包。
-
DexpiModel 包
-
metaData包
-
PlantModel包
-
Equipment包
-
Pipling包
-
Instrumentation包
-
Customization包
-
Enumerations包
-
PhysicalQuantities包
-
Graphics包
-
DataTypes包
下面我们介绍其中的一部分信息模型
Dexpi 包
Dexpi 包包含了两个类:
- DexpiModel
- ConceptualModel
概念模型(ConceptualModel)
InstrumentationLoopFunctions
PipingNetworkSystem
元数据(MetaData)
工厂结构包(PlantStructure)
设备包(Equipment)
包含了过程控制工程中的标准设备。
设备的图形符号
ISO 10628标准规定了图形。
ISO 10628-1:2014
化学和石油工业的图形(Diagrams for the chemical and petrochemical industry)。
ISO 10628-2
管道包(Piping )
管道网络系统(PipingNetworkSystem)
管道网络段(PipingNetworkSegment)
仪器包(Instrumentation)
过程控制功能 (ProcessControlFunction)
ActuatingElectricalFunction
过程仪表功能(ProcessInstrumentationFunction)
与过程工程相关的控制结构需求。
图形包(Graphics )
P&ID 最基本的是图形,DEXPI 1.2 之前,没有包含P&ID 的图形格式,只是指明采纳Proteus (Proteus Schema),在DEXPI1.3 中,包含了图形的模型。
通用的属性
在类中有一些通用的属性,它们包括:
扩充(Extent )
描述图形的原点和大小
<Extent>
<Min X="20.000212222222288" Y="-16.248657555555496" Z="0" />
<Max X="20.000212222222288" Y="58.748370222222263" Z="0" />
</Extent>
坐标(Coordinate)
描述图形的坐标点
例如:
<Line>
<Presentation LineType="Solid" R="0" G="0" B="0" LineWeight="0.499999" />
<Extent>
<Min X="20.000212222222288" Y="-16.248657555555496" Z="0" />
<Max X="20.000212222222288" Y="58.748370222222263" Z="0" />
</Extent>
<Coordinate X="20.000212222222288" Y="-16.248657555555496" Z="0" />
<Coordinate X="20.000212222222288" Y="58.748370222222263" Z="0" />
</Line>
表示了线的两个点的坐标 。
比例尺(Scale)
规定缩放比例。
<Scale X="1" Y="1" Z="1" />
文字(Text)
<Text String="P4711" Font="Calibri" Height="4.5" Width="0" Justification="CenterCenter">
<Presentation R="0" G="0" B="0"/>
<Position>
<Location X="84" Y="152.765" Z="0"/>
<Axis X="0" Y="0" Z="1"/>
<Reference X="1" Y="0" Z="0"/>
</Position>
<TextStringFormatSpecification>
<ObjectAttributesReference ItemID="CentrifugalPump-1" DependantAttribute="TagName" DependantAttributeContents="Value"/>
</TextStringFormatSpecification>
</Text>
标签(Label)
<Label ID="EquipmentTagNameLabel-3" ComponentClass="EquipmentTagNameLabel" ComponentClassURI="http://sandbox.dexpi.org/rdl/EquipmentTagNameLabel">
<Text String="P4711" Font="Calibri" Height="4.5" Width="0" Justification="CenterCenter">
<Presentation R="0" G="0" B="0"/>
<Position>
<Location X="84" Y="152.765" Z="0"/>
<Axis X="0" Y="0" Z="1"/>
<Reference X="1" Y="0" Z="0"/>
</Position>
<TextStringFormatSpecification>
<ObjectAttributesReference ItemID="CentrifugalPump-1" DependantAttribute="TagName" DependantAttributeContents="Value"/>
</TextStringFormatSpecification>
</Text>
</Label>
圆(Circle)
例如:
<Circle Radius="7.5">
<Presentation LineType="0" LineWeight="0.3" R="0.501960784" G="0" B="0"/>
<Position>
<Location X="0" Y="0" Z="0"/>
<Axis X="0" Y="0" Z="1"/>
<Reference X="1" Y="0" Z="0"/>
</Position>
</Circle>
圆弧(CircleArc)
颜色(Color)
画笔线形(DashStyle)
图(Diagram)
椭圆(Ellipse)
例子:
<Ellipse PrimaryAxis="9.999979999999999" SecondaryAxis="9.999979999999999">
<Presentation LineType="Solid" R="0" G="0" B="0" LineWeight="0.249999852777778" />
<Extent>
<Min X="-2.6049830794028237" Y="-4.9994553111111095" Z="0" />
<Max X="7.3949969205971753" Y="5.0005246888888895" Z="0" />
</Extent>
<Position>
<Location X="2.3950069205971758" Y="0.00053468888888995314" Z="0" />
<Axis X="0" Y="0" Z="1" />
<Reference X="1" Y="0" Z="0" />
</Position>
</Ellipse>
椭圆弧(EllipseArc)
填充类型(FillStyle)
图形元素(GraphicalElement)
基本图形(GraphicalPrimitive)
点(Point)
折线 (PolyLine)
<PolyLine NumPoints="4">
<Presentation B="0.0" G="0.0" LineType="0" LineWeight="0.0003" R="0.501960784314"/>
<Coordinate X="0.005" Y="0.00875"/>
<Coordinate X="0.01" Y="0.00875"/>
<Coordinate X="-0.01" Y="-0.00875"/>
<Coordinate X="-0.005" Y="-0.00875"/>
</PolyLine>
多边形(Polygon)
形状(Shape)
形状目录(ShapeCatalogue)
笔画(Stroke)
实例
下面是一幅P&ID图
C01V04.xml 文档
在上面的文档中
PipingNetworkSystem
ProcessInstrumentationFunction
Equipment
InstrumentationLoopFunction
Drawing
ShapeCatalogue
shapeCatalogue
ShapeCatalogue中包含了符号
例如:设备
<Equipment ID="TaggedPlantItemShape-1" ComponentName="CENTRIFUGAL_PUMP_SHAPE">
<GenericAttributes Set="DexpiAttributes" Number="1">
<GenericAttribute Name="SymbolRegistrationNumberAssignmentClass" AttributeURI="http://sandbox.dexpi.org/rdl/SymbolRegistrationNumberAssignmentClass" Format="string" Value="ISO10628:2012-2322-A"/>
</GenericAttributes>
<Circle Radius="7.5">
<Presentation LineType="0" LineWeight="0.3" R="0.501960784" G="0" B="0"/>
<Position>
<Location X="0" Y="0" Z="0"/>
<Axis X="0" Y="0" Z="1"/>
<Reference X="1" Y="0" Z="0"/>
</Position>
</Circle>
<PolyLine NumPoints="2">
<Presentation LineType="0" LineWeight="0.3" R="0.501960784" G="0" B="0"/>
<Coordinate X="-7.5" Y="0"/>
<Coordinate X="7.5" Y="0"/>
</PolyLine>
<PolyLine NumPoints="3">
<Presentation LineType="0" LineWeight="0.3" R="0.501960784" G="0" B="0"/>
<Coordinate X="0" Y="-7.5"/>
<Coordinate X="7.5" Y="0"/>
<Coordinate X="0" Y="7.5"/>
</PolyLine>
</Equipment>
喷头
<Nozzle ID="NozzleShape-1" ComponentName="MANHOLE_SHAPE">
<GenericAttributes Set="DexpiAttributes" Number="1">
<GenericAttribute Name="SymbolRegistrationNumberAssignmentClass" AttributeURI="http://sandbox.dexpi.org/rdl/SymbolRegistrationNumberAssignmentClass" Format="string" Value="ISO10628:2012-X8159-A"/>
</GenericAttributes>
<PolyLine NumPoints="3">
<Presentation LineType="0" LineWeight="0.4" R="0.501960784" G="0" B="0"/>
<Coordinate X="0" Y="5"/>
<Coordinate X="10" Y="5"/>
<Coordinate X="10" Y="7.5"/>
</PolyLine>
<PolyLine NumPoints="3">
<Presentation LineType="0" LineWeight="0.4" R="0.501960784" G="0" B="0"/>
<Coordinate X="0" Y="-5"/>
<Coordinate X="10" Y="-5"/>
<Coordinate X="10" Y="-7.5"/>
</PolyLine>
<PolyLine NumPoints="2">
<Presentation LineType="0" LineWeight="0.4" R="0.501960784" G="0" B="0"/>
<Coordinate X="13.5" Y="7.5"/>
<Coordinate X="13.5" Y="-7.5"/>
</PolyLine>
</Nozzle>
PipingComponent
<PipingComponent ID="PipingComponentShape-1" ComponentName="BALL_VALVE_SHAPE">
<GenericAttributes Set="DexpiAttributes" Number="1">
<GenericAttribute Name="SymbolRegistrationNumberAssignmentClass" AttributeURI="http://sandbox.dexpi.org/rdl/SymbolRegistrationNumberAssignmentClass" Format="string" Value="ISO10628:2012-X8071-A"/>
</GenericAttributes>
<PolyLine NumPoints="5">
<Presentation LineType="0" LineWeight="0.25" R="0.501960784" G="0.501960784" B="0"/>
<Coordinate X="-5" Y="2.5"/>
<Coordinate X="5" Y="-2.5"/>
<Coordinate X="5" Y="2.5"/>
<Coordinate X="-5" Y="-2.5"/>
<Coordinate X="-5" Y="2.5"/>
</PolyLine>
<Circle Radius="2.5" Filled="Solid">
<Presentation LineType="0" LineWeight="0.25" R="1" G="1" B="1"/>
<Position>
<Location X="0" Y="0" Z="0"/>
<Axis X="0" Y="0" Z="1"/>
<Reference X="1" Y="0" Z="0"/>
</Position>
</Circle>
<Circle Radius="2.5">
<Presentation LineType="0" LineWeight="0.25" R="0.501960784" G="0.501960784" B="0"/>
<Position>
<Location X="0" Y="0" Z="0"/>
<Axis X="0" Y="0" Z="1"/>
<Reference X="1" Y="0" Z="0"/>
</Position>
</Circle>
</PipingComponent>
PipeFlowArrow
<PipeFlowArrow ID="PipeFlowArrowShape-2" ComponentName="DIRECTION_OF_FLOW_SHAPE_FOR_SECONDARY_SEGMENT">
<GenericAttributes Set="DexpiAttributes" Number="1">
<GenericAttribute Name="SymbolRegistrationNumberAssignmentClass" AttributeURI="http://sandbox.dexpi.org/rdl/SymbolRegistrationNumberAssignmentClass" Format="string"/>
</GenericAttributes>
<PolyLine NumPoints="3">
<Presentation LineType="0" LineWeight="0.25" R="0.501960784" G="0.501960784" B="0"/>
<Coordinate X="-2.5" Y="2.5"/>
<Coordinate X="0" Y="0"/>
<Coordinate X="-2.5" Y="-2.5"/>
</PolyLine>
</PipeFlowArrow>
DEXPI 的OPCUA 配套规范
OPCUA 为DEXPI 建立了DEXPI的配套规范
OPC 30250: DEXPI P&ID
https://reference.opcfoundation.org/DEXPI/v100/docs/
这个配套规范是基于DEXPI 1.2 版本基础上构建的。它并没有包含ShapeCatalogue的图形符号。感觉还是一个早期的版本。
小结
DEXPI 是过程控制工业的信息模型的标准。与其它国际标准相互交织。并且需要一些数据库支持。其中包含的软件,技术和标准是比较复杂的。它们也会导入到OPC UA 信息模型中。在这个过程中,有大量的基础工作要做。