PDMS教程 发表于 2016-9-25 13:31:24

Pdms Lexicon模块教程-自定义UDETWLD UWLRD讲解

Pdms Lexicon模块用于自定义元件属性、自定义元件类型等等。该模块在项目中也要用到,属于pdms重要模块。Lexicon模块提供了DBVWWL,DSTWLD,DSXWLD,REVCWL,STAWLD,UDETWLD,UWLRD共7种类型,本文只讲解UDETWLD,UWLRD两种。
1.      lexicon注意事项:
进入lexicon模块需要以下两个条件:  a)、以free用户登录PDMS,普通的general用户是无法访问该模块的; b)、必须有一个类型为DICT的DB来存储自定义的数据,且该DB需要在所选择的MDB中。
2、UWLRD自定义属性
UWLRD就是我们通常说的UDA,User Defined Attribute的简称, 自定义属性是对PDMS基本属性和隐藏属性的一个重要补充。由于PDMS中所有元件类型的系统属性是可以枚举完的,当发现系统属性中并没有适合我们使用的属性类型时,就可以利用UDA进行自定义属性。
2.1、数据层次
UDA有3级数据层次:
UWRL  -  UDA World
UGRO  -  UDAGroup  该层次可有可无,但强烈建议使用。使用该层次,可以有效的管理UDA
UDA  -  UDA  实际元件层
2.2、建立管理层
既可以通过菜单栏来创建管理层,也可以通过命令行来创建。
2.2.1、界面创建UWRL

2.2.2、命令行创建UWRL
NEW UWRL
在比较老的PDMS版本下,可能没有界面创建,只能使用命令行来创建。 
2.2.3、创建UGRO
创建UGRO的方法与UWRL相同,此处不再赘述。
2.3、创建UDA
UDA的创建方法与创建其管理层的方法相同,此处我们创建一个UDA,用于存储设备的类型。
2.4、UDA属性
创建完UDA后,会发现UDA有大量的属性需要填写,列表如下:

2.5、属性说明
2.5.1、Description
该属性在非Lexicon模块中,实际上是看不到的,但写上以后,便于管理员后期维护。此处我们填写'设备类型'。
2.5.2、UDA Type
该属性指定了数据类型,此处点击右侧的下拉菜单,可以看到有多个选项。比如整型、字符串型、布尔型、日期型、以及还有PDMS特有的direction型和position型等等。此处我们选择'text',即字符串型。
2.5.3、UDA Length
该属性指定了数据类型的长度。此处我们设置为10
2.5.4、Element Types
该属性用于定义UDA赋予给PDMS哪些类型的元素。即可以直接输入,也可以点击后,通过界面选取。

一个UDA可以赋给多个类型的元素,此处我们只将该UDA赋给了EQUI类型的元素,如果我们继续将该属性赋给ZONE类型的元素也是可以的。
2.5.5、UDA Default
指定UDA的默认值。此处我们设置为PUMP。
2.5.6、User-Defined name
UDA的名称,该属性非常重要,是UDA展现在其他模块中的名称。此处我们命名为EquipType。
2.5.7、Valid Values
指定UDA的有效值区间,可以用来对UDA的值进行约束。
此处的写法是有要求的,如果是实数的话,应写为如 0-10,表示在0到10之间。如果是字符串的话,其值必须用单引号或|将值框在里面,如|PUMP|。如果是多个并列值得话,值之间用逗号分隔。此处我们写为|PUMP|,|TANK|。
2.6、UDA校验
此时我们打开design模块,选择一个EQUI后,输入Q ATT查询属性,会发现在系统属性后面多了如下一行,
:EquipType PUMP
注意:刚才我们命名是并没有加上':',此处是PDMS自动加上的标识符,用于区分UDA和系统自带的属性。
我们将该属性的值改为TANK,修改成功,如果我们将其改为XXXX,会提示错误,值不在有效值的范围内。
2.7、UDA结语
UDA和PDMS系统属性在操作上完全相同,查询,修改等用法均相同。同时在利用PML编程时候,也完全等价于系统属性。

3、UDET自定义元件类型
相对于UDA的普遍使用,UDET的使用并不算常见。UDET是User Defined Element Types的简称,即用户自定义元件类型。可以通过定义UDET来实现一些特殊的需求。
3.1、数据层次
同UDA一样,UDET也有3级数据层次:
UDETWL  -  UDET world
UDETGR  -  UDET group
UDET      -  UDET
细心的读者可能会发现,UDET的数据层次与UDA完全相同,实际上不但他们的数据层次相同,其创建方法也相同,都有界面和命令行两种。大家可以参考UDA数据层次的创建方法,来创建UDET的数据层次。但UDET与UDA却有完全不同的属性。
3.2、UDET属性

3.2.1、Description
该属性也是一个说明性的属性,此处我们填写'设备'。
3.2.2、User-Defined name
UDET的名称,该属性非常重要,是UDET在其他模块新建的层次类型名,此处我们命名为TANK。
3.2.3、Base type
基础类型,此处要特别注意,自定义的元件类型必须是等价于PDMS已知的元件类型的一种,并不能创建一个PDMS中完全不存在的类型。笔者认为这是导致UDET比较鸡肋的一个重要原因。点击右侧的下拉选项,选择一个PDMS的已知类型。

3.2.3、Owner types 和Member Types
这两个属性是不需要用户定义的,当选择完Base type后,程序将自动获取。
3.2.4、Hidden attributes
隐藏属性,选择完Base type后,该UDET将自动继承其等价类型的所有基础属性,但是否继承其隐藏属性,是可以通过面板来设置的。界面如下:

3.3、UDET校验
我们打开design模块,选择某个zone后,在命令行里输入new :TANK,将会在zone层下新建一个类型为:TANK的元件:

注意:此处必须写new :tank,:不能漏掉,否则会提示语法错误。

3.4、UDET结语
UDET和PDMS本身的元件类型在各方面完全相同。同时在利用PML编程时候,也可以利用collect语句收集或var语句求值。

landem 发表于 2016-10-10 21:44:32

很好的教程,学习了

976528095 发表于 2016-11-15 08:59:12

谢谢分享。学习了

976528095 发表于 2016-11-15 08:59:31

谢谢分享。学习了

976528095 发表于 2016-11-15 08:59:52

谢谢分享。学习了

junlee320 发表于 2016-12-14 21:53:38

非常感谢分享这么实用的

liujq 发表于 2017-1-8 09:14:26

谢谢分享,学习了

zhj2387 发表于 2017-3-3 11:23:29

学习了,谢谢

lin005 发表于 2017-3-4 08:42:06

谢谢分享。学习了
平时都不会去这个模块的!

d272504 发表于 2017-5-25 09:38:49

好东西谢谢分享
页: [1] 2
查看完整版本: Pdms Lexicon模块教程-自定义UDETWLD UWLRD讲解