AVEVA PML Quick Start Guide
AVEVA PML 快速入門引導(dǎo)
eryar@163.com
一、引言
近來網(wǎng)上有些朋友通過Email和QQ聯(lián)系到我,和我聊他們公司中AVEVA Marine/Plant(PDMS)的使用情況和有關(guān)二次開發(fā)的問題。有的公司也許是由于船東或業(yè)主的要求不得已才用,也只是建模型,做碰撞檢查之用,沒有充分發(fā)揮AVEVA軟件的作用,沒有理解生產(chǎn)工具這個(gè)概念,沒有使之轉(zhuǎn)化為生產(chǎn)力,提高生產(chǎn)效率。覺得很好玩,從政治書中摘出以下內(nèi)容:
生產(chǎn)力與生產(chǎn)關(guān)系矛盾運(yùn)動(dòng)的規(guī)律,是人類社會(huì)發(fā)展的基本規(guī)律。生產(chǎn)力是人類在生產(chǎn)實(shí)踐中形成的改造自然和影響自然以使其適應(yīng)社會(huì)需要的物質(zhì)力量。生產(chǎn)力的基本要素有:
l 勞動(dòng)資料:也稱勞動(dòng)手段,是人們在勞動(dòng)過程中所運(yùn)用的物質(zhì)資料或物質(zhì)條件,其中最重要的就是生產(chǎn)工具。
l 勞動(dòng)對象:一切自然物質(zhì)都是可能的勞動(dòng)對象,其中引入生產(chǎn)過程的部分是現(xiàn)實(shí)的勞動(dòng)對象,包括生產(chǎn)深度加工的對象。勞動(dòng)對象是現(xiàn)實(shí)生產(chǎn)的必要前提,它從一個(gè)側(cè)面反映和體現(xiàn)生產(chǎn)力發(fā)展水平;
l 勞動(dòng)者:勞動(dòng)者是具有一定生產(chǎn)經(jīng)驗(yàn)、勞動(dòng)技能和知識,能夠運(yùn)用一定勞動(dòng)資料作用于勞動(dòng)對象、從事生產(chǎn)實(shí)踐活動(dòng)的人。一般包括體力勞動(dòng)者和腦力勞動(dòng)者。勞動(dòng)者是生產(chǎn)中最活躍的因素,人類智慧和能力的發(fā)展決定著對物質(zhì)資源開發(fā)的深度和廣度。勞動(dòng)資料和勞動(dòng)對象只有與勞動(dòng)者的創(chuàng)造活動(dòng)結(jié)合起來,才能變?yōu)楝F(xiàn)實(shí)的生產(chǎn)力。所以,人才資源是第一資源。
l 生產(chǎn)力中還包含著科學(xué)技術(shù)。科學(xué)技術(shù)是先進(jìn)生產(chǎn)力的集中體現(xiàn)和主要標(biāo)志,是第一生產(chǎn)力。科學(xué)技術(shù)能夠應(yīng)用于生產(chǎn)過程、滲透在生產(chǎn)力諸要素之中而轉(zhuǎn)化為實(shí)際生產(chǎn)能力。科學(xué)技術(shù)上的發(fā)明創(chuàng)造,會(huì)引起勞動(dòng)資料、勞動(dòng)對象和勞動(dòng)者素質(zhì)的深刻變革和巨大進(jìn)步。科學(xué)應(yīng)用于生產(chǎn)的組織管理,能夠大幅提高管理效率。科學(xué)技術(shù)為勞動(dòng)者所掌握,可以極大提高勞動(dòng)生產(chǎn)率。在現(xiàn)代,科學(xué)技術(shù)發(fā)展日益成為生產(chǎn)發(fā)展的決定性因素。
AVEVA公司的軟件只是個(gè)生產(chǎn)工具,但是國內(nèi)許多公司沒有使其與勞動(dòng)者結(jié)合,未能轉(zhuǎn)化為現(xiàn)實(shí)的生產(chǎn)力。原因當(dāng)然是多方面的,但歸根到底還是由于AVEVA太貴。衷心希望國產(chǎn)三維CAD/CAM軟件能夠發(fā)展起來,不能讓錢都給老外賺去,這也許是“落后就要挨打”的一種體現(xiàn)。
二、PML介紹
PML是指the AVEVA Programmable Macro Language。使用PML可以根據(jù)需要靈活開發(fā)出自己的程序。PML功能強(qiáng)大,簡單易學(xué),與PDMS無縫連接,簡化用戶界面(GUI)的開發(fā)。包括管子創(chuàng)建、部件創(chuàng)建修改等許多程序都是用PML寫的,且AVEVA的這些源代碼也是可以查看的。當(dāng)理解PML后,可以查看這些源碼,加深對AVEVA軟件的理解。
PML2是基于面向?qū)ο蟮慕忉屝驼Z言,而不是面向?qū)ο蟮恼Z言。因?yàn)槊嫦驅(qū)ο蟮恼Z言支持類、繼承、多態(tài)的概念,而PML不支持繼承,但是可以對象組合。這倒也符合GoF的《Design Pattern》中的一個(gè)建議:Favor object composition over class inheritance.優(yōu)先使用對象組合而不是繼承。
PML中的對象(Objects)有成員變量和成員函數(shù),即屬性和方法。沒有私有的概念(private),即所有的成員變量和函數(shù)都是公有的(public)。所有變量的作用域只有兩種:全局變量和局部變量(Global and Local)。PML函數(shù)參數(shù)都是傳引用的(passed-by-reference)而不是傳值的方式(passed-by-value),所以可以通過參數(shù)返回改變的值。在C/C++語言中,這兩種方式都可以使用。
在學(xué)習(xí)過程中,若你會(huì)使用C/C++或Java,則通過對比會(huì)更快的掌握PML。
三、推薦編程工具
推薦一個(gè)替代記事本的強(qiáng)大的編輯工具:EditPlus。主要是因?yàn)?strong>EditPlus可以基于自定義語法文件為其他編程語言的語法高亮。
可以為編輯PML設(shè)置語法高亮及自動(dòng)完成功能。EditPlus不是免費(fèi)的,但可以從其官方網(wǎng)站上下載試用版:http://www.editplus.com/。
若需要PML的語法高亮及自動(dòng)完成的配置文件或其配置方法,都可以與我聯(lián)系。
當(dāng)然,還有許多這種文本編輯工具,若可以語法高亮,編寫代碼時(shí)要舒服很多,可根據(jù)實(shí)際情況選用。
四、第一個(gè)程序:Hello World!
程序員喜歡的一本書《The C Programming Language》中以一個(gè)顯示“Hello World!”的程序已經(jīng)成為程序設(shè)計(jì)書中的經(jīng)典。這里也以顯示一個(gè)“Hello World!”為例開始PML的學(xué)習(xí)。程序代碼如下所示:
運(yùn)行成功后,將會(huì)出現(xiàn)如下的程序界面:
為了運(yùn)行成功,需要了解以下內(nèi)容:
1. PML程序文件存放位置:PML程序文件的位置由evars.bat文件中設(shè)置的,也可以根據(jù)實(shí)際情況設(shè)置成別的路徑,默認(rèn)設(shè)置路徑為:
一般默認(rèn)的設(shè)置為:X:\AVEVA\Marine\OH12.0.SP6\PMLLIB;
2. 規(guī)范的文件擴(kuò)展名:
l .pmlfnc —— PML Function definition files 函數(shù)定義文件;
l .pmlobj —— PML object type definition files 對象定義文件;
l .pmlfrm —— PML Form definition files 對話框定義文件;
Note: All filename extensions must be entered in lower case.
注:所有文件的后綴名必須是小寫字母。
3. 文件夾命名約定:將以上三種文件分別放在三個(gè)不同的文件夾中,這三個(gè)文件夾分別是:forms,functions,objects,如下圖所示。
當(dāng)然,這只是個(gè)約定,也可以將所有類型的文件都放在一個(gè)文件夾中。
4. PML索引文件:pml.index。所有的PML程序文件都可以在這PMLLIB目錄下的這個(gè)文件中找到。如果這個(gè)文件中沒有那個(gè)文件,則該文件就無法被識別。把PML程序文件加入到這個(gè)文件也是通過命令自動(dòng)完成的,命令為:pml rehash all。
了解以上內(nèi)容后,我們來具體實(shí)現(xiàn)一下:
首先:將語法高亮顯示的程序代碼保存為Hello.pmlfrm;
其次:在路徑:X:\AVEVA\Marine\OH12.0.SP6\PMLLIB 下新建一個(gè)文件夾名為:AddIns,以后做的PML都放在這個(gè)文件夾中。按照約定,在AddIns文件夾中再新建三個(gè)文件夾:forms,functions,objects,并把Hello.pmlfrm放到forms文件夾中。如圖所示:
然后:進(jìn)入Outfitting模塊或Design模塊,在命令窗口中輸入命令:pml rehash all。
最后:也是在命令窗口中輸入命令show !!Hello來顯示出對話框。如圖所示:
應(yīng)該已經(jīng)可以顯示出下圖中的對話框啦。如果沒有顯示或有什么問題,可以與我聯(lián)系。
五、結(jié)束,也是開始……
希望以上內(nèi)容對你學(xué)習(xí)PML有所幫助。但是,作為快速入門引導(dǎo),不可能涵蓋所有的PML內(nèi)容。這里介紹一些附加的資源信息,也是我學(xué)習(xí)的信息來源。若有任何問題,總可以從這些資源中找到答案。
l PML基礎(chǔ),王元 2005.11.19。好像是AVEVA中國的官方培訓(xùn)資料,可以從網(wǎng)上輕松下載得到。我當(dāng)時(shí)也就是看了一遍就入門了,也許是會(huì)C/C++,其實(shí)本質(zhì)上還是因?yàn)?strong>PML很簡單易學(xué)。
l AVEVA的幫助文檔:Software Customisation Guide。看了這個(gè)以后,你就會(huì)覺得上面那本書里面的內(nèi)容就是這個(gè)文檔的簡單翻譯。這個(gè)Guide更全面,推薦看一下,也順便學(xué)習(xí)一下英文。
l AVEVA的幫助文檔:Software Customisation Reference Manual。本文檔主要為PML內(nèi)置對象的屬性和方法說明。
l 源代碼。在AVEVA安裝目錄的PMLLIB目錄下面有很多源代碼,這些代碼編寫規(guī)范,可作為學(xué)習(xí)對象。如通過在管路上添加部件功能源代碼的學(xué)習(xí),可以學(xué)到很多有用的東西。
利用這些資源,學(xué)習(xí)PML應(yīng)該已經(jīng)足夠。希望通過學(xué)習(xí),可以開發(fā)出一些符合公司要求的高效的程序,提高工作效率。
若有任何問題或建議,可以與我取得聯(lián)系,電子郵箱為:eryar@163.com。
eryar
Pudong Shanghai
2012-01-01
PDF文件下載: