一、前言 西门子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 三、运行效果 |
|