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

📄 module2.bas

📁 一个网带烧结炉的程序,串口通讯,做工业自动化的可以参考
💻 BAS
字号:
Attribute VB_Name = "fuji"
Type userr
    username As String '用户名
    password As String '密码
    dj As Integer '级别,0--操作员级,1--管理员级
    
End Type

Public curuser As userr '现行用户
Public LoginSucceeded As Boolean  '登录状态标志,false--未登录,true--登录
Public mainuser(0 To 9) As userr '管理员组用户
Public ptuser(9) As userr '操作员组用户

Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Function SetTopMostWindow(hwnd As Long, Topmost As Boolean) As Long '设置顶部窗口
If (Topmost) Then
SetTopMostWindow = SetWindowPos(hwnd, -1, 300, 300, 0, 0, 1)
Else
SetTopMostWindow = SetWindowPos(hwnd, -2, 0, 0, 0, 0, 1)
SetTopMostWindow = False
End If

End Function
Public Function sumcheck(bz As String) As String '和效验计算
    
    Sum = 0
    outstr = ""
    For k = 2 To 14
        Sum = Sum + Asc(Mid(bz, k, 1))
    Next k
    outstr = bz + Hex((Sum Mod 256) \ 16) + Hex((Sum Mod 256) Mod 16)
    sumcheck = outstr
End Function
Public Function bpcomm_3507(command As String, dat As Integer) As Integer '变频器通讯命令
'comstr = Format(Hex(Text6 * 5000 / 278), "@@@@")
Dim a As Integer
Dim buffer As String
Dim comd As String
'dat = dat * scal
form1.MSComm1.PortOpen = True

comstr = Format(Hex(dat * scal3507), "@@@@")
    For n = 1 To 3
        If Mid(comstr, n, 1) = " " Then Mid(comstr, n, 1) = "0"
    Next n
    comd = Chr(1) + "10" + Chr(5) + command + Chr(32) + comstr + Chr(3)
    bzz = sumcheck(comd)
    
    

            form1.MSComm1.Output = bzz '发送命令
   
            Do
                
            a = a + 1
            
            Loop Until form1.MSComm1.InBufferCount = 16 Or a = 5000
            buffer = form1.MSComm1.Input
            
     bpcomm_3507 = Val("&H" + Mid(buffer, 10, 4)) / scal3507
     form1.MSComm1.PortOpen = False
  
End Function
Public Function bpcomm_3006(command As String, dat As Integer) As Integer '变频器通讯命令
'comstr = Format(Hex(Text6 * 5000 / 278), "@@@@")
Dim a As Integer
Dim buffer As String
Dim comd As String
'dat = dat * scal
form1.MSComm2.PortOpen = True

comstr = Format(Hex(dat * scal3006), "@@@@")
    For n = 1 To 3
        If Mid(comstr, n, 1) = " " Then Mid(comstr, n, 1) = "0"
    Next n
    comd = Chr(1) + "10" + Chr(5) + command + Chr(32) + comstr + Chr(3)
    bzz = sumcheck(comd)
    
    

            form1.MSComm2.Output = bzz '发送命令
   
            Do
                
            a = a + 1
            
            Loop Until form1.MSComm2.InBufferCount = 16 Or a = 5000
            buffer = form1.MSComm2.Input
            
     bpcomm_3006 = Val("&H" + Mid(buffer, 10, 4)) / scal3006
     form1.MSComm2.PortOpen = False
  
End Function

Public Function read5o_3507() As Integer    '读7050 输出状态
form1.MSComm1.PortOpen = True

form1.MSComm1.Output = "@09" & vbCr
Do
s = s + 1
buff$ = buff$ & form1.MSComm1.Input
Loop Until InStr(buff$, vbCr) Or s = 3000
If Mid$(buff$, 1, 1) = ">" Then
t = Mid$(buff$, 2, 2)
read5o_3507 = Val("&H" & t)
Else
read5o_3507 = -1
End If
form1.MSComm1.PortOpen = False

End Function
Public Function read5i_3507() As Integer   '读7050输入状态
Dim buff As String
form1.MSComm1.PortOpen = True

form1.MSComm1.Output = "@09" & vbCr
Do
s = s + 1

buff = buff & form1.MSComm1.Input
Loop Until InStr(buff, vbCr) Or s = 3000

If Mid$(buff, 1, 1) = ">" Then
t = Mid$(buff, 4, 6)
read5i_3507 = Val("&H" & t)
Else
read5i_3507 = -1
End If
If read5i_3507 = 0 Then
  X = 1
  End If
form1.MSComm1.PortOpen = False

End Function
Public Sub set5o_3507(t As String)  '设置7050输出状态
Dim buff As String
form1.MSComm1.PortOpen = True

form1.MSComm1.Output = "#09" & t & vbCr
Do
s = s + 1
buff = buff & form1.MSComm1.Input
Loop Until InStr(buff, Chr(13)) Or s = 3000
form1.MSComm1.PortOpen = False

End Sub





Public Function read5o_3006() As Integer    '读7050 输出状态
form1.MSComm2.PortOpen = True

form1.MSComm2.Output = "@09" & vbCr
Do
s = s + 1
buff$ = buff$ & form1.MSComm2.Input
Loop Until InStr(buff$, vbCr) Or s = 3000
If Mid$(buff$, 1, 1) = ">" Then
t = Mid$(buff$, 2, 2)
read5o_3006 = Val("&H" & t)
Else
read5o_3006 = -1
End If
form1.MSComm2.PortOpen = False

End Function
Public Function read5i_3006() As Integer   '读7050输入状态
Dim buff As String
form1.MSComm2.PortOpen = True

form1.MSComm2.Output = "@09" & vbCr
Do
s = s + 1

buff = buff & form1.MSComm2.Input
Loop Until InStr(buff, vbCr) Or s = 3000

If Mid$(buff, 1, 1) = ">" Then
t = Mid$(buff, 4, 6)
read5i_3006 = Val("&H" & t)
Else
read5i_3006 = -1
End If
If read5i_3006 = 0 Then
  X = 1
  End If
form1.MSComm2.PortOpen = False

End Function
Public Sub set5o_3006(t As String)  '设置7050输出状态
Dim buff As String
form1.MSComm2.PortOpen = True

form1.MSComm2.Output = "#09" & t & vbCr
Do
s = s + 1
buff = buff & form1.MSComm2.Input
Loop Until InStr(buff, Chr(13)) Or s = 3000
form1.MSComm2.PortOpen = False

End Sub


⌨️ 快捷键说明

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