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