pml基础手册与总结

pml基础手册与总结
pml基础手册与总结

PML开发介绍与总结

1 pml语言简介 (2)

1.1 pml变量 (2)

1.2 变量类型 (2)

1.3 自定义变量类型 (3)

1.4 定义变量 (3)

1.5 函数(Function)和方法(Method) (4)

1.6 使用ANY类型的变量作为函数参数 (5)

1.7 变量的方法 (6)

1.8 自定义变量类型的方法 (7)

1.9 方法的重载 (8)

1.10 Unset和Undefined (9)

1.11 删除变量 (10)

2 Pml的一些特点 (10)

3 Pml表达式 (11)

4 pml流程控制 (11)

4.1选择结构 (12)

4.2 do循环 (13)

4.3 GoLabel跳转语句 (14)

5 pml数组 (15)

5.1 定义数组 (15)

5.2 数组的赋值 (15)

5.3 多维数组 (15)

5.4 数组的方法 (16)

5.5 利用数组进行字符串处理 (17)

5.6 数组排序 (18)

5.7 Do values循环和Do indices循环访问数组变量 (19)

6 pml宏文件概念及其运行 (19)

6.1 概念 (19)

6.2 带参数的宏文件 (20)

语言简介介

1pml语言简

pml是用于pdms二次开发的面向对象的编程语言,它的面向对象属性是与其他脚本语言的最大区别,也是现代高级语言的基本特征。pml提供了编辑窗体和菜单的功能,且语法简单方便,使得pml能实现高级语言的大部分功能,用户可以开发自己的菜单窗体,完成需求定制。

pml提供了大量的变量类型(object type)及与变量类型相对应的方法(method)。pml 提供的方法实用,具有针对性。比如数组(Array object)可以存放不同的数据类型,可以进行排序、清空没有赋值的元素、查找、删除等等方法,这是大多数高级语言没有提供的功能。

1.1pml变量

对于pml语言,每个变量即是一个object,对应一个变量类型object type。不同类型的变量只能保存对应类型的数据。pml变量的特点:

变量名称唯一,且不能重复。

每个object type即是一个类(class),有属于类的通用的方法和属性。因此每个pml 的变量(object)都可以调用所属类的方法。

每个变量对应一个变量类型,在定义变量前,对应的变量类型必须存在。

1.2变量类型

Pml的变量类型比较多,可以分为三类,built-in、system-defined、user-defined。

Built-in变量类型包括以下几种:

字符串

实数

布尔

数组

system-defined变量类型包括Direction,Position,Orientation等多种类型,详细信息可以参考手册。

user-defined变量类型是指用户自定义的类型。

1.3自定义变量类型

Pml提供的变量类型可以满足大部分情况的使用,如果有需要,用户也可以定义自己的变量类型。下面是一个自定义变量类型的示例。

define object FACTORY

member .Name is STRING

member .Workers is REAL

member .Output is REAL

endobject

自定义变量类型的名称是FACTORY,该变量类型有3个成员(member),分别是

Name,Workers和Output。任意一个FACTORY类型的pml变量都默认有这3个成员。比如设变量!MyFactory是FACTORY类型,则可以通过!https://www.360docs.net/doc/6a1133198.html,访问或赋值变量的Name成员,如下面的表达式分别读取和设置了变量!MyFactory的Name属性,!FactoryName = !https://www.360docs.net/doc/6a1133198.html,

!https://www.360docs.net/doc/6a1133198.html, = ‘APPLE’

Pml对成员的类型没有限制,自定义变量类型的变量也可以作为成员,如下例,成员Site 的类型是FACTORY。

define object PRODUCT

member .Code is STRING

member .Total is REAL

member .Site is FACTORY

endobject

为了方便区分,变量类型一般用大写表示,变量一般首字母大写。

自定义变量类型一般以变量类型的名称为文件名(字母必须是小写),以.pmlobj为后缀保存到PMLLIB文件夹下面。程序会自动加载定义文件。

1.4定义变量

Pml的变量分为全局变量(global)和局部变量(local)两种,全局变量在整个程序运行期间一直存在,而局部变量只在所在的宏文件或函数内有效。比如一个宏文件包含下面的语句,

!Y = 3

!!X = 5

$p $!Y $!!X

运行后得到结果 3 5

运行完成后在pdms中分别查询变量!Y和!!X,!Y是Undefined,而!!X是实数类型变量,值是5。因为!Y是局部变量,宏文件运行完成后自动释放。

Pml变量名的最大允许长度是16个字符(包含前面的符号!),变量名必须以字母开头,可以是字母和数字的组合。确定变量名时要简单易懂、避免重复,可以添加自定义的前缀进行区分。在编写程序时,为了避免重复和减少资源占用,应该尽量减少使用全局变量,使用!!CD为前缀的变量是系统预留的全局变量,在定义变量时要避免重复。

定义一个built-in类型变量(REAL,STRING,BOOL,ARRAY)可以通过直接赋值确定其变量类型,比如!MyVariable = 2,则变量! MyVariable会自动根据所赋值的类型确定为real 类型,不用另外指定变量类型。当定义一个值为空的变量时,可以采用如下的方

式!MyVariable2 = STRING(),指定!MyVariable的类型为字符串,而值为空(UNSET)。

对应其他类型变量的定义需采用下面的形式,!MyVariable3 = object DIRECTION()

和方法((Method)

1.5函数

函数((Function)和方法

函数一般定义在一个单独的文件中,文件名必须是小写的函数名称,后缀为.pmlfnc。函数定义文件一般存放在PMLLIB文件夹中。每个函数定义文件只能包含一个函数,且文件的第一行必须是define function开头。所有的用户自定义函数都是global类型变量。

函数和方法类似,都可以带有参数和指定返回值。参数和返回值的类型必须在函数和方法定义时指定,当在主程序中调用函数或方法时必须把对应类型的值传递给函数或方法,经过处理后把返回值传递给主程序。

下面的语句定义了一个函数!!Area

Define Function !!Area( !Length is REAL, !Width is REAL ) is REAL

!Area = !Length * !Width

Return !Area

EndFunction

!!Area的功能是根据主程序传递过来的参数!Length和!Width计算矩形面积并将面积返回主程序。参数!Length、!Width 和返回值都是REAL类型,返回值用关键词Return指定,

最后以endfunction结束函数定义。一般在表达式中调用有返回值的函数,如:!MyLength = 15

!MyWidth = 10

!MyArea = !!Area(!MyLength, !MyWidth)

则得到!MyArea = 150,注意参数的顺序不能颠倒,否则可能会导致错误。上面的语句也可以简化为!MyArea = !!Area(15, 10)

函数也可以用参数的方式返回运行结果(没有返回值的函数称为PML Procedure,用Call 关键词调用),即在调用函数前定义一个变量,并把变量包含在函数的参数列表里。如下面的例子,

Define Function !!LengthAndTrim(!Name is STRING, !Length is REAL)

!Name = !Name.Trim()

!Length = !Name.Length()

EndFunction

函数的功能是计算字符串变量!Name的长度(去掉前后空格),REAL类型参数!Length 用于存放并返回计算结果。函数的调用过程如下,

!Name = ' FRED '

!Length = REAL()

Call !!LengthAndTrim(' FRED ', !Length)

运行完后,字符串长度的计算结果存放在了变量!Length中。注意,必须是一个变量存放返回的计算结果,不能是常量,如!!LengthAndTrim(' FRED ', 2)是错误的,因为函数不能修改一个常数。

对于特殊的情况,当函数或Procedure没有参数时,函数名后面的括号也必须保留,如Define Function !!LengthAndTrim()。对有返回值的函数也可以采用Call关键词调用,但会由于无法保存而导致返回值丢失。

1.6使用ANY类型的变量作为函数参数

某些特殊情况下,可以指定函数的参数或返回值的类型为ANY,即可以接受任何类型的变量。如下面的例子定义参数!Argument为ANY类型。

Define Function !!Print(!Argument is ANY)

$P $!Argument

在使用ANY类型的变量前需要确定变量的具体类型,可以使用变量的pmlobjectType()方法如下。

Define Function !!AnyType(!Argument is ANY)

Type = !Argument.pmlobjectType()

if ( !Type EQ 'STRING' ) then

- - do something with a STRING

elseif ( !Type EQ 'REAL' ) then

- - do something with a REAL

elseif ( !Type EQ 'DBREF' ) then

- - do something with a DB Reference

else

- - do something with all other types or give an error

endif

EndFunction

1.7变量的方法

方法是与具体的变量类型相对应、且可以由任意一个变量调用的函数。每种变量类型包含的方法可以参考手册。

下面以STRING类型为例说明如何使用变量的方法。

!Mystring = STRING() 定义一个STRING类型的变量

截取部分字符,取指定的字符串右侧的剩余部分赋值给新变量

!Mystring ='Iwanttolearnenglish'

!newstring = !Mystring.after('Iw')

则!newstring = 'anttolearnenglish'

同理可以调用before()方法取指定字符串左侧的部分。

计算字符串的长度

!Mystring ='Iwanttolearnenglish'

!length = !Mystring.length()

转为小写

!Mystring ='ENGLISH'

!lowercase = !Mystring.lowcase()

!lowercase = ‘englis’

替换部分字符串

!Mystring ='ENGLISH'

!NewString = !Mystring.Replace('E','LearnE')

!NewString = 'LearnENGLISH'

1.8自定义变量类型的方法

对应自定义的变量类型,可以同时定义变量类型的方法,写在同一个文件中变量类型定义结束之后(endobject语句之后)。

方法定义时以!this代表当前object,并用其调用object的方法(method)和成员变量(member)。

define object LIFE

member .Answer is REAL

endobject

define method .Life()

!This.Answer = 42

Endmethod

和变量类型同名且没有参数的方法Life()称为构造方法,在定义该类型的变量时程序会自动调用该方法用于变量的初始化。

变量的方法可以带有返回值,与函数的功能类似,如下面的方法,调用时会返回成员Answer的值。

define method .Answer() IS REAL

return !This.Answer

endmethod

也可以用方法对类成员进行赋值

define method .Answer( !Value Is REAL)

!This.Answer = !Value

endmethod

上面两个方法的调用过程如下,

!Marvin = object LIFE() 定义!Marvin为LIFE类型变量

!Number = !Marvin.Answer() 给!Number赋值为!This.Answer

!Marvin.Answer(40) !This.Answer的值设为40

!Number = !Marvin.Answer() !Number赋值为40

创建新的自定义变量类型后,需要输入pml reload object objectname 加载定义文件后,才能正常使用自定义的变量类型。

1.9方法的重载

重载是指同一个变量类型的两个或多个方法具有相同的方法名称和不同的参数列表,在进行调用时,程序会根据传递的参数类型和数量自动匹配对应的方法。如下面两个方法,

define method .mymethod( !Value Is REAL)

$p ‘It is a real number’

Endmethod

define method .mymethod( !Value Is STRING)

$p ‘It is a string’

Endmethod

调用时,若输出的参数时REAL类型,则打印It is a real number,若参数是STRING类型,则打印It is a string。

当添加新的方法后,需要输入pml reload object objectname进行重新加载,以便程序加载最新的定义。

1.10Unset和Undefined

变量类型都有一个string()方法,即把当前变量类型转为一个字符串。

!X = 2.5

!S = !X.String()

变量!S是字符串类型,值为’2.5’

对于空值的情况,调用String()方法后,得到值如下

!X = REAL()

!S = !X.String() !S为空

!X = BOOLEAN()

!S = !X.String() !S为空

!X = STRING()

!S = !X.String() !S为‘Unset’

!X = ARRAY()

!S = !X.String() !S为‘ARRAY’

UNSET是指已经定义的变量,但还没有给变量赋值。程序编写时经常需要预先对变量进行判断是否为UNSET,可以用函数和自带的方法两种方式进行判断。

Functions Methods

if ( Unset(!X) ) then if ( !X.Unset() ) then

if ( Set(!X) ) then if ( !X.Set() ) then

Undefined是指还没有定义的变量,即系统中不存在。可以用下面的函数进行判断if ( Undefined(!!Y) ) then

if ( Defined(!!Y) ) then

1.11 删除变量

删除一个已定义的变量可以调用delete()方法,

!X.delete() 即删除了变量!X

2Pml的一些特点

宏、函数和方法都是pml命令的集合,但在写程序时应尽量的使用函数和方法,因为函数和方法可以方便的包含任意类型的参数,且可以有返回值,使得程序的整体性和可读性比较好,同时符合面向对象编程语言的特点。

Pml文件的注释语句分三种。用符号”--”开头的是注释行;写在pml语句末尾且同行的注释用$* 开头;多行注释用$( 开头,用$) 结尾。

Return命令用于立即停止当前的pml文件,返回上一层的文件继续执行。Pml文件一般以Return语句结尾。

Pml语言不区分大小写,IF和if具有相同的作用。但对于字符串中的字符,需要对大小写进行区分。

Pml命令可以进行简写,如POSITION可以简写为POS。但为了程序的可读性和避免混淆,一般不建议这样做。

特殊字符$。$与其他字符的组合表示特别的含义,如$p表示打印。当pml语句中需要$字符时,需要输入$$。另外,$也是续行的标识符。

Pml中的字符串表示方法。可以用单引号或竖杠表示,如'ENGLISH',|ENGLISH|。

Pml文件的类型。

.pmlobj 变量类型定义文件

.pmlfnc 函数定义文件

.pmlfrm 窗体定义文件

PDMS程序启动时,会根据依次加载文件pml.index(在PMLLIB文件夹下)中指定路径下的文件。如果在程序运行过程中,在已有的路径下添加了新的文件,则需要输入命令pml rehash 加载新文件。如果其他用户已经更新了pml.index,则只需要

输入pml index。

Pml rehash all命令用于重新扫描PMLLIB路径下的所有pml文件,并同时更新文件pml.index。

查询指定文件路径的方法,q var !!PML.getpathname( 'filename.pmlobj' )

3Pml表达式

常见的数值运算符有+ - * /,逻辑运算符有GT LT EQ 等。一个表达式里的变量类型比较匹配,否则会报错。

!X = 22

!X + 'text'

REAL类型和STRING类型不匹配,程序出错。

表达式书写时必须在运算符的前后各留一个空格。一般情况下,在括号的前后不用留空格,但如果与括号相邻的是一个字符串,则需要与括号之间留一个空格,避免混淆。

运算符的优先级规定如下,由上至下依次降低。括号用于调整表达式的优先级。

BRACKETS ()

FUNCTIONS

*/

+ -

NE NEQ GT LT GE GEQ LE LEQ

NOT

AND

OR

连接运算符&。&可以把任意类型的两个变量首先转换为字符串类型,然后把两个变量值前后连接在一起。

!X = 64

!Y = 32

!Z = !X & !Y

则!Z = '6432'

对比之前的pml1版本,pml2更简洁实用,功能也更强大。可以在表达式中包含对函数的调用,也不用在变量前加$符号。

4pml流程控制

pml流程控制语句包括下面几种,

选择语句(if)

循环语句(do)

跳转语句(golable)

错误处理(handle)

4.1选择结构

Pml中if结构和其他编程语言一样,通过判断表达式的值确定程序的执行路径,if结构可以有多个分支,每个分支对应一个判断条件。典型结构如下,

If( BoolA ) then

(BoolA为true时执行)

Elseif(BoolB) then

(BoolB为true时执行)

Elseif(BoolC) then

(BoolC为true时执行)

Else

(上面条件都不满足时执行)

Endif

括号内的bool表达式可以是一个bool变量,也可以是一个值为bool变量的表达式。If 结构中各个分支只能执行一个,即程序在执行完任意一个分支后立即退出选择结构,继续下面的语句。

If结构不支持简写为一行的格式,if() then endif,类似的格式是错误的。

If结构可以嵌套使用,下面的例子是合法的,

If(!num GT 1) then

If(!num GT 5) then

$p ‘good’

Else

$p ‘passed’

Endif

Endif

布尔表达式

布尔表达式的运算符包括EQ、GT、LT等,布尔表达式的运算结果必须是布尔变量(true 或false)。为了向上兼容,pml支持用字符$和字符串格式的‘TRUE’‘FALSE’组合表达布尔变量,如variable = ‘TRUE’, if($variable)是合法的。另外,字符串类型的自带方法.boolean()可以把字符格式的’TRUE’ ‘FALSE’转为bool类型。如,!mystr = ‘true’ 则!mystr.boolean()表示一个bool类型变量。.boolean()方法可以把所有的非0实数转为

TRUE,把0转为FALSE。

4.2do循环

典型的do循环结构如下,

Do !x From startvalue to endvalue By increment

Enddo

循环变量!x从startvalue按步长increment变化到endvalue,重复执行block中语句。

对于简化形式的循环结构,!x、startvalue、endvalue和increment都可以省略,上面的例子可以简化为

Do

Enddo

简化为这种形式后,pml block中必须有语句在满足一定条件时结束循环,否则会形成无限循环而出错。

循环控制语句:Break、Break if、Skip、Skip if

Break和Break if语句可以用于退出循环的操作,如下面的例子,

do !Number

if (!Number GT 100) then

break

endif

!Result = !Result + !Number

Enddo

当!number值大于100时,会执行break语句退出循环。其中的if结构也可以替换为break if (!Number GT 100),效果相同。

Skip和skip if语句是在满足一定条件时忽略掉(不执行)skip后面的语句而直接执行下一次循环。如下例,可以用skip语句忽略掉所有的奇数,只对偶数进行操作。

do !X

!Number = !Sample[!X]

if ((INT(!Number/2) NE (!Number/2)) then

skip

endif

!Result = !Result + !Number

enddo

do !X

!Number = !Sample[!X]

skip if (INT(!Number/2) NE (!Number/2))

!Result = !Result + !Number

Enddo

Do循环的嵌套

do !X From 1 to 10

!Z = ‘’

do !Y From !X to 10

!Z = !Z + ‘ ’ + !Y.string()

Enddo

$p $!Z

Enddo

循环的结果应该打印出如下的数字序列

1 2 3 4 5 6 7 8 9 10

2 3 4 5 6 7 8 9 10

3 4 5 6 7 8 9 10

4 5 6 7 8 9 10

5 6 7 8 9 10

6 7 8 9 10

7 8 9 10

8 9 10

9 10

10

4.3GoLabel跳转语句

Golabel /labelname语句用于跳转到/labelname下一行继续执行。见下例

do !A

do !B to 3

!C = !A * !B

golabel /finished if (!C GT 100)

!Total = !Total + !C

enddo

enddo

label /finished

$P Total is $!Total

在变量!C大于100时程序跳转到label /finished的下一行继续执行,即跳出了循环体。

但是使用golabel语句不能用循环外面跳转到循环内部,否则程序报错。

5pml数组

5.1定义数组

和其他编程语言的概念一样,pml中数组是可以包含多个元素的object。数组定义的方式有两种,一种是提前定义,即在使用前首先对数组进行定义,如!X = ARRAY()定义了一个数组!X。需要注意的是,pml中数组不需要指定类型和数组大小,即可以在同一个数组中存放不同类型的元素也可以任意增加数组元素的数量。另外一种数组定义方法是在给数组中元素赋值时同时完成数组的定义,即不提前进行定义。如表达式!NewArray[1] = !NewValue,如果数组!NewArray没有提前定义,则该表达式会自动完成数组的定义,同时给其中第一个元素赋值。

数组在书写时注意数组名和后面的中括号之间不能有空格,pml的变量名不区分大小写,可以用自己喜欢的方式书写,但尽量前后保持统一,方便阅读和检查。数组名称不能与其他变量名或数组名相同,否则会报错。

5.2数组的赋值

Pml数组赋值时没有顺序限制,也可以不连续赋值,即在赋值的两个元素之间可以有任意多个没有赋值的元素。如对于数组!X,可以只对!X[1]和!X[10]进行赋值,中间没有赋值的元素认为是不存在的,可以用UNDEFINED方法进行判断。数组的索引值可以是表达式形式,但表达式的结果必须是一个real类型的数组(pml中没有整型变量)。

Pml数组的索引可以从0开始,但一般从1开始,避免一些混淆。

5.3多维数组

Pml支持多维数组,用两个连续中括号表达第一第二维的索引值,如

!Employee[1][1] = 'Smith'

!Employee[1][2] = 'Samuel'

定义!Employee是一个二维数组,!Employee的第一维的每个个元素可以认为是一个一维数组。因此上面的定义可以改写为

!Employeename[1] = 'Smith'

!Employeename[2] = 'Samuel'

!Employee[1] = !Employeename

5.4数组的方法

Pml是面向对象的编程语言,因此和其他面向对象的语言(如C#,https://www.360docs.net/doc/6a1133198.html,)一样,每一种变量类型(即class或object)都内置了一系列的属性和方法,用于完成一些通用的操作。Pml数组的方法完整列表可以参考用户手册。

数组方法可以分为两种,即不改变原数组的方法和改变原数组的方法。例如获取数组的元素数量!Nelements = !MyArray.Size(),执行后数组的大小会存到变量!Nelements中,而数组!MyArray没有任何变化。但对于数组的clear()方法,则是进行清除数组所有元素的操作,改变了原数组。

常用的数组方法:

RemoveFrom(),清除指定范围内的元素并赋值给新数组,如下面的例子。

!arrayA[1] = 'sd1'

!arrayA[2] = 'sd2'

!arrayA[3] = 'sd3'

!arrayA[4] = 'sd4'

!arrayA[5] = 'sd5'

!arrayB = !arrayA.removefrom(3,2)

RemoveFrom方法执行完成后,原数组!arrayA和新数组!arrayB均发生了变化,!arrayA的元素列表,

!arrayA [1] = 'sd1'

!arrayA [2] = 'sd2'

!arrayA [3] = 'sd5'

!arrayB的元素列表,

!arrayB [1] = 'sd3'

!arrayB [2] = 'sd4'

Append(),在数组的末尾追加元素

此方法只针对已经存在的数组,否则会报错。追加的元素是在已定义的索引值最高的元素后添加,如果原数组为空,则Append()方法会将追加的值赋给第一个元素即!MyArray[1] = ‘newvalue’。需要注意,不是赋值给!MyArray[0]。

Delete(),删除指定位置的元素或删除整个数组

MyArray[n].delete()删除索引位置n的元素

MyArray.delete()删除整个数组

Width(),返回数组元素中类型为字符串的最大字符数

!Mylist[1] = 'sd1'

!Mylist[2] = 'sd2'

!Mylist[3] = 'sd22'

!Mylist[4] = 3322322323

则!Mylist.width()方法返回最大字符串宽度为4

5.5利用数组进行字符串处理

在对文件进行操作时,经常需要处理其中的字符串,要提取其中的数据,经常会用到数组的方法。Pml的字符串(string)变量提供了split()方法,用于按指定的字符对字符串进行拆分。如下面的例子。

!Line = '123 456 789'

!ArrayOfFields = !Line.split()

计算结果为

!ArrayOfFields [1] = '123'

!ArrayOfFields [2] = '456'

!ArrayOfFields [3] = '789'

用默认的空格作为分隔符时,字符串前后的空格自动忽略不计。

可以采用空格外的其他字符作为分隔符,如下例,

!Line = '123 ,456 ,,789'

!ArrayOfFields = !Line.split(',')

结果为,

!ArrayOfFields [1] = '123 '

!ArrayOfFields [2] = '456 '

!ArrayOfFields [3] = ''

!ArrayOfFields [4] = '789'

注意1和2元素值后面的空格不能丢。

5.6数组排序

数组提供了sort()方法进行元素升序排序,对于字符类型元素按照ASCII,对于数值类型元素按大小进行排序。

Sort()方法没有返回值,结果是对原数组的修改。对于需要降序的情况,可以用Invert() 方法对排序后的数组进一步操作,得到降序数组。

另外一种排序的方法是SortedIndices(),即原数组中元素在排序后数组中的索引值,并保存到一个新数组(real类型)中。如!newposition = !MyArray.SortedIndices()。

!newposition是新生成的real数组,依次存放数组!MyArray中的元素排序后的位置。此时!MyArray数组没有改变,需要用ReIndex()方法把得到索引数组应用到数组!MyArray 中完成排序操作。

排序举例,

!myarray[1] = 'dd'

!myarray[2] = 'cc'

!myarray[3] = 'bb'

!myarray[4] = 'aa'

如果执行sort()方法,即!myarray.sort(),则原数组发生改变

!myarray[1] = 'aa'

!myarray[2] = 'bb'

!myarray[3] = 'cc'

!myarray[4] = 'dd'

如果执行SortedIndices()方法,即!newposition = !MyArray.SortedIndices(),则生成的新数组!newposition为

!newposition[1] = 4

!newposition[2] = 3

!newposition[3] = 2

!newposition[4] = 1

5.7Do values循环和Do indices循环访问数组变量

Do values循环提供了直接访问数组元素的方法,可以通过循环变量依次访问数组中的每个元素,并对数组中元素进行相同的操作。下面的例子可以通过循环变量访问数组!MyArray中的元素并打印出来。

Do !dovariable Values !MyArray

$p $!dovariable

enddo

Do indices循环是依次访问数组中每个元素的索引值,

Do !dovariable Indices !MyArray

!value = !MyArray[!dovariable]

$p $!value

enddo

6pml宏文件概念及其运行

6.1概念

宏文件是由多个pml命令行组成的文本文件,一般文件的后缀设为.mac(也可以是其他后缀比如.txt)。对于一般赋值语句或定义语句,从宏文件中运行和手动输入到command window中运行的效果一样的。但是对于流程控制结构,手动输入会报错,只能以文件的形式运行。比如下面的do循环,

Do !x from 1 to 5 by 1

$p $!x

Enddo

逐行手动输入运行时会报错,保存到宏文件中运行时则会正确运行,一次打印出数据1

2

3

4

5

宏文件的运行方法是在命令窗口输入$m filepath,其中filepath是宏文件所在的完整路

径,且须包含完整的宏文件名,如$m C:\Windows\myfirstmacro.mac

如果没有输入文件所在的路径,程序会在当前运行目录(pdms安装路径)下查找文件,如果找不到指定文件就会报错。

6.2带参数的宏文件

使用参数化的宏可以方便的用一个宏处理一类相同的问题,只需要在调用宏时按需要赋值给参数就可以得到对应的结果。比如下面的例子,

!result = $1 + $2 + $3

$p $!result

宏的运算是求三个参数的和,调用时输入$m filepath 1 2 3,则输出结果6。输入的参数也可以是字符串类型,如$m filepath 'str' 'ing' '()',则输出结果string()。需要注意,作为参数的字符串中间不能有空格,否则程序会把空格作为分隔符对字符串进行拆分,得到错误的结果。如$m filepath 'st r' 'ing' '()',则三个参数依次赋值为'st r' 'ing'。对于需要在参数中包含空格的情况,可以采用下面的格式书写,$m filepath $<'st r'$> 'ing' '()',则三个参数依次赋值为,'st r' 'ing' '()'。

如果在调用参数化宏文件时没有指定参数值,则宏中的参数会被忽略掉,由此可能会导致程序报错。宏文件中的参数可以通过在宏中设置默认值的方式避免出现参数没有被赋值的情况发生,具体语法是在宏文件的开头定义参数的默认值(也可以在宏文件其他任意位置,但默认值只对定义默认值所在行后面的表达式有效)。$D3 = ‘defaultvalue’ 注意,参数的默认值只在参数没有被赋值时有效。

字符$,可以代替空格作为参数之间的分隔符,具体格式如下,

$m filepath $,'str'$, 'ing'$, '()'$.

注意最后是以$.结尾。另外,$,也可以用于在调用宏文件时忽略指定位置的参数,如$M /demo.mac $,$,arg2$,arg3$. 忽略了第一个参数。也可以用$<$> 忽略指定的参数,如$M/demo.mac arg1 $<$> arg3 忽略了第二个参数。如果忽略参数表中的最后一个参数,可以直接忽略不输入,不用特殊符号表示,如$M/demo.mac arg1 arg2

另外注意在用变量作为参数调用参数化宏时,必须把变量转为字符串类型,比如,!X = 12

!Y = 15

$m filepath $!X $!Y

PDMS-PML基础

PML基础王元 AVEVA中国2005.11.19

如何学习PML编程 T需要具备的基本知识 –熟悉Pdms的基本操作 –了解Pdms的运行机制,模块之间的关系 –Pdms属性的操作 –Pdms命令的操作 –Pml语法(本教程) –通过Pdms菜单查找示范程序 课程将包括... T PML介绍 –PML概念 –PML功能 –PML构成 T PML程序语言 –变量的定义及用法 –循环Do、判断If、跳转Golabel –错误处理 –文件处理 –函数Functions、方法Method –对话框Forms和菜单Menu

课程结束后... T您会具有以下知识… –PML构成及功能 –编写简单的宏 –PML变量的定义及应用 –PML函数/方法的定义及调用 –PML窗体/对象的定义及调用 PML -功能强大的语言 T P rogrammable M acro L anguage可编程宏语言 T PML2基于面向对象(Object Oriented)概念的编程语言T支持用户自定义对象类型(Object Types) T简单易学,与PDMS无缝连接 T丰富的内置函数,方法及对象 T最简单的对话框,菜单编写语言

PML构成 T Macros –Macros是包含PDMS 命令序列的ASCII文件 –Macros 在PDMS 中通过$m /FILENAME来执行 T PML –变量(Variables) –判断语句(if Constrcuct) –循环(Do loops) –错误处理(Error Handling) –文件处理(Files and Directories) T窗体和菜单 –PDMS大多数应用程序都由对话框(Forms)和菜单(Menus)来驱动 一个简单的Macro T宏是包含PDMS 命令序列的一个文本文件 T运行宏 $M /MyFile ASCII 文件 MYFILE NEW EQUIP /FRED NEW BOX XLEN 300 YLEN 400 ZLEN 600 NEW CYL DIA 400 HEI 600 CONN P1 TO P2 OF PREV

建筑施工现场管理个人工作总结(20201117135536).docx

建筑施工现场管理个人工作总结 身为建筑公司的一员,有机会能在这样的条件下学习和锻炼,感到无比的自豪,这种环境和外部的条件给了我们一种自信和荣耀,但更多的是对我们的今后工作的鞭策,就要求我们在工作中时刻要以企业的形象来约束自己,我们所有的言行要符合特级企业的标准,逐步培 养自身的个人素质和修养,才能无愧于领导的信任和培养 . 通过总结一年来的工作,找出工作中的不足,以便在以后的工作中加以克服,同时还需要多看书,认真学习好规年的工作,有进步、有收获、有成绩,同时也存在着不足 一、整体工作状态 ( 一) 上半年的工作——紧张而忙绿 由于公司刚成立不久、人员配备不足, 20xx 年年底有多个项目同时开工的情况下,上半年我同时负责安徽 拓山重工机械有限公司综合楼工程、安徽马氏铸造设备制造有限公 司的厂区工程、安徽美诺华药物化学有限公司8#车间工程的现场管理和资料的收集、整理工作,由于三个工程的开工时间相对集中,同 时进行主体施工,因而显得紧张而忙碌,只好白天进行现场管理,晚 上加班整理资料。尽管如此,仍出现过几个工地同时有事情要处理, 因不能同时到场而被抱怨的情况。 ( 二) 下半年的工作——相对轻松 下半年,美诺华、马氏铸造、拓山重工和苏村幼儿园相继进行竣工

验收,此外两名实习生也可以帮我分担一部分工作,因而下半年的工作相对轻松起来。 二、岗位职责的履行 1.全面负责工地施工的组织、协调和指挥工作 每个项目部成立后,我均在第一时间协助项目经理进行现场查验, 绘制施工现场平面布置图,合理规划施工道路、料场、施工机具及临 时设施的位置,配合公司安全科指导现场临时用电的设置,几个项目基本上一次性满足施工规年来,各项目部工作的开展均算顺利,施工生产得到健康、有序的进行。 2.技术指导工作 (1)工程开工前认真研究图纸,并汇总监理及各班组发现的各种问 题,及时在图纸会审中一一解决。 (2)每个工序开工前及时对班组负责人进行技术交底,关键部位的 施工坚持旁站,发现问题时及时给予解决。 (3)在施工过程中发现图纸设计存在问题或存在施工难度大的,积 极寻找解决方案,并与现场监理及设计人员沟通,确保施工顺利进行。 3.质量控制 (1)严格控制进场材料的质量,包括核对质保资料,检查材料外观,并及时送样检测,杜绝不合格材料在工程中使用。 (2)施工规个环节发现有质量隐患的,均要求相关人员立即进行整 改,整改合格后方可进行下道工序的施工。 4.进度控制

钻孔灌注桩施工总结计划.docx

钻孔灌注桩施工工艺 一、实施方案 1、质量管理体系见表1 表 1 项目经理:张玉涛项目总工:郭海峰指挥层 生产经理:冯永春倪金洲 合同经理:苏云长材料经理:刘敬涛 施工队长:王清波质检科长:贾绪军执行层 测量班长:贾占生设备科长:林宝清 操作层工长:陈会霞 测量员:曲建伟 试验员:朱守成肖丹 安全员:于淼 质检员:张力 操作手:张东王强等 2、材料要求 材料要求:水泥采用金宁羊42.5R 级普通硅酸盐水泥,粗集料产地南京,级配良好最大粒径为31.5 cm,细集料产地南京,采用级配良好的中粗砂,采用JM9缓凝泵送外掺剂。 3、施工控制参数 (1)每立米材料用量(质量比)为:水泥:砂:碎石:水:外加剂= 380:797: 1014:190:3.04 水灰比为 0.5砂率为0.44坍落度20cm (2)制备泥浆用塑性指数 IP>10的粘性土或膨润土 , 泥浆性能指标要求见下表 泥浆性能指标要求

钻孔地层相对粘度含砂率胶体失水率酸碱度方法情况密度( ps.s )(%)率(%)(ml/30min)PH 正循一般地 1.05—16— 228— 4≥96≤ 258— 10环层 1.20 易坍地 1.20—19— 288— 4≥96≤ 158— 10 层 1.45 4、施工方法 (1)准备场地、测量放线 施工前进行场地平整,清除杂物,钻孔位置处平整夯实。根据桩位坐标,用全站仪准确定出桩位。同时对施工用水、泥浆池 位置、动力供应、钢筋加工场地、施工便道做统一的安排。 (2)埋设护筒 护筒因考虑多次周转,采用 5mm钢板制成,护筒内径比桩径大300mm;护筒中心竖直线应与桩中心重合,平面允许误差为 50mm,竖直线倾斜不大于 1%,实测定位,护筒高度高出地面 0.3m。 (3)钻孔 ①将钻机调平对准钻孔, 把钻头吊起徐徐放入护筒内。钻进 时,连续补充泥浆,维持护筒内应有的水头,避免坍塌。 ②钻孔连续进行,不间断,视土质及钻进部位调整钻进速度。 在护筒刃脚处,低档慢速钻进,使刃脚处有坚固的泥皮护壁。钻 至刃脚下 1米后,可按土质以正常速度钻进。粘土中钻进,由于泥浆粘性大,钻锥所受阻力也大,易糊钻。选用尖底钻锥、中等转 速、大泵量、稀泥浆钻进。 ③钻进时,为减少扩孔、弯孔和斜孔,采用减压法钻进,使

PDMS软件的二次开发及应用

PDMS软件的二次开发及应用 姓名:王晶 指导老师:郭琳 实习单位:建造公司技术部电议室毕业院校:哈尔滨工业大学 所学专业:软件工程 2010 年 12 月

摘要 PDMS软件在许多行业中流行,适应多种行业建模,具有一定的普遍性。PDMS软件能够进行的三维建模可直接生成自动标注的分专业或多专业布置图、单管图、配管图、结构图、支吊架安装图,并抽取材料等。 PDMS软件的引进为公司带来了更多的方便提高了效率和准确度,但由于该软件的普及性特点注定了对本公司所涉及的工程项目不具备针对性,虽然带来了巨大的效益,同时对于具体项目而言仍然不可避免的存在着某些繁琐复杂的手工工作程序。 本课题使用PML语言对PDMS软件进行了二次开发,提供了多个扩展功能,通过与原软件风格相融合的图形化形式展示给用户,操作方便,不但解决了工作中存在的许多重复、耗时的工作,提高工作效率,增强计算准确率,也成为PDMS的二次开发的真实实践,掌握一种新的技术。对PDMS软件新增功能的使用将为公司带来更高效、更省时的收益,并将随着该技术的不断完善、熟练,成为公司的一种商品为公司带来新的效益。 关键词:PDMS;PML语言;文件存储;Add-ins;

目录 摘要 ............................................................. I 目录 ............................................................ I I 一概述 . (1) 1.1 课题背景及研究目的 (1) 1.1.1 与课题相关的研究综述 (1) 1.1.2 课题研究目的与意义 (2) 1.2 课题研究的创新点 (2) 二研究方案 (5) 2.1 技术方案 (5) 2.1.1 PDMS运行机制及二次开发技术 (5) 2.1.2 PML功能及构成 (7) 2.2 技术关键 (7) 2.2.1 PML中Add-ins的应用 (8) 2.2.2 PML文件存储机制 (8) 2.2.3 PML对象的应用 (10) 三 PDMS扩展功能介绍及应用 (11) 3.1 PDMS扩展功能界面展示 (11) 3.2 电缆路径自动敷设及电缆长度统计功能 (12) 3.3 托架上某截面电缆信息的展示功能 (15) 3.4 填充率计算及护管选型功能 (16) 3.5 错误路径删除及打印单个路径图纸功能 (18) 3.6 相关联的其它扩展功能 (19) 四总结 (20) 五参考文献 (21) 六致谢 (22)

工程竣工报告模板总结模板计划模板.docx

房山区长阳镇起步区 2 号地北侧多功能用地 11#商 业楼等 2 项工程竣工 质 量 报 告 审定: 审核: 编制: 江苏省建筑工程集团有限公司

目录 1、工程概况 .................................错误!未定义书签。 2、工程实体质量情况评估.....................错误!未定义书签。 3、施工资料完成情况.........................错误!未定义书签。 4、主要建筑设备、系统调试情况...............错误!未定义书签。 5、安全和功能检测、主要功能抽查情况. .........错误!未定义书签。 6、结论 .....................................错误!未定义书签。

1、工程概况 总体简介 序号项目内容 1工程名称 房山区长阳镇起步区 2 号地北侧多功能用地11#商业 楼等 2 项 2工程地址房山区房山线长阳站8 号地东侧 3建设单位北京首都开发股份有限公司 4设计单位华通设计顾问工程有限公司 5监理单位北京赛瑞斯国际工程咨询有限公司 6勘察单位中兵勘察设计研究院 7质量监督单位房山区建设工程质量监督站 8施工总承包单位江苏省建筑工程集团有限公司 9合同承包范围土建、水电安装、通风空调、幕墙、消防及装饰工程 10结算方式中标价 +工程洽商 11合同工期607 日历天 12合同质量目标整体竣工验收合格 建筑设计概况 序号项目内容 1建筑功能商业楼 2建筑特点智能化建筑设计 3建筑面积 2总建筑面积 49925m 4层数地上 4 层局部 5 层地下 2 层 地上 首层地下一层 5建筑层高 层高 地下二层 2-5 层 直燃机房 ±标高室内外高差: 6建筑高度 檐口高度:建筑总高度 7耐火等级二级人防等级 6 级

中国急性早幼粒细胞白血病诊疗指南(全文版)

中国急性早幼粒细胞白血病诊疗指南(全文版) 急性早幼粒细胞白血病(APL)是一种特殊类型的急性髓系白血病(AML),绝大多数患者具有特异性染色体易位t(15;17)(q22;q12),形成PML-RARα融合基因,其蛋白产物导致细胞分化阻滞和凋亡不足,是APL发生的主要分子机制[1,2]。APL易见于中青年人,平均发病年龄为44岁,APL占同期AML的10%~15%,发病率约0.23/10万[1]。APL 临床表现凶险,起病及诱导治疗过程中容易发生出血和栓塞而引起死亡。近三十年来,由于全反式维甲酸(ATRA)及砷剂的规范化临床应用,APL 已成为基本不用进行造血干细胞移植即可治愈的白血病[3,4]。 一、初诊患者入院评估 1.病史和体检 2.血液检查:血常规、血型,外周血涂片,生化,DIC相关指标检查,输血前有关传染性病原学检查。 3.骨髓检查: (1)细胞形态学和组织化学: 以异常的颗粒增多的早幼粒细胞增生为主,且细胞形态较一致,胞质中有大小不均的颗粒,常见呈柴梱状的Auer小体。FAB分型根据颗粒的大小将APL分为:①M3a(粗颗粒型);②M3b(细颗粒型);③M3c(微颗粒型):较少见,易与其他类型AML混淆。细胞化学:APL的典型特征表现为过氧化酶强阳性、非特异性酯酶强阳性且不被氟化钠抑制、碱性磷酸酶和糖原染色(PAS)呈阴性或弱阳性。

(2)免疫分型: 免疫分型在APL诊断中起到辅助作用。其典型表现:表达CD13、CD33、CD117和MPO,不表达或弱表达CD34、HLA-DR、CD11b、CD14、CD64、CD56。少数表达CD56患者提示预后较差。 (3)细胞遗传学: 典型APL表现为t(15;17)(q22;q12)。变异型APL占2%,如t (11;17)(11q23;q12)、t(5;17)(5q35;q12)、t(11;17)(q13;q21)、der(17)、t(17;17)(q24;q12)、t(4;17)(q12;q21)、t(X;17)(p11;q21)、t(2;17)(q32;q21)、t(3;17)(q26;q21)、t(7;17)(q11;q21)、t(1;17)(q42;q21)等。5%的APL患者核型正常。常规染色体检测有时还可发现除t(15;17)以外的附加染色体异常。 (4)分子生物学: ①PML-RARα融合基因:98%以上的APL患者存在PML-RARα融合基因,另有低于2%的APL患者为其他类型融合基因(见以下变异型APL 诊断标准),检测PML-RARα融合基因是诊断APL的最特异、敏感的方法之一,也是APL治疗方案选择、疗效评价、预后分析和复发预测最可靠的指标。实时定量PCR(RQ-PCR)可在99%的典型APL患者中检出PML-RARα融合基因,但仍有1%的APL患者可出现假阴性。②基因突变:部分APL患者可伴有FLT3-ITD突变。 4.其他检查:心电图,超声心动图(必要时),胸片,腹部B超或CT(必要时)。

工程项目年终总结(3篇).docx

工程项目年终总结( 3 篇) 工程项目年终总结 (一) 200x 年已经过去, 200x 年业已到来,下面我将200x 年一年来的工作情况做以下汇报。 〈一〉 200x 年全年工作内容: 200x 年我负责施工的内容是滨河湾小区住宅工程, 共包括 4 栋 7+1 框架住宅楼,建筑面积26500m2。该工程为公司重点工程项目,200x 年 5 月 20 日进场施工。目前 已经完成主体工程以及部分内外装修工程。 〈二〉全年各项工作完成情况: (1)工程质量完成情况: 滨河湾小区是公司2004 年重点建设项目,我作为项目经理被公司批准后,立即开始了项目部的组建工作。首 先根据滨河湾的工作要求,从公司抽调了工作人员,建立 了质量管理体系、项目管理目标和管理人员岗位责任 制。滨河湾小区的质量目标为创建“无质量通病小区”,为此公司下发了许多预防措施和实施办法。为保证整个目标 的实现,我组织项目部管理人员根据自己的实践经验,结 合工程的特点,编制了项目部质量预防措施。工程开工以

后,我们严格控制施工质量,从基础开始,一步一个脚印的进行。模板工程重点控制结构尺寸和支撑牢固性,确保设计尺寸的准确和观感的质量。钢筋工程重点控制绑扎质量,尤其是钢筋实物的间距和位置。在施工过程中,我要求坚决落实公司预防措施内容,并且坚持进行样板引路,同时组织管理人员对其他项目部在建工程进行参观学习,作到扬长避短,提高了项目部人员的质量争先意识。砼工程重点控制了砼的浇注和养护工作。规范浇注、及时养护是保证砼质量的根本途径。在整个主体施工期间,我们认真进行了落实。迄今为止,未发现砼裂缝现象。整个主体工程的施工,经过项目的认真控制,全部施工内容符合设计要求,主体质量较好,受到了金屋地产的奖励,达到了预期的质量目标。 (2)工程生产及进度控制: 滨河湾小区开工以后,我按照公司要求工期,组织制定了施工进度网络计划以及劳动力计划。并且根据施工进度要求,与各个施工班组签定了质量、进度、安全控制协议书。对其具体进度、生产内容提出了具体要求。在生产过程中,我根据实际情况,通过制定月计划和周计划,对

pml基础语法简明教程

第一部分: 基础知识 PML基本概念 Programmable Macro Language 可编程宏语言. 通常的PML开发包括两部分, 一部分是PML宏,脚本语言; 另一部分是PML2,面向对象的编程语言. 1.PML宏(Macro) 宏, 就是一系列pml命令的集合. 通过$m执行. 格式为: $m filename [param1 param2 ….] (举例) 其中param1为参数, 宏可以参数化. (举例) 2.面向对象的PML2 PML支持对象(Object),对话框(Form)和菜单(Menu). (举例) 一.变量,函数和方法 1. 变量的定义及用法 在PML2中, 每一个变量都是对象. 变量名以!或者!!开头,例如!weight. !开头的变量为局部变量, !!开头的为全局变量. PML内置了常用的变量类型. (1)Real 实属类型. 提供基本的四则运算操作. 例如 !a = 10 !b = 10 !a = !a + !b $p $!a --输出变量a的值 (2)String 字符串类型. 例如 !strName = ‘/EQUI-TEST-1’ (3)Boolean 用于逻辑表达式. 值只能是true/false (4)Array 数组 (5)Position (6)Direction 3.变量的创建, 删除, 查看 变量可以用赋值来创建. 例如 !str = ‘abc’ 也可以用类型标识来创建. !str= string() !str= ‘abc’ 删除: !str.delete() 查看:通常使用q var!str也可以用$p $!str 4.方法(method) 和函数(Function) Method是一个对象的子程序. 只有当对象存在,才可以调用对象的方法. 例如

工程部年中工作总结.docx

上半年过去了,工程是否完工?进度如何?该写一份工作总结了哟?下面是为您带来的“工程部年中工作总结”,希望能给您带来帮助! 更多年中工作总结请关注工作总结栏目! 【工程部年中工作总结一】 xx年上半年,工程部在公司领导的正确带领下,以严谨认真的工作态度,努力营造良好的工作环境,在加速各在建工程项目的纵深推进的同时努力开展新工程。在全体成员的积极协作、通力配合下,上半年我部门顺利开展了工程、工程、公司办公楼装饰装修工程等共计3个项目的施工改造工作,并中标房建项目、房建项目、市政基础设施及配套建设项目共计3个标段。海外工程中完成移交,项目已正式开工,项目处于质保阶段。现将上半年工作总结如下: 一、xx年上半年主要工作的开展情况 (一)国内工程 1、改扩建工程:改扩建工程于9月开工,截至xx年6月底已基本完工。xx年5月服务区、服务区的投入使用,标志着整个改造工程主施工阶段基本结束。经初步测算,共完成工程量约1.96亿元。其中:xx年上半年,完成工程量约计2200万元,9421平方米。服务区完成工程量约计1100计万元,计4635平方米。 对已完工的工程,我部积极配合推进工程的结算审计工作,并于xx年2月将已完工程的结算书报业主单位。截至目前,合同范围的工程已基本审计结束,审计认定结果约计700余万元。 2、公司办公楼装饰装修工程:本工程于10月开工,截至xx年6月,已完成工程量人民币195万元整。 3、zzz装饰装修工程:本工程于xx年3月开工,5月28日竣工,已完成工程量人民币84.3万元。 (二)海外工程 1、工程:xx年上半年是项目最为关键的时段,共完成产值6000多万元。在公司领导、现场技术组及国内管理组的共同努力下,项目管理人员及施工人员面临时间紧任务重,克服现场各种困难,使项目6月5日顺利通过内部验收,评定为合格工程。 2、项目:项目进入实施准备阶段,xx年3月初技术组管理人员抵达现场,开始项目开工准备,4月份25名工人抵达现场,5月14日第一批材料物资抵达港,6月8日部批准了该项目的正式开工,项目正式拉开序幕。 (三)中标工程 1、房建项目:xx年3月,我部分别对共计4个标段递交了资格预审文件,4个标段均通过资格预审。进入招标阶段后,根据招标文件中同一项目只许中标一个标段的规定,我部在4月份的投标工作中以严谨认真的态度确保建设规模最大的2个标段中标,分别为第三标段与第三标段。具体情况为: (1)第三标段,中标价人民币万元,包括,共计平方米,计划工程12个月。 (2)第三标段,中标价人民币万元,包括,共计7987.2平方米,计划工程10个月。以上两个标段已经进场,约7月底开工。 2、设施及配套建设项目:xx年6月,我部中标设施及配套建设项目第一标段。包括两个馆,项目。工程量约人民币万元,预计工期个月,目前处于合同签订准备阶段。 (四)安全工作 上半年,我部安全工作主要有: 1、落实安全生产责任,签订安全生产责任书; 2、积极开展安全生产月活动; 3、认真开展安全教育与培训工作;

物联网中的通信语言PML

The Communicating Language in EPCglobal: PML 物联网中的通信语言:PML PML:物体标记语言 摘要:随着RFID 的大规模应用,EPC 物联网也得到了很大的发展。在此物联网络中,相互通信的公共语言是PML。PML是在XML的基础上扩展而来,用于描述自然物体、处理过程及环境情况。本文详细地讲述了PML 语言的概念、组成、设计,并给出了其应用实例。EPC的6个组成部件: EPC编码标准 EPC标签 阅读器 Savant ONS EPC信息服务器(EPCIS,旧称PML服务器) PML设计 现实生活中的产品丰富多样,难以用一个统一的语言来客观的描述每一个物体。然而,自然物体都有着共同的特性,如体积、重量;企业、个人交易时有着时间、空间上的共性。例如,苹果、橙子、统一鲜橙多,它们三者都属于食品饮料,而苹果、橙子同属于农作物,鲜橙多又是橙子加工后的商品;人们交易一箱苹果的时间、地点又是相同的。但是,自然物体的一些相关信息(如生产地、保质期)不会变化。同时,EPC物联网是建立在现有的互联网上的。为此,作为描述物体信息载体的PML 语言,其设计有着独特的要求。 (1)开发技术 PML 首先使用现有的标准(如XML、TCP/IP)来规范语法和数据传输,并利用现有工具来设计编制PML 应用程序。PML 需提供一种简单的规范,通过通用默认的方案,使方案无需进行转换,即能可靠传输和翻译。PML 对所有的数据元素提供单一的表示方法,如有多个对数据类型编码的方法,PML 仅选择其中一种,如日期编码。 (2)数据存储和管理 PML 只是用在信息发送时对信息区分的方法,实际内容可以任意格式存放在服务器(SQL 数据库或数据表)中,即不必一定以PML 格式存储信息。企业应用程序将以现有的格式和程序来维护数据,如Aaplet 可以从互联网上通过ONS来选取必需的数据,为便于传输,数据将按照PML 规范重新进行格式化。这个过程与DHTML 相似,也是按照用户的输入将一个HTML 页面重新格式。此外,一个PML“文件”可能是多个不同来源的文件和传送过程的集合,因为物理环境所固有的分布式特点,使得PML“文件”可以在实际中从不同位置整合多个PML片断。 (3 )设计策略 现将PML 分为PML Core(PML 核)与PML Extension(PML扩展)两个主要部分进行研究,如图3 所示。

市政工程总公司2020年上半年工作总结.docx

2020年前半年,公司早动手、早打算,认真落实全市经济工作会议部署,采取有效措施,积极谋划全年工作目标,并有计划、稳步推进各项工作,现将前半年的工作情况总结汇报如下: 一、主要工作完成情况 (一) 扎实推进7项市属重点工程建设任务 今年公司共承揽市属重点工程建设项目主要有7项,分别为:府前街改造工程、运煤大道工程工程、第一污水处理厂提升泵房改造工程、XX市城区污水管网改造建设项目(二期工程)府前街(城排口-第一污水厂)、XX经济开发区孝能路道排工程、湿地公园工程、中六路道路工程。 截止到目前,各重点工程项目进展情况如下: 1、府前街改造工程 工程内容:建设单位为XX市政府工程建设事务管理局。该工程西起永盛路,东至迎宾路,全长2451.031m,道路红线宽30-40m。工程内容包含:雨水工程、污水工程、给水工程、照明工程、电力电信工程、路面工程,工程中标价为5687.09万元。 该工程4月4日开工,6月底全线铺油工程已完工。 2、运煤大道工程工程 工程内容:建设单位为XX市交通基础设施建设项目管理有限公司。我公司承建第二标段(K3+640--K7+945),全长4305m,工程造价2574.55万元。 该工程4月25日开工,预计9月底主线完工,截至目前: 已完成:清表2.7万㎡;路基挖土方18万m3;路基填土填土方18万m3;强夯2.5万㎡,铺设20cm砂砾垫层2万㎡,浇筑c35混凝土小矮墙500m3,砌筑盖板涵202米,清倒垃圾7万m3。 3、第一污水处理厂提升泵房改造工程 工程内容:建设单位为XX市政府工程建设事务管理局。该工程位于XX市污水处理厂院内西侧。该工程共分为三部分,第一部分为进水井提升泵房,建筑基底面积1741.60㎡,建筑面积50.16㎡,地下深15m,地上一层檐高5.85m,主体为框架结构,池体为钢筋混凝土结构;第二部分为调节池,建筑基底面积1091.40㎡,建筑面积64.96㎡,地上一层檐高7.90m,蓄水4000m3,主体为框架结构,池体为钢筋混凝土结构;第三部分为污水管网,全长210m,采用泥水平衡机顶管施工。 该工程2020年11月开工,预计7月底完工,截至目前: 已完成:提升泵房箱体预制、下沉、封底工作、调节池及210米污水管网铺设工程全部完工。 4、XX市城区污水管网改造建设项目(二期工程)府前街(城排口-第一污水厂) 工程内容: 建设单位为XX市住房保障和城乡建设管理局。该工程起点位于府前街与城排口交叉口附近,终点位于XX市第一污水厂西门附近。管线全长1055.22m。根据工程特点,采用沉井配合泥水平衡机械顶管技术进行施工。工程中标价为911.18万元。 该工程4月15日开工,预计7月底完工,截至目前: 已完成:5个工作井的预制、下沉、封底工作全部完工,完成顶管工程300m,其余4个工作井正在施工中。 5、XX经济开发区孝能路道排工程 工程内容:建设单位为XX市政府工程建设事务管理局。该工程南起XX市梧西线(与吴汾路交叉口),北至规划站前路,全长1590.28m,道路红线宽45m。工程中标价为2323.94万元。 该工程5月12日开工,预计8月底完工,截至目前:

公路工程2020年个人工作总结.docx

我于今年元月份开始在师公路建管处上班,从工程施工单位到工程建设单位,虽然我的工作岗位和角色发生了很大变化,但在领导的关心和同事的帮助下,凭着自己扎实的专业基础和工作经验,坚持以马克思、列宁主义,毛泽东思想,邓小平理论和“三个代表”重要思想为指导,刻苦钻研业务知识,努力提高理论知识和业务工作水平,我很快适应了工作环境,思想、学习和工作等方面取得了新的进步,较圆满地完成了全年工作任务,但也发现了自己的一些缺点,正在逐步改正,现作工作总结如下: 1、爱岗敬业,做好本职工作 年初上班伊始,我内心就树立了这样的理念:既然进入了公路建设项目管理行业,就得尽快转变观念,严守行业规则,遵守职业道德,恪尽职守,努力学习,完成好各项工作任务,不断提高业务水平。1-2月,我主要是参与、协助完成08、09年的公路项目决算编制工作,让我学会了一丝不苟、严谨求实;在编制过程中,我们以设计、招标和合同文件为依据,以公路工程计量规则为准绳,勤跑现场,认真核对,不放过任何一个疑点,本着对从业各方高度认真负责的态度,经过近一个月的努力,圆满地完成了编制任务。 3-4月,参与今年要实施项目的前期核对、计算及招投标工作. 5月始,正式开展2020年项目的实施管理工作。在项目管理过程中,做到了首先认真领会设计、招标及合同文件精神;其次再深入施工现场,仔细勘察,严把质量关,把各项管理规定落到实处;最后是组织施工、监理等参建各方互相学习、讨论、总结,在质量、进度、安全管理上下功夫,不断提高,使今年的项目管理上了一个新台阶。 我主要负责通营、连项目,通营、连项目的全过程建设管理工作并参与其他项目的验收、总结。首先抓好各个项目的质量控制点,做到事前控制,以点带线,以线贯面,严把工序报验关:要求施工单位完善“三检”制度,建筑物关键工序和路基、路面每个结构层竣工面按分部、分项严格向监理报验;要求监理落实好旁站、巡视工作,向业主绝对负责,保证自己先验收合格后再向我们报验;我们自己也坚决做到事必躬亲,有验必出,验则必严,绝不滞后。其次落实好“三全”管理措施,从工地原材料、人员和设备进场及施工组织设计到各道工序优化施工、现场变更到质量签证、交(竣)工验收等,我自己基本上做到了常驻工地,在质量、安全、进度上保证工程随时处于受控状态,监督好工程顺利实施、如期交工。第三是核好工程量,严把变更关,做好计量帐:对于量上变化的事,施工单位仔细测算、核对后报监理,监理必须现场审核无误再报我们,我们接报后及时跑现场核对、审批再形成文件,就这样层层把关,确保从业各方共赢。 一年来,我在工作上,取长补短,虚心求教;在业务上,精益求精,务求实效;基本上做到了规范管理,使所管项目都是正常、有序进行,最终保质保量的使其如期交工。 2、严于律已,自觉加强党性锻炼,提高管理效率,党性修养和政治思想觉悟进一步提高 一年以来,我积极开展自我批评工作,在实践中不断剖析自己,发现并改正缺点,譬如粗心、主观能动性不够、与领导和同事沟通少等毛病,我正在克服、改正。然后认真学习、努力工作,重管理,求实效,严谨、细致、脚踏实地。在日常工作、生活中,严格遵守本单位各项规章制度,尊重领导,团结同事,谦虚谨慎,不断改进工作方法,主动配合施工、监理方的工作,积极监督,热情服务;勤跑现场,做到“腿勤、手勤、嘴勤”,及时发现问题,防患于未然,如一些自己能当场处理的变更就现场解决,绝不拖延;对于现场可能出现的如设计上的遗漏、结构和质量上的隐患等,如软基处理、砼强度等,尽早发现、尽快处理,确保质量;给监理定岗定责,严格要求,发现施工、监理上的把控漏洞,立马要求整改,全程监控,绝不姑息。 3、不断提高自身综合素质,强化理论和业务学习,切实维护业主形象 首先加强专业知识学习,勇于钻研,认真探索新工艺、新技术,收集各类相关信息,

工程施工和管理个人实习总结报告.docx

工程施工和管理个人实习报告 一、前言 认识实习是工程管理专业教学计划中重要的教学环节, 是学生在校学习期间理论联系实际、增长实践知识的重要手 段和方法之一。认识实习主要对工地进行参观,了解工程施 工和管理的主要流程。通过本学期对土木工程制图、土木工 程概论、建筑力学等专业课的学习,以及田老师利用双休日 的时间给我们补习房屋建筑学、工程造价、建筑施工教程等 专业的基础课程,为我们这次认识实习打下了坚实的基础。 在实习过程中,我们以学校附近的一些建筑工地为实习场所, 我的主要任务是对工地进行参观,了解工程施工和管理的主 要流,认识建筑材料,建筑机械,施工技术并且熟悉工程管 理制度,为将来从事工程施工和管理打下实践基础。 二、工程概况 本次认识实习一共去了五个施工工地。 1.唐山对外经贸学校新校建设工程女生宿舍楼 本工程为唐山市对外经济贸易学校新校建设工程女生 宿舍楼,建设地点 :唐山市高新技术开发区,基础结构形 式为杯形基础,结构类型为框架结构,建设规模12905 平方米。 2.唐山学院北校区行政办公楼工程

本工程工程名称为唐山学院北校区行政办公楼工程,建 设规模为 25971 平方米,结构类型为框剪结构,建设地点: 高新区龙富道161 号,资金和落实情况:自筹,已落实。外 墙采用了环保材料聚苯板,聚苯板全称聚苯乙烯泡沫板,又 名泡沫板或EPS板。此建筑使用了大量的环保技术和环保材 料,内墙用的是粉刷石膏,整栋楼采用地热恒温技术。 3.唐山市翡翠城商住楼工程 翡翠城是十二层的高层建筑,结构是框架剪力墙结构。 翡翠城是由中冶京唐公司承建的,翡翠城总占地 43 亩,总建筑面 积 7XX 平米, 730 户,容积率,绿化率高达 40%,停车位为50%,由三座板楼、沿街四座塔楼及商业裙房和一座办公楼组成,内部形成两个院落。小区主入口位于沿街西北侧,次入口位于西 南角,内部形成交通环线。每个院落结合小品,铺装,植物配置,形成疏密有致的庭院空间。 采用地下车库与地面结合的停车方式,使人车适当分 流,塔楼与板楼间形成步行空间可直接到达各座入口,机动 车及地下出入口位于小区外围,减少了对内部环境的干扰, 保证院落内绿化空间和公共活动区的安静与安全,创造出宜 人舒适的活动场所。结合院落和景观设计,创造人们可以逗 留的区域,使人与环境出于相互融合的关系当中。首层近人 尺度尽可能采用木质,和天然材料,从入口到花架到地面铺 装,使人感受亲切与自然的归属感。

pml基础手册与总结

PML开发介绍与总结 1 pml语言简介 (2) 1.1 pml变量 (2) 1.2 变量类型 (2) 1.3 自定义变量类型 (3) 1.4 定义变量 (3) 1.5 函数(Function)和方法(Method) (4) 1.6 使用ANY类型的变量作为函数参数 (5) 1.7 变量的方法 (6) 1.8 自定义变量类型的方法 (7) 1.9 方法的重载 (8) 1.10 Unset和Undefined (9) 1.11 删除变量 (10) 2 Pml的一些特点 (10) 3 Pml表达式 (11) 4 pml流程控制 (11) 4.1选择结构 (12) 4.2 do循环 (13) 4.3 GoLabel跳转语句 (14) 5 pml数组 (15) 5.1 定义数组 (15) 5.2 数组的赋值 (15) 5.3 多维数组 (15) 5.4 数组的方法 (16) 5.5 利用数组进行字符串处理 (17) 5.6 数组排序 (18) 5.7 Do values循环和Do indices循环访问数组变量 (19) 6 pml宏文件概念及其运行 (19) 6.1 概念 (19) 6.2 带参数的宏文件 (20)

语言简介介 1pml语言简 pml是用于pdms二次开发的面向对象的编程语言,它的面向对象属性是与其他脚本语言的最大区别,也是现代高级语言的基本特征。pml提供了编辑窗体和菜单的功能,且语法简单方便,使得pml能实现高级语言的大部分功能,用户可以开发自己的菜单窗体,完成需求定制。 pml提供了大量的变量类型(object type)及与变量类型相对应的方法(method)。pml 提供的方法实用,具有针对性。比如数组(Array object)可以存放不同的数据类型,可以进行排序、清空没有赋值的元素、查找、删除等等方法,这是大多数高级语言没有提供的功能。 1.1pml变量 对于pml语言,每个变量即是一个object,对应一个变量类型object type。不同类型的变量只能保存对应类型的数据。pml变量的特点: 变量名称唯一,且不能重复。 每个object type即是一个类(class),有属于类的通用的方法和属性。因此每个pml 的变量(object)都可以调用所属类的方法。 每个变量对应一个变量类型,在定义变量前,对应的变量类型必须存在。 1.2变量类型 Pml的变量类型比较多,可以分为三类,built-in、system-defined、user-defined。 Built-in变量类型包括以下几种: 字符串 实数 布尔 数组 system-defined变量类型包括Direction,Position,Orientation等多种类型,详细信息可以参考手册。 user-defined变量类型是指用户自定义的类型。

工程部工作总结.docx

工程部工作总结 【导语】 工程部工作总结 (优选20篇) 由***整理投稿精心推荐,我希望对你的学习工作能带来参考借鉴作用。 【目录】 篇1:工程部工作总结 篇2:工程部工作总结 篇3:工程部工作总结 篇4:工程部工作总结 篇5:工程部工作总结 篇6:工程部工作总结 篇7:工程部工作总结 篇8:工程部工作总结 篇9:工程部工作总结 篇10:工程部工作总结 篇11:工程部工作总结 篇12:工程部工作总结 篇13:工程部工作总结 篇14:工程部工作总结 篇15:工程部工作总结 篇16:工程部工作总结 篇17:工程部工作总结 篇18:工程部工作总结 篇19:工程部工作总结 篇20:工程部工作总结 【正文】 篇1:工程部工作总结

我于年3月18日经过招聘到xx工程部上班。从学校到工程施工单位,虽然我的工作岗位和主角发生了很大变化,并且对工程管理、广联达预算软件首次接触,但在领导的关心和同事的帮忙下,凭着自我的专业基础和工作经验,加上刻苦钻研和学习,很快适应了工作环境,并取得了必须的成绩。现将工作情景简要总结如下: 一、主要工作表现及成绩 1、严格遵守公司各项规章制度。上班伊始,我认真学习了工程质量管理细则,并将其牢记于心,时刻提醒自我要严格遵守公司的各项规章制度,维护公司形象。 2、认真学习各种规范文件。从最开始的档案编制指南,包括技术交底清单、贯标实施表格、质量体系实施指南等到建筑施工手册、建筑施工质量通病防治手册、建筑工程施工质量验收细则等等各种规范规程;除此以外,还有酒店工程施工招标文件及投标文件、招标文件及投标文件、房屋建筑和市政基础设施工程招投标编制指南等文件。 3、对于一个刚毕业的学生来说,虽然在学校也有过一个多月在施工现场实习的经历,可是在真正的施工过程中,我所了解的还只是凤毛麟角。所以,从到公司上班开始,工程部的两位前辈就带着我去各个现场。跟随他们一齐检查质量、安全、礼貌施工等情景的那段时间,是我吸取知识、总结经验的最佳时机,也是我对于施工现场学到最多、最全面的阶段。所以我忠心的感激他们的传授、教导和关心。 4、认真学习省概预算编制资料。我首先对省概预算编制资料、计价清单规范等进行了认真系统的学习,并坚持边学习边实际计算练习,借项目投标之际,参与了技术标的编制过程,并针对其中11号楼施工图加以计算,由于大学毕业设计做的就是投标编制,所以较快的掌握了其中的要领,虽然还没有真正独立完成任务的机会,可是我个人认为我已经具备必须的独立完成任务的本事;与此同时,我还学会了使用“广联达预算软件”编制预算和抽算钢筋,经过对施工图的预算练习,虽然是首次接触,可是已经有了很大的提高,能够进行部分独立操作。在今后的工作中,我将不断的摸索和钻研,把工作做得更加精细、完美。 5、其他方面:①坚持每一天上班提早到公司,打扫办公室卫生,为同事创造一个干净的工作环境。②管理办公室内部分文件存放,以便需要时能够及时找到③

PML基础

PML 基础 王 元 AVEVA 中国2004.9.21 课程将包括... q PML 介绍 –PML 概念–PML 功能–PML 构成 q PML 程序语言 –变量的定义及用法 –循环Do 、判断If 、跳转Golabel –错误处理–文件处理 –函数Functions 、方法 Method – 对话框Forms 和菜单Menu 课程结束后... q 您会具有以下知识… –PML 构成及功能–编写简单的宏–PML 变量的定义及应用–PML 函数/方法的定义及调用–PML 窗体 /对象的定义及调用 PML -功能强大的语言 q P rogrammable M acro L anguage 可编程宏语言 q PML2基于面向对象(Object Oriented)概念的编程语言q 支持用户可自定义对象类型(Object Types)q 简单易学,与PDMS 无缝连接q 丰富的内置函数,方法及对象q 最简单的对话框,菜单编写语言 PML 构成 q Macros –Macros 是包含PDMS 命令序列的ASCII 文件 –Macros 在PDMS 中通过$m /FILENAME 来执行 q PML –变量(Variables) –判断语句(if Constrcuct)–循环(Do loops) –错误处理(Error Handling) – 文件处理(Files and Directories) q 窗体和菜单 –PDMS 大多数应用程序都由对话框(Forms)和菜单(Menus)来驱动

一个简单的Macro q 宏是包含 PDMS 命令序列的一个文本文件q 运行宏 $M /MyFile ASCII 文件MYFILE NEW EQUIP /FRED NEW BOX XLEN 300 YLEN 400 ZLEN 600NEW CYL DIA 400 HEI 600 CONN P1 TO P2 OF PREV NEW EQUIP /$1NEW BOX XLEN $2 YLEN $3 ZLEN $4NEW CYL DIA $3 HEI $4 CONN P1 TO P2 OF PREV ASCII 文件MYFILE 一个简单的Macro ,继续, 参数化宏Parameterized Macro q 宏可以参数化 q 文件名后面的字符串是参数(parameters) $M /MyFile NEWEQUIP 300 400 600 宏的参数 q Macros 可以有多达9 个由空格分隔的参数. $M /MyFile PML TRAINING 55 66 q 文本字符串可以以单个参数输入 $M /MyFile $< PML TRAINING $> 55 66 q $<和$>是分隔符,在它们之间的任何字符都被认为是单个参数 变量Variables q 变量基本概念 –变量用于存储数值,变量必须有名字,变量的数值可以改变,但变量名是固定的. q PML 变量 –在PML2中变量是一个对象(Objects) ?每一个对象(变量)有一个唯一的名字 ?每一个对象都有一套函数与之相关联,这些函数称为方法(Methods).方法用于处理对象中的数据 ?生成对象时必须指明对象类型(Object type),不同的对象类型对应不同的方法 对象(变量 )类型Object Types q 内置(Build-in)的对象类型 –字符串类型(String).如'Hello World' –实数类型(Real).整数类型包括在实数类型中,如99–布尔类型(Boolean).用于逻辑表达式,如True,False –数组类型(Array).可以存储任意类型的数据 q 系统定义(System-defined)的对象类型 –指在PDMS 中的变量类型,如Positon,Reference q 用户自定义(User-defined)的对象类型 生成、查询、删除变量 q 使用命令行或者文本文件测试q 通过赋值声明变量类型 !MyString = 'Hello World'Q var !MyString 显示 'Hello World' q 直接声明变量类型 !Length = Real()Q Var !Length 显示 Unset q 删除变量用到方法 !MyString.Delete ()

相关文档
最新文档