一、前言
西门子wincc组态软件的数据库是mssql,因mssql程序较大,操作不方便,通过脚本将自动化数据写入最常用的mysql数据库中,可以实现定制化报表及数据归档,现通过实践,成功写入了mysql。
二、具体实施步骤
2.1 安装mysql及相关数据库操作工具
①mysql数据库,②ODBC驱动包, ③mysql数据查看及设计工具
2.2 通过 SQLyog工具建立数据库
2.3 数据库的ODBC配置
在“C:\Windows\SysWOW64\odbcad32.exe”找到ODBC数据源配置工具,注意一定要用32位。配置图如下:
配置系统DSN数据源,选用驱动为mysql ODBC 5.3 Unicode Driver。建立数据源名称为mysql的数据源。
2.4 在wincc的全局脚本的vbs-editor下建立VBS动作。
Option Explicit
Function action
Dim Data1, Data2, Data3 , Data4, Data5, Data6, Data7 , Data8, Data9, Data10, Data11, Data12, Data13, Data14, Data15 , Data16, Data17
'读取wincc变量
Data1=Now()
Data2=HMIRuntime.tags("TU_IN").read
Data3=HMIRuntime.tags("PH_IN").read
Data4=HMIRuntime.tags("CL_IN").read
Data5=HMIRuntime.tags("LT01").read
Data6=HMIRuntime.tags("LT02").read
Data7=HMIRuntime.tags("TU_OUT").read
Data8=HMIRuntime.tags("PH_OUT").read
Data9=HMIRuntime.tags("CL_OUT").read
Data10=HMIRuntime.tags("FT_IN_01").read
Data11=HMIRuntime.tags("FT_IN_02").read
Data12=HMIRuntime.tags("FT_OUT_01").read
Data13=HMIRuntime.tags("FT_OUT_02").read
Data14=HMIRuntime.tags("FT_IN_total_01").read
Data15=HMIRuntime.tags("FT_IN_total_02").read
Data16=HMIRuntime.tags("FT_OUT_total_01").read
Data17=HMIRuntime.tags("FT_OUT_total_02").read
Dim adoConn '定义ADO连接对象?
Dim ConnectionStr '定义数据库连接字符串?
Dim sqlStr,adoRst'获取连接数据库字符串
ConnectionStr="DSN=MySQL;SERVER=127.0.0.1;UID=root;PWD=123456;PORT=3306;DATABASE=report_wincc"
Set adoConn = CreateObject("ADODB.Connection")
adoConn.Open ConnectionStr
If adoConn.State = 0 Then
Msgbox "连接数据库失败!"
Else
'Msgbox "连接数据库成功!"
End If
Dim sSql,oRs,oCom
'写入数据库
sSql ="insert into waterworks(日期,进水浊度,进水PH,进水余氯,一号清水池液位,二号清水池液位,出水浊度,出水PH,出水余氯,一号进水瞬时流量,二号进水瞬时流量,一号送水瞬时流量,二号送水瞬时流量,一号进水累计流量,二号进水累计流量,一号送水累计流量,二号送水累计流量)VALUES('"&Data1&"','"&Data2&"','"&Data3&"','" & Data4&"','"&Data5&"','" &Data6&"','"&Data7&"','" & Data8&"','"&Data9&"','" & Data10&"','"&Data11&"','" & Data12&"','"&Data13&"','" & Data14&"','"&Data15&"','" & Data16&"','"&Data17&"')"
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("ADODB.Command")
Set oCom.ActiveConnection = adoConn
oCom.CommandType = 1
oCom.CommandText = sSql
Set oRs = oCom.Execute
oRs.CLOSE
Set oRs = Nothing
adoConn.Close
Set adoConn = Nothing
End Function
三、运行效果
|