本文档介绍了如何利用VBS脚本将数据从西门子WinCC系统高效地传输到SQL Server数据库,提供详细的步骤和示例代码。
本段落将探讨如何使用Visual Basic Script (VBS) 在西门子WinCC人机界面系统中编写脚本以向SQL Server数据库写入数据的过程。此过程主要包括建立数据库连接、编写SQL查询语句以及处理数据的插入或更新操作。
首先,需要在SQL Server上创建一个数据库和相应的表。在此示例中,我们有`date` 和 `AT300` 表,它们可能包含有关生产流程的不同信息,如釜序号(Brewery Sequence Number)、原料编号、目标值及不同时间点的MI值等。
在WinCC项目中添加一个按钮组件,并在其单击事件中编写VBS代码。以下是一个示例:
```vbscript
Dim data1, data2, data3, data4, data5, data6, data7, data8
数据赋值
data1 = 5004
data2 = 1234
data3 = 5
data4 = 5.2
data5 = 5.8
data6 = 10
data7 = 10.33483
data8 = 42
创建数据库连接
Dim Con, conn
Con = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DH;Data Source=.WINCC
Set conn = CreateObject(ADODB.Connection)
conn.ConnectionString = Con
conn.CursorLocation = 3
conn.Open
查询语句
Dim sSql, sSql2, sSql3, sSql4, m, n
sSql2 = SELECT * FROM date WHERE 釜序号= & data1 &
sSql4 = SELECT * FROM AT300 WHERE 釜序号= & data1 &
sSql = INSERT INTO date (釜序号, 原料编号, 目标, MI5, [MI5-30], MI30, [MI30-60], MI60, TIME) VALUES( & data1 &, & data2 &, & data3 &, & data4 &, & data7 &, & data5 &, & data8 &, & data6 &, & Now() &);
sSql3 = UPDATE AT300 SET 结果值= & data4 WHERE 釜序号= & data1
执行查询并检查记录
Dim oRs2, oCom2
Set oRs2 = CreateObject(ADODB.Recordset)
Set oCom2 = CreateObject(ADODB.Command)
oCom2.ActiveConnection = conn
oCom2.CommandType = 1
oCom2.CommandText = sSql2
Set oRs2 = oCom2.Execute
m = oRs2.RecordCount
oCom2.CommandText = sSql4
Set oRs2 = oCom2.Execute
n = oRs2.RecordCount
写入数据或显示提示
If m = 0 Then
Set oRs = CreateObject(ADODB.Recordset)
Set oCom = CreateObject(ADODB.Command)
oCom.ActiveConnection = conn
oCom.CommandType = 1
oCom.CommandText = sSql
Set oRs = oCom.Execute
Else
MsgBox & data1 & 数据已存在
End If
If n > 0 Then
oCom.CommandText = sSql3
Set oRs = oCom.Execute
End If
conn.Close
```
这段代码首先声明了需要的数据变量,并给它们赋值。接着,通过`ADODB.Connection`对象建立与数据库的连接。随后使用 `ADODB.Command` 对象执行SQL查询和更新命令,例如`sSql2` 和 `sSql4` 用于检查 `date` 和 `AT300` 表中是否有与 `data1` 匹配的记录;而`sSql` 则用于向 `date` 表插入新的数据。
在执行查询后通过检查记录数量来确定是否需要执行插入或更新操作。如果查询没有返回记录,则表示 m=0,此时应执行插入操作;若 `AT300` 表中已存在与 `data1` 匹配的记录,则需进行更新操作。确保关闭数据库连接以释放资源。
此过程展示了如何在WinCC环境中利用VBS进行数据库交互,这对于实时监控和控制生产流程中的数据记录至关重要。通过这种方式可以保证 WinCC 界面与数据库之间的数据同步,从而实现生产和数据分析自动化。