
A01:设计思路数据写入数据库:通过kepware的DataLogger写入MSSQL或者上位机软件通过脚本写入MSSQL。A02:目前通过kepware整点插入数据库。首先数据库建立表单,通过实现数......
A01:设计思路

数据写入数据库:通过kepware的DataLogger写入MSSQL或者上位机软件通过脚本写入MSSQL。
A02:目前通过kepware整点插入数据库。
首先数据库建立表单,通过

实现数据库设计。
其次建立ODBC数据源,

A03:安装表格控件

A04:程序设计


核心程序段:
Dimstrsql
Setcn=
_conString1
Setrecord==Str(d_start_)
IfLen(st)14Then'
st=st+"00:00:00"
If
st1=Str(d__)
IfLen(st1)14Then'
st1=st1+"000:00:00"
If
strsql="selecttt,t1,t2,t3,t4,t5fromtt1whereTT='"+st+"'andTT='"+st1+"'orderbyxh"
,cn
j=2'目录列
=1
=TrueThen
Setrecord=Nothing
Setcn=Nothing
ExitSub
If
Dimmaxv(6)AsSingle
Dimminv(6)AsSingle
Dimavg(6)AsSingle
Dimsub1(6)AsSingle
Fori=0To5
maxv(i)=-10000
minv(i)=1000000
avg(i)=0
DimcxvAsSingle
Nexti
DimnumAsInteger
num=0
=False
=j+4
(j,0).Text=Str(j)
st3=Str(CDate((0)))
'处理时间格式显示(开始)
IfLen(st3)14Then
st3=st3+"00:00:00"
If
IfLen(st3)=18Then
st3=Left(st3,16)+"00"
If
IfLen(st3)=19Then
st3=Left(st3,16)+":00"
If
'处理时间格式显示(结束)
(j,1).Text=st3
Fori=1To5
(i)-10000Then
cxv=(i)
Else
cxv=0
If
Ifi=1Then
'增加一行可以否则EXCEL导出没有名称)
(1,1).Text="日期时间"
(1,2).Text="进水浊度"
(1,3).Text="进水PH"
(1,4).Text="进水温度"
(1,5).Text="清水池1液位"
(j,i+1).Text=Format(cxv,"0.000")
If
Ifi=2Andi=5Then
(j,i+1).Text=Format(cxv,"0.000")
If
Ifmaxv(i-1)cxvThen
maxv(i-1)=cxv
If
Ifminv(i-1)cxvThen
minv(i-1)=cxv
If
avg(i-1)=avg(i-1)+cxv
Nexti
num=num+1
j=j+1
Loop
(j,1).Text="平均值"
(j+1,1).Text="最大值"
(j+2,1).Text="最小值"
Fori=0To4
ifi=0Then
(j,i+2).Text=Format(avg(i)/num,"0.000")
(j+1,i+2).Text=Format(maxv(i),"0.000")
(j+2,i+2).Text=Format(minv(i),"0.000")
If
Ifi=1Then
(j,i+2).Text=Format(avg(i)/num,"0.000")
(j+1,i+2).Text=Format(maxv(i),"0.000")
(j+2,i+2).Text=Format(minv(i),"0.000")
If
Ifi=2Then
(j,i+2).Text=Format(avg(i)/num,"0.000")
(j+1,i+2).Text=Format(maxv(i),"0.000")
(j+2,i+2).Text=Format(minv(i),"0.000")
If
Ifi=3Then
(j,i+2).Text=Format(avg(i)/num,"0.000")
(j+1,i+2).Text=Format(maxv(i),"0.000")
(j+2,i+2).Text=Format(minv(i),"0.000")
If
Ifi=4Then
(j,i+2).Text=Format(avg(i)/num,"0.000")
(j+1,i+2).Text=Format(maxv(i),"0.000")
(j+2,i+2).Text=Format(minv(i),"0.000")
If
Nexti
Setrecord=Nothing
Setcn=Nothing
=cellScrollBarBoth
=1'冻结第一行
=True
A05:测试效果




