PML快速入门

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

变量的相互转换
Real至String 如: !num= 100 !string=string(!num)

String至Real 如: !string= ‘100’ !num=real(!string)

或!string=!num.string()
或!num=!string.real()
Q var !string
STRING 字符串变量




变量的声明(可省略) !t=string() 变量的查询: q var !t 变量的赋值: !t= ‘abc’ 变量的运算: 1.连接运算:+ 或 & 2.字符串函数或方法
例: !t1=‘abc’ !t2=‘ABC’ !T=!t1 + ‘/’ + !t2 注:运算符前后有空格 Q var !T 查询结果: <STRING>’abc/ABC’
逻辑判断符号: EQ 等于 NE 不等于 GE 大于等于 LE 小于等于 GT 大于 LT 小于 例: !a= 1 !b= 2 !c= !a LE !b Q var !C 结果为 TRUE
DBREF <database reference>



多种赋值方法: !d= CE !d=/E1301-S2 !d= =15392/47 查询: q var !d .点操作
REAL 数值变量
变量的声明(可省略) !r=real() 变量的查询: q var !r 变量的赋值: !r= 10 变量的运算: + - * / () 等

例: !r1= 2 !r2= 3 !sum=!r1 + !r2 注:直接赋值时加空格 Q var !sum 查询结果为: <REAL>5
例 选中弯头后输入: !d=CE 查看结果: Q var !d Q var !d.name Q var !d.type
ARRAY 阵列 (或数组)



声明: !a=array() 变量的查询: q var !a 变量的赋值: !a[1]= 1 !a[2]=‘abc’
例: !a[1]=‘A’ !a[2]=‘B’ Q var !A !aa=!a Q var !aa
字符串常用对比
Match (省略) Matchwild Matchw(‘adABCd’,’*B*’) 返回值true *为任意字符任意个数的通配符 ?为任意字符单一个数的通配符

字符串对比常用在Report和List操作中的条件设置
字符串大小写转换

!a=upcase(‘aBcD’) 转换为大写 q var !a 可看到结果为’ABCD’ !b=lowcase(‘ABCD’) 转换为小写 q var !a 可看到结果为’abcd’
结果显示为:
Q var !num
结果显示为:
<STRING>’100’
<REAL>100
变量的相互转换
DBREF成员 例: !name=!!Ce.name Q var !name

通过点操作,结果显示为元素 的名称
注: !!ce即为当前元素 !name=!!ce.name 等效于: !dbref=ce !name=!dbref.name
PML语言快速入门(一)
PML简介 常用变量简介 程序举例-IF条件判断 程序举例-DO循环 程序举例-读取txt内清单并进行批量操作
PML用途

宏文件
调用方法<使用$m 运行指定路径的文件> 如: $m d:\macro.txt

自定义窗体(插件)
调用方法<show !!插件名> 如: show !!tool
宏程序举例<1>——IF语句
例: !type=type IF !type EQ ’TEE’ THEN q cref ENDIF NEXT
handle any $p <pipe end> BRAN endhandle
1.将左侧4排语句写入txt文档 2.用$m运行该宏文件 程序解读: 选中branch中某元件运行宏时: 如果IF元件类型为TEE,则THEN 查询CREF属性 选中下一元件 如果next命令执行出错,则 在命令栏打印<pipe end> 回到BRAN层次 如next命令执行未出错,则直接结束

字符串的其他常用方法,如: After, part, split等等,请查询PDMS帮助信息
宏程序举例<3>——读取记事本
基本流程:
设置源文件
编辑文件
读取文件
开始循环
IF条件
操作
结束循环
宏程序举例<3>——读取记事本
程序举例: !myfile=object file(‘d:\branlist.txt’) 将管道清单放入文档 !brans=!myfile.readfile() 将文档逐行读入字符串阵列!brans DO !bran values !brans 逐次用bran从brans阵列中取值 $!bran pdms导航CE至$!bran <操作> 执行操作 ENDDO 结束循环
宏程序举例<2>——DO循环
程序解读: 1. Var <变量> coll all <类型> with <条件> for <范围> 用!mems收集当前pipe下的所有<类型>元件,收集条件为<条件>,收集范围为<范围> 2.Match为字符串对比函数, 与matchwild使用方法有区别 match(s1,s2) gt 0 即在s1字符串中查找并返回s2出现的位置,如果找不到则返回0 !b=Match(‘abc’,’b’) !b变量值为2 match(‘TEE OLET’,type) gt 0 在元件类型为TEE或OLET时为TRUE值 3.DO ENDDO 为PML中的唯一循环语句 Do !each values !mems 即用!each变量依次等于!mems排列中的值 比如经过收集,!mems包含3个字符串, 第一次循环!each为!mems[1] 第二次循环!each为!mems[2] 第三次循环!each为!mems[3] 4. 变量!Refno类型为dbref,若要将其转变为字符串参与字符串连接运算,可在前面加$符 号并加单引号
PML简介

分PML1(旧) 和PML2(面向对象编程) PML原理
1) 2) 3)

源自文库
几乎所有PDMS操作均可由命令完成 通过循环、条件等语句控制程序走向 可面向对象编程
常用符号(1)



!变量名 局部变量 !!变量名 全局变量 $M 调用宏 $!变量名 用字符串显示变量内容 $P 打印内容至命令栏 $R6 跟踪PDMS程序语法 $R 结束跟踪 $R29 。。。。。。
注意: • 符号输入需在英文输入模式下进行 • 如果已定义变量为real,则不能重新定义其为string,若要重复使用,需用.delete()删除
BOOLEAN 布尔值

最常见布尔值:
TRUE FALSE
常用于条件判断语句中
布尔值举例:
查询大管组设置元件是否需要现场安 装时修改元件的shop属性 !shop=shop Q var !shop 结果显示为 <BOOLEAN> TRUE
常用符号(2)



!A=值 !A=object x() !A.b !A.c() d(!A) !!fun(!A) !a.delete()
A赋值 声明A为对象x A的成员b A执行c方法 对A执行d方法 fun函数带参数A运算 删除变量a
宏文件举例
1. 2.
在D盘创建记事本macro.txt 在记事本中写入:
宏程序举例<2>——DO循环
程序代码:
VAR !mems COLL all branch members WITH match('TEE OLET',type) gt 0 FOR pipe q var !mems DO !each values !mems !type=type of $!each !refno=refno of $!each !cref=name of cref of $!each !print=!type + ‘ $!refno ’ + !cref $P $!print ENDDO
•记事本中写入任意需要执行的操作 •必要时加入循环、条件语句
3.
PDMS命令栏内输入$m d:\macro.txt
•按顺序执行记事本中的命令
PML常用变量



REAL 数值 STRING 字符串 DBREF ARRAY 阵列 BOOLEAN 布尔值 其他对象:File Position Direction…
相关文档
最新文档