搜索
您的当前位置:首页正文

wincc中使用VBS脚本读写SQLServer数据库文件

来源:爱够旅游网


例程:

Wincc读写SQLServer数据库

一、在数据库中建立数据库文件,文件名为“读写数据库”,在数据库中建立新的表,命名为“个人信息”分别建立编号、姓名、年龄。

二、数据库中建立表后,在wincc中建立与数据库中类型相同的变量,变量类型相同在读写数据时很重要。在图形编辑器中新建画面,并在画面中增加三个输入输出域,并连接变量。

三、添加两个按钮控件,分别命名为写数据、读数据

1、在写数据按钮中写入一下VBS脚本

wincc变量写入数据库

定义变量

Dim sCon

Dim sSql

Dim oRs

Dim conn

Dim oCom

Dim Con

Dim Data1, Data2, Data3

‘读取wincc变量

Data1=HMIRuntime.tags(\"编号\").read

Data2=HMIRuntime.tags(\"姓名\").read

Data3=HMIRuntime.tags(\"年龄\").read

‘连接数据库

Con=\"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Info=False;Initial Catalog=读写数据库;Data Source=.\\WINCC\"

Set conn = CreateObject(\"ADODB.Connection\")

conn.ConnectionString = Con

conn.CursorLocation = 3

conn.Open

Security

‘写入数据库

sSql=\"insert into个人信息VALUES('\" & Data1 & \"','\" & Data2&\"','\"&Data3&\"');\"

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

Dim sCon

Dim sSql

Dim oRs

Dim conn

Dim oCom

Dim Con

Dim Data1, Data2, Data3

'读取wincc变量

Data1=HMIRuntime.tags(\"编号\").read

Data2=HMIRuntime.tags(\"姓名\").read

Data3=HMIRuntime.tags(\"年龄\").read

'连接数据库

Con=\"Provider=SQLOLEDB.1;nitial Catalog=Source=panzhiyou;uid=sa;pwd=panzhiyou\"

Set conn = CreateObject(\"ADODB.Connection\")

conn.ConnectionString = Con

读写数据库;Data

conn.CursorLocation = 3

conn.Open

'写入数据库

sSql=\"insert into个人信息VALUES('\" & Data1 & \"','\" & Data2&\"','\"&Data3&\"');\"

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

在实际项目中需要修改的只有定义变量时增加或减少数据data的个数,Data1=HMIRuntime.tags(\"编号\").read中的变量名,数据库的名字,以及数据库的表名

2、在读数据按钮中写入一下VBS脚本

读取数据库变量到wincc变量

定义变量

Dim sCon

Dim sSql

Dim oRs

Dim conn

Dim oCom

Dim Con

Dim Data1

Dim Data2

Dim Data3

Dim data4

Dim data5

Dim data6

Dim data7

data7=HMIRuntime.tags(\"编号\").read

Con=\"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Info=False;Initial Catalog=读写数据库;Data Source=.\\WINCC\"

Set conn = CreateObject(\"ADODB.Connection\")

conn.ConnectionString = Con

conn.CursorLocation = 3

conn.Open

sSql=\"SELECT * FROM 个人信息 WHERE 编号='\"&data7&\"';\"

Set oRs = CreateObject(\"ADODB.Recordset\")

Set oCom = CreateObject(\"ADODB.Command\")

Security

Set oCom.ActiveConnection = conn

oCom.CommandType = 1

oCom.CommandText = sSql

Set oRs = oCom.Execute

'Set oRs = Nothing

data4=oRs.Fields(0).Value

data5=oRs.Fields(1).Value

data6=oRs.Fields(2).Value

'data1.write data4

Set data1=HMIRuntime.Tags(\"编号\")

Set data2=HMIRuntime.Tags(\"姓名\")

Set data3=HMIRuntime.Tags(\"年龄\")

data1.Read

data1.Write data4

data2.Read

data2.Write data5

data3.Read

data3.Write data6

Set oRs = Nothing

conn.Close

Set conn = Nothing

Dim sCon

Dim sSql

Dim oRs

Dim conn

Dim oCom

Dim Con

Dim Data1

Dim Data2

Dim Data3

Dim data4

Dim data5

Dim data6

Dim data7

data7=HMIRuntime.tags(\"编号\").read

Con=\"Provider=SQLOLEDB.1;nitial Catalog=Source=panzhiyou;uid=sa;pwd=panzhiyou\"

Set conn = CreateObject(\"ADODB.Connection\")

conn.ConnectionString = Con

conn.CursorLocation = 3

读写数据库;Data

conn.Open

sSql=\"SELECT * FROM 个人信息 WHERE 编号='\"&data7&\"';\"

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

data4=oRs.Fields(0).Value

data5=oRs.Fields(1).Value

data6=oRs.Fields(2).Value

'data1.write data4

Set data1=HMIRuntime.Tags(\"编号\")

Set data2=HMIRuntime.Tags(\"姓名\")

Set data3=HMIRuntime.Tags(\"年龄\")

data1.Read

data1.Write data4

data2.Read

data2.Write data5

data3.Read

data3.Write data6

Set oRs = Nothing

conn.Close

Set conn = Nothing

读取数据时,按照编号读取数据,在实际中需要修改数据库语言。运行wincc,再编号输入输出域中输入编号,点击读数据按钮,得到需要的数据

210216连退检查台wincc画面显示钢卷信息的程序:

前提条件:

需要打开SQL2005 添加SQL2000的服务器 添加情况如图:

注:Authentication选项是选择验证模式的。和配置的服务器有关系。一般有两种验证模式。现场的SQL2000的服务器都是以上图示的验证方式。用户名sa,密码123。而WINCC的SQL2005服务器都是另一种身份验证。不需要写用户名和密码。

在画面上添加一个listview控件,对象名称改为listview1;

设置其属性,代码可以,直接设置也可以。此例子为直接设置。设置的内容包括:

1. view属性设为3

2. ColumnHeaders属性添加显示的列名字,设置列的宽度。注意列的个数要和你程序里想显示的每一项的数据个数一致。而且列名也要和每一项的数据显示一致。

此程序列名有:序号,上卷钢卷号,钢带厚度,钢带宽度,焊缝距离。

对应的数据库是:TuiHuo 表是:上卷钢卷信息表。

3. 其余的listview属性的改变可视具体情况进行修改。

对应代码:

Sub OnClick(ByVal Item)

Dim sPro,sDsn,sSer,sCon,sSql,oRS,conn,oCom,oItem,m,n,s,i,oList

sPro=\"Provider=SQLOLEDB;\"

sDsn=\"Initial Catalog=TuiHuo;\"

sSer=\"Data Source=ZHAOLINA;uid=sa;pwd=123;\"

sCon= sPro+sDsn+sSer

sSql=\"SELECT * FROM 上卷钢卷信息表\"

Set conn=CreateObject(\"ADODB.Connection\")

conn.ConnectionString=sCon

conn.CursorLocation=3

conn.Open

Set oRs=CreateObject(\"ADODB.Record\")

Set oCom=CreateObject(\"ADODB.Command\")

oCom.CommandType=1

Set oCom.ActiveConnection=conn

oCom.CommandText=sSql

Set oRs=oCom.Execute

n=oRs.RecordCount

'MsgBox(n)

Set oList=ScreenItems(\"listview1\")

oList.ListItems.Clear

' oList.View =3

' oList.GridLines =True

' olist.ColumnHeaders.Clear

' olist.ColumnHeaders.Add ,,CStr(oRs.Fields(0).Name),100

' olist.ColumnHeaders.Add ,,CStr(oRs.Fields(1).Name),150

' olist.ColumnHeaders.Add ,,CStr(oRs.Fields(9).Name),100

' olist.ColumnHeaders.Add ,,CStr(oRs.Fields(10).Name),100

' olist.ColumnHeaders.Add ,,CStr(oRs.Fields(11).Name),100

If(n>0) Then

oRs.MoveFirst

End If

m=0

Do While Not oRs.EOF

m=m+1

Set oItem=oList.ListItems.Add()

oItem.text=CStr(oRs.Fields(0).value)

oItem.SubItems(1)=CStr(oRs.Fields(1).value)

oItem.SubItems(2)=CStr(oRs.Fields(9).value)

oItem.SubItems(3)=CStr(oRs.Fields(10).value)

oItem.SubItems(4)=CStr(oRs.Fields(11).value)

oRs.MoveNext

Loop

Msgbox(\"查询成功\")

oRs.Close

set oRs=Nothing

conn.Close

set conn=Nothing

end sub

因篇幅问题不能全部显示,请点此查看更多更全内容

Top