• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            eryar

            PipeCAD - Plant Piping Design Software.
            RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
            posts - 603, comments - 590, trackbacks - 0, articles - 0

            PDMS call Operating System Command

            Posted on 2015-10-27 22:44 eryar 閱讀(3355) 評論(0)  編輯 收藏 引用 所屬分類: 4.AVEVA Solution

            PDMS call Operating System Command

            eryar@163.com

            1.Introduction

            AVEVA提供了三種二次開發的方式:DARs, PML和AVEVA .Net(C#)。DARs是Fortran的函數庫,也可以用C/C++來開發,依賴的庫少,但是只能用于控制臺的程序,不能使用在MFC或Qt程序中,即不能有友好的用戶界面(GUI),所以對于提取PDMS數據,然后進行一些處理的小程序,此方法還比較適用。

            AVEVA的PML和常見的Python, Tcl/Tk, Lua等一樣是一種解釋型的腳本語言,其只能在PDMS軟件中被解釋執行。也相當于批處理文件對于Windows操作系統。PDMS自帶的很多程序就是用PML開發的。腳本語言的顯著優勢就是將常用的命令封裝出來,這樣在測試程序新功能時,不需要編譯源碼,只需要編寫腳本,提高軟件開發效率;使用腳本時需要將功能暴露出來,這樣會對接口的合理性做更多考慮,使軟件架構更清晰等。缺點就是對于復雜算法,執行效率較低。還有就是PML完全依賴AVEVA軟件,脫離AVEVA就像離開空氣的飛機一樣飛不起來。

            AVEVA .Net是AVEVA推出的一種更方便的開發方式。結合C#豐富的庫及相對于PML而言更加高效,使用C#在AVEVA上可以快速地開發出應用程序。且PML.Net使得在PML中調用C#的庫成為可能。比如用C#可以直接讀定Word, Excel,甚至AutoCAD的DWG文件,所以使用C#對PDMS進行開發優勢明顯,但也有不足之處,那就是程序調試不方便,當C#的庫DLL被PDMS加載后,不能卸載,不能對源碼實時修改,開發效率有所影響。

            PDMS提供了在PML中調用系統命令的命令:syscom。借助這個PML命令,為PDMS的開發又提供了一種新架構(New Architecture)。本文詳細介紹syscom命令的用法,及如何使用這條命令來為PDMS的二次開發指出一條新路。

            2.How to...

            SYSCOM也是一條PML命令,其用法和其他PML命令一樣,只是其參數是Windows中的DOS命令。如在命令窗口中輸入命令syscom ‘dir’,則可以在控制臺窗口中顯示出當前文件夾中的內容:

            wps_clip_image-18088

            Figure 2.1 syscom usage

            同理,輸入syscom ‘help’則可以顯示出常見DOS命令的使用說明:

            wps_clip_image-8815

            Figure 2.2 syscom call DOS command directly

            由此可見,使用syscom相當于運行了一條DOS命令。因為DOS命令可以調用程序,如打開記事本,所以使用syscom也應該可以打開記事本。調用命令syscom ‘notepad’即可以了,如下圖所示:

            wps_clip_image-9654

            Figure 2.3 syscom to open a notepad

            打開記事本后,可以看見PDMS程序處于等待狀態。只有將記事本關閉,PDMS程序才恢復正常。如何使PDMS程序不用等待調用的程序是否執行完畢呢?PDMS中也提供了方法,那就是在程序名后加個&。如syscom ‘calc&’,就可以打開計算器程序而不用去等待是否將其關閉。

            wps_clip_image-15743

            Figure 2.4 syscom to call calculator

            3.New Architecture

            有了這條命令,把PDMS的擴展性又提高了,因為可以用syscom來調用Windows中的腳本即批處理文件。這樣就可以用批處理來調用其他程序,由此擺脫因為AVEVA .NET(C#)開發時加載DLL后調試的不便,也可擺脫編程語言的限制,只要是一個程序都可以通過批處理來調用,即可以用C/C++或C#甚至VB來編寫程序,再用通過syscom來調用。所以通過syscom調用批處理的方式也是一種全新的開發方式,下面通過一個簡單的例子來進行說明如何將PML的變量傳遞給批處理。將下列代碼保存為syscom.bat放在PDMS安裝目錄:

            echo off
            set param1=%1
            echo echo from syscom.bat
            echo %param1%

            在PDMS中輸入命令:

            syscom ‘syscom.bat Hi,SYSCOM’

            則會在PDMS的控制臺上輸出如下圖所示:

            wps_clip_image-8436

            Figure 3.1 pass parameter to batch file

            通過這種方式就可以將PDMS中的數據傳遞到自己的程序中了。下面以一個最簡單的C++程序為例來說明。

            /*
            *    Copyright (c) 2015 Shing Liu All Rights Reserved.
            *
            *           File : main.cpp
            *         Author : eryar@163.com
            *           Date : 2015-10-27 21:00
            *
            *    Description : a simple C++ program to test PDMS syscom.

            */
            #include <iostream>

            int main(int argc, char* argv[])
            {
                for (int i = 0; i < argc; ++i)
                {
                    std::cout << "parameter: " << argv[i] << std::endl;
                }

                return 0;
            }

            為了簡單起見,將上述代碼生成的程序放到PDMS安裝目錄。在PDMS中測試如下圖所示:

            wps_clip_image-1816

            Figure 3.2 pass parameters to C++ program

            從上面的例子可以看出,通過syscom可以調用任何應用程序,不管其用什么語言編寫的。甚至可以直接將PML變量傳遞到程序中。這種方式來對PDMS進行開發比用AVEVA .Net(C#)來開發更方便,因為其調試很方便。如果處理的數據量比較大,可以將這些數據導出成文件,通過文件的方式來傳遞也是很方便的。

            所以通過syscom調用批處理或應用程序或由批處理來調用程序的開發方式效率更高,且代碼保密性好,把程序的關鍵部分用C或C++或其他編程語言來實現,比PML的保密性好。因為程序和PDMS沒有什么關聯,所以即使不運行PDMS,也是可以使用程序的。更重要的是程序調試方便,開發效率高。因此,這種開發方式可以說是一種全新地、方便地開發方式。

            4.Conclusion

            綜上所述,通過詳細介紹PML調用系統命令的命令syscom來對PDMS開發的幾種方式進行對比。通過對比,說明使用syscom來調用程序的方式更為便利,且程序便于調試,保密性好。程序的規模也不受限制,可以是簡單的小程序,也可以是復雜一些的應用程序。

            5.References

            1. AVEVA. DESIGN Reference Manual General Commands

            2. AVEVA .NET Customisation User Guide

            3. AVEVA Data Access Routines User Guide

            4. AVEVA. Software Customisation Guide

            5. AVEVA. Software Customisation Reference Manual

            久久久一本精品99久久精品88| 久久精品国产免费一区| 欧洲性大片xxxxx久久久| 久久精品一区二区三区AV| 久久夜色精品国产噜噜亚洲AV | 欧美精品国产综合久久| 久久久女人与动物群交毛片| 日本精品久久久中文字幕| 日韩影院久久| 国产麻豆精品久久一二三| 久久黄色视频| 久久精品无码专区免费东京热| 久久97久久97精品免视看| 久久人人爽人人爽人人片AV不| 久久综合一区二区无码| 国产精品美女久久久| 亚洲精品无码久久久久久| 久久久久久av无码免费看大片| 久久久久亚洲av无码专区喷水| 久久久久久久综合日本| 久久九九青青国产精品| 日韩AV无码久久一区二区| 热99RE久久精品这里都是精品免费| 久久久综合九色合综国产| 中文国产成人精品久久不卡| 日产久久强奸免费的看| 中文字幕久久欲求不满| 久久AV高清无码| 亚洲欧美日韩中文久久| 久久亚洲国产最新网站| 色天使久久综合网天天| 久久久无码精品午夜| 久久精品视屏| 亚洲午夜精品久久久久久app| 久久99精品久久久久久9蜜桃| 久久精品9988| 久久99精品国产麻豆婷婷| 久久久久国产日韩精品网站| 无码任你躁久久久久久老妇| 久久伊人亚洲AV无码网站| 一本综合久久国产二区|