WINCC7.5SP2报表练习1续-VBS脚本自动向SQL数据表添加记录

来自金沙江的小鱼 / 2024-10-14 / 原文

继续练习。

在写第二篇学习笔记之前,先练习一下使用vbs全局脚本定时向sql数据表写入记录。在前面数据库下新建一个数据表table_4,表结构和table_3一样。前面的WINCC项目程序新建两个内部变量nh3_12和nh3_ab,32位浮点数。

新建vbs全局脚本,定时器为5秒运行一次。
Option Explicit
Function action
Dim nh3_12,nh3_ab
Dim strcon
Dim objcon
Dim objcom
Dim objrs
Dim grid
Dim DTPicker
Dim pcname
Dim seldate
Dim sqltype
Dim temp1
Set nh3_12=HMIRuntime.Tags("nh3_12")
Set nh3_ab=HMIRuntime.Tags("nh3_ab")
nh3_12.Write 30*Rnd
nh3_ab.Write 30*Rnd
pcname=HMIRuntime.Tags("@LocalMachineName").Read
Set objcon =Createobject("ADODB.connection")
Set objrs=Createobject("ADODB.recordset")
Set objcom=Createobject("ADODB.command")
objcom.commandtype=1
strcon="Provider=SQLOLEDB;password=3390011;user id=sa;Initial Catalog=report;Data Source=" & pcname & "\WINCC"
objcon.connectionstring=strcon
objcon.Cursorlocation=3
objcon.open
If objcon.state=0 Then
Msgbox "数据库连接失败"
Else
Set objcom.ActiveConnection=objcon
objcom.commandtype=1
objcom.commandtext="insert into table_4(dt,nh3_12,nh3_ab,year1,month1,day1,hour1,minute1) values('" & CStr(Now()) & "'," & CStr(nh3_12.read) & "," & CStr(nh3_ab.read) & "," & CStr(Year(Now())) & "," & CStr(Month(Now())) & ","  & CStr(Day(Now())) & ","  & CStr(Hour(Now())) & "," & CStr(Minute(Now())) & ")"
Set objrs=objcom.execute
Set objrs=Nothing
objcon.close
Set objcon=Nothing
End If
End Function
保存脚本,设置项目属性的启动内容,勾选全局脚本。
运行WINCC项目程序,每隔5秒就会向数据表table_4写入一条记录。