现在有这样一个情况,比如水量是累计计算,通过wincc vb脚本写入sql中,每小时写入一次,但是如果要是计算每小时的水量,需要用现在的水量减去前一小时的水量。这样大家有什么好的办法吗?我想到的是用中间变量,每小时计一次,计算差值,写入数据库。
Dim LocalMinute,LocalSecond,i
LocalMinute=Minute(Now)
LocalSecond=Second(Now)
For i = 1 To 30
If LocalMinute=1 And LocalSecond<20 Then
HMIRuntime.Tags("S"&Trim(i)&"_daliy_water_volume").Write 0
' Msgbox "OK0"
HMIRuntime.Tags("S"&Trim(i)&"_yesterday_water_volume").Write HMIRuntime.Tags("S"&Trim(i)&"_Md_QF_R1BSB_F_Sum").Read
Else
HMIRuntime.Tags("S"&Trim(i)&"_daliy_water_volume").Write HMIRuntime.Tags("S"&Trim(i)&"_Md_QF_R1BSB_F_Sum").Read-HMIRuntime.Tags("S"&Trim(i)&"_yesterday_water_volume").Read
但这样有个问题,不敢在整点整分这样执行,怕数据库记录存在问题,这样的坏处就是存在一段时间内的总量和每小时的和对不起来。
大家有什么办法使得用数据库的后一条数据减去前一条数据吗?