wincc 7.0往SQL Server写数据心得

来源:互联网 发布:如何分析竞价数据 编辑:程序博客网 时间:2024/06/05 17:01

过去这两天一直在为了wincc往SQL server数据库当中写数据而发愁,接到个项目,客户需要将变量数据写入到wincc当中,然后通过第三方平台读取SQL 2005当中的信息。

如果需要外部读写数据库只有两种办法,一种是通过ADODB方式来完成,另外一种通过连通性软件包来完成,因为西门子wincc的归档数据是经过压缩的,不能直接读取,所以必须要经过解压,西门子的文档当中很多实例,基于VB和Dataconnector来完成,不过可能我对于VB理解能力有限没看懂,后面有时间去研究一下。

    只好采用ADO方式通过wincc新建数据库来完成,注意新建数据库时需要用管理员权限打开SQL Server management,添加一个new login,新建数据库为读写数据库,添加一个表,名为个人信息

下面添加不同的列,我设的是number(char10),age(float),satu(bit),wen(text)分为4种类型

这样数据库就设置好了

下面开始设置odbc

控制—面板—管理工具---ODBC

添加sql server数据源,名称evcs,你想连接哪一个SQL Server那一栏填写本机

下面ODBC就设置好了

新建一个wincc pdl,添加4个输入输出域。每个输入输出域下有2个按钮,分别为增加按钮和修改按钮,根据实际情况来改变

我主要是用于测试不同类型字符数据情况

以第一项为例

输入值和输出值链接变量,有变化时进行修改。

在修改按钮下面的属性栏,动作为按左键触发动作

程序如下

Option ExplicitFunction actionDim sSql Dim sCom Dim oRs Dim conn Dim oCom Dim Con Dim data1,data2,data3 '读取WINCC变量data1=HMIRuntime.Tags ("satu").Read  '连接数据库,此处为数据库连接的标准语法结构。Con="Provider=SQLOLEDB.1; Integrated Security =SSPI;PersistSecurity Info=False; Initial Catalog=读写数据库;DataSource=.\WINCC" Setconn=CreateObject("ADODB.Connection") conn.ConnectionString= Con conn.CursorLocation=3 conn.Open Msgbox "。。。。。"sSql="update 个人信息 set satu='"&data1&"'"Set oRs=CreateObject("ADODB.Recordset") SetoCom=CreateObject("ADODB.Command") SetoCom.ActiveConnection=conn oCom.CommandType=1 oCom.CommandText=sSql Set oRs=oCom.Execute Set oRs=Nothing conn.Close Set conn=Nothing End Function

只不过我使用的全局脚本写,触发器只有在动作和定时器条件下才会触发。如果通过按键的话就是下面这种方式

 

Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)                    Dim sSql Dim sCom Dim oRs Dim conn Dim oCom Dim Con Dim data1,data2,data3'读取WINCC变量data1=HMIRuntime.Tags ("number").Readdata2=HMIRuntime.Tags ("age").Read '连接数据库,此处为数据库连接的标准语法结构。Con="Provider=SQLOLEDB.1; Integrated Security =SSPI;PersistSecurity Info=False; Initial Catalog=读写数据库;DataSource=.\WINCC" Setconn=CreateObject("ADODB.Connection") conn.ConnectionString= Con conn.CursorLocation=3 conn.Open Msgbox "。。。。。"sSql="update 个人信息 set number='"&data1&"'"Set oRs=CreateObject("ADODB.Recordset") SetoCom=CreateObject("ADODB.Command") SetoCom.ActiveConnection=conn oCom.CommandType=1 oCom.CommandText=sSql Set oRs=oCom.Execute Set oRs=Nothing conn.Close Set conn=NothingEnd Sub

SQL指令

增加为”insertinto 个人信息values(‘”&data1”’);”

更改为update 个人信息 set 

原创粉丝点击