vlambda博客
学习文章列表

西门子wincc组态软件脚本使用--mysql操作

一、前言

 

   西门子wincc组态软件的数据库是mssql,因mssql程序较大,操作不方便,通过脚本将自动化数据写入最常用的mysql数据库中,可以实现定制化报表及数据归档,现通过实践,成功写入了mysql。


二、具体实施步骤


2.1  安装mysql及相关数据库操作工具


  ①mysql数据库,②ODBC驱动包,  ③mysql数据查看及设计工具

2.2  通过 SQLyog工具建立数据库

    

西门子wincc组态软件脚本使用--mysql操作


西门子wincc组态软件脚本使用--mysql操作

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

三、运行效果