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)工具這個概念,沒有使之轉(zhuǎn)化為生產(chǎn)力,提高生產(chǎn)效率。覺得很好玩,從政治書中摘出以下內(nèi)容:
生產(chǎn)力與生產(chǎn)關(guān)系矛盾運動的規(guī)律,是人類社會發(fā)展的基本規(guī)律。生產(chǎn)力是人類在生產(chǎn)實踐中形成的改造自然和影響自然以使其適應(yīng)社會需要的物質(zhì)力量。生產(chǎn)力的基本要素有:
l 勞動資料:也稱勞動手段,是人們在勞動過程中所運用的物質(zhì)資料或物質(zhì)條件,其中最重要的就是生產(chǎn)工具。
l 勞動對象:一切自然物質(zhì)都是可能的勞動對象,其中引入生產(chǎn)過程的部分是現(xiàn)實的勞動對象,包括生產(chǎn)深度加工的對象。勞動對象是現(xiàn)實生產(chǎn)的必要前提,它從一個側(cè)面反映和體現(xiàn)生產(chǎn)力發(fā)展水平;
l 勞動者:勞動者是具有一定生產(chǎn)經(jīng)驗、勞動技能和知識,能夠運用一定勞動資料作用于勞動對象、從事生產(chǎn)實踐活動的人。一般包括體力勞動者和腦力勞動者。勞動者是生產(chǎn)中最活躍的因素,人類智慧和能力的發(fā)展決定著對物質(zhì)資源開發(fā)的深度和廣度。勞動資料和勞動對象只有與勞動者的創(chuàng)造活動結(jié)合起來,才能變?yōu)楝F(xiàn)實的生產(chǎn)力。所以,人才資源是第一資源。
l 生產(chǎn)力中還包含著科學(xué)技術(shù)。科學(xué)技術(shù)是先進生產(chǎn)力的集中體現(xiàn)和主要標志,是第一生產(chǎn)力。科學(xué)技術(shù)能夠應(yīng)用于生產(chǎn)過程、滲透在生產(chǎn)力諸要素之中而轉(zhuǎn)化為實際生產(chǎn)能力。科學(xué)技術(shù)上的發(fā)明創(chuàng)造,會引起勞動資料、勞動對象和勞動者素質(zhì)的深刻變革和巨大進步。科學(xué)應(yīng)用于生產(chǎn)的組織管理,能夠大幅提高管理效率。科學(xué)技術(shù)為勞動者所掌握,可以極大提高勞動生產(chǎn)率。在現(xiàn)代,科學(xué)技術(shù)發(fā)展日益成為生產(chǎn)發(fā)展的決定性因素。
AVEVA公司的軟件只是個生產(chǎn)工具,但是國內(nèi)許多公司沒有使其與勞動者結(jié)合,未能轉(zhuǎn)化為現(xiàn)實的生產(chǎn)力。原因當然是多方面的,但歸根到底還是由于AVEVA太貴。衷心希望國產(chǎn)三維CAD/CAM軟件能夠發(fā)展起來,不能讓錢都給老外賺去,這也許是“落后就要挨打”的一種體現(xiàn)。
二、PML介紹
PML是指the AVEVA Programmable Macro Language。使用PML可以根據(jù)需要靈活開發(fā)出自己的程序。PML功能強大,簡單易學(xué),與PDMS無縫連接,簡化用戶界面(GUI)的開發(fā)。包括管子創(chuàng)建、部件創(chuàng)建修改等許多程序都是用PML寫的,且AVEVA的這些源代碼也是可以查看的。當理解PML后,可以查看這些源碼,加深對AVEVA軟件的理解。
PML2是基于面向?qū)ο蟮慕忉屝驼Z言,而不是面向?qū)ο蟮恼Z言。因為面向?qū)ο蟮恼Z言支持類、繼承、多態(tài)的概念,而PML不支持繼承,但是可以對象組合。這倒也符合GoF的《Design Pattern》中的一個建議: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í)過程中,若你會使用C/C++或Java,則通過對比會更快的掌握PML。
三、推薦編程工具
推薦一個替代記事本的強大的編輯工具:EditPlus。主要是因為EditPlus可以基于自定義語法文件為其他編程語言的語法高亮。
可以為編輯PML設(shè)置語法高亮及自動完成功能。EditPlus不是免費的,但可以從其官方網(wǎng)站上下載試用版:http://www.editplus.com/。
若需要PML的語法高亮及自動完成的配置文件或其配置方法,都可以與我聯(lián)系。
當然,還有許多這種文本編輯工具,若可以語法高亮,編寫代碼時要舒服很多,可根據(jù)實際情況選用。
四、第一個程序:Hello World!
程序員喜歡的一本書《The C Programming Language》中以一個顯示“Hello World!”的程序已經(jīng)成為程序設(shè)計書中的經(jīng)典。這里也以顯示一個“Hello World!”為例開始PML的學(xué)習(xí)。程序代碼如下所示:
運行成功后,將會出現(xiàn)如下的程序界面:
為了運行成功,需要了解以下內(nèi)容:
1. PML程序文件存放位置:PML程序文件的位置由evars.bat文件中設(shè)置的,也可以根據(jù)實際情況設(shè)置成別的路徑,默認設(shè)置路徑為:
一般默認的設(shè)置為:X:\AVEVA\Marine\OH12.0.SP6\PMLLIB;
2. 規(guī)范的文件擴展名:
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. 文件夾命名約定:將以上三種文件分別放在三個不同的文件夾中,這三個文件夾分別是:forms,functions,objects,如下圖所示。
當然,這只是個約定,也可以將所有類型的文件都放在一個文件夾中。
4. PML索引文件:pml.index。所有的PML程序文件都可以在這PMLLIB目錄下的這個文件中找到。如果這個文件中沒有那個文件,則該文件就無法被識別。把PML程序文件加入到這個文件也是通過命令自動完成的,命令為:pml rehash all。
了解以上內(nèi)容后,我們來具體實現(xiàn)一下:
首先:將語法高亮顯示的程序代碼保存為Hello.pmlfrm;
其次:在路徑:X:\AVEVA\Marine\OH12.0.SP6\PMLLIB 下新建一個文件夾名為:AddIns,以后做的PML都放在這個文件夾中。按照約定,在AddIns文件夾中再新建三個文件夾:forms,functions,objects,并把Hello.pmlfrm放到forms文件夾中。如圖所示:
然后:進入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)上輕松下載得到。我當時也就是看了一遍就入門了,也許是會C/C++,其實本質(zhì)上還是因為PML很簡單易學(xué)。
l AVEVA的幫助文檔:Software Customisation Guide。看了這個以后,你就會覺得上面那本書里面的內(nèi)容就是這個文檔的簡單翻譯。這個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文件下載: