青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

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 閱讀(3391) 評論(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

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美va亚洲va香蕉在线| 欧美日韩中文字幕日韩欧美| 亚洲精品在线一区二区| 国产精品腿扒开做爽爽爽挤奶网站| 久久久久久久久久久一区| 亚洲无亚洲人成网站77777| 亚洲黄色在线| 久久久久久999| 欧美专区在线| 亚洲欧洲在线一区| 亚洲国产99| 91久久国产综合久久蜜月精品 | 亚洲影视九九影院在线观看| 亚洲精品社区| 日韩午夜在线观看视频| 亚洲精品一二区| 最新亚洲电影| 夜夜爽av福利精品导航 | 欧美在线观看一区二区三区| 欧美亚洲日本国产| 欧美一区二区三区免费看| 午夜免费电影一区在线观看| 亚洲免费观看视频| 夜夜精品视频| 亚洲欧美国产一区二区三区| 久久gogo国模裸体人体| 久久精品人人做人人爽| 免费在线成人av| 欧美日韩精品一区二区天天拍小说| 欧美日韩岛国| 国产伦精品一区二区三区| 欧美日韩在线播放一区| 国产精品美女久久久浪潮软件 | 国产精品久久久久久久久免费桃花| 国产精品久久亚洲7777| 欧美日韩国产成人精品| 国产精品日本精品| 精久久久久久| 亚洲图片欧美一区| 欧美在线观看天堂一区二区三区| 久久国产精品久久久久久电车 | 欧美激情小视频| 嫩模写真一区二区三区三州| 久久不射2019中文字幕| 欧美18av| 在线亚洲成人| 久久久久欧美| 欧美深夜影院| 激情五月婷婷综合| 在线综合亚洲| 欧美激情视频给我| 一区二区三区视频免费在线观看| 亚洲在线黄色| 欧美韩日一区| 午夜精品国产| 欧美日韩一区二区在线播放| 国内精品国产成人| 最新国产拍偷乱拍精品| 久久九九热re6这里有精品| 亚洲精品免费一二三区| 久久精品国产96久久久香蕉| 欧美性猛交视频| 亚洲人在线视频| 麻豆精品视频在线观看视频| 亚洲一区三区视频在线观看| 欧美激情中文字幕一区二区 | 国产真实精品久久二三区| 一区二区三区精品久久久| 亚洲第一在线综合网站| 亚洲欧美激情四射在线日 | 国产欧美日韩91| 亚洲网站在线| 亚洲丰满少妇videoshd| 欧美在线视频播放| 欧美激情第9页| 亚洲风情在线资源站| 久久久久亚洲综合| 欧美在线观看视频| 国产精品推荐精品| 午夜久久久久久| 亚洲视频在线二区| 欧美日韩精品免费观看| 国语自产精品视频在线看8查询8| 欧美亚洲一区二区在线| 亚洲桃花岛网站| 欧美特黄视频| 亚洲麻豆av| 亚洲国产一二三| 欧美激情综合在线| 亚洲国产精品久久久久久女王| 久久午夜av| 久久精品一区二区三区四区| 国内欧美视频一区二区| 久久资源av| 免费观看日韩| 亚洲精品国产品国语在线app| 亚洲第一区在线观看| 欧美精品日韩综合在线| 亚洲视频免费观看| 一区二区三区四区蜜桃| 欧美高清在线| 亚洲视频狠狠| 亚洲影视在线播放| 国产一区二区三区在线观看免费视频 | 亚洲精品一二三区| 欧美日韩八区| 欧美中文字幕| 欧美国产激情| 性高湖久久久久久久久| 久久五月激情| 国产欧美一区二区在线观看| 亚洲一区www| 亚洲欧美日韩区| 国内精品久久久久久| 欧美制服丝袜| 免费欧美电影| 亚洲精品一区二区三区樱花| 中文av一区特黄| 国产午夜精品一区二区三区欧美 | 亚洲色图在线视频| 狠狠色2019综合网| 亚洲免费观看视频| 国产精品入口66mio| 久久蜜桃香蕉精品一区二区三区| 欧美激情区在线播放| 欧美一区二区在线免费播放| 毛片av中文字幕一区二区| 亚洲免费视频网站| 欧美成人免费在线| 午夜精品免费| 亚洲欧美制服另类日韩| 亚洲激情国产精品| 久久午夜精品一区二区| 久久中文字幕一区二区三区| 韩国成人理伦片免费播放| 欧美一区精品| 久久婷婷蜜乳一本欲蜜臀| 国产视频亚洲| 欧美在线精品一区| 久久影院午夜片一区| 影音先锋久久精品| 美女诱惑一区| 亚洲理伦电影| 亚洲综合另类| 国产精品一二三| 亚洲免费影视第一页| 欧美亚洲视频| 狠狠色综合日日| 六月婷婷一区| 亚洲黄一区二区三区| 99re热这里只有精品视频| 欧美精品电影在线| 一区二区三区国产| 欧美一区二区三区四区夜夜大片| 国产精品免费一区二区三区观看| 午夜性色一区二区三区免费视频| 久久久久久久91| 亚洲国产精品尤物yw在线观看 | 欧美一级电影久久| 国产欧美日韩91| 久久人人爽爽爽人久久久| 欧美电影在线观看完整版| 亚洲伦理在线观看| 欧美午夜一区| 久久久久久999| 亚洲激情在线| 午夜精品国产| 亚洲国产91精品在线观看| 欧美视频一区二区三区四区| 久久se精品一区二区| 亚洲激情在线观看视频免费| 亚洲中字在线| 在线日本高清免费不卡| 欧美丝袜第一区| 久久久久久香蕉网| 中文国产成人精品| 欧美黄污视频| 性色av一区二区三区在线观看| 激情av一区二区| 欧美日韩一区在线观看| 久久人91精品久久久久久不卡 | 亚洲风情亚aⅴ在线发布| 亚洲视频在线观看免费| 久久免费精品视频| 日韩特黄影片| 免费视频最近日韩| 欧美一区二区女人| 在线亚洲欧美专区二区| 一区精品久久| 国产婷婷色一区二区三区在线 | 亚洲三级免费| 久久日韩粉嫩一区二区三区| 亚洲一区二区视频| 亚洲精品一区在线观看| 在线观看日韩www视频免费| 国产精品视频一二三| 欧美日韩国产在线一区| 欧美jizz19性欧美| 久久久www免费人成黑人精品 | 欧美成人精品一区二区|