經常會有朋友用到將部分有用的數據單獨寫到關係型數據庫如:SQL Server ,MySQL等,然後通過製作報表進行數據的顯示,而對於報表,我目前比較常用的是 SQL Server 自帶的免費的 SSRS 來製作報表,用戶可以通過網頁的形式進行訪問,頁可以導出為PDF,WORD,或者可以選擇打印,非常方便。
那麼對於WINCC軟件大家肯定非常熟悉了,
那麼,如何將實時數據寫入WINCC自帶的關係數據庫SQL Server,並讀出。
步驟:
1)在SQL SERVER中創建一個數據庫
登錄到 SQL Server,登錄方式默認為Windows賬戶,而非混合賬戶sa(如圖2),首先需要在SQL Server中建立一個數據庫,如名稱為“DBTEST”,然後建立一個表,如value,表中輸入字段,並設置數據格式,如字段名稱為 press,temp,他們對應的數據類型都為 float , 此處的字段名稱需要與WINCC中變量的名稱一致,(如圖1)
如果你對數據庫不懂,那麼可以觀看此專欄進行學習,掌握數據庫的相關知識,以及報表的製作方法。
2)wincc 數據寫入到數據庫
可以使用按鈕來將數據寫入,在按鈕的VBS腳本中輸入代碼;一般我們常通過全局腳本,週期觸發將數據寫入(必須在計算機屬性—啟動選項卡中勾選"全局腳本運行系統")
代碼如下(按鈕和全局腳本相同):
'定義變量
Dim sCon
Dim sSql
Dim oRs
Dim conn
Dim oCom
Dim Con
Dim Data1, Data2
'將需要寫入的數據從WINCC中讀取到變量中,此處的press和temp必須與數據庫中的建立的字段一致
Data1=HMIRuntime.tags("press").read
Data2=HMIRuntime.tags("temp").read
'數據庫連接,"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial ‘Catalog=DBTEST;Data Source=.\\WINCC"中Initial Catalog=DBTEST需要改為實際建立的數據庫的名稱,Data Source=.\\WINCC需要修改為數據源,完整的名稱應該是登錄數據庫時的Server name: luoyh\\WINCC
Con="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.\\WINCC"
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = Con
conn.CursorLocation = 2
conn.Open
'將實時數據插入到數據庫,"insert into value VALUES(" & Data1 & "," & Data2&");" 此處value為表的名稱," & Data1 & "," & Data2&" 此處的數據為字符串時需要用單引號,如:' " & Data1 & " ',' " & Data2&" '
sSql="insert into value VALUES(" & Data1 & "," & Data2&");"
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("ADODB.Command")
Set oCom.ActiveConnection = conn
oCom.CommandType = 1
oCom.CommandText = sSql
Set oRs = oCom.Execute
Set oRs = Nothing
conn.Close
Set conn = Nothing
以上代碼就可以實現將實時讀取到數據寫入到關係數據庫,寫入的頻率主要看全局腳本中週期觸發的設置。
3)通過 SSRS 開發報表,進行數據的顯示分析等操作。
通過 SSRS 可以以表格的形式進行數據顯示,可以對數據生成趨勢曲線,餅圖,儀表盤,地圖等元素,通過一定腳本,還可以實現對數據的篩選功能等。還可以通過網頁形式訪問報表,而對於很多組態軟件都已經具有Web控件,那麼就可以通過此web控件將網頁嵌入到你的畫面中進行報表的查看。此方式非常方便,比組態軟件自帶的報表功能強大。
以上關於 WINCC 在與數據庫的數據交互,以及如何使用 SSRS實現強大的報表功能的介紹到此結束,如果你有更多的問題,或者想要了解更多,可以關注我的“頭條文章”,“專欄”,“圈子”等獲取更多的知識。
閱讀更多 劍指工控 的文章