您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > wincc中使用VBS脚本读写SQLServer数据库文件
例程:Wincc读写SQLServer数据库一、在数据库中建立数据库文件,文件名为“读写数据库”,在数据库中建立新的表,命名为“个人信息”分别建立编号、姓名、年龄。二、数据库中建立表后,在wincc中建立与数据库中类型相同的变量,变量类型相同在读写数据时很重要。在图形编辑器中新建画面,并在画面中增加三个输入输出域,并连接变量。三、添加两个按钮控件,分别命名为写数据、读数据1、在写数据按钮中写入一下VBS脚本wincc变量写入数据库定义变量DimsConDimsSqlDimoRsDimconnDimoComDimConDimData1,Data2,Data3‘读取wincc变量Data1=HMIRuntime.tags(编号).readData2=HMIRuntime.tags(姓名).readData3=HMIRuntime.tags(年龄).read‘连接数据库Con=Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=读写数据库;DataSource=.\WINCCSetconn=CreateObject(ADODB.Connection)conn.ConnectionString=Conconn.CursorLocation=3conn.Open‘写入数据库sSql=insertinto个人信息VALUES('&Data1&','&Data2&','&Data3&');SetoRs=CreateObject(ADODB.Recordset)SetoCom=CreateObject(ADODB.Command)SetoCom.ActiveConnection=connoCom.CommandType=1oCom.CommandText=sSqlSetoRs=oCom.ExecuteSetoRs=Nothingconn.CloseSetconn=NothingDimsConDimsSqlDimoRsDimconnDimoComDimConDimData1,Data2,Data3'读取wincc变量Data1=HMIRuntime.tags(编号).readData2=HMIRuntime.tags(姓名).readData3=HMIRuntime.tags(年龄).read'连接数据库Con=Provider=SQLOLEDB.1;nitialCatalog=读写数据库;DataSource=panzhiyou;uid=sa;pwd=panzhiyouSetconn=CreateObject(ADODB.Connection)conn.ConnectionString=Conconn.CursorLocation=3conn.Open'写入数据库sSql=insertinto个人信息VALUES('&Data1&','&Data2&','&Data3&');SetoRs=CreateObject(ADODB.Recordset)SetoCom=CreateObject(ADODB.Command)SetoCom.ActiveConnection=connoCom.CommandType=1oCom.CommandText=sSqlSetoRs=oCom.ExecuteSetoRs=Nothingconn.CloseSetconn=Nothing在实际项目中需要修改的只有定义变量时增加或减少数据data的个数,Data1=HMIRuntime.tags(编号).read中的变量名,数据库的名字,以及数据库的表名2、在读数据按钮中写入一下VBS脚本读取数据库变量到wincc变量定义变量DimsConDimsSqlDimoRsDimconnDimoComDimConDimData1DimData2DimData3Dimdata4Dimdata5Dimdata6Dimdata7data7=HMIRuntime.tags(编号).readCon=Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=读写数据库;DataSource=.\WINCCSetconn=CreateObject(ADODB.Connection)conn.ConnectionString=Conconn.CursorLocation=3conn.OpensSql=SELECT*FROM个人信息WHERE编号='&data7&';SetoRs=CreateObject(ADODB.Recordset)SetoCom=CreateObject(ADODB.Command)SetoCom.ActiveConnection=connoCom.CommandType=1oCom.CommandText=sSqlSetoRs=oCom.Execute'SetoRs=Nothingdata4=oRs.Fields(0).Valuedata5=oRs.Fields(1).Valuedata6=oRs.Fields(2).Value'data1.writedata4Setdata1=HMIRuntime.Tags(编号)Setdata2=HMIRuntime.Tags(姓名)Setdata3=HMIRuntime.Tags(年龄)data1.Readdata1.Writedata4data2.Readdata2.Writedata5data3.Readdata3.Writedata6SetoRs=Nothingconn.CloseSetconn=NothingDimsConDimsSqlDimoRsDimconnDimoComDimConDimData1DimData2DimData3Dimdata4Dimdata5Dimdata6Dimdata7data7=HMIRuntime.tags(编号).readCon=Provider=SQLOLEDB.1;nitialCatalog=读写数据库;DataSource=panzhiyou;uid=sa;pwd=panzhiyouSetconn=CreateObject(ADODB.Connection)conn.ConnectionString=Conconn.CursorLocation=3conn.OpensSql=SELECT*FROM个人信息WHERE编号='&data7&';SetoRs=CreateObject(ADODB.Recordset)SetoCom=CreateObject(ADODB.Command)SetoCom.ActiveConnection=connoCom.CommandType=1oCom.CommandText=sSqlSetoRs=oCom.Execute'SetoRs=Nothingdata4=oRs.Fields(0).Valuedata5=oRs.Fields(1).Valuedata6=oRs.Fields(2).Value'data1.writedata4Setdata1=HMIRuntime.Tags(编号)Setdata2=HMIRuntime.Tags(姓名)Setdata3=HMIRuntime.Tags(年龄)data1.Readdata1.Writedata4data2.Readdata2.Writedata5data3.Readdata3.Writedata6SetoRs=Nothingconn.CloseSetconn=Nothing读取数据时,按照编号读取数据,在实际中需要修改数据库语言。运行wincc,再编号输入输出域中输入编号,点击读数据按钮,得到需要的数据210216连退检查台wincc画面显示钢卷信息的程序:前提条件:需要打开SQL2005添加SQL2000的服务器添加情况如图:注:Authentication选项是选择验证模式的。和配置的服务器有关系。一般有两种验证模式。现场的SQL2000的服务器都是以上图示的验证方式。用户名sa,密码123。而WINCC的SQL2005服务器都是另一种身份验证。不需要写用户名和密码。在画面上添加一个listview控件,对象名称改为listview1;设置其属性,代码可以,直接设置也可以。此例子为直接设置。设置的内容包括:1.view属性设为32.ColumnHeaders属性添加显示的列名字,设置列的宽度。注意列的个数要和你程序里想显示的每一项的数据个数一致。而且列名也要和每一项的数据显示一致。此程序列名有:序号,上卷钢卷号,钢带厚度,钢带宽度,焊缝距离。对应的数据库是:TuiHuo表是:上卷钢卷信息表。3.其余的listview属性的改变可视具体情况进行修改。对应代码:SubOnClick(ByValItem)DimsPro,sDsn,sSer,sCon,sSql,oRS,conn,oCom,oItem,m,n,s,i,oListsPro=Provider=SQLOLEDB;sDsn=InitialCatalog=TuiHuo;sSer=DataSource=ZHAOLINA;uid=sa;pwd=123;sCon=sPro+sDsn+sSersSql=SELECT*FROM上卷钢卷信息表Setconn=CreateObject(ADODB.Connection)conn.ConnectionString=sConconn.CursorLocation=3conn.OpenSetoRs=CreateObject(ADODB.Record)SetoCom=CreateObject(ADODB.Command)oCom.CommandType=1SetoCom.ActiveConnection=connoCom.CommandText=sSqlSetoRs=oCom.Executen=oRs.RecordCount'MsgBox(n)SetoList=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),100If(n0)ThenoRs.MoveFirstEndIfm=0DoWhileNotoRs.EOFm=m+1SetoItem=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.MoveNextLoopMsgbox(查询成功)oRs.ClosesetoRs=Nothingconn.Closesetconn=Nothingendsub
本文标题:wincc中使用VBS脚本读写SQLServer数据库文件
链接地址:https://www.777doc.com/doc-5377595 .html