请高手指点下列子程序的功能作用(2)。

lichudi 2003-08-19 05:29:45
Sub init()
frmMain.MasterAdapt.Enabled = False
frmMain.MasterExit.Enabled = False
frmMain.TabelMaintain.Enabled = False
frmMain.ControlInit.Enabled = False
Dim h%(31), poll%(99), e%, i As Long, j%
For i = 2 To 31
h%(i) = 0
Next i
h%(1) = 1
For i = 8 To 99
poll%(i) = 0
Next i
For i = 1 To 7
poll%(i) = 1
Next i
Call idcb_int(1, h%(1), poll%(1), &H100, e%)
For j% = 1 To 84
For i = 1 To 360 '1440
DTrend(j%, i) = 0
Next i
Next j%
Call PDefineInit
Call PAlarmInit
Call ACollectInit
Call AdapterInit
TNumber = 0
FTAny = False
FTBT = False
FTOne = False
TrendOneIndex = 1
For i = 1 To 4
VoiceFlag(i) = False
Next i
For i = 1 To 8
AdjustErr5(i) = 0
AdjustErr6(i) = 0
Next i
' frmControl.Show
' frmControl.Hide
' frmFDataList.Show
' frmFDataList.Hide
' frmIndicator.Show
' frmIndicator.Hide
' frmLDataList.Show
' frmLDataList.Hide
' frmPDataList.Show
' frmPDataList.Hide
' frmRDataList.Show
' frmRDataList.Hide
' frmTDataList.Show
' frmTDataList.Hide
' frmTrend4ofANY.Show
' frmTrend4ofANY.Hide
' frmTrend4ofBT.Show
' frmTrend4ofBT.Hide
' frmTrendOne.Show
' frmTrendOne.Hide
frmModel.Show
frmModel.Hide

End Sub
Sub Loop2UpOut()
Dim a As Single, e As Integer, c$
c$ = "SET330;CO;"
If Data(76) < 20 Then Exit Sub
If Data(76) < 38 Then
a = 0.75
Call IdcbTx(5, c$, 1, a, e)
Else
If Data(1) < 4.9 Then
a = 0.75
Call IdcbTx(5, c$, 1, a, e)
End If
If Data(1) > 5 Then
a = 0.95
Call IdcbTx(5, c$, 1, a, e)
End If
End If
End Sub
Sub AdapterInit()
'初始化时必须对调节器的PID参数重新设定
Dim a(10) As Single, CC1 As Single, e As Integer, ad As Integer, c$, sx As Single, xx As Single
With frmCPAdapt.AdodcPIDSet
.Recordset.MoveFirst
ad = .Recordset("调节器地址")
a(1) = .Recordset("比例带1")
a(2) = .Recordset("积分时间1")
a(3) = .Recordset("微分时间1")
c$ = "SET300;CO;"
Call IdcbTx(ad, c$, 1, a(1), e)
c$ = "SET301;CO;"
Call IdcbTx(ad, c$, 1, a(2), e)
c$ = "SET302;CO;"
Call IdcbTx(ad, c$, 1, a(3), e)
a(1) = .Recordset("比例带2")
a(2) = .Recordset("积分时间2")
a(3) = .Recordset("微分时间2")
c$ = "SET320;CO;"
Call IdcbTx(ad, c$, 1, a(1), e)
c$ = "SET321;CO;"
Call IdcbTx(ad, c$, 1, a(2), e)
c$ = "SET322;CO;"
Call IdcbTx(ad, c$, 1, a(3), e)
a(4) = .Recordset("采样周期")
c$ = "SET315;CO;"
Call IdcbTx(ad, c$, 1, a(4), e)
c$ = "SET335;CO;"
Call IdcbTx(ad, c$, 1, a(4), e)
xx = .Recordset("量程下限")
sx = .Recordset("量程上限")
a(5) = (.Recordset("给定值") - xx) / (sx - xx)
c$ = "SET500;CO;"
IdcbTx ad, c$, 1, a(5), e
c$ = "SET210;CO;"
Call IdcbTx(ad, c$, 1, a(5), e)
a(1) = 0
a(2) = 1
a(3) = 100
a(4) = -1
a(5) = 100
a(6) = 20
a(7) = 5
a(8) = 1.8
a(9) = -1
c$ = "SET303;CO;"
IdcbTx ad, c$, 9, a(1), e
a(1) = 0
a(2) = 1
a(3) = 100
a(4) = -1
a(5) = 100
a(6) = 20
a(7) = 5
a(8) = 0.9
a(9) = 0
c$ = "SET323;CO;"
IdcbTx ad, c$, 9, a(1), e
.Recordset.MoveLast
ad = .Recordset("调节器地址")
a(1) = .Recordset("比例带1")
a(2) = .Recordset("积分时间1")
a(3) = .Recordset("微分时间1")
c$ = "SET300;CO;"
Call IdcbTx(ad, c$, 1, a(1), e)
c$ = "SET301;CO;"
Call IdcbTx(ad, c$, 1, a(2), e)
c$ = "SET302;CO;"
Call IdcbTx(ad, c$, 1, a(3), e)
a(1) = .Recordset("比例带2")
a(2) = .Recordset("积分时间2")
a(3) = .Recordset("微分时间2")
c$ = "SET320;CO;"
Call IdcbTx(ad, c$, 1, a(1), e)
c$ = "SET321;CO;"
Call IdcbTx(ad, c$, 1, a(2), e)
c$ = "SET322;CO;"
Call IdcbTx(ad, c$, 1, a(3), e)
a(4) = .Recordset("采样周期")
c$ = "SET315;CO;"
Call IdcbTx(ad, c$, 1, a(4), e)
c$ = "SET335;CO;"
Call IdcbTx(ad, c$, 1, a(4), e)
xx = .Recordset("量程下限")
sx = .Recordset("量程上限")
a(5) = (.Recordset("给定值") - xx) / (sx - xx)
c$ = "SET500;CO;"
IdcbTx ad, c$, 1, a(5), e
c$ = "SET210;CO;"
Call IdcbTx(ad, c$, 1, a(5), e)
a(1) = 0
a(2) = 1
a(3) = 100
a(4) = -1
a(5) = 100
a(6) = 20
a(7) = 5
a(8) = 1.8
a(9) = -1
c$ = "SET303;CO;"
IdcbTx ad, c$, 9, a(1), e
a(1) = 0
a(2) = 1
a(3) = 100
a(4) = -1
a(5) = 100
a(6) = 20
a(7) = 5
a(8) = 0.75
a(9) = 0.35
c$ = "SET323;CO;"
IdcbTx ad, c$, 9, a(1), e
End With
End Sub
Sub CollectAndPermite()
Dim k1 As Single, k2 As Single, j%, i As Long, k As Integer
On Error Resume Next

Call AdjustErrPermit
Call CollectData
' frmMain.AdodcPDefine.Recordset.MoveFirst
With PPP
For i = 1 To PNumber
dfn = .ID(i)
'模拟数据
' Data(dfn) = .VSet(i) + (.MLUp(i) - .DLDown(i)) * 0.1 * (0.5 - 1 * Rnd(1))
If .BDBH(i) = True Then Data(dfn) = (.MLUp(i) - .MLDown(i)) * Data(dfn) + .MLDown(i)
Data(dfn) = IIf(Data(dfn) < .MLDown(i), .MLDown(i), Data(dfn))
Data(dfn) = IIf(Data(dfn) > .MLUp(i), .MLUp(i), Data(dfn))
.Data(i) = Data(dfn)
' frmMain.Text1(i - 1) = Format(Data(i), "0.00")
Next i
Data(80) = Data(1)
.Data(80) = Data(1)
End With
Call FluxPermit
'累计量
With frmMain.AdodcFluxTotal
.Recordset("主汽累计量") = .Recordset("主汽累计量") + Data(76) / 20 / 60
.Recordset("给水累计量") = .Recordset("给水累计量") + Data(77) / 20 / 60
.Recordset("减温水累计量") = .Recordset("减温水累计量") + Data(79) / 20 / 60
.Recordset.Update
End With
For i = 1 To PNumber
frmMain.AdodcRealTime.Recordset(i) = Data(i)
Next i
frmMain.AdodcRealTime.Recordset("时间") = TTT
frmMain.AdodcRealTime.Recordset.Update
Call AlarmPermite
Call Loop2UpOut

frmMain.PercentWaterPosition.PortionValue = Data(75)
If RListFlag Then Call frmRDataList.RListAdd
If TListFlag Then Call frmTDataList.TListAdd
If PListFlag Then Call frmPDataList.PListAdd
If LListFlag Then Call frmLDataList.LListAdd
If FListFlag Then Call frmFDataList.FListAdd
If ControlFlag Then Call ControlPermite
If frmMain.TxtBiger.Visible Then
frmMain.TxtBiger.Text = PPP.PName(PBigerIndex + 1) + " " + frmMain.Text1(PBigerIndex).Text
frmMain.TxtBiger.Width = Len(PPP.PName(Index + 1)) * 27 + (Len(frmMain.Text1(Index).Text) + 1) * 16
End If
End Sub
...全文
55 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧