电工学习网

 找回密码
 立即注册
查看: 5374|回复: 1
打印 上一主题 下一主题

wincc往SQL SERVER2005写数据探究过程

[复制链接]
跳转到指定楼层
楼主
发表于 2017-11-10 19:47:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
过去这两天一直在为了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 Explicit
Function action
Dim 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;Persist Security Info=False; Initial Catalog=读写数据库;Data Source=.WINCC"
Set conn=CreateObject("ADODB.Connection")
conn.ConnectionString= Con
conn.CursorLocation=3
conn.Open
Msgbox "。。。。。"
sSql="update 个人信息 set satu='"&data1&"'"
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

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").Read
data2=HMIRuntime.Tags ("age").Read
'连接数据库,此处为数据库连接的标准语法结构。
Con="Provider=SQLOLEDB.1; Integrated Security =SSPI;Persist Security Info=False; Initial Catalog=读写数据库;Data Source=.WINCC"//"读写数据库"为数据库名称,本地电脑上的wincc为.WINCC
Set conn=CreateObject("ADODB.Connection")
conn.ConnectionString= Con
conn.CursorLocation=3
conn.Open
Msgbox "。。。。。"
sSql="update 个人信息 set number='"&data1&"'"//“个人信息”为表名
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
End Sub
SQL指令
增加为”insert into 个人信息 values(‘”&data1”’);”
本文转载自:西门子工业技术论坛

回复

使用道具 举报

沙发
发表于 2017-11-11 05:38:13 | 只看该作者
学习了,没有接触过的知识点

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-4-25 05:20

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表