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

📄 mainfrm.frm

📁 This is a boiler test system,has been use in factory
💻 FRM
📖 第 1 页 / 共 5 页
字号:
 Next
 For i% = 0 To 2
    Imapumpz(i%).Picture = LoadPicture(bmpdir & "pumpz" & i% & ".bmp")
    Imapumpy(i%).Picture = LoadPicture(bmpdir & "pumpy" & i% & ".bmp")
 Next
'------------------------------
 For i% = 1 To 4
   Load Imgspzqg(i%)
   Load Imgczzqg(i%)
   Load Imgspjsg(i%)
   Load Imgczjsg(i%)
 Next
 For i% = 0 To 4 '
   Imgspzqg(i%) = LoadPicture(bmpdir & "Spzqg" & i% & ".bmp")
   Imgczzqg(i%) = LoadPicture(bmpdir & "Czzqg" & i% & ".bmp")
   Imgspjsg(i%) = LoadPicture(bmpdir & "SPJSG" & i% & ".bmp")
   Imgczjsg(i%) = LoadPicture(bmpdir & "CZJSG" & i% & ".bmp")
 Next
 Me.Caption = SysTitle & " 2005.6.10" & "                                          " & Wtkfdw & " Tel 23745018"
 ReadS7_300
 Command1_Click (0)
 
 tcpserver.LocalPort = 1001 '收听端口
 tcpserver.Listen
 qiantai = 1
 For i% = 0 To 5
    o$ = "@" & Format(i%, "00") & "D1:"
    OutComm(i%) = o$ + fcs(o$) + Chr(13)
 Next
End Sub
Private Sub Form_Unload(Cancel As Integer)
res = unload_tool()
End
End Sub

Private Sub geiding_Click()
FormSetup.Show
End Sub


Private Sub hlstatu_Click()
 qiantai = 0
 FormZtLs.Show
End Sub

Private Sub imageBJ_Click()
FormBjSs.Show
End Sub

Private Sub mdfpas_Click()
'On Error Resume Next
Dim rel
Dim paswrd1, paswrd, nowword As String

rel = MsgBox("真要改变系统口令?", 36, SysTitle)
If rel = 7 Then Exit Sub '虎口水厂反冲洗微机监控系统
'-----------------------------------------------
finame1$ = sysdir + "\set_pas.txt"
If Dir$(finame1$) <> "" Then
 Open finame1$ For Input As #1
   Input #1, paswrd1
 Close #1
Else
  paswrd1 = "Weicj"
End If
'===============================
paswrd = Trim$(paswrd1) '2000-4-29
Do While nowword <> paswrd
   nowword = InputBox("请输入原口令", SysTitle, "")

   If "" = nowword Then
      Exit Sub
   Else
      If nowword = paswrd Or nowword = "Weicj" Then
         Exit Do
      Else
         If 2 = MsgBox("口令错误,重新输入口令吗?", 33, SysTitle) Then
            Exit Sub
         End If
      End If
   End If
Loop
'------------
again:
   nowword1 = InputBox("请输入新口令:", SysTitle, "")
   If "" = nowword1 Then
      Exit Sub
   End If
   nowword2 = InputBox("请再一次输入新口令:", SysTitle, "")
   If "" = nowword2 Then
      Exit Sub
   End If
   
 If nowword1 = nowword2 Then
   Open sysdir + "\set_pas.txt" For Output As #1
   Print #1, nowword1
   Close #1
   Exit Sub
End If
rel = MsgBox("两次输入的口令不一致,是否重新输入? ", 36, SysTitle)

If rel = 7 Then Exit Sub
GoTo again
End Sub

Private Sub MSComm1_OnComm()
 Inzfc = Inzfc & MSComm1.Input
 If InStr(Inzfc, Chr(13)) Then
'--------------------------------
    statustx = 1 '通讯正常标志
    If InStr(Inzfc, "D1") Then
       len1% = InStr(Inzfc, "D1")
       num1% = Val(Mid$(Inzfc, len1% - 2, 2))
       PvtAI(Ainumgl * 3 + 11 + num1%) = Mid$(Inzfc, len1% + 3, 6)
    End If
'--------------------------------
    Inzfc = ""
 End If
End Sub



Private Sub PLCMNL_Click()
'On Error Resume Next
If PLCMNL.Caption <> "关闭" Then
  PLCMNL.Caption = "关闭"
  MSFlexGrid1.Visible = True
  ViewmnlS7 = 1

  MSFlexGrid1.Clear
  MSFlexGrid1.Width = 3600
  MSFlexGrid1.Height = 10000
  MSFlexGrid1.Rows = BlnumZA(0) + 2 + 2
  MSFlexGrid1.TextMatrix(0, 0) = "Analog"
  MSFlexGrid1.TextMatrix(0, 1) = "Byte"
  MSFlexGrid1.TextMatrix(0, 2) = "Word"
  For i% = 0 To BlnumZA(0)
    MSFlexGrid1.TextMatrix(i% + 1, 0) = AI_Nam(i%)
    MSFlexGrid1.TextMatrix(i% + 1, 1) = Chan_Ai(i%)
  Next
  MSFlexGrid1.TextMatrix(i% + 1, 0) = "1#开关量"
  MSFlexGrid1.TextMatrix(i% + 2, 0) = "2#开关量"
  
  MSFlexGrid1.ColAlignment(0) = 1
  MSFlexGrid1.ColAlignment(1) = 3
  MSFlexGrid1.ColAlignment(2) = 3
Else
  PLCMNL.Caption = "S7300原始输入"
  MSFlexGrid1.Visible = False
  ViewmnlS7 = 0
End If
End Sub
Private Sub setsens_Click(Index As Integer)
 frmselec = Index
 passwrd.Show
End Sub

Private Sub shei0_Click()
If shei0.Caption = "显示0水位线" Then
  Line1(76).Visible = True
  shei0.Caption = "关显示0水位线"
Else
  shei0.Caption = "显示0水位线"
  Line1(76).Visible = False
End If
End Sub

Private Sub sszt_Click()
FormZtSs.Show
End Sub

Private Sub StatusBar1_PanelClick(ByVal Panel As ComctlLib.Panel)
If InStr(Panel, "#") Then
  FormZtSs.Show
Else
  daterq_Click
End If
End Sub

Private Sub tcpServer_Close()
  If tcpserver.State <> sckClosed Then tcpserver.Close
  tcpserver.Listen '侦听模式
End Sub
Private Sub tcpServer_ConnectionRequest(ByVal requestID As Long)
'在接受新的连接之前先关闭此连接。
  If tcpserver.State <> sckClosed Then tcpserver.Close
  tcpserver.Accept requestID '接受具有 requestID 参数的连接。
End Sub
Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)
'On Error Resume Next
Dim strData As String '为进入的数据声明一个变量。
tcpserver.GetData strData
If InStr(strData, "@RDSSSJ") Then
  strData = "@RDSSSJ" & StringDI & "AI" & StringAI & "END"
  tcpserver.SendData strData
  Exit Sub
End If
If InStr(strData, "@RDSSQX") Then
  StringSSQX = ""
  For i% = 0 To SsqxNum
  For j% = 0 To 300
    StringSSQX = StringSSQX & SSPvt(i%, j%) & ","
  Next
  Next
  strData = "@RDSSQX" & StringSSQX & "END"
  tcpserver.SendData strData
  Exit Sub
End If
'=============================================
len1% = InStr(strData, "@READLSDATA")
len2% = InStr(strData, "END")
If len1% <> 0 Then
    filenow$ = Mid$(strData, len1% + 11, len2% - len1% - 11)
    If Dir$(filenow$) <> "" Then
       Open filenow$ For Binary As #11
       ll& = LOF(11)
       recoda$ = Space(ll&)
       Get #11, , recoda$ '获得文件内容
       Close #11
       tcpserver.SendData recoda$ & "END"
     Else
       tcpserver.SendData "NULLEND"
     End If
End If
End Sub


Private Sub Timer2_Timer()
  If tcpserver.State <> sckClosed Then tcpserver.Close
  tcpserver.Listen
  Timer2.Enabled = False
End Sub



Private Sub TimerDI_Timer()
''On Error Resume Next
If qiantai = 0 Then Exit Sub
'----------------------------------------------------
 cunt3 = cunt3 + 1
 If cunt3 > 2 Then cunt3 = 0
 cunt5 = cunt5 + 1
 If cunt5 > 4 Then cunt5 = 0
'======引风机,及排烟=============
 If PvtAI(4 + glnum * Ainumgl) > 5 Then yanq% = 1
 If Run_Flag(10) <> yanq% Then
    Run_Flag(10) = yanq%
    If Run_Flag(10) = 0 Then
      ImageYF.Picture = LoadPicture("")
      Imagyan.Picture = LoadPicture("")
    End If
 End If
 If Run_Flag(10) = 1 Then
   ImageYF.Picture = Imapumpy(cunt3).Picture
   Imagyan.Picture = ImgYan(cunt3).Picture
 End If
'======鼓风机=============
 If PvtAI(5 + glnum * Ainumgl) > 5 Then Flaggf% = 1
 If Run_Flag(11) <> Flaggf% Then
    Run_Flag(11) = Flaggf%
    If Run_Flag(11) = 0 Then
      ImageGF.Picture = LoadPicture("")
    End If
 End If
 If Run_Flag(11) = 1 Then
   ImageGF.Picture = Imapumpz(cunt3).Picture
 End If
'======动态水流量显示=============
 If PvtAI(3 + glnum * Ainumgl) > 0.5 Then sui% = 1
 If Run_Flag(12) <> sui% Then
    Run_Flag(12) = sui%
    If Run_Flag(12) = 0 Then
       Image5.Picture = LoadPicture("")
       Image6.Picture = LoadPicture("")
    End If
 End If
 If Run_Flag(12) = 1 Then
    Image5.Picture = Imgspjsg(cunt5).Picture
    Image6.Picture = Imgczjsg(cunt5).Picture
 End If
'======动态蒸汽流量显示=============
 If PvtAI(2 + glnum * Ainumgl) > 0.5 Then zq% = 1
 If Run_Flag(13) <> zq% Then
    Run_Flag(13) = zq%
    If Run_Flag(13) = 0 Then
      Image3.Picture = LoadPicture("")
      Image4.Picture = LoadPicture("")
    End If
 End If
 
 If Run_Flag(13) = 1 Then
   Image3.Picture = Imgspzqg(cunt5).Picture
   Image4.Picture = Imgczzqg(cunt5).Picture
 End If
End Sub

Private Sub ReadS7_300()
If writplc = 1 Then Exit Sub
On Error Resume Next
'BLOCKNO = IDBLOCKNO.Text
BLOCKNO = 2 '---------------读取数据块 DB2
no = 0 '--------------------起始字节
AMOUNT = 98 '---------------读取的字节数
StringAI = ""
'If (res = 0) Then
  'res = d_field_read(BLOCKNO, no, AMOUNT, value_byte(0)) '2003-5-24
'----------------'plc 模拟量
For i% = 0 To BlnumZA(0) - 6
   ii% = Chan_Ai(i%)
  ' pvtemp = 256 * Val(value_byte(ii%)) + Val(value_byte(ii% + 1))
   pvtemp = Int(27648 * Rnd)
   If ViewmnlS7 = 1 Then 's7300模拟量察看
       aa$ = Right$("0000" & Hex(pvtemp), 4)
       MSFlexGrid1.TextMatrix(i% + 1, 2) = aa$ '"&H" & aa$
   End If
   val1 = kkk(i%) * pvtemp + bbb(i%)
   If K_lb(i%) < 1 Then '滤波
      val1 = K_lb(i%) * val1 + (1 - K_lb(i%)) * PvtAI(i%) '一阶惯性滤波
   End If
   PvtAI(i%) = (Int(beishu(i%) * val1 + 0.5)) / beishu(i%)  '取整
   If PvtAI(i%) < LiangC(0, i%) Then PvtAI(i%) = LiangC(0, i%) '限幅
   If PvtAI(i%) > LiangC(1, i%) Then PvtAI(i%) = LiangC(1, i%)
   StringAI = StringAI & PvtAI(i%) & ","
Next
'==============================================================='plc 开关量================
' temp1 = 256 * Val(value_byte(97)) + Val(value_byte(96)) '-------1#炉开关量
 fl% = 1
 If flag_kg1 <> temp1 Then
    flag_kg1 = temp1
    Call r_bit(temp1)
    For i% = 0 To 12 '-------------------------------------------1#炉(第一个字)12个开关量
      PvtDI(Chan_Di(0, i%)) = ir000(i%)
    Next
    For i% = 0 To 3
      PvtDI(i%) = 1 - PvtDI(i%) '-------------------------------回路状态反相
    Next
    fl% = 1
 End If
 
 'temp2 = 256 * Val(value_byte(99)) + Val(value_byte(98))  '-----2#炉开关量
 If flag_kg2 <> temp2 Then
    flag_kg2 = temp2
    Call r_bit(temp2)
    For i% = 0 To 9 '------------------------------------------- 2#炉(第二个字)10个开关量
      PvtDI(Chan_Di(1, i%)) = ir000(i%)
    Next
    fl% = 1
    For i% = Dinumgl To 3 + Dinumgl
      PvtDI(i%) = 1 - PvtDI(i%)
    Next
 End If
 
' temp2 = 256 * Val(value_byte(99)) + Val(value_byte(98))  '-----2#炉开关量
 If flag_kg3 <> temp2 Then
    flag_kg3 = temp2
    Call r_bit(temp2)
    For i% = 0 To 9 '------------------------------------------- 3#炉(第三个字)10个开关量
      PvtDI(Chan_Di(2, i%)) = ir000(i%)
    Next
    fl% = 1
    For i% = 2 * Dinumgl To 3 + 2 * Dinumgl
      PvtDI(i%) = 1 - PvtDI(i%)
    Next
 End If
 
 If fl% = 1 Then
    StringDI = ""
    For i% = 0 To BlnumZA(1)
        StringDI = StringDI & PvtDI(i%)
    Next
 End If
 
 If ViewmnlS7 = 1 Then '--------------------s7300模拟量察看
    aa$ = Right$("0000" & Hex(temp1), 4)
    MSFlexGrid1.TextMatrix(BlnumZA(0) + 2, 2) = aa$
    aa$ = Right$("0000" & Hex(temp2), 4)
    MSFlexGrid1.TextMatrix(BlnumZA(0) + 3, 2) = aa$
 End If
'------------------------------报警检测
 Bj_Flag = 0
 For i% = 8 To 21
   If PvtDI(i%) = 1 Then
      Bj_Flag = 1
      Exit For
   End If
 Next
'--------------------------------------------
If (res <> 0) Then
 '  ERROR_FRM.Show 1, Me
  ' Timer1.Enabled = False
End If
End Sub
Private Sub r_bit(canshu)
Dim bit1, aaa As Long
'zfccs = "&H" & a$ '-----------输入字符串转换成十六进制数
'canshu = zfccs '--------------十六进制数转换成十进制数
bit1 = 1
For i% = 0 To 15
   aaa = bit1 And canshu
   bit1 = bit1 * 2
   ir000(i%) = 0
   If aaa Then ir000(i%) = 1
Next
End Sub

⌨️ 快捷键说明

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