Ⅰ 如何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
以上都是我写的 现在还在用 这两部分合起来就能完成你的功能了