"/>
變頻器: | 西門子代理商 |
觸摸屏: | 西門子一級代理 |
伺服電機: | 西門子一級總代理 |
單價: | 面議 |
發(fā)貨期限: | 自買家付款之日起 天內(nèi)發(fā)貨 |
所在地: | 廣東 惠州 |
有效期至: | 長期有效 |
發(fā)布時間: | 2023-12-14 12:45 |
最后更新: | 2023-12-14 12:45 |
瀏覽次數(shù): | 123 |
采購咨詢: |
請賣家聯(lián)系我
|
在實際應用中,客戶對于wincc變量記錄的顯示需求各式各樣,比如在excel或者word中顯示變量記錄,以特定的表格顯示歷史數(shù)據(jù)等等。當wincc集成的在線表格控件不能滿足客戶需要時,就需要通過自定義的方式來顯示變量歸檔。主要分為兩部分:
(1)從wincc中讀取歸檔數(shù)據(jù)
?。?)將歸檔數(shù)據(jù)以特定的格式顯示出來
本文檔介紹從wincc讀取歸檔數(shù)據(jù)的通用方法,并以listview為例,介紹如何顯示歸檔數(shù)據(jù)。對于其它控件,客戶也可以參考本文檔的腳本和編程思路。
表 01
關(guān)于wincc連通性軟件包的使用,請參考下面的幫助文檔:37436159
2.實現(xiàn)方式總體思路介紹
本文檔通過調(diào)用wincc ole db數(shù)據(jù)庫接口驅(qū)動(需要wincc連通性軟件包的授權(quán))來訪問wincc的變量歸檔,并在微軟的listview控件中顯示歸檔數(shù)據(jù)。程序結(jié)構(gòu)如下所示:
圖1
具體代碼見附件。
3.具體實現(xiàn)方法和代碼
3.1 創(chuàng)建到歸檔數(shù)據(jù)庫的連接
由于wincc的變量歸檔為壓縮數(shù)據(jù),所以必須通過wincc ole db來讀取歸檔數(shù)據(jù)。對于已經(jīng)安裝wincc的計算機,不需要安裝wincc連通性軟件包。對于未安裝wincc的客戶端,必須安裝wincc連通性軟件包。該軟件包含在wincc v7.0的安裝光盤中。
數(shù)據(jù)庫連接的腳本如下所示:
'定義數(shù)據(jù)庫連接變量
dim conn
set conn = createobject("")
'定義數(shù)據(jù)庫查詢腳本(可以根據(jù)需要自定義修改)
dim ssql
ssql="tag:r,'processvaluearchive\tag1',':01:00.000',':00:00.000'"
'通過調(diào)用自定義的數(shù)據(jù)庫連接函數(shù),建立與數(shù)據(jù)庫的連接
dim ors
set ors= winccdatasourceaccess(conn,ssql)
其中,自定義的數(shù)據(jù)庫連接函數(shù)winccdatasourceaccess(connobj,psql),參數(shù)connobj為連接對象(),參數(shù)psql為要執(zhí)行的sql查詢語句,具體代碼如下所示:
function winccdatasourceaccess(connobj,psql)
'建立到數(shù)據(jù)庫的連接
on error resume next
'讀取本地的wincc運行數(shù)據(jù)庫名稱
dim datasourcenamert,dataconnectionname
set datasourcenamert = hmiruntime.tags("@datasourcenamert")
datasourcenamert.read
'定義數(shù)據(jù)庫連接字符串
dim spro, sdsn,sser
spro = "provider=winccoledbprovider.1;"
sdsn = "catalog=" & datasourcenamert.value & ";"
sser = "data source=.\wincc"
dataconnectionname = spro + sdsn + sser
' 定義查詢語句字符串
dim ssql
ssql=psql
'建立連接
dim ors,ocom,conn
set conn = createobject("")
set conn=connobj
= dataconnectionname
conn.cursorlocation = 3
conn.open
' 創(chuàng)建查詢的命令文本
set ors = createobject("adodb.recordset")
set ocom = createobject("")
= 1
set ocom.activeconnection = conn
'執(zhí)行查詢
set ors = ocom.execute
'返回結(jié)果
set winccdatasourceaccess=ors
if err.number <> 0 then
msgbox "error code" & err.number & "source:" & & "error deion" & err.deion
err.clear
end if
on error go to 0
end function
自定義函數(shù)的創(chuàng)建過程為:在wincc項目管理器中右鍵點擊全局腳本?打開vbs全局腳本編輯器?項目函數(shù)?新建函數(shù)。具體如下圖所示: