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

ABB
關注中國自動化產業發展的先行者!
CAIAC 2025
2025工業安全大會
OICT公益講堂
當前位置:首頁 >> 案例 >> 案例首頁

案例頻道

PI實時數據庫簡單開發的探索
  • 企業:    
  • 點擊數:2380     發布時間:2023-08-30 13:04:16
  • 分享到:
本文簡單介紹了PI實時數據庫的相關信息,然后利用PI-SDK、PIAPI技術對PI實時數據庫進行讀寫的一些方法,從而實現在PI實時數據庫的基礎上進行簡單的二次開發的初步探索。

文獻標識碼:B文章編號:1003-0492(2023)08-066-04中圖分類號:TP392

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

關鍵詞:PI;PI-SDK;PI-API;接口

1 引言

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

2 SIS系統和PI實時數據庫

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

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

3 PI-SDK和PI-API

某熱電廠雖然已經建立了全廠的網絡和PI實時數據庫,但上層的應用大多處于起步階段,還沒有多少成熟的應用,本文打算初步探索下PI-SDK和PI-API技術,為今后二次開發做準備。

PI-API(PI Application Programming Interface)即PI應用程序接口,包含很多函數可以用來讀寫數據庫。利用這些函數,用VB、C++或C#、甚至連PI-PROCESSBOOK中內嵌的VBA都可以對PI數據庫進行數據讀寫。

PI-SDK(PI Software Development Kit)即基于面向對象的訪問PI數據庫的軟件開發工具包。作者個人感覺PI-SDK是把PI-API封裝了一下,讓開發人員更容易連接數據庫進行讀寫。兩種方式本文都嘗試了一下,后面會分別探討。

4 PI-API的基本應用

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

下面以VB為例說明PI-API的大致用法。首先在VB程序中引用上面提到的PIAPI32.BAS,將它作為一個公用模塊,然后就可以按照以下步驟連接數據庫了。首先是連接數據庫、其次是獲取測點的內部標識號、然后通過內部標識號訪問數據、最后斷開數據庫的連接,調用相關API函數,完成對PI數據庫的讀寫操作。下面是幾個主要函數:

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

作者編寫了一個讀寫PI數據庫的小程序,作者對每個函數后面都做了說明,這樣看起來更加直觀。程序界面如圖1所示,通過輸入點名可以讀取快照值,也可以寫入快照值。

image.png 

圖1 程序界面

Private Sub commandread_Click()

Dim pv '讀取到的值

Dim pd As Long 'pointid

Dim TagName As String ’PI數據庫點名

pilg_registerapp "piapi32.dll" {這是注冊PI的動態連接庫}

piut_setservernode "piserver" {設置要登錄的PI服務器}

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

TagName = Text1.Text {在文本框中輸入PI數據庫點名}

pipt_findpoint TagName,pd{根據輸入的PI數據庫點名獲取對應的pointid,函數中的pd就是獲得的pointid。用戶平時應用的時候一般習慣都是用TAGNAME,也就是PI數據庫點名,但是PI-API函數是用POINTID來存取的,所以要先根據TAGNAME來獲得POINTID號。}

pisn_getsnapshotpd,pv,0,0{獲取對應點的快照值,第一個函數是POINTID,PV就是獲取到的值,第三和第四個參數值本文設的0,就是獲取當前值}

Text2.Text=pv

pilg_disconnect{斷開與PI服務器的連接}

End Sub

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

Private Sub commandwrite_Click()

Dim pv '寫入的值

Dim pd As Long 'pointid

Dim TagName As String ’PI數據庫點名

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{寫入對應點的快照值,第一個函數是POINTID,PV就是要寫入的值,第三和第四個參數值本文設的0。}

pilg_disconnect{斷開與PI服務器的連接}

EndSub

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

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

image.png 

圖2 程序界面

部分代碼截圖如圖3所示,代碼中用戶名和密碼隱去。該段代碼是程序接收第三方系統發送過來的數據,經過處理后用PI-API函數寫入PI數據庫的代碼。

image.png 

圖3  部分代碼截圖

5 PI-SDK的簡單應用

PI-SDK是面向對象的軟件開發工具包,在開始編程之前,首先需要安裝OSI提供的PI-SDK,安裝后會在PI的目錄中生成PISDK目錄,里面是PI的類庫文件,PISDK.dll為核心類,大部分主要功能都在該類中,PISDKCommon.dll是通用類,PITimeServer.dll是PI自定義的時間類,我們利用上述三個類庫就能夠完成訪問PI服務的主要功能。PISDK頂級類,下面是SERVERS類,在SERVERS類下面最重要的是SERVER類,SERVER類下面有很多類,其中我們要用到的最重要的是PIPOINTS類,其他類都有各自的功能,本文暫時用不到或者很少用到。

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

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服務器}

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

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

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

Text2.Text = pv.Value

End Sub

讀取快照值很簡單,比API更簡單。但是要讀取歸檔值就要麻煩一點,因為要給定讀取的時間和模式。

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服務器}

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

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

Set dt = New PITimeFormat

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

dt.InputString = t1 {把指定的時間轉換成PI的時間格式}

Setpv=pn.Data.ArcValue(dt,rtInterpolated){獲取指定時間的歸檔值,第一個參數就是時間,第二個參數是取數的模式,因為PI數據庫并不是每個時間都存有數據的,所以用戶可以選擇模式是讀取用戶輸入時間的當前點,后面一個點,前面一個點或者插值表示的時間}

Text2.Text = pv.Value

End Sub

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

image.png 

圖5 程序界面

部分代碼截圖如圖6所示。該段代碼是程序利用PI-SDK從PI數據庫中獲取相關數據,經過處理后寫入大屏顯示數據庫的部分代碼。程序應用了定時器,定時從PI數據庫中獲取數據,從而達到刷新大屏參數的目的。

image.png 

圖6 部分代碼截圖

6 結束語

PI作為工廠底層控制系統與上層管理信息系統之間連接的橋梁,在工廠的信息化建設中扮演著特殊和重要的角色。PI是一個通用性的實時數據平臺,開發接口也比較方便,經過一段時間的摸索,在看了PI系統的幫助文件,對PI的開發有了初步的認識。總的說來,利用OSI提供的PI-API和PI-SDK開發也很方便,兩種方法各有各的優點,可以滿足不同場合的不同需求的應用。

作者簡介:

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

參考文獻:

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

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

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

摘自《自動化博覽》2023年8月刊

熱點新聞

推薦產品

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



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 激情区小说区偷拍区图片区-激情偷乱人成视频在线观看-激情文学另类小说亚洲图片-激情销魂乳妇奶水小说-香蕉九九-香蕉成人啪国产精品视频综合网 | 久久这里只有精品国产99-久久这里只有精品2-久久这里只有精品1-久久这里只精品热在线99-在线少女漫画-在线涩涩免费观看国产精品 国产精选一区二区-国产精选一区-国产精选污视频在线观看-国产精选91热在线观看-特级黄色视频毛片-特级黄色免费片 | 国产精品亚洲精品日韩己满十八小-国产精品亚洲精品观看不卡-国产精品亚洲精品不卡-国产精品亚洲精品-四虎影视精品-四虎影视国产精品永久在线 | 亚洲精品色情影片-亚洲精品沙发午睡系列-亚洲精品深夜AV无码一区二区-亚洲精品天堂在线观看-亚洲精品偷拍AV一区二区-亚洲精品偷拍影视在线观看 | 免费的成人a视频在线观看-免费岛国小视频在线观看-免费岛国-免费大香伊蕉在人线国产-免费大片黄在线观看日本-免费大片黄手机在线观看 | 久久99热不卡精品免费观看,色播综合,国产一级视频在线观看网站,激情综合激情,aa视频在线观看,五月天综合激情网 | 老司机亚洲精品影院-老司机午夜在线视频-老司机午夜影院-老司机午夜网站-亚洲国产精品热久久2022-亚洲国产精品毛片∧v卡在线 | 91精品国产色综合久久不卡蜜,999国内精品永久免费视频试看,五月婷婷六月香,欧美成人综合在线,日韩亚洲第一页,国产欧美日韩不卡在线播放在线 | 久久免费资源-久久免费小视频-久久免费手机视频-久久免费视频网站-欧美国产亚洲一区 | 亚洲福利区-亚洲福利精品电影在线观看-亚洲福利电影一区二区?-亚洲风情无码免费视频-国产亚洲视频在线-国产亚洲视频精彩在线播放 | 九九国产在线视频-九九国产在线观看-九九国产在线-九九国产视频-亚洲夜色夜色综合网站-亚洲羞羞视频 | 欧美人与性动交a欧美精品-欧美人与物另类-欧美人与牲动交a欧美精品-欧美人与禽片免播放-国产福利在线观看永久免费-国产福利在线播放 | 一区二区在线视频观看-一区二区在线免费视频-一区二区在线看-一区二区在线电影-久久精品久久精品国产大片-久久精品久久精品 | av资源每日更新网站在线-av资源免费每日更新-av资源在线-av资源在线播放-av资源在线播放韩国-av资源在线观 | 一区二区视频在线观看高清视频在线-一区二区三区无码高清视频-一区二区三区无码被窝影院-一区二区三区四区国产-久久re视频精品538在线-久久re热在线视频精99 | 国产一区二区三区四区五区加勒比-国产一区二区三区四区五区六区-国产一区二区三区四区五在线观看-国产一区二区三区无码A片-国产一区二区三区-国产一区二区三区亚洲欧美 | 国语自产视频在线一区二区-国语自产偷拍-国语自产偷拍精品-国语自产偷拍精品视-国语自产偷拍精品视频-国语自产偷拍精品视频蜜芽 99欧美在线-99碰碰-99青草-99青草青草久热精品视频-99青青-99青青草 | 五月婷六月婷婷,97九色,成年人国产,精品久久久久久久,久久久久久久国产精品电影,国产在线观看青草视频 | 欧美在线观看一区,免费看日产一区二区三区,欧美一区二区三区在线,精品1区2区3区,亚洲国产一成人久久精品,久久国产精品最新一区 | 香蕉成人啪国产精品视频综合网-香蕉草草久在视频在线播放-香蕉a视频-香蕉69精品视频在线观看-国产视频1区-国产视频1 | 99re最新网址-99re这里只有精品在线观看-99re这里只有精品视频在线观看-99re这里只有精品视频-嗯好爽视频-嗯啊在线观看免费影院 99只有精品-99这里只有精品在线-99这里只有精品视频-99这里只有精品66视频-欧美国产视频-欧美国产日韩综合 | 欧美youjizz-欧美xxxx做受性欧美88-欧美xxxx做受视频-欧美xxxx做受欧美精品-一级精品视频-一级黄网 | 又大又粗好舒服好爽视频-又大又白g奶-又粗又长又爽又大硬又黄-又粗又长又黄又爽视频-久久久久中文-久久久久这里只有精品 | a级国产精品片在线观看-a级国产乱理伦片野外-a级国产乱理伦片在线观看a-a级国产乱理片在线观看-a级国产片-a级国产视频 | 亚洲综合在线视频-亚洲综合在线观看视频-亚洲综合视频网-亚洲综合色秘密影院秘密影院-日本三区四区免费高清不卡 | 成人免费视频77777,精品国产福利,欧日韩一区二区三区,国产高清视频在线观看,欧美日韩1区,欧美一区二区三区在线观看 | 精品久久久久久久中文字幕,日韩欧美国产电影,日韩国产欧美一区二区三区在线,青青草原国产一区二区,日本成人久久,欧美在线视频二区 | 甜性涩爱在线播放-甜性涩爱下载-甜性涩爱全集在线观看-甜性涩爱免费下载-国产成人午夜精品免费视频-国产成人无码一区AV在线观看 极品少妇粉嫩小泬啪啪AV-极品少妇粉嫩小泬啪啪小说-极品少妇高潮啪啪AV无码-极品少妇伦理一区二区-极品少妇小泬50PTHEPON-极品夜夜嗨久久精品17c | 日韩精品免费观看,亚洲精品国产综合一线久久,99精品国产高清一区二区三区香蕉,亚洲图区欧美,日韩电影免费在线观看中文字幕,999国产精品999久久久久久 | 久久道-久久大香伊蕉在人线国产昨爱-久久大香香蕉国产免费网站-久久大-天天做天天爽天天谢-天天做天天射 | 毛片毛片毛片-毛片毛片免费看-毛片美国-毛片美国基地-毛片免费观看-毛片免费观看久久精品 | 亚洲精品高清国产一久久,免费观看国产,国产欧美日韩精品在钱,国产在线观看入口,国产日产欧美精品一区二区三区,国产一级在线观看 7788理论片在线观看-7788av-777午夜精品免费播放-777奇米影视一区二区三区-蜜桃传媒在线-蜜桃成熟时1997在线看免费看 | 天堂网在线最新版www-天堂网在线资源-天堂网在线看-天堂网在线观看视频-日本精品无码特级毛片-日本精品无码一区二区三区久久久 | 北条麻妃在线观看,国产播放器一区,日本丶国产丶欧美色综合,亚洲一区二区三区高清,九九九国产,亚洲欧美久久精品一区 | 欧美黄网在线-欧美黄色影院-欧美黄色影视-欧美黄色一级网站-99免费看-99免费精品视频 | 99只有精品-99这里只有精品在线-99这里只有精品视频-99这里只有精品66视频-欧美国产视频-欧美国产日韩综合 | 91精品国产色综合久久不卡蜜,999国内精品永久免费视频试看,五月婷婷六月香,欧美成人综合在线,日韩亚洲第一页,国产欧美日韩不卡在线播放在线 | 午夜成人影视-午夜成人影片-午夜成人免费影院-午夜不卡影院-国产日本欧美亚洲精品视-国产日本欧美高清免费区 | 日韩精品无码一区AAA片-日韩精品三级-日韩草逼-日韩操穴-成人黄色在线观看-成人黄色在线播放 | 韩国三级一区-韩国三级香港三级日本三级la-韩国三级香港三级日本三级-韩国三级视频网站-日韩欧美一及在线播放-日韩欧美一二三区 久久久久久久久国产-久久久久久久久97-久久久久久久国产视频-久久久久久久国产精品影院-午夜精-午夜寂寞院 | 美女内射毛片在线看-美女内射毛片在线看免费人动物-美女内射视频WWW网站午夜-美女强奷到抽搐在线播放-美女视频黄a视频全免费网站色窝-美女视频黄的全是免费 |