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

📄 module1.bas

📁 vb作的化学试剂测试程序
💻 BAS
📖 第 1 页 / 共 3 页
字号:
    Do
        DoEvents
        
        K = Form2.MSComm1.InBufferCount
        
        If K = 17 Then
            ReDim OuTt_IstartA(K)
            OuTt_IstartA = Form2.MSComm1.Input
        End If
        
    Loop Until K = 17
    
    For i = 0 To 7
        Istart(i) = 0
    Next i
    'If OuTt_IstartA(16) = vbKeyReturn Then
        For i = 0 To 7
            Istart(i) = Val(OuTt_IstartA(i * 2)) * 256 + Val(OuTt_IstartA(i * 2 + 1))
        Next i
        Form2.MSComm1.PortOpen = False
    'End If
End Sub
Sub Get_Iend_All()
    Dim K As Integer
    Dim OuTt_IendA() As Byte

    If Form2.MSComm1.PortOpen = False Then Form2.MSComm1.PortOpen = True
    Form2.MSComm1.PortOpen = False
    Form2.MSComm1.PortOpen = True
    
    Open_LEd
    
    Form2.MSComm1.Output = "RM" & vbKeyReturn           '读8通道数据
    Time_Daily (2)
    
    Do
        DoEvents
        
        K = Form2.MSComm1.InBufferCount
        
        If K = 17 Then
            ReDim OuTt_IendA(K)
            OuTt_IendA = Form2.MSComm1.Input
        End If
        
    Loop Until K = 17
    
    For i = 0 To 7
        Iend(i) = 0
    Next i
    'If OuTt_IendA(16) = vbKeyReturn Then
        For i = 0 To 7
            Iend(i) = Val(OuTt_IendA(i * 2)) * 256 + Val(OuTt_IendA(i * 2 + 1))
        Next i
        Form2.MSComm1.PortOpen = False
    'End If
End Sub
Sub GEt_Iend_Single(ch_index As Integer)
    Dim K As Integer
    Dim OuTt_IendS() As Byte
    
    If Form2.MSComm1.PortOpen = False Then Form2.MSComm1.PortOpen = True
    Form2.MSComm1.PortOpen = False
    Form2.MSComm1.PortOpen = True
    
    Open_LEd
 
    Form2.MSComm1.Output = "RS" & Chr$(ch_index) & vbKeyReturn  '读数据
    Time_Daily (2)
    
    Do
        DoEvents
        
        K = Form2.MSComm1.InBufferCount
        If K > 0 Then
            ReDim OuTt_IendS(K)
            OuTt_IendS = Form2.MSComm1.Input
        End If
        
    Loop Until K = 3
    
    Iend(ch_index) = 0
    'If OuTt_IendS(2) = vbKeyReturn Then
        Iend(ch_index) = Val(OuTt_IendS(0)) * 256 + Val(OuTt_IendS(1))
    'End If

    Form2.MSComm1.PortOpen = False
End Sub

Sub Open_LEd()
    Dim oUttt() As Byte

    Form2.MSComm1.Output = "RS" & Chr(99) & vbKeyReturn  '开LED
    
    Do
        DoEvents
        
        K = Form2.MSComm1.InBufferCount
        
        If K > 0 Then
            ReDim oUttt(K)
            oUttt = Form2.MSComm1.Input
        End If
        
        
    Loop Until K > 2
    
End Sub
 Sub frmSplash_Draw(tXt_Index As Integer, chn_Index As Integer)
    Dim X_Num, Y_Num As Integer
    Dim Y_Unit As Single
    Dim XX, YY As Integer
    
        frmSplash.Picture1.Cls
        X = Val(Form2.Combo1(1).Text) * 2
        
        X_Num = 7440 / X
        
        '''''''''''''''''''''''''''''
        frmSplash.Picture1.Line (frmSplash.Line2.X1, frmSplash.Line2.Y1)-(frmSplash.Line2.X1 - 50, frmSplash.Line2.Y1 + 200)
        frmSplash.Picture1.Line (frmSplash.Line2.X1, frmSplash.Line2.Y1)-(frmSplash.Line2.X1 + 50, frmSplash.Line2.Y1 + 200)
        
        frmSplash.Picture1.Line (frmSplash.Line1.X2, frmSplash.Line1.Y2)-(frmSplash.Line1.X2 - 200, frmSplash.Line1.Y2 - 50)
        frmSplash.Picture1.Line (frmSplash.Line1.X2, frmSplash.Line1.Y2)-(frmSplash.Line1.X2 - 200, frmSplash.Line1.Y2 + 50)
        
        For i = 0 To 30
            frmSplash.Label4(i).Visible = False
            frmSplash.Label4(i).BackColor = vbWhite
            
        Next i
        For i = 0 To 20
            frmSplash.Label5(i).Visible = False
            frmSplash.Label5(i).BackColor = vbWhite
            
        Next i
        
        If tXt_Index = 4 Then
            Y_Num = 400
            For i = 1 To 10
                If i Mod 2 = 0 Then
                    frmSplash.Picture1.Line (frmSplash.Line1.X1, frmSplash.Line1.Y1 - Y_Num * i)-(frmSplash.Line1.X1 + 140, frmSplash.Line1.Y1 - Y_Num * i)
                Else
                    frmSplash.Picture1.Line (frmSplash.Line1.X1, frmSplash.Line1.Y1 - Y_Num * i)-(frmSplash.Line1.X1 + 70, frmSplash.Line1.Y1 - Y_Num * i)
                End If
                frmSplash.Label5(i - 1).Caption = Format(i / 10, "0.##")
                frmSplash.Label5(i - 1).Top = frmSplash.Line1.Y1 - Y_Num * i - frmSplash.Label5(i - 1).Height / 2
                frmSplash.Label5(i - 1).Left = frmSplash.Line1.X1 - frmSplash.Label5(i - 1).Width - 10
                frmSplash.Label5(i - 1).Visible = True
            Next i
            For i = 11 To 20
                frmSplash.Label5(i - 1).Visible = False
            Next i
        End If
        
        If tXt_Index = 5 Then
            Y_Num = 200
            For i = 1 To 20
                If i Mod 2 = 0 Then
                    If i Mod 10 = 0 Then
                        frmSplash.Picture1.ForeColor = vbRed
                        frmSplash.Picture1.DrawWidth = 2
                        frmSplash.Picture1.Line (frmSplash.Line1.X1, frmSplash.Line1.Y1 - Y_Num * i)-(frmSplash.Line1.X1 + 210, frmSplash.Line1.Y1 - Y_Num * i)
                        frmSplash.Picture1.ForeColor = vbBlack
                        frmSplash.Picture1.DrawWidth = 1
                    Else
                        frmSplash.Picture1.Line (frmSplash.Line1.X1, frmSplash.Line1.Y1 - Y_Num * i)-(frmSplash.Line1.X1 + 140, frmSplash.Line1.Y1 - Y_Num * i)
                    End If
                Else
                    frmSplash.Picture1.Line (frmSplash.Line1.X1, frmSplash.Line1.Y1 - Y_Num * i)-(frmSplash.Line1.X1 + 70, frmSplash.Line1.Y1 - Y_Num * i)
                End If
                
                frmSplash.Label5(i - 1).Caption = Format(i / 10, "0.##")
                frmSplash.Label5(i - 1).Top = frmSplash.Line1.Y1 - Y_Num * i - frmSplash.Label5(i - 1).Height / 2
                frmSplash.Label5(i - 1).Left = frmSplash.Line1.X1 - frmSplash.Label5(i - 1).Width - 10
                frmSplash.Label5(i - 1).Visible = True
            Next i
        End If
        
        If tXt_Index = 6 Then
            Y_Num = 400
            For i = 1 To 10
                If i Mod 2 = 0 Then
                    frmSplash.Picture1.Line (frmSplash.Line1.X1, frmSplash.Line1.Y1 - Y_Num * i)-(frmSplash.Line1.X1 + 140, frmSplash.Line1.Y1 - Y_Num * i)
                Else
                    frmSplash.Picture1.Line (frmSplash.Line1.X1, frmSplash.Line1.Y1 - Y_Num * i)-(frmSplash.Line1.X1 + 70, frmSplash.Line1.Y1 - Y_Num * i)
                End If
                frmSplash.Label5(i - 1).Caption = i * 10
                frmSplash.Label5(i - 1).Top = frmSplash.Line1.Y1 - Y_Num * i - frmSplash.Label5(i - 1).Height / 2
                frmSplash.Label5(i - 1).Left = frmSplash.Line1.X1 - frmSplash.Label5(i - 1).Width - 10
                frmSplash.Label5(i - 1).Visible = True
            Next i
        End If
        For i = 1 To X
            If i Mod 2 = 0 Then
                frmSplash.Picture1.Line (frmSplash.Line1.X1 + X_Num * i, frmSplash.Line1.Y1)-(frmSplash.Line1.X1 + X_Num * i, frmSplash.Line1.Y1 - 140)
                frmSplash.Label4(i / 2).Left = frmSplash.Line1.X1 + X_Num * i - frmSplash.Label4(i / 2).Width / 2
                frmSplash.Label4(i / 2).Top = frmSplash.Line1.Y1 + 120
                frmSplash.Label4(i / 2).Caption = i / 2
                frmSplash.Label4(i / 2).Visible = True
            Else
                frmSplash.Picture1.Line (frmSplash.Line2.X1 + X_Num * i, frmSplash.Line1.Y1)-(frmSplash.Line2.X1 + X_Num * i, frmSplash.Line1.Y1 - 70)
            End If
            frmSplash.Picture1.Refresh
        Next i
   
    frmSplash.Picture1.DrawWidth = 2
    frmSplash.Picture1.ForeColor = vbRed
    
    frmSplash.Picture1.Scale (-720, 4440)-(8625, -585)
    
    Select Case tXt_Index
        Case 4
            Y_Unit = 4 * 1000
            frmSplash.Label6.Caption = Form2.Label1(1).Caption & "测量曲线"
        Case 5
            Y_Unit = 2 * 1000
            frmSplash.Label6.Caption = Form2.Label1(2).Caption & "测量曲线"
        Case 6
            Y_Unit = 4 * 10
            frmSplash.Label6.Caption = Form2.Label1(3).Caption & "测量曲线"
    End Select
    
    For i = 0 To 30
        If sPlash(tXt_Index - 4, chn_Index, i) <> "-1" Then
            If i = 0 Then
                XX = X_Num * i
                YY = Y_Unit * Val(sPlash(tXt_Index - 4, chn_Index, i))
                frmSplash.Picture1.PSet (XX, YY)
                
            Else
                frmSplash.Picture1.Line (XX, YY)-(X_Num * i, Y_Unit * Val(sPlash(tXt_Index - 4, chn_Index, i)))
                XX = X_Num * i
                YY = Y_Unit * Val(sPlash(tXt_Index - 4, chn_Index, i))
                
            End If
        End If
    Next i
   
    frmSplash.Picture1.DrawWidth = 1
    frmSplash.Picture1.ForeColor = vbBlack
    frmSplash.Picture1.Scale (0, 0)-(9375, 5055)
    frmSplash.Picture1.Refresh
End Sub

Public Function Get_Data(Csy_Adress As String, Data_Len As Integer, bbb() As Byte) As Boolean
    Dim jj As Long
    Dim nSCRp As Long
    
    Dim nSTt As Long
    Dim lIFtimeover As Boolean
    
    nSCRp = Screen.MousePointer
    Screen.MousePointer = 11
    
    Time_Daily (1)
    
    If Form4.MSComm1.PortOpen = False Then Form4.MSComm1.PortOpen = True
    Form4.MSComm1.PortOpen = False
    Form4.MSComm1.PortOpen = True
        
    lIFtimeover = False
    nSTt = GetTickCount
    Do While Not (jj = nOUTlen)
      If Abs(GetTickCount - nSTt) >= nDelayMS Then
        lIFtimeover = True
        MsgBox "在规定 " & nDelayMS & "ms 的时间内,无法与仪器通讯!", 48, "警告"
        Exit Do
      End If
      jj = oObj.InBufferCount
    Loop
    If lIFtimeover Then
      Get_Data = False
    Else
      bbb = oObj.Input
      Get_Data = True
    End If
        
    Screen.MousePointer = nSCRp
    Form4.MSComm1.PortOpen = False
End Function

Sub Get_Csy_Sum()
    Dim K As Integer
    Dim S As String
    Dim DataS() As Byte
    
    If Form4.MSComm1.PortOpen = False Then Form4.MSComm1.PortOpen = True
    Form4.MSComm1.PortOpen = False
    Form4.MSComm1.PortOpen = True
    
    S = Chr$(1) & Chr$(53) & Chr$(0) & Chr$(2)
    Form4.MSComm1.Output = "RE" & S & vbKeyReturn           '读8通道数据
 
    Do
        DoEvents
        
        K = Form4.MSComm1.InBufferCount
        Time_Daily (1)
        If K <> 1 Then
            ReDim DataS(K)
            DataS = Form4.MSComm1.Input
            Exit Do
        End If
        
    Loop Until K >= 2
    
    CSy_Sum = Val(DataS(i * 2)) * 256 + Val(DataS(i * 2 + 1))
    
    Form4.MSComm1.PortOpen = False
End Sub



























⌨️ 快捷键说明

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