WinCC中访问SQL SERVER数据库

栏目: 数据库 · 发布时间: 6年前

内容简介:有两种身份验证方式可以连接到SQL Server数据库,它们是Windows身份验证和SQL身份验证。在本文中,WinCC将使用Windows身份验证进行连接,但我展示了使用SQL身份验证连接到SQL Server的连接字符串。注意:在本文中,我假设您已经安装了SQL Server。 我使用过SQL Server 2008,但这里完成的所有步骤对SQL Server 2005都有效。在本文中,我创建了一个数据库,因此我们可以进行读取和插入。 对于许多实际情况,工厂或系统已经有一个数据库。 因此,唯一需要的就

有两种身份验证方式可以连接到SQL Server数据库,它们是Windows身份验证和 SQL 身份验证。在本文中,WinCC将使用Windows身份验证进行连接,但我展示了使用SQL身份验证连接到SQL Server的连接字符串。

注意:在本文中,我假设您已经安装了SQL Server。 我使用过SQL Server 2008,但这里完成的所有步骤对SQL Server 2005都有效。在本文中,我创建了一个数据库,因此我们可以进行读取和插入。 对于许多实际情况,工厂或系统已经有一个数据库。 因此,唯一需要的就是在WinCC中操作。

创建SQL Server数据库

在“Database”上单击鼠标右键,然后单击“New Database...”(新建数据库)

WinCC中访问SQL SERVER数据库

在“Database name:”上键入“SQL_WINCC”(或您想要的任何名称)

WinCC中访问SQL SERVER数据库

在“Database> SQL_WINCC”下,右键单击“New Table ...”(新表),然后创建这些列,如下图所示。

WinCC中访问SQL SERVER数据库

WinCC中访问SQL SERVER数据库

最后将其命名为“Table_1”。

WinCC中访问SQL SERVER数据库

SQL_WINCC会是这样...

WinCC中访问SQL SERVER数据库

注意:我没有在“Table_1”中创建索引或主键,因为SQL Server配置不是本文的重点! 但在实际系统中,强烈建议创建它们。

创建WinCC应用程序

打开WinCC项目管理器,然后单击“New”(新建)

WinCC中访问SQL SERVER数据库

选择“Single-User Project”,然后选择“OK”(确定)。

WinCC中访问SQL SERVER数据库

将其命名为“WinccSql”,然后“Create”(创建)。

WinCC中访问SQL SERVER数据库

WinCC Explorer看起来会是这样

WinCC中访问SQL SERVER数据库

创建内部标签

在“WinccSql”下的WinCC项目管理器中,双击“Tag Management”(变量管理)

单击“Tag Management > Internal Tags”(标记管理>内部标记)并创建这12个标记。

WinCC中访问SQL SERVER数据库

这些标签将在主屏幕中使用。 其中一些保存来自SQL Server的数据,而其他的保存插入到SQL Server的数据。

配置屏幕

在“WinccSql”下的WinCC项目管理器中,双击“Graphics Designer”(图形编辑器)。 将打开一个名为“NewPdl_1”的空白页面,就像这样。

WinCC中访问SQL SERVER数据库

使用“矩形”,“静态文本”和“I / O域”对象可以像这样放置它们。

WinCC中访问SQL SERVER数据库

在“属性> I / O域>输出/输入>输出值”中,必须将它们附加到标签,如下所示:

WinCC中访问SQL SERVER数据库

附加到变量“TAG_STRING_INSERT”,“TAG_STRING_11”和“TAG_STRING_21”的对象将“属性> I / O域>输出/输入>数据格式”更改为STRING。

创建VB脚本

介绍

与数据库通信的最简单方法是使用VB-Script,它基本上需要4个步骤。

  • 连接配置
  • 命令配置
  • 记录集配置
  • 管理从数据库返回的数据

连接配置基本上具有以下参数:

  • 数据提供商 Provider
  • 数据服务器(服务器名称)
  • 初始目录(要连接的数据库)
  • 认证

在本文中,我使用此连接字符串:

Provider=SQLOLEDB;Data Source=MAWINWINCC;InitialCatalog=SQL_WINCC;Trusted_connection=yes;

“Trusted_connection”表示连接将通过Windows身份验证完成。 对于SQL身份验证,连接字符串将如下所示:

Provider=SQLOLEDB;Password=1234567890;Persist Security Info=True;User ID=sql_user;Initial Catalog=SQL_WINCC;Data Source=MAWIN\WINCC

“Insert”按钮的VB脚本

单击“插入”按钮并浏览到“事件>静态文本>鼠标>鼠标单击> VBS操作”。 现在在那里复制这个脚本。

'connection对象
Dim cn
'recordset记录集对象
Dim rs
'command命令对象
Dim mc
Dim sql
Dim column1
Dim column2
Dim column3
Dim column4

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set mc = CreateObject("ADODB.Command")

'相当于是adUseClient枚举值,表示用在客户端中
cn.CursorLocation = 3

'连接字符串
cn.ConnectionString = "Provider=SQLOLEDB;Data Source=MA1815\WINCC;Initial Catalog=SQL_WINCC;Trusted_connection=yes;"  

'打开连接
cn.Open

'Read the tags that will be inserted into database
column1 = HMIRuntime.Tags.Item("TAG_STRING_INSERT").Read 
column2 = HMIRuntime.Tags.Item("TAG_INT_1_INSERT").Read 
column3 = HMIRuntime.Tags.Item("TAG_INT_2_INSERT").Read 
column4 = HMIRuntime.Tags.Item("TAG_INT_3_INSERT").Read

'SQL语句
sql = "INSERT INTO TABLE_1 (COLUMN_1, COLUMN_2, COLUMN_3, COLUMN_4) VALUES ('" & column1 & "', " & column2 &", " & column3 & ", " & column4 & ")"

'配置命令对象
Set mc.ActiveConnection = cn

'表示命令中的文字是一个SQL语句
mc.CommandType = 1

mc.CommandText = sql

'执行命令
rs.Open mc, , 2, 1

'关闭连接
cn.Close

点击OK按钮

Select按钮的脚本

单击“选择”按钮并浏览到“事件>静态文本>鼠标>鼠标单击> VBS操作”。 现在在那里复制这个脚本

Dim cn 'connection 连接对象
Dim rs 'record set 记录集对象
Dim mc 'command 命令对象
Dim i

Dim sql
Dim column1
Dim column2
Dim column3
Dim column4
 
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set mc = CreateObject("ADODB.Command")
 
'相当于是adUseClient枚举值,表示用在客户端中
cn.CursorLocation = 3
 
'连接字符串
cn.ConnectionString = "Provider=SQLOLEDB;Data Source=MA1815\WINCC;Initial Catalog=SQL_WINCC;Trusted_connection=yes;"  

'打开连接
cn.Open

'在本文中,我为了方便起见,限制在2个寄存器内,但您可以从SQL中读取一些数据,然后将它们写入网格中,比如
sql = "SELECT TOP 2 COLUMN_1, COLUMN_2, COLUMN_3, COLUMN_4 FROM TABLE_1"

'配置Command对象
Set mc.ActiveConnection = cn
 
'表示CommandText中的是一个SQL语句
mc.CommandType = 1

mc.CommandText = sql
 
'执行SQL命令
rs.Open mc, , 2, 1
 
'假如找到了至少一条记录
If rs.RecordCount > 0 Then
    
    rs.MoveFirst
    
    '循环以获取从数据库读取的所有数据
    For i = 1 To rs.RecordCount

        '从数据库中读取数据
        column1 =  rs(0)
        column2 =  rs(1)
        column3 =  rs(2)
        column4 =  rs(3)        
        
        'TAG_STRING_11 或 TAG_STRING_21 或 ... TAG_STRING_n1
        HMIRuntime.Tags.Item("TAG_STRING_" & i & "1" ).Write column1

        'TAG_INT_12 或 TAG_INT_22 或 ... TAG_INT_n2
        HMIRuntime.Tags.Item("TAG_INT_" & i & "2").Write column2
        
        'TAG_INT_13 或 TAG_INT_23 或 ... TAG_INT_n3
        HMIRuntime.Tags.Item("TAG_INT_" & i & "3").Write  column3
        
        'TAG_INT_14 或 TAG_INT_24 或 ... TAG_INT_n4
        HMIRuntime.Tags.Item("TAG_INT_" & i & "4").Write  column4
        
        '继续下一条
        rs.MoveNext
    Next
    
End If

'关闭记录集
rs.Close
 
'关闭连接
cn.Close

现在,单击“OK”。

完成了! 运行WinCC!:)


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Advanced Web Metrics with Google Analytics, 2nd Edition

Advanced Web Metrics with Google Analytics, 2nd Edition

Brian Clifton / Sybex / 2010-3-15 / USD 39.99

Valuable tips and tricks for using the latest version of Google Analytics Packed with insider tips and tricks, this how-to guide is fully revised to cover the latest version of Google Analytics and sh......一起来看看 《Advanced Web Metrics with Google Analytics, 2nd Edition》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具