⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 global.bas

📁 This is a boiler test system,has been use in factory
💻 BAS
字号:
Attribute VB_Name = "Module2"
Global SysTitle As String
Global workfs(1) As String
Global Pasword As String

Global sydwjc As String
Global Wtkfdw As String

Global sysdir As String
Global datadir As String
Global bmpdir As String

Global datetime As String
Global filena3 As String
Global filena1 As String

Global Week1(7) As String
Global BJNam(1) As String


Global StringAI As String
Global StringDI As String

Global colorqx(8), blxuhao(7)
Global frmselec As Integer  'xiaoshi--小时
Global writplc

Global qiantai As Integer
'===================================================gljc 02-03-16 -------------------
Global BlnumZA(2), quxian1, glnum, sysmnln
Global PvtAI(75), kkk(75), bbb(75), beishu(75), K_lb(75)
Global AI_Nam(75), LiangC(1, 75), baojing(1, 75), Chan_Ai(75), DanWei(75)
Global SumLL(9), SSPvt(30, 360) As Single
Global DI_Nam(35), PvtDI(35)

Global BJNum, BJsunx(30), BjXuHao(30) As Integer
Global ztnum, ZTsunx(15) As Integer
Global SsqxNum, SsQxsx(30)
Global Geidingnum As Integer
Global SetupGD(8)

Global glsel, DataJg As Integer
Global Dinumgl, Dinumqt, Ainumgl, Ainumqt  '每台锅炉 di/ai 数
Global Chan_Di(2, 15), CyNum As Integer
Global bengqh(1), bengzt(2) As Integer
Global DATE11, DATE13 As String
Global bianl As String

Public Sub initialze() '系统初始化子程序
On Error Resume Next
 SysTitle = "沈阳军区总医院蒸汽锅炉微机监控系统"
 Wtkfdw = "沈阳大洋电气有限公司 "
 workfs(0) = "手动" '工作方式
 workfs(1) = "自动"
 
 BJNam(0) = "无报警"
 BJNam(1) = "发生报警"
 
 datadir = "c:\datazygl"
 If Dir$(datadir, 16) = "" Then
    MkDir datadir
 End If
 sysdir = App.Path
 bmpdir = sysdir & "\bmp\"
 writplc = 0
 DataJg = 5
 CyNum = 5 '采样点数
 sydwjc = "zy" '使用单位简称"总院"
'---------------曲线颜色初始化
 colorqx(0) = &HFF&     '1红
 colorqx(1) = &HFF0000  '2兰
 colorqx(2) = &HFF00FF  '3粉
 colorqx(3) = &H8000&   '4深绿
 colorqx(4) = &H40C0&   '5综
 colorqx(5) = &HC0C000 '7浅蓝
 colorqx(6) = &H0&      '6黑
 colorqx(7) = &H8080&   '8黄
'---------------
 Week1(1) = "星期日"
 Week1(2) = "星期一"
 Week1(3) = "星期二"
 Week1(4) = "星期三"
 Week1(5) = "星期四"
 Week1(6) = "星期五"
 Week1(7) = "星期六"
'========================== S7-300 PLC 输入==========
Ainumgl = 18 '每台锅炉模拟量数
Ainumqt = 17 '其他模拟量数
BlnumZA(0) = 3 * Ainumgl + Ainumqt - 1
'----------------------------------------------------两台炉相同量模拟量
For i% = 0 To 0
   AI_Nam(0 + i% * Ainumgl) = "蒸汽压力"
   AI_Nam(1 + i% * Ainumgl) = "炉膛负压"
   AI_Nam(2 + i% * Ainumgl) = "炉蒸汽流量"
   AI_Nam(3 + i% * Ainumgl) = "给水流量"
   
   AI_Nam(4 + i% * Ainumgl) = "炉引风转速"
   AI_Nam(5 + i% * Ainumgl) = "炉鼓风转速"
   AI_Nam(6 + i% * Ainumgl) = "炉排转速"
   AI_Nam(7 + i% * Ainumgl) = "炉给水变频"
   AI_Nam(8 + i% * Ainumgl) = "炉汽包水位"
   
   AI_Nam(9 + i% * Ainumgl) = "引风机出口烟压"
   AI_Nam(10 + i% * Ainumgl) = "鼓风机出口风压"
   AI_Nam(11 + i% * Ainumgl) = "炉除尘器出口烟压"
   AI_Nam(12 + i% * Ainumgl) = "炉省煤器出口烟压"
   
   AI_Nam(13 + i% * Ainumgl) = "炉除尘器出口烟温"
   AI_Nam(14 + i% * Ainumgl) = "炉膛温度"
   AI_Nam(15 + i% * Ainumgl) = "炉省煤器出口烟温"
   AI_Nam(16 + i% * Ainumgl) = "炉蒸汽温度"
   
   AI_Nam(17 + i% * Ainumgl) = "省煤器进水压力"
 Next
'-----------------------------------------------------------'其他量模拟量
 AI_Nam(Ainumgl * 3 + 0) = "工业上水总管压力"
 AI_Nam(Ainumgl * 3 + 1) = "蒸气泵入口压力"
 AI_Nam(Ainumgl * 3 + 2) = "蒸气泵出口压力"
 AI_Nam(Ainumgl * 3 + 3) = "软化水装置出口压"
 AI_Nam(Ainumgl * 3 + 4) = "软化水装置入口压"
 AI_Nam(Ainumgl * 3 + 5) = "除氧器出口压力"
 AI_Nam(Ainumgl * 3 + 6) = "软化水流量"
 AI_Nam(Ainumgl * 3 + 7) = "凝结水流量"
 AI_Nam(Ainumgl * 3 + 8) = "软化水箱液位"
 AI_Nam(Ainumgl * 3 + 9) = "除氧器出口温度"
 AI_Nam(Ainumgl * 3 + 10) = "凝结水温度"
'----------------------------------------------
 AI_Nam(Ainumgl * 3 + 11) = "1#鼓风变频功耗"
 AI_Nam(Ainumgl * 3 + 12) = "1#引风变频功耗"
 AI_Nam(Ainumgl * 3 + 13) = "1#炉排变频功耗"
 
 AI_Nam(Ainumgl * 3 + 14) = "2#鼓风变频功耗"
 AI_Nam(Ainumgl * 3 + 15) = "2#引风变频功耗"
 AI_Nam(Ainumgl * 3 + 16) = "2#炉排变频功耗"
'------------------------------------------------------实时曲线
SsqxNum = 26 - 1
For i% = 0 To 2
  SsQxsx(0 + i% * 8) = i% * Ainumgl + 8 '水位
  SsQxsx(1 + i% * 8) = i% * Ainumgl + 0 '蒸汽压
  SsQxsx(2 + i% * 8) = i% * Ainumgl + 1 '负压
  SsQxsx(3 + i% * 8) = i% * Ainumgl + 3
  
  SsQxsx(4 + i% * 8) = i% * Ainumgl + 2
  SsQxsx(5 + i% * 8) = i% * Ainumgl + 14
  SsQxsx(6 + i% * 8) = i% * Ainumgl + 16
  SsQxsx(7 + i% * 8) = i% * Ainumgl + 17
Next
SsQxsx(24) = Ainumgl * 3 + 0
SsQxsx(25) = Ainumgl * 3 + 8
'-----------------------------------------------------实时曲线初始化
For i% = 0 To SsqxNum
  For j% = 0 To 310
    SSPvt(i%, j%) = 9999
  Next
Next
'==============================开关量1,设备及回路状态 2003-05-24-----
  Dinumgl = 10 ' 每台锅炉开关量
  Dinumqt = 2 ' 其他开关量
  BlnumZA(1) = 3 * Dinumgl + Dinumqt - 1
  For i% = 0 To 2
    DI_Nam(0 + i% * Dinumgl) = (1 + i%) & "#炉引风调节"
    DI_Nam(1 + i% * Dinumgl) = (1 + i%) & "#炉鼓风调节"
    DI_Nam(2 + i% * Dinumgl) = (1 + i%) & "#炉炉排调节"
    DI_Nam(3 + i% * Dinumgl) = (1 + i%) & "#炉给水调节"  'siemens S7-300  输入
    
    DI_Nam(4 + i% * Dinumgl) = (1 + i%) & "#炉蒸汽压高"
    DI_Nam(5 + i% * Dinumgl) = (1 + i%) & "#炉蒸汽压超高"
    DI_Nam(6 + i% * Dinumgl) = (1 + i%) & "#炉汽包水位高"
    DI_Nam(7 + i% * Dinumgl) = (1 + i%) & "#炉汽包水位低"
    DI_Nam(8 + i% * Dinumgl) = (1 + i%) & "#炉汽包水位超低"
    DI_Nam(9 + i% * Dinumgl) = (1 + i%) & "#给水压力低"
  Next
  DI_Nam(Dinumgl * 3 + 0) = "软水箱水位高"
  DI_Nam(Dinumgl * 3 + 1) = "软水箱水位低"
'-------------------------------------------------------------设备状态顺序
  ztnum = 3 * 4 - 1 '-----------------------------------------设备状态量合计
  For i% = 0 To 3
    ZTsunx(i%) = i%  '----------------------------------------状态顺序
    ZTsunx(i% + 4) = i% + Dinumgl
    ZTsunx(i% + 2 * 4) = i% + 2 * Dinumgl
  Next
'-------------------------------------------------------------报警顺序
  BJNum = 3 * 6 + 2 - 1 '-------------------------------------报警量合计
  For i% = 0 To 5
    BJsunx(i%) = i% + 4 '-------------------------------------报警顺序
    BJsunx(i% + 6) = i% + 4 + Dinumgl
    BJsunx(i% + 2 * 6) = i% + 4 + 2 * Dinumgl
  Next
  BJsunx(18) = Dinumgl * 3 + 0
  BJsunx(19) = Dinumgl * 3 + 1
'-----------------------------
  BjXuHao(0) = 0 '报警量对应模拟量序号
  BjXuHao(1) = 0
  BjXuHao(2) = 8
  BjXuHao(3) = 8
  BjXuHao(4) = 8
  BjXuHao(5) = 17
  
  BjXuHao(6) = 0 + Ainumgl
  BjXuHao(7) = 0 + Ainumgl
  BjXuHao(8) = 8 + Ainumgl
  BjXuHao(9) = 8 + Ainumgl
  BjXuHao(10) = 8 + Ainumgl
  BjXuHao(11) = 17 + Ainumgl
  
  BjXuHao(12) = 0 + 2 * Ainumgl
  BjXuHao(13) = 0 + 2 * Ainumgl
  BjXuHao(14) = 8 + 2 * Ainumgl
  BjXuHao(15) = 8 + 2 * Ainumgl
  BjXuHao(16) = 8 + 2 * Ainumgl
  BjXuHao(17) = 17 + 2 * Ainumgl
  
  BjXuHao(18) = 44
  BjXuHao(19) = 44
 '------------------模拟量参数
Dim cansu(10)
 finame1$ = sysdir & "\Canshu0.dat"
 If Dir$(finame1$) <> "" Then
  Open finame1$ For Input As #1
    For i% = 0 To BlnumZA(0)
       For j% = 1 To 10
          Input #1, cansu(j%)
       Next
       If cansu(1) > cansu(2) Then
          LiangC(0, i%) = cansu(2)
          LiangC(1, i%) = cansu(1)
       Else
          LiangC(0, i%) = cansu(1)  '--量程下限
          LiangC(1, i%) = cansu(2)  '--量程上限
       End If
       baojing(0, i%) = cansu(3)  '----下限报警
       baojing(1, i%) = cansu(4)  '----上限报警
       DanWei(i%) = cansu(5)
       Chan_Ai(i%) = cansu(9)
       beishu(i%) = 10 ^ Val(cansu(10))
    Next
  Close #1
 End If
'--------------------------------------开关量参数
 finame1$ = sysdir & "\Canshu1.dat"
 If Dir$(finame1$) <> "" Then
  Open finame1$ For Input As #1
    For i% = 0 To BlnumZA(1)
       For j% = 1 To 10
          Input #1, cansu(j%)
       Next
       ii% = Val(cansu(1)) '------2003-06-22 15:00
       jj% = Val(cansu(2))
       Chan_Di(ii%, jj%) = i%
    Next
    Chan_Di(0, 8) = 15 '空端子
  Close #1
 End If
'---------------------------------------比例系数
finame1$ = sysdir + "\kbbc.txt"
If Dir$(finame1$) <> "" Then
  Open finame1$ For Input As #1
    For i% = 0 To BlnumZA(0)
      Input #1, kkk(i%)
      Input #1, bbb(i%)
    Next
 Close #1
End If

'=========================---------------读累计流量
Dim lp2, lp3 As Integer
Dim ddd(92), lsv1
 nia$ = Mid$(Date$, 3, 2)  '-------------生成数据文件名
 yu$ = Mid$(Date$, 6, 2)
 rii$ = "31" 'Mid$(Date$, 9, 2)
 filena3 = datadir + "\" + "y" + nia$ + yu$ + "\"
 filena3 = filena3 + sydwjc + nia$ + yu$ + rii$ + ".dat"         '当天文件名
again:
If Dir$(filena3) <> "" Then
  Open filena3 For Input As #1
  Do While Not EOF(1)
   Input #1, zfc$     '
   ddd(lp3) = zfc$
   lp3 = lp3 + 1
  '-------
   If zfc$ = "*" Then
      lp3 = 0
      For j% = 0 To 9
        SumLL(j%) = Val(ddd(2 + ztnum + j%))
      Next
    End If
  Loop
  Close #1
Else
  Date12$ = DateAdd("d", -1, DateSerial(nia$, yu$, rii$))
  Date12$ = Format$(Date12$, "yyyy/mm/dd")
  nia$ = Mid$(Date12$, 3, 2)  '生成数据文件名
  yu$ = Mid$(Date12$, 6, 2)
  rii$ = Mid$(Date12$, 9, 2)
  filena3 = datadir + "\" + "y" + nia$ + yu$ + "\"
  filena3 = filena3 + sydwjc + nia$ + yu$ + rii$ + ".dat"         '当天文件名
  lsv1 = lsv1 + 1
  If lsv1 < 360 Then '停炉一年则流量累计清零
     GoTo again
  End If
End If
'-------2002-08-02-------------------
Geidingnum = 3 * 3 - 1
finame1$ = sysdir + "\Gdcs.can"  '系统给定参数文件名
Open finame1$ For Input As #1
For i% = 0 To Geidingnum
  Input #1, SetupGD(i%)
Next
Close #1
'--------------------------滤波系数
 For j% = 0 To BlnumZA(0)
     K_lb(j%) = 1
 Next

 StringDI = ""
 For i% = 0 To BlnumZA(1)
     PvtDI(i%) = 0
     StringDI = StringDI & PvtDI(i%)
 Next
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -