日本在线www-日本在线播放一区-日本在线不卡免费视频一区-日本在线不卡视频-成人影院久久久久久影院-成人影院一区二区三区

ABB
關(guān)注中國(guó)自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
CAIAC 2025
2025工業(yè)安全大會(huì)
OICT公益講堂
當(dāng)前位置:首頁(yè) >> 案例 >> 案例首頁(yè)

案例頻道

PI實(shí)時(shí)數(shù)據(jù)庫(kù)簡(jiǎn)單開(kāi)發(fā)的探索
  • 企業(yè):    
  • 點(diǎn)擊數(shù):2372     發(fā)布時(shí)間:2023-08-30 13:04:16
  • 分享到:
本文簡(jiǎn)單介紹了PI實(shí)時(shí)數(shù)據(jù)庫(kù)的相關(guān)信息,然后利用PI-SDK、PIAPI技術(shù)對(duì)PI實(shí)時(shí)數(shù)據(jù)庫(kù)進(jìn)行讀寫的一些方法,從而實(shí)現(xiàn)在PI實(shí)時(shí)數(shù)據(jù)庫(kù)的基礎(chǔ)上進(jìn)行簡(jiǎn)單的二次開(kāi)發(fā)的初步探索。

文獻(xiàn)標(biāo)識(shí)碼:B文章編號(hào):1003-0492(2023)08-066-04中圖分類號(hào):TP392

★朱國(guó)海(浙江巨化熱電有限公司,浙江衢州324000)

關(guān)鍵詞:PI;PI-SDK;PI-API;接口

1 引言

隨著計(jì)算機(jī)信息技術(shù)的飛速發(fā)展,電廠都已經(jīng)實(shí)現(xiàn)了底層生產(chǎn)用DCS系統(tǒng)、上層管理用MIS系統(tǒng)。為了實(shí)現(xiàn)上層MIS系統(tǒng)和底層DCS系統(tǒng)的溝通,SIS系統(tǒng)(Supervisory Information System in Plant Level)應(yīng)運(yùn)而生。隨著SIS系統(tǒng)的產(chǎn)生和發(fā)展,逐漸為多數(shù)業(yè)內(nèi)人士所接受,電廠信息化已經(jīng)走向SIS+MIS時(shí)代。SIS系統(tǒng)和MIS系統(tǒng)是電廠實(shí)現(xiàn)電力生產(chǎn)過(guò)程自動(dòng)化和管理現(xiàn)代化的兩種不可缺少的工具,它們是相輔相成的。

2 SIS系統(tǒng)和PI實(shí)時(shí)數(shù)據(jù)庫(kù)

實(shí)時(shí)數(shù)據(jù)庫(kù)是SIS系統(tǒng)最基礎(chǔ)、最重要的核心組成部分。說(shuō)到實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng),目前的產(chǎn)品有很多,PI(Plant Information System)是由美國(guó)OSI Software公司開(kāi)發(fā)的一套商品化軟件應(yīng)用平臺(tái),由于采用基于“螺旋門”的專利壓縮技術(shù)而使得存儲(chǔ)效率非常高。PI可在線存貯每個(gè)工藝過(guò)程點(diǎn)的多年數(shù)據(jù)。它提供了清晰、精確的操作情況畫面,用戶既可瀏覽工廠當(dāng)前的生產(chǎn)情況,也可回顧過(guò)去的生產(chǎn)情況,所以PI在國(guó)內(nèi)擁有很大的市場(chǎng)占有率,特別是在電力系統(tǒng)得到廣泛的運(yùn)用。

電廠建設(shè)SIS系統(tǒng)是為了可以開(kāi)發(fā)各種應(yīng)用,從而使信息系統(tǒng)發(fā)揮出更大的作用。PI系統(tǒng)本身客戶端的應(yīng)用程序可使用戶很容易對(duì)工廠實(shí)施管理,諸如改進(jìn)工藝,TQC,故障預(yù)防維護(hù)等。通過(guò)PI可集成產(chǎn)品計(jì)劃、維護(hù)管理、專家系統(tǒng)、LIMS和優(yōu)化/建模等應(yīng)用程序,PI在業(yè)務(wù)管理和實(shí)時(shí)生產(chǎn)之間起到橋梁作用。同時(shí)PI數(shù)據(jù)庫(kù)也有完善的二次開(kāi)發(fā)手段,包括應(yīng)用開(kāi)發(fā)接口和數(shù)據(jù)庫(kù)訪問(wèn)手段等。PI提供了對(duì)OPC、ODBC以及OLEDB等的支持。另外,它還有C/C++、VB環(huán)境下的SDK開(kāi)發(fā)工具包和PI-API接口函數(shù)庫(kù),利用PI-API和PISDK,用戶可以比較方便地進(jìn)行二次開(kāi)發(fā)。

3 PI-SDK和PI-API

某熱電廠雖然已經(jīng)建立了全廠的網(wǎng)絡(luò)和PI實(shí)時(shí)數(shù)據(jù)庫(kù),但上層的應(yīng)用大多處于起步階段,還沒(méi)有多少成熟的應(yīng)用,本文打算初步探索下PI-SDK和PI-API技術(shù),為今后二次開(kāi)發(fā)做準(zhǔn)備。

PI-API(PI Application Programming Interface)即PI應(yīng)用程序接口,包含很多函數(shù)可以用來(lái)讀寫數(shù)據(jù)庫(kù)。利用這些函數(shù),用VB、C++或C#、甚至連PI-PROCESSBOOK中內(nèi)嵌的VBA都可以對(duì)PI數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)讀寫。

PI-SDK(PI Software Development Kit)即基于面向?qū)ο蟮脑L問(wèn)PI數(shù)據(jù)庫(kù)的軟件開(kāi)發(fā)工具包。作者個(gè)人感覺(jué)PI-SDK是把PI-API封裝了一下,讓開(kāi)發(fā)人員更容易連接數(shù)據(jù)庫(kù)進(jìn)行讀寫。兩種方式本文都嘗試了一下,后面會(huì)分別探討。

4 PI-API的基本應(yīng)用

在開(kāi)始編程之前,首先需要安裝OSI提供的PI-API,安裝后會(huì)在系統(tǒng)的SYSTEM32目錄中生成PIAPI32.DLL和PILOG32.DLL,在PI系統(tǒng)目錄下的INCLUDE目錄中生成PIAPI32.BAS。

下面以VB為例說(shuō)明PI-API的大致用法。首先在VB程序中引用上面提到的PIAPI32.BAS,將它作為一個(gè)公用模塊,然后就可以按照以下步驟連接數(shù)據(jù)庫(kù)了。首先是連接數(shù)據(jù)庫(kù)、其次是獲取測(cè)點(diǎn)的內(nèi)部標(biāo)識(shí)號(hào)、然后通過(guò)內(nèi)部標(biāo)識(shí)號(hào)訪問(wèn)數(shù)據(jù)、最后斷開(kāi)數(shù)據(jù)庫(kù)的連接,調(diào)用相關(guān)API函數(shù),完成對(duì)PI數(shù)據(jù)庫(kù)的讀寫操作。下面是幾個(gè)主要函數(shù):

pilg_registerapp,piut_setservernode,piut_login,pipt_findpoint,pisn_getsnapshot,pisn_putsnapshot,piut_disconnect()。

作者編寫了一個(gè)讀寫PI數(shù)據(jù)庫(kù)的小程序,作者對(duì)每個(gè)函數(shù)后面都做了說(shuō)明,這樣看起來(lái)更加直觀。程序界面如圖1所示,通過(guò)輸入點(diǎn)名可以讀取快照值,也可以寫入快照值。

image.png 

圖1 程序界面

Private Sub commandread_Click()

Dim pv '讀取到的值

Dim pd As Long 'pointid

Dim TagName As String ’PI數(shù)據(jù)庫(kù)點(diǎn)名

pilg_registerapp "piapi32.dll" {這是注冊(cè)PI的動(dòng)態(tài)連接庫(kù)}

piut_setservernode "piserver" {設(shè)置要登錄的PI服務(wù)器}

piut_login "piuser", "password", 0 {根據(jù)用戶名和密碼登錄到上面設(shè)置的PI服務(wù)器,第一個(gè)參數(shù)是用戶名,第二個(gè)參數(shù)是密碼。}

TagName = Text1.Text {在文本框中輸入PI數(shù)據(jù)庫(kù)點(diǎn)名}

pipt_findpoint TagName,pd{根據(jù)輸入的PI數(shù)據(jù)庫(kù)點(diǎn)名獲取對(duì)應(yīng)的pointid,函數(shù)中的pd就是獲得的pointid。用戶平時(shí)應(yīng)用的時(shí)候一般習(xí)慣都是用TAGNAME,也就是PI數(shù)據(jù)庫(kù)點(diǎn)名,但是PI-API函數(shù)是用POINTID來(lái)存取的,所以要先根據(jù)TAGNAME來(lái)獲得POINTID號(hào)。}

pisn_getsnapshotpd,pv,0,0{獲取對(duì)應(yīng)點(diǎn)的快照值,第一個(gè)函數(shù)是POINTID,PV就是獲取到的值,第三和第四個(gè)參數(shù)值本文設(shè)的0,就是獲取當(dāng)前值}

Text2.Text=pv

pilg_disconnect{斷開(kāi)與PI服務(wù)器的連接}

End Sub

以上就是獲取快照值的全部過(guò)程,寫入值和獲取值的過(guò)程差不多,就是最后用寫入函數(shù)。

Private Sub commandwrite_Click()

Dim pv '寫入的值

Dim pd As Long 'pointid

Dim TagName As String ’PI數(shù)據(jù)庫(kù)點(diǎn)名

pilg_registerapp "piapi32.dll"

piut_setservernode "piserver"

piut_login "piuser", "password", 0

TagName = Text1.Text

pipt_findpoint TagName, pd

pv= Text2.Text

pisn_putsnapshot pd,pv,0,0{寫入對(duì)應(yīng)點(diǎn)的快照值,第一個(gè)函數(shù)是POINTID,PV就是要寫入的值,第三和第四個(gè)參數(shù)值本文設(shè)的0。}

pilg_disconnect{斷開(kāi)與PI服務(wù)器的連接}

EndSub

以上就是最基礎(chǔ)的利用PI-API讀取和寫入PI數(shù)據(jù)庫(kù)的操作,按照以上步驟用戶就能順利地把數(shù)據(jù)寫入到PI實(shí)時(shí)數(shù)據(jù)庫(kù)的快照中。除了能對(duì)快照進(jìn)行讀寫操作,PI-API還提供了能對(duì)已經(jīng)存檔的數(shù)據(jù)進(jìn)行讀寫的函數(shù),比如piar_value,可以獲取特定時(shí)間的存檔值,piar_putvalue可以把數(shù)據(jù)寫入數(shù)據(jù)存檔文件。

初步掌握PI-API數(shù)據(jù)庫(kù)讀寫操作后,本文進(jìn)行了簡(jiǎn)單的開(kāi)發(fā)嘗試。某熱電廠的蒸汽用戶比較分散,用戶的用汽量數(shù)據(jù)是利用無(wú)線數(shù)據(jù)通訊方式傳回來(lái)的,并沒(méi)有寫入到PI數(shù)據(jù)庫(kù),造成全廠實(shí)時(shí)數(shù)據(jù)的不完整,所以作者打算把這部分用戶用汽數(shù)據(jù)寫入PI數(shù)據(jù)庫(kù)中。要對(duì)PI數(shù)據(jù)庫(kù)進(jìn)行寫的操作,感覺(jué)用PI-API更容易操作,所以本文用的是PI的API函數(shù)開(kāi)發(fā)了數(shù)據(jù)采集程序,程序界面如圖2所示。

image.png 

圖2 程序界面

部分代碼截圖如圖3所示,代碼中用戶名和密碼隱去。該段代碼是程序接收第三方系統(tǒng)發(fā)送過(guò)來(lái)的數(shù)據(jù),經(jīng)過(guò)處理后用PI-API函數(shù)寫入PI數(shù)據(jù)庫(kù)的代碼。

image.png 

圖3  部分代碼截圖

5 PI-SDK的簡(jiǎn)單應(yīng)用

PI-SDK是面向?qū)ο蟮能浖_(kāi)發(fā)工具包,在開(kāi)始編程之前,首先需要安裝OSI提供的PI-SDK,安裝后會(huì)在PI的目錄中生成PISDK目錄,里面是PI的類庫(kù)文件,PISDK.dll為核心類,大部分主要功能都在該類中,PISDKCommon.dll是通用類,PITimeServer.dll是PI自定義的時(shí)間類,我們利用上述三個(gè)類庫(kù)就能夠完成訪問(wèn)PI服務(wù)的主要功能。PISDK頂級(jí)類,下面是SERVERS類,在SERVERS類下面最重要的是SERVER類,SERVER類下面有很多類,其中我們要用到的最重要的是PIPOINTS類,其他類都有各自的功能,本文暫時(shí)用不到或者很少用到。

下面仍然以VB為例說(shuō)明PI-SDK的大致用法。首先在VB程序中引用上面提到的PISDK.dll、PISDKCommon.dll、PITimeServer.dll三個(gè)類,然后就可以連接數(shù)據(jù)庫(kù)進(jìn)行讀寫操作了。本文同樣編寫了一個(gè)讀寫PI數(shù)據(jù)庫(kù)的小程序,本文同樣在后面都做了說(shuō)明,這樣看起來(lái)更加直觀。程序界面如圖4所示,通過(guò)輸入點(diǎn)名可以讀取快照值,也可以讀取指定時(shí)間的值。

image.png 

圖4 程序界面

Private Sub Command1_Click() {讀取快照值}

Dim srv As server

Dim pn As PIPoint

Dim dt As PITimeFormat

Dim pv As PIValue

Dim t1 As String

Set srv = Servers("piserver") {指定要連接的PI服務(wù)器}

srv.Open "UID=piuser;pwd=password" {根據(jù)用戶和密碼連接上面的服務(wù)器}

Set pn = srv.PIPoints(Text1.Text) {想要取值的點(diǎn)名}

Set pv = pn.Data.Snapshot {取快照的值}

Text2.Text = pv.Value

End Sub

讀取快照值很簡(jiǎn)單,比API更簡(jiǎn)單。但是要讀取歸檔值就要麻煩一點(diǎn),因?yàn)橐o定讀取的時(shí)間和模式。

Private Sub Command2_Click() {讀取歸檔值}

Dim srv As server

Dim pn As PIPoint

Dim dt As PITimeFormat

Dim pv As PIValue

Dim t1 As String

Set srv = Servers("piserver") {指定要連接的PI服務(wù)器}

srv.Open "UID=piuser;pwd=password" {根據(jù)用戶和密碼連接上面的服務(wù)器}

Set pn = srv.PIPoints(Text1.Text) {想要取值的 點(diǎn)名}

Set dt = New PITimeFormat

t1=Format (text3.text , "YY-MMM - DDHH:MM:SS")

dt.InputString = t1 {把指定的時(shí)間轉(zhuǎn)換成PI的時(shí)間格式}

Setpv=pn.Data.ArcValue(dt,rtInterpolated){獲取指定時(shí)間的歸檔值,第一個(gè)參數(shù)就是時(shí)間,第二個(gè)參數(shù)是取數(shù)的模式,因?yàn)镻I數(shù)據(jù)庫(kù)并不是每個(gè)時(shí)間都存有數(shù)據(jù)的,所以用戶可以選擇模式是讀取用戶輸入時(shí)間的當(dāng)前點(diǎn),后面一個(gè)點(diǎn),前面一個(gè)點(diǎn)或者插值表示的時(shí)間}

Text2.Text = pv.Value

End Sub

PI-API嘗試過(guò)了,PI-SDK當(dāng)然也要嘗試一下。某熱電廠的新建的#10#11機(jī)組準(zhǔn)備上一塊LED大屏,用來(lái)顯示機(jī)組的主要運(yùn)行參數(shù),方便員工了解機(jī)組運(yùn)行狀況。為了能方便地顯示機(jī)組運(yùn)行參數(shù),打算從PI數(shù)據(jù)庫(kù)中獲取相關(guān)運(yùn)行參數(shù),然后寫入到大屏顯示數(shù)據(jù)庫(kù)中,大屏控制軟件能通過(guò)讀取大屏數(shù)據(jù)庫(kù)顯示相關(guān)參數(shù),程序界面截圖如圖5所示。

image.png 

圖5 程序界面

部分代碼截圖如圖6所示。該段代碼是程序利用PI-SDK從PI數(shù)據(jù)庫(kù)中獲取相關(guān)數(shù)據(jù),經(jīng)過(guò)處理后寫入大屏顯示數(shù)據(jù)庫(kù)的部分代碼。程序應(yīng)用了定時(shí)器,定時(shí)從PI數(shù)據(jù)庫(kù)中獲取數(shù)據(jù),從而達(dá)到刷新大屏參數(shù)的目的。

image.png 

圖6 部分代碼截圖

6 結(jié)束語(yǔ)

PI作為工廠底層控制系統(tǒng)與上層管理信息系統(tǒng)之間連接的橋梁,在工廠的信息化建設(shè)中扮演著特殊和重要的角色。PI是一個(gè)通用性的實(shí)時(shí)數(shù)據(jù)平臺(tái),開(kāi)發(fā)接口也比較方便,經(jīng)過(guò)一段時(shí)間的摸索,在看了PI系統(tǒng)的幫助文件,對(duì)PI的開(kāi)發(fā)有了初步的認(rèn)識(shí)。總的說(shuō)來(lái),利用OSI提供的PI-API和PI-SDK開(kāi)發(fā)也很方便,兩種方法各有各的優(yōu)點(diǎn),可以滿足不同場(chǎng)合的不同需求的應(yīng)用。

作者簡(jiǎn)介:

朱國(guó)海(1977-),男,浙江紹興人,工程師,學(xué)士,現(xiàn)就職于浙江巨化熱電有限公司,主要從事信息化管理工作。

參考文獻(xiàn):

[1] OSIsoft. PI Server System Management Guide[Z]. 2011.

[2] OSIsoft. PI Server Reference Guide[Z]. 2011.

[3] 陳衛(wèi). 火力發(fā)電廠SISI建設(shè)的思考[J]. 電力信息化. 2006, (12) : 31 - 34.

摘自《自動(dòng)化博覽》2023年8月刊

熱點(diǎn)新聞

推薦產(chǎn)品

x
  • 在線反饋
1.我有以下需求:



2.詳細(xì)的需求:
姓名:
單位:
電話:
郵件:
久久国产精品永久免费网站| 欧美激情影院| 国产精品自拍在线观看| 成人免费网站视频ww| 国产成人啪精品视频免费软件| 日本在线不卡免费视频一区| 四虎影视库| 麻豆系列 在线视频| 欧美国产日韩在线| 亚洲精品久久久中文字| 黄色免费网站在线| 欧美一区二区三区在线观看| 欧美另类videosbestsex视频| 国产福利免费视频| 免费一级片在线观看| 午夜在线亚洲| 日本在线不卡免费视频一区| 欧美激情中文字幕一区二区| 精品视频在线观看视频免费视频| 成人a大片在线观看| 国产网站在线| 国产视频一区二区在线播放| 台湾美女古装一级毛片| 国产一区二区精品尤物| 欧美国产日韩精品| 天天色色色| 精品视频在线看 | 国产一区免费在线观看| 国产亚洲免费观看| 高清一级做a爱过程不卡视频| 免费国产在线观看| 美女被草网站| 91麻豆精品国产片在线观看| 99久久精品国产高清一区二区 | 黄视频网站在线看| 天天做日日爱夜夜爽| 国产视频久久久久| 99热精品在线| 美女免费精品高清毛片在线视| 欧美1卡一卡二卡三新区| 日韩一级精品视频在线观看| 欧美激情伊人| 日韩avdvd| 欧美大片一区| 成人av在线播放| 九九精品久久久久久久久| 国产a视频| 九九九国产| 色综合久久手机在线| 九九久久国产精品| 午夜精品国产自在现线拍| 一级毛片视频在线观看| 美女被草网站| 成人影视在线播放| 日日日夜夜操| 精品国产三级a| 一级片免费在线观看视频| 国产网站在线| 精品国产亚洲人成在线| 国产成人女人在线视频观看| 欧美a级片视频| 欧美激情一区二区三区在线| 97视频免费在线| 午夜在线亚洲| 国产高清在线精品一区a| 成人免费观看视频| 精品国产亚洲人成在线| 国产激情视频在线观看| 国产网站免费在线观看| 成人高清视频在线观看| 国产原创视频在线| 亚洲第一页乱| 日韩欧美一二三区| 成人免费福利片在线观看| 99色精品| 成人免费福利片在线观看| 青青久久精品| 欧美一级视频免费| 日本免费看视频| 国产网站免费| 成人av在线播放| 亚洲精品久久久中文字| 国产一级生活片| 一级女性全黄久久生活片| 高清一级做a爱过程不卡视频| 欧美国产日韩一区二区三区| 国产麻豆精品免费视频| 中文字幕Aⅴ资源网| 九九热国产视频| 午夜精品国产自在现线拍| 成人免费一级纶理片| 97视频免费在线| 国产成人女人在线视频观看| 国产韩国精品一区二区三区| 午夜在线亚洲男人午在线| 精品视频在线观看免费| 二级特黄绝大片免费视频大片| 日韩在线观看视频网站| 精品视频在线看 | 欧美另类videosbestsex| 台湾美女古装一级毛片| 天天做日日干| 免费国产在线观看| 国产伦精品一区三区视频| 欧美激情一区二区三区在线| 国产精品自拍亚洲| 一本高清在线| 九九精品影院| 国产视频一区二区在线观看| 亚洲不卡一区二区三区在线| 国产成人欧美一区二区三区的| 成人影视在线播放| 韩国三级视频在线观看| 欧美一区二区三区性| 国产精品自拍在线观看| 久久成人性色生活片| 亚洲女初尝黑人巨高清在线观看| 日韩一级精品视频在线观看| 国产视频久久久| 欧美电影免费| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 一级毛片视频在线观看| 国产成人啪精品| 精品国产一区二区三区久久久蜜臀 | 深夜做爰性大片中文| 国产网站免费在线观看| 欧美大片a一级毛片视频| 四虎影视久久| 九九精品久久久久久久久| 美女免费毛片| 99久久精品国产免费| 91麻豆精品国产自产在线观看一区 | 国产福利免费视频| 国产伦精品一区二区三区无广告| 午夜在线亚洲| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 久久国产精品自由自在| 亚洲 男人 天堂| 九九精品在线播放| 精品国产一区二区三区久久久蜜臀| 久久成人亚洲| 91麻豆精品国产片在线观看| 日日日夜夜操| 精品国产三级a| 91麻豆精品国产自产在线| 久久久久久久免费视频| 久久国产影视免费精品| 国产精品自拍一区| 国产一区二区精品在线观看| 亚洲精品影院久久久久久| 国产91精品一区二区| 国产一区二区精品久久91| 国产视频在线免费观看| 九九久久国产精品| 一a一级片| 日韩av东京社区男人的天堂| 91麻豆精品国产自产在线观看一区 | 欧美爱爱动态| 日本特黄特色aaa大片免费| 亚洲wwwwww| 中文字幕Aⅴ资源网| 国产精品12| 国产视频在线免费观看| 欧美1卡一卡二卡三新区| 久久久久久久久综合影视网| 精品国产一区二区三区久| 九九国产| 日韩av片免费播放| 国产一区二区精品久久91| 国产网站免费视频| 精品久久久久久免费影院| 国产伦精品一区三区视频| 韩国毛片免费| 欧美a级大片| 91麻豆国产| 国产伦精品一区二区三区在线观看| 国产国语在线播放视频| 久久99中文字幕| 可以免费看污视频的网站| 精品国产一区二区三区久久久狼 | 成人免费观看视频| 91麻豆精品国产自产在线观看一区 | 欧美a级成人淫片免费看| 欧美大片aaaa一级毛片| 国产亚洲男人的天堂在线观看| 91麻豆国产| 欧美一区二区三区在线观看| 国产成人精品综合在线| 午夜激情视频在线播放| 91麻豆精品国产自产在线观看一区 | 亚洲天堂在线播放| 九九国产| 久久精品欧美一区二区| 欧美大片一区| 国产一区免费在线观看| 欧美爱爱动态| 日韩在线观看视频黄| 成人在免费观看视频国产| 欧美a级v片不卡在线观看| 精品视频在线观看视频免费视频|