经常会有朋友用到将部分有用的数据单独写到关系型数据库如:SQL Server ,MySQL等,然后通过制作报表进行数据的显示,而对于报表,我目前比较常用的是 SQL Server 自带的免费的 SSRS 来制作报表,用户可以通过网页的形式进行访问,页可以导出为PDF,WORD,或者可以选择打印,非常方便。
那么对于WINCC软件大家肯定非常熟悉了。

步骤:
1)在SQL SERVER中创建一个数据库
登录到 SQL Server,登录方式默认为Windows账户,而非混合账户sa,首先需要在SQL Server中建立一个数据库,如名称为“DBTEST”,然后建立一个表,如value,表中输入字段,并设置数据格式,如字段名称为 press,temp,他们对应的数据类型都为 float , 此处的字段名称需要与WINCC中变量的名称一致。

图1

图2
如果你对数据库不懂,那么可以观看此专栏进行学习,掌握数据库的相关知识,以及报表的制作方法。
专栏2)wincc 数据写入到数据库
可以使用按钮来将数据写入,在按钮的VBS脚本中输入代码;一般我们常通过全局脚本,周期触发将数据写入(必须在计算机属性—启动选项卡中勾选"全局脚本运行系统")
代码如下(按钮和全局脚本相同):
'定义变量
Dim sCon
Dim sSql
Dim oRs
Dim conn
Dim oCom
Dim Con
Dim Data1, Data2
'将需要写入的数据从WINCC中读取到变量中,此处的press和temp必须与数据库中的建立的字段一致
Data1=HMIRuntime.tags("press").read
Data2=HMIRuntime.tags("temp").read
'数据库连接,"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial ‘Catalog=DBTEST;Data Source=.WINCC"中Initial Catalog=DBTEST需要改为实际建立的数据库的名称,Data Source=.WINCC需要修改为数据源,完整的名称应该是登录数据库时的Server name: luoyhWINCC
Con="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.WINCC"
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = Con
conn.CursorLocation = 2
conn.Open
'将实时数据插入到数据库,"insert into value VALUES(" " 此处value为表的名称," & Data1 & "," & Data2&" 此处的数据为字符串时需要用单引号,如:' " & Data1 & " ',' " & Data2&" '
sSql="insert into value VALUES(" "
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