Ⅰ 如何wincc中使用VBS腳本讀寫SQLServer資料庫文件
在WinCC中使用VBS腳本讀寫SQLServer資料庫文件,需要先創建ADODB對象,具體步驟如下:
首先,定義資料庫連接對象cn,使用CreateObject函數創建ADODB.Connection對象。接著,定義記錄集對象rs,同樣使用CreateObject函數創建ADODB.Recordset對象。
然後,使用Open方法打開資料庫連接。這里的參數包括提供程序、安全信息是否保存、數據源地址、用戶名、密碼和資料庫名。具體語句如下:
cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;data source=192.168.0.102;User ID=sa;Password=password;Initial Catalog=DBName"
接著,打開記錄集,執行SQL查詢語句,選擇Qsoft表中的所有數據。具體語句如下:
rs.Open "select * from Qsoft", cn, 1,3
在查詢結果返回後,通過循環遍歷記錄集中的每一行數據。使用EOF屬性判斷記錄集是否結束,如果未結束,則彈出當前行的ID值,並通過MoveNext方法移動到下一行。具體代碼如下:
While Not (rs.EOF)
msgbox rs("ID")
rs.MoveNext
Wend
最後,關閉記錄集和資料庫連接,以釋放資源。具體語句如下:
rs.Close
cn.Close
通過以上步驟,可以在WinCC中使用VBS腳本讀取和寫入SQLServer資料庫文件。
Ⅱ 用WINCC的C腳本如何訪問遠程SQL伺服器上的資料庫
在WinCC VBS內部連接到資料庫,並用VB,網上很多例子
我是做
'資料庫連接
暗淡strCn,CONN
strCn =提供商= SQLOLEDB.1「&_
」集成安全性= SSPI「&_
」堅持的安全性信息= FALSE;「&_
」初始目錄=記錄「; _'記錄是你的資料庫名稱
「數據源=」&地址addr是遠程資料庫中的地址,如192.168.1.100,等
設置CONN =的CreateObject(「資料庫所在「;)
conn.ConnectionString = strcn
創建成功
Ⅲ WINCC 如何使用VB腳本
1、是的。 2、無需什麼條件。 3、可以。 4、這是對於外部變數的引用,對於內部變數則直接使用。 5、畫面名稱.對象.對象屬性。 6、可以。 7、對於外部變數,其讀寫要調用其read.Write方法。
Ⅳ Wincc/vbs循環讀取變數值
可以的,只要變數名字元串拼接的正確。你要一次讀取這么多變數,最好在循環語句中創建一個tagset.
dim group
set group=HMIRuntime.Tags.CreateTagSet
For i=1to2000
group.Add "Data"&i&".IA_2"
Next i
group.Read
Ⅳ A0579_在WinCC中如何使用VBS讀取變數歸檔數據到EXCEL
讀取變數歸檔的查詢語句是:
TAG:R, <ValueID or ValueName>,<TimeBegin>,<TimeEnd>[,<SQL_clause>][,<TimeStep>]
其中TimeStep指的是時間間隔
Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim sPro
Dim sDsn
Dim sSer
Dim sCon
Dim sSql
Dim conn
Dim oRs
Dim oCom
Dim oItem
'Dim m,n,s
'connection string
sPro = "Provider=WinCCOLEDBProvider.1;"
sDsn = "Catalog=CC_XXXXX_12_03_10_08_18_49R;" '資料庫名
sSer = "Data Source=.\WinCC"
sCon = sPro + sDsn + sSer
'sCon="Provider=WinCCOLEDBProvider.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=SSEJRecord;Data Source=.\WINCC"
'MsgBox "set sCon"
'sSQL為查詢命令
sSql = "TAG:R,'ProcessValueArchive\AnalogTag','0000-00-00 00:00:20.000','0000-00-00 00:00:00.000'"
'sSql = "ALARMVIEW:SELECT * from AlgViewChs"
'MsgBox "Set SQL"
'建立連接
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = sCon
conn.CursorLocation = 3
conn.Open
'MsgBox "conn Open"
'進行查詢
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("ADODB.Command")
oCom.CommandType = 1
Set oCom.ActiveConnection = conn
oCom.CommandText = sSql
'MsgBox "set command"
'填充記錄集
Set oRs = oCom.Execute
'm = oRs.Fields.Count
MsgBox oRs.EOF
If(oRs.EOF) Then
oRs.Close
Else
oRs.MoveFirst
Do While Not oRs.EOF
HMIRuntime.Tags("AlarmText1").Write CStr(oRs.Fields(17).Value)
oRs.MoveNext
Loop
oRs.Close
End If
Set oRs = Nothing
conn.Close
Set conn = Nothing
'MsgBox "end"
End Sub
下面是WINCC讀寫EXCEL的腳本
寫:
Sub OnOpen()
Dim objComboBox
Set objComboBox = ScreenItems("控制項1")
objComboBox.Clear()
Dim objExcelApp,oWorkBook
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = False
Set oWorkBook = objExcelApp.Workbooks.Open("c:\1.xls")
objComboBox.AddItem objExcelApp.Cells(1, 1).Value
objComboBox.AddItem objExcelApp.Cells(1, 2).Value
objComboBox.AddItem objExcelApp.Cells(1, 3).Value
objComboBox.SelText = "選項1"
objExcelApp.Workbooks.Close
objExcelApp.Quit
Set objExcelApp = nothing
End Sub
讀:
Sub OnLButtonDown(Byval Item, Byval Flags, Byval x, Byval y)
Dim objExcelApp,oWorkBook
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = False
Set oWorkBook = objExcelApp.Workbooks.Open("c:\1.xls")
Dim iBlankLine
iBlankLine = oWorkBook.ActiveSheet.Columns(1).Find("").Row '查找第一列的空行
'MsgBox iBlankLine
objExcelApp.Cells(iBlankLine, 1).Value = "tag1"
objExcelApp.Cells(iBlankLine, 2).Value = "tag2"
objExcelApp.Cells(iBlankLine, 3).Value = "tag3"
oWorkBook.Save
objExcelApp.Workbooks.Close
objExcelApp.Quit
Set objExcelApp = nothing
'Set oWorkBook =objExcelApp.Workbooks.Add
'oWorkBook.SaveAs "D:\ExcelExample.xls"
End Sub
以上都是我寫的 現在還在用 這兩部分合起來就能完成你的功能了