999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

PDMS二次開(kāi)發(fā)語(yǔ)言PML與.NET(C#)的對(duì)比

2021-04-09 03:58:50南京金凌石化工程設(shè)計(jì)有限公司
電子世界 2021年2期
關(guān)鍵詞:二次開(kāi)發(fā)語(yǔ)言

南京金凌石化工程設(shè)計(jì)有限公司 魏 恒

PDMS是AVEVA公司的一款三維建模軟件,在石油化工裝置設(shè)計(jì)過(guò)程中被廣泛應(yīng)用。PDMS支持二次開(kāi)發(fā),其中二次開(kāi)發(fā)包括.NET及自帶的Programmable Macro Language編程語(yǔ)言(簡(jiǎn)稱(chēng)PML)。通過(guò)對(duì)比不同環(huán)境和需求下.NET和PML的優(yōu)劣,選擇適合自己的編程語(yǔ)言。

PDMS是英國(guó)AVEVA公司設(shè)計(jì)的旗艦產(chǎn)品。本產(chǎn)品自1977年發(fā)布第一個(gè)商業(yè)版本以來(lái),經(jīng)歷AVEVA PDMS 11.5、11.6、12.0、12.1等幾個(gè)較大版本的更新升級(jí)維護(hù)。尤其在由11.6到12.0版本升級(jí)過(guò)程中,AVEVA公司對(duì)該軟件進(jìn)行大量升級(jí),界面采用Office風(fēng)格。同時(shí),增加了對(duì).NET的支持并發(fā)布.NET開(kāi)發(fā)使用說(shuō)明。自PDMS12.0版本發(fā)布以來(lái),基于.NET(C#)進(jìn)行二次開(kāi)發(fā)的軟件也越來(lái)越多,通過(guò)對(duì)比PML和.NET(C#)語(yǔ)言在不同需求下的編程難易程度、運(yùn)行效率、語(yǔ)言自身的優(yōu)缺點(diǎn)等,給出在不同環(huán)境下選擇適合的開(kāi)發(fā)語(yǔ)言的合理化建議。

1 PML開(kāi)發(fā)介紹

1.1 PML語(yǔ)言簡(jiǎn)介

PML語(yǔ)言為PDMS公司開(kāi)發(fā)的可編程宏語(yǔ)言,是一種解釋型的腳本語(yǔ)言,其只能在PDMS軟件中被解釋執(zhí)行。自PDMS發(fā)布以來(lái)便應(yīng)用于PDMS二次開(kāi)發(fā)。PML開(kāi)發(fā)可以使用PDMS大部分資源,對(duì)PDMS版本的敏感度不會(huì)特別高,無(wú)需進(jìn)行編譯即可在PDMS上執(zhí)行。比如,使用PML基于11.5開(kāi)發(fā)通過(guò)簡(jiǎn)單的匹配即可以在12.1上完美使用。PDMS軟件命令功能模塊大部分模塊基于PML開(kāi)發(fā),同時(shí)伴隨PDMS發(fā)展,大量的培訓(xùn)資料、開(kāi)發(fā)實(shí)例等為開(kāi)發(fā)者提供了大量的學(xué)習(xí)資料。PML語(yǔ)言?xún)H應(yīng)用于PDMS軟件,初學(xué)者無(wú)論是否學(xué)習(xí)過(guò)其它開(kāi)發(fā)語(yǔ)言,都可以根據(jù)開(kāi)發(fā)說(shuō)明進(jìn)行二次開(kāi)發(fā)。

腳本語(yǔ)言的顯著優(yōu)勢(shì)就是將常用的命令封裝出來(lái),這樣在測(cè)試程序的新功能時(shí),不再需要編譯源碼,只需編寫(xiě)程序腳本,能有效提高軟件開(kāi)發(fā)的效率。

1.2 PML開(kāi)發(fā)環(huán)境

PML語(yǔ)言可以直接使用文本編輯器進(jìn)行編程,或者采用部分人員開(kāi)發(fā)的PML界面設(shè)計(jì)器進(jìn)行編程。對(duì)于初學(xué)者,可以通過(guò)在PDMS命令欄中輸入常用的PML語(yǔ)句進(jìn)行設(shè)計(jì)工作進(jìn)行簡(jiǎn)單的PML學(xué)習(xí),再通過(guò)《Software Customisation Guide》學(xué)習(xí)窗體(Forms)、功能(Objects)、函數(shù)(Function)、工具(Gadgets)。

(1)窗體(Forms)

窗體是創(chuàng)建一個(gè)操作窗口,便于用戶(hù)進(jìn)行可視化操作。在該窗口下,可以創(chuàng)建列表、文本框、功能性按鈕等可視化接口。

(2)功能(Objects)

創(chuàng)建一個(gè)功能區(qū),該功能區(qū)可以包含多個(gè)按鈕,每個(gè)按鈕可以指定一個(gè)操作窗口。該功能區(qū)可以直接進(jìn)行調(diào)用。

(3)函數(shù)(Function)

在軟件設(shè)計(jì)時(shí),通過(guò)將所有的函數(shù)或者功能進(jìn)行定制,然后在窗體中進(jìn)行引用。這樣做的目的是,便于設(shè)計(jì)者進(jìn)行調(diào)試、歸類(lèi)管理等。

(4)工具(Gadgets)

在進(jìn)行軟件設(shè)計(jì)時(shí),可以設(shè)計(jì)一個(gè)窗體和基于該窗體的若干個(gè)工具。為了便于在窗體中進(jìn)行不同類(lèi)別的歸納整理,引用該功能。

1.3 PML開(kāi)發(fā)的缺點(diǎn)

因?yàn)镻ML僅僅服務(wù)于PDMS的二次開(kāi)發(fā),所以與其他軟件進(jìn)行數(shù)據(jù)交互時(shí),只能將數(shù)據(jù)轉(zhuǎn)化導(dǎo)出為表格(XLS,CSV)、文本(TXT)型式,然后再進(jìn)行數(shù)據(jù)轉(zhuǎn)化存儲(chǔ)至其他軟件。無(wú)形中增加了多個(gè)使用步驟哦,增加了操作難度。目前在各個(gè)設(shè)計(jì)公司均在大量的使用各種類(lèi)型的設(shè)計(jì)軟件工作;需要進(jìn)行大量的數(shù)據(jù)交互。基于當(dāng)前PDMS的發(fā)展軌跡來(lái)說(shuō),從12.0開(kāi)始逐步支持.NET二次開(kāi)發(fā),逐步使用.NET構(gòu)架替換PML也可以說(shuō)明.NET構(gòu)架也是該軟件發(fā)展的主流。再者,PML編程目前仍然非常小眾,沒(méi)有比較好用的開(kāi)發(fā)平臺(tái)。雖然有部分設(shè)計(jì)人員,基于自身的開(kāi)發(fā)經(jīng)驗(yàn)創(chuàng)建了部分平臺(tái),但仍處于小范圍使用階段;對(duì)于擴(kuò)大PML的影響力毫無(wú)用處。再者對(duì)于復(fù)雜算法,PML執(zhí)行效率較低,PML命令執(zhí)行時(shí)間過(guò)長(zhǎng)時(shí),PDMS往往會(huì)進(jìn)入一種假死狀態(tài),導(dǎo)致軟件崩潰。在小范圍內(nèi)測(cè)試,.NET的執(zhí)行效率約為PML的10倍左右。

2 NET開(kāi)發(fā)介紹

2.1 NET 開(kāi)發(fā)簡(jiǎn)介

AVEVA .NET是AVEVA推出的一種更方便的開(kāi)發(fā)方式。結(jié)合C#豐富的庫(kù)及相對(duì)于PML而言更高的效率,可以使用C#在AVEVA上快速的開(kāi)發(fā)出應(yīng)用程序。+C#是由C和C++衍生出來(lái)的面向?qū)ο缶幊陶Z(yǔ)言。它在繼承C和C++強(qiáng)大功能的同時(shí),減少了一些它們的復(fù)雜特性。C#是一種面向?qū)ο蟮木幊陶Z(yǔ)言,這樣就使得設(shè)計(jì)人員可以快速、高效地開(kāi)發(fā)各種基于MICROSOFT .NET平臺(tái)的程序軟件,同時(shí)還可以采用VSTO開(kāi)放平臺(tái)。

2.2 NET開(kāi)發(fā)環(huán)境

基于.NET(C#)進(jìn)行PDMS二次開(kāi)發(fā)可以使用Visual Studio Tools for Office開(kāi)發(fā)平臺(tái)進(jìn)行軟件設(shè)計(jì)。VSTO是一套用于創(chuàng)建自定義應(yīng)用程序的Visual Studio工具包,被程序員廣泛采用。VSTO使你可以用Visual C#擴(kuò)展PDMS應(yīng)用程序(生成DLL文件被PDMS調(diào)用)。可以使用強(qiáng)大的Visual Studio開(kāi)發(fā)環(huán)境來(lái)開(kāi)發(fā)PDMS應(yīng)用程序。無(wú)論你是創(chuàng)建一個(gè)Forms控件,還是創(chuàng)建各種復(fù)雜的函數(shù)以便于進(jìn)行數(shù)據(jù)處理,VSTO都可以實(shí)質(zhì)變得非常容易。在添加對(duì)PDMS提供的命名空間后,我們可以輕易的使用.NET(C#)從PDMS獲取各種想要的信息。基于VSTO的可視化開(kāi)發(fā)平臺(tái)和豐富的.NET控間資源,開(kāi)發(fā)可以變得非常簡(jiǎn)單、高效。

使用.NET(C#)進(jìn)行PDMS開(kāi)發(fā)時(shí),需要引用以下幾個(gè)命名空間:

(1)命名空間:Aveva.ApplicationFramework

插件管理器:這個(gè)類(lèi)提供屬性和方法來(lái)管理應(yīng)用程序框架插件。服務(wù)管理器:這個(gè)類(lèi)定義一個(gè)接口,應(yīng)用程序框架中的各種組件可以通過(guò)它發(fā)布服務(wù)。這個(gè)服務(wù)管理器本身作為一個(gè)服務(wù)提供者,也可以響應(yīng)服務(wù)的請(qǐng)求,它還可以被應(yīng)用程序和應(yīng)用程序插件用于發(fā)布額外的服務(wù)。設(shè)置管理器:這個(gè)類(lèi)提供屬性和方法管理應(yīng)用程序設(shè)置,這些設(shè)置保存在設(shè)置組中,用于在不同的任務(wù)中保持一致。

(2)命名空間:Aveva.ApplicationFramework.Presentation

命令條管理器:提供使用基于應(yīng)用程序框架程序的菜單和命令條,也提供方法加載用戶(hù)接口定制(UIC)文件中定義的菜單和命令條。命令管理器:這個(gè)類(lèi)定義一個(gè)接口來(lái)提供一種機(jī)制管理命令對(duì)象可以關(guān)聯(lián)到工具欄和其他用戶(hù)界面對(duì)象,當(dāng)激活一個(gè)工具(比如點(diǎn)擊一個(gè)按鈕)將執(zhí)行相應(yīng)的命令對(duì)象。一些不同的用戶(hù)界面對(duì)象可以關(guān)聯(lián)相同的命令對(duì)象,因此可以在命令中集中控制那些用戶(hù)界面對(duì)象的功能,命令的這種狀態(tài)屬性(例如可用/選中)將可以影響關(guān)聯(lián)這個(gè)命令的所有用戶(hù)界面對(duì)象,例如,命令設(shè)置為不可用后將導(dǎo)致所有關(guān)聯(lián)的用戶(hù)界面對(duì)象不可用,用戶(hù)界面對(duì)象通過(guò)CommandExecutor派生類(lèi)關(guān)聯(lián)命令。資源管理器:這個(gè)類(lèi)定義一個(gè)接口給插件提供一種簡(jiǎn)單的機(jī)制來(lái)存取本地資源。資源管理器提供一些方法允許插件存取資源文件包含的各種形式的資源(字符串,圖像,光標(biāo),圖標(biāo)等)。窗口管理器:提供存取主程序窗口,狀態(tài)欄,多文檔界面集合和可停靠窗口,也給開(kāi)發(fā)者提供方法生成多文檔界面和可停靠窗口來(lái)包含控件。

(3)命名空間:Aveva.Pdms.Database

數(shù)據(jù)服務(wù)管理:用于打開(kāi)一個(gè)項(xiàng)目。數(shù)據(jù)屬性管理:一是用于類(lèi)實(shí)例屬性的識(shí)別和傳輸;二是提供方法允許檢索一個(gè)屬性的元數(shù)據(jù),例如類(lèi)型,范圍,名稱(chēng),是否是隱含屬性等等,這個(gè)類(lèi)對(duì)于系統(tǒng)屬性和用戶(hù)自定義屬性也有效。

2.3 NET開(kāi)發(fā)的缺點(diǎn)

使用.NET進(jìn)行程序開(kāi)發(fā)時(shí),程序調(diào)試非常的不方便,只能先封裝在運(yùn)行PDMS進(jìn)行測(cè)試,測(cè)試結(jié)果只能顯示該程序是否有問(wèn)題,不能確認(rèn)問(wèn)題出在哪里。只能由開(kāi)發(fā)人員自行檢查代碼,找到問(wèn)題。當(dāng)生成的C#庫(kù)DLL文件被PDMS加載后,便不可以卸載;如我需要修改代碼,則需要退出PDMS,嚴(yán)重影響開(kāi)發(fā)效率。

結(jié)論:綜上所述:在實(shí)現(xiàn)簡(jiǎn)單功能的二次開(kāi)發(fā)中,需要根據(jù)不同項(xiàng)目的需求選擇相應(yīng)的開(kāi)發(fā)語(yǔ)言進(jìn)行軟件開(kāi)發(fā)。從數(shù)據(jù)來(lái)源的角度來(lái)說(shuō),如果僅僅對(duì)PDMS內(nèi)部數(shù)據(jù)處理,不需要與其他軟件進(jìn)行數(shù)據(jù)交互;則直接采用PML語(yǔ)言進(jìn)行設(shè)計(jì)較為簡(jiǎn)單高效;反之則應(yīng)使用.NET(C#)平臺(tái)。從數(shù)據(jù)處理效率來(lái)說(shuō),當(dāng)軟件內(nèi)容較為復(fù)雜或數(shù)據(jù)處理量比較大時(shí),使用.NET(C#)平臺(tái)進(jìn)行二次開(kāi)發(fā)來(lái)提升運(yùn)行效率則顯得尤為重要。而在部分環(huán)境下,不僅需要軟件進(jìn)行PDMS內(nèi)部數(shù)據(jù)處理,還需要與其他軟件進(jìn)行數(shù)據(jù)交互,軟件數(shù)據(jù)量處理量比較大時(shí),則需要二者結(jié)合使用;使用PML進(jìn)行內(nèi)部數(shù)據(jù)處理、數(shù)據(jù)的運(yùn)算工作則使用C#進(jìn)行開(kāi)發(fā)是最有效的解決辦法。

猜你喜歡
二次開(kāi)發(fā)語(yǔ)言
語(yǔ)言是刀
文苑(2020年4期)2020-05-30 12:35:30
淺談基于Revit平臺(tái)的二次開(kāi)發(fā)
甘肅科技(2020年20期)2020-04-13 00:30:02
西門(mén)子Operate高級(jí)編程的旋轉(zhuǎn)坐標(biāo)系二次開(kāi)發(fā)
淺談Mastercam后處理器的二次開(kāi)發(fā)
模具制造(2019年3期)2019-06-06 02:11:02
讓語(yǔ)言描寫(xiě)搖曳多姿
多向度交往對(duì)語(yǔ)言磨蝕的補(bǔ)正之道
累積動(dòng)態(tài)分析下的同聲傳譯語(yǔ)言壓縮
Micaps3.2 版本二次開(kāi)發(fā)入門(mén)淺析
西藏科技(2015年12期)2015-09-26 12:13:51
我有我語(yǔ)言
ANSYS Workbench二次開(kāi)發(fā)在汽車(chē)穩(wěn)定桿CAE分析中的應(yīng)用
主站蜘蛛池模板: 在线日本国产成人免费的| 国内精自线i品一区202| 成人福利在线视频免费观看| 天天做天天爱天天爽综合区| 久久久亚洲色| 国产毛片片精品天天看视频| 91久久天天躁狠狠躁夜夜| 亚洲无码视频喷水| 中文字幕在线日韩91| 97人妻精品专区久久久久| 国产亚洲欧美在线视频| 亚洲高清日韩heyzo| 九色综合伊人久久富二代| 中国一级毛片免费观看| 欧美高清日韩| 成人在线不卡| 99久久精品无码专区免费| h网站在线播放| 日韩高清成人| 久久久久青草线综合超碰| 在线综合亚洲欧美网站| 久久精品免费国产大片| 国产制服丝袜无码视频| 日韩欧美国产精品| 中美日韩在线网免费毛片视频| 91美女视频在线| 亚洲三级成人| aⅴ免费在线观看| 在线免费观看AV| 无码一区中文字幕| 92午夜福利影院一区二区三区| 亚洲欧美日韩动漫| 99精品欧美一区| 全部毛片免费看| 五月婷婷综合网| 亚洲h视频在线| 日韩欧美在线观看| 四虎永久在线精品影院| 九色视频最新网址| 午夜精品区| 日本人真淫视频一区二区三区| 五月婷婷丁香综合| 无码aaa视频| 好紧太爽了视频免费无码| 九九久久精品国产av片囯产区| 特级精品毛片免费观看| 在线欧美日韩| 亚洲成av人无码综合在线观看| 91亚洲精品第一| 欧美69视频在线| 亚洲欧美日韩另类在线一| 在线免费看黄的网站| 99久久精品免费看国产电影| 久久这里只有精品66| 亚洲日本精品一区二区| 亚州AV秘 一区二区三区| 国产午夜福利亚洲第一| 国产精品观看视频免费完整版| 天天视频在线91频| 欧美日韩中文国产| 免费福利视频网站| 国产乱子精品一区二区在线观看| 不卡无码h在线观看| 亚洲成人黄色在线观看| 亚洲国产精品国自产拍A| 蜜桃视频一区| 永久天堂网Av| 91精品国产一区自在线拍| 亚洲第一av网站| 伊人久久综在合线亚洲2019| 国产成人精品三级| 另类欧美日韩| 日本午夜三级| 亚洲国产成人自拍| 国产精品一区二区在线播放| 国产网友愉拍精品| 2021国产乱人伦在线播放| 欧美日韩国产在线播放| 日本www在线视频| 日日碰狠狠添天天爽| 婷婷色在线视频| 久久午夜影院|