PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 20154|回复: 0

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

[复制链接]
发表于 2024-3-8 15:49:59 | 显示全部楼层 |阅读模式
一、前言

   西门子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

三、运行效果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-4-27 17:04 , Processed in 0.047522 second(s), 26 queries .

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