第一次接触工业控制的软件,公司有些原代码,不知道什么意思,以前写数据库的.大家帮我看看下面的代码,主要是做对讲机的,下面是测试软件的些代码,主要是通过com串口检测Eeprom的数据.Option ExplicitDim PreData1 As Byte
Dim PreData2 As Byte
Dim PreData3 As Byte
Dim PreData4 As Byte
Dim PreData5 As Byte
Dim PreData6 As Byte
Dim PreData7 As Byte
Dim PreData8 As Byte
Dim PreData9 As Byte
Dim PreData10 As Byte
Dim PreData11 As Byte
Dim PreData12 As Byte
Dim PreData13 As Byte
Dim PreData14 As Byte
Dim PreData15 As Byte
Dim PreData16 As Byte
Dim PreData17 As Byte
Dim PreData18 As Byte
Dim PreData19 As Byte
Dim PreData20 As Byte
 Public Enum eComm_NO
  CommPort1 = 1
  CommPort2 = 2
End Enum
 
Dim JigControl As clsRS232COM
'Class initialize
Private Sub Class_Initialize()
    'Clear error first
    Err.Clear
    
    'Clear it first
    Set JigControl = New clsRS232COM
End Sub'Clase Terminal
Private Sub Class_Terminate()
    On Error Resume Next
    
    'Clear error first
    Err.Clear
End Sub'**************************************************************
'**
'**  Note: The ATE MCU receive 20-bytes data, 1st use as judge
'**        the object of data send to(the Path of Jig or the
'**        IIC Bus).
'**
'**************************************************************Public Sub InitJig()
  JigControl.Set_Comm_Port_Status = OpenPort
  JigControl.Set_Buff_Out_Data_No = 20
  JigControl.Set_Comm_Out_Data 1, &HA0
  JigControl.Set_Comm_Out_Data 2, &H0
  JigControl.Set_Comm_Out_Data 3, &H0
  JigControl.Set_Comm_Out_Data 4, &H0
  JigControl.Set_Comm_Out_Data 5, &H0
  JigControl.Set_Comm_Out_Data 6, &H0
  JigControl.Set_Comm_Out_Data 7, &H0
  JigControl.Set_Comm_Out_Data 8, &H0
  JigControl.Set_Comm_Out_Data 9, &H0
  JigControl.Set_Comm_Out_Data 10, &H0
  JigControl.Set_Comm_Out_Data 11, &H0
  JigControl.Set_Comm_Out_Data 12, &H0
  JigControl.Set_Comm_Out_Data 13, &H0
  JigControl.Set_Comm_Out_Data 14, &H0
  JigControl.Set_Comm_Out_Data 15, &H0
  JigControl.Set_Comm_Out_Data 16, &H0
  JigControl.Set_Comm_Out_Data 17, &H0
  JigControl.Set_Comm_Out_Data 18, &H0
  JigControl.Set_Comm_Out_Data 19, &H0
  JigControl.Set_Comm_Out_Data 20, &H0
   
  JigControl.Set_Send_Data
  Call Sleep(50)
  JigControl.Set_Comm_Port_Status = ClosePort
  
  PreData1 = &HA0
  PreData2 = &H0
  PreData3 = &H0
  PreData4 = &H0
  PreData5 = &H0
  PreData6 = &H0
  PreData7 = &H0
  PreData8 = &H0
  PreData9 = &H0
  PreData10 = &H0
  PreData11 = &H0
  PreData12 = &H0
  PreData13 = &H0
  PreData14 = &H0
  PreData15 = &H0
  PreData16 = &H0
  PreData17 = &H0
  PreData18 = &H0
  PreData19 = &H0
  PreData20 = &H0
  
End Sub ' 2nd byte is used by Max506
Public Sub SendMax506Data(ByVal bMax506Data As Byte)
  JigControl.Set_Comm_Port_Status = OpenPort
  JigControl.Set_Buff_Out_Data_No = 20
  JigControl.Set_Comm_Out_Data 1, &HA0
  JigControl.Set_Comm_Out_Data 2, bMax506Data
  JigControl.Set_Comm_Out_Data 3, PreData3
  JigControl.Set_Comm_Out_Data 4, PreData4
  JigControl.Set_Comm_Out_Data 5, PreData5
  JigControl.Set_Comm_Out_Data 6, PreData6
  JigControl.Set_Send_Data
  Call Sleep(50)
  JigControl.Set_Comm_Port_Status = ClosePort
  
  PreData2 = bMax506Data
End Sub ' 3rd byte is used by extral HC595
Public Sub Send595Data(ByVal b595Data As Byte)
  JigControl.Set_Comm_Port_Status = OpenPort
  JigControl.Set_Buff_Out_Data_No = 20
  JigControl.Set_Comm_Out_Data 1, &HA0
  JigControl.Set_Comm_Out_Data 2, PreData2
  JigControl.Set_Comm_Out_Data 3, b595Data
  JigControl.Set_Comm_Out_Data 4, PreData4
  JigControl.Set_Comm_Out_Data 5, PreData5
  JigControl.Set_Comm_Out_Data 6, PreData6
  JigControl.Set_Send_Data
  Call Sleep(50)
  JigControl.Set_Comm_Port_Status = ClosePort
  
  PreData3 = b595Data
End Sub ' 4th byte is used to control Relay
Public Sub SendRelayData(ByVal bRelayData As Byte)
  JigControl.Set_Comm_Port_Status = OpenPort
  JigControl.Set_Buff_Out_Data_No = 20
  JigControl.Set_Comm_Out_Data 1, &HA0
  JigControl.Set_Comm_Out_Data 2, PreData2
  JigControl.Set_Comm_Out_Data 3, PreData3
  JigControl.Set_Comm_Out_Data 4, bRelayData
  JigControl.Set_Comm_Out_Data 5, PreData5
  JigControl.Set_Comm_Out_Data 6, PreData6
  JigControl.Set_Send_Data
  Call Sleep(50)
  JigControl.Set_Comm_Port_Status = ClosePort
  
  PreData4 = bRelayData
End Sub
 ' 5-6th bytes is used to control Pragramable voltage
Public Sub SendMax543Data(ByVal bMax543Data1 As Byte, ByVal bMax543Data2 As Byte)
  JigControl.Set_Comm_Port_Status = OpenPort
  JigControl.Set_Buff_Out_Data_No = 20
  JigControl.Set_Comm_Out_Data 1, &HA0
  JigControl.Set_Comm_Out_Data 2, PreData2
  JigControl.Set_Comm_Out_Data 3, PreData3
  JigControl.Set_Comm_Out_Data 4, PreData4
  JigControl.Set_Comm_Out_Data 5, bMax543Data1
  JigControl.Set_Comm_Out_Data 6, bMax543Data2     ' The 4-high bit is useless
  JigControl.Set_Send_Data
  Call Sleep(50)
  JigControl.Set_Comm_Port_Status = ClosePort
  
  PreData5 = bMax543Data1
  PreData6 = bMax543Data2
End Sub ' Read Port1 Status
Public Function JudgeDUTOnJig() As Byte
  JigControl.Set_Comm_Port_Status = OpenPort
  JigControl.Set_Buff_Out_Data_No = 20
  JigControl.Set_Comm_Out_Data 1, &HA1
  JigControl.Set_Comm_Out_Data 2, &H0
  JigControl.Set_Comm_Out_Data 3, &H0
  JigControl.Set_Comm_Out_Data 4, &H0
  JigControl.Set_Comm_Out_Data 5, &H0
  JigControl.Set_Comm_Out_Data 6, &H0
  JigControl.Set_Send_Data
  Call Sleep(50)
  JudgeDUTOnJig = JigControl.Get_Comm_In_Data(1, 1)
  JigControl.Set_Comm_Port_Status = ClosePort
End Function ' Set Communication Ports
Public Property Let SetCommPortNo(ByVal bCommNo As eComm_NO)
  Select Case bCommNo
    Case CommPort1
      JigControl.Set_Comm_Port_Setting ComPort1, e9600_Hz, e8_Bit, e1_Bit
    Case CommPort2
      JigControl.Set_Comm_Port_Setting ComPort2, e9600_Hz, e8_Bit, e1_Bit
  End Select
End Property

解决方案 »

  1.   


    ' **********************************************************************************
    ' **                                                                              **
    ' **           The below is used to control MCU1 to communication with DUT        **
    ' **                                                                              **
    ' **    WriteEeprom            :  Write data to eeprom max 2-bytes                **
    ' **    ReadEeprom             :  Read data from eeprom max 2_bytes               **
    ' **    SendCommandWithData    :  Send control command with data to DUT           **
    ' **    SendCommandWithNoData  :  Send control command with no data to DUT        **
    ' **    SendCommandReceiveData :  Send command to receive data                    **
    ' **    WritePageEepromData    :  Write a page data to Eeprom                     **
    ' **    ReadPageEepromData     :  Read a page data from Eeprom                    **
    ' **    PowerEeprom            :  Power Dut for Eeprom Test                       **
    ' **    EepromInit             :  Power Test Jig for Eeprom Test                  **
    ' **                                                                              **
    ' **********************************************************************************Public Sub WriteEeprom(ByVal DataLength As Byte, ByVal DeviceAddr As Byte, ByVal SubAddr As Byte, DataArray() As Byte)
     ' ReDim DataArray(1 To 16) As Byte
      JigControl.Set_Comm_Port_Status = OpenPort
      JigControl.Set_Buff_Out_Data_No = 20
      JigControl.Set_Comm_Out_Data 1, &HB0
      JigControl.Set_Comm_Out_Data 2, DataLength
      JigControl.Set_Comm_Out_Data 3, DeviceAddr
      JigControl.Set_Comm_Out_Data 4, SubAddr
      JigControl.Set_Comm_Out_Data 5, DataArray(1)
      JigControl.Set_Comm_Out_Data 6, DataArray(2)
      JigControl.Set_Comm_Out_Data 7, DataArray(3)
      JigControl.Set_Comm_Out_Data 8, DataArray(4)
      JigControl.Set_Comm_Out_Data 9, DataArray(5)
      JigControl.Set_Comm_Out_Data 10, DataArray(6)
      JigControl.Set_Comm_Out_Data 11, DataArray(7)
      JigControl.Set_Comm_Out_Data 12, DataArray(8)
      JigControl.Set_Comm_Out_Data 13, DataArray(9)
      JigControl.Set_Comm_Out_Data 14, DataArray(10)
      JigControl.Set_Comm_Out_Data 15, DataArray(11)
      JigControl.Set_Comm_Out_Data 16, DataArray(12)
      JigControl.Set_Comm_Out_Data 17, DataArray(13)
      JigControl.Set_Comm_Out_Data 18, DataArray(14)
      JigControl.Set_Comm_Out_Data 19, DataArray(15)
      JigControl.Set_Comm_Out_Data 20, DataArray(16)
      JigControl.Set_Send_Data
      Call Sleep(50)
      JigControl.Set_Comm_Port_Status = ClosePort
    End Sub
     Public Sub SendCommandWithData(ByVal Command As Byte, SendData As Byte)
      JigControl.Set_Comm_Port_Status = OpenPort
      JigControl.Set_Buff_Out_Data_No = 20
      JigControl.Set_Comm_Out_Data 1, &HB2
      JigControl.Set_Comm_Out_Data 2, Command
      JigControl.Set_Comm_Out_Data 3, SendData
      JigControl.Set_Comm_Out_Data 4, Command
      JigControl.Set_Comm_Out_Data 5, &H0
      JigControl.Set_Comm_Out_Data 6, &H0
      JigControl.Set_Send_Data
      Call Sleep(200)
      JigControl.Set_Comm_Port_Status = ClosePort
    End SubPublic Function SendCommandReceiveData(ByVal Command As Byte) As Byte
      JigControl.Set_Comm_Port_Status = OpenPort
      JigControl.Set_Buff_Out_Data_No = 20
      JigControl.Set_Comm_Out_Data 1, &HB4
      JigControl.Set_Comm_Out_Data 2, Command
      JigControl.Set_Comm_Out_Data 3, &H0
      JigControl.Set_Comm_Out_Data 4, &H0
      JigControl.Set_Comm_Out_Data 5, &H0
      JigControl.Set_Comm_Out_Data 6, &H0
      JigControl.Set_Send_Data
      Call Sleep(200)
      SendCommandReceiveData = JigControl.Get_Comm_In_Data(1, 1)
      JigControl.Set_Comm_Port_Status = ClosePort
    End Function Public Function ReadPageEepromData(ByVal DataNo As Byte, DeviceAddr As Byte, ByVal SubAddr As Byte) As String
      Dim ReadData As String
      Dim DataNumber As Byte
      
      JigControl.Set_Comm_Port_Status = OpenPort
      JigControl.Set_Buff_Out_Data_No = 20
      JigControl.Set_Comm_Out_Data 1, &HB1
      JigControl.Set_Comm_Out_Data 2, DataNo
      JigControl.Set_Comm_Out_Data 3, DeviceAddr
      JigControl.Set_Comm_Out_Data 4, SubAddr
      
      JigControl.Set_Comm_Out_Data 5, &H0
      JigControl.Set_Comm_Out_Data 6, &H0
      JigControl.Set_Comm_Out_Data 7, &H0
      JigControl.Set_Comm_Out_Data 8, &H0
      JigControl.Set_Comm_Out_Data 9, &H0
      JigControl.Set_Comm_Out_Data 10, &H0
      JigControl.Set_Comm_Out_Data 11, &H0
      JigControl.Set_Comm_Out_Data 12, &H0
      JigControl.Set_Comm_Out_Data 13, &H0
      JigControl.Set_Comm_Out_Data 14, &H0
      JigControl.Set_Comm_Out_Data 15, &H0
      JigControl.Set_Comm_Out_Data 16, &H0
      JigControl.Set_Comm_Out_Data 17, &H0
      JigControl.Set_Comm_Out_Data 18, &H0
      JigControl.Set_Comm_Out_Data 19, &H0
      JigControl.Set_Comm_Out_Data 20, &H0
        
      JigControl.Set_Send_Data
      Call Sleep(50)
        
      ReadData = Right("0" & Hex(JigControl.Get_Comm_In_Data(16, 1)), 2)
      For DataNumber = 2 To 15
        ReadData = ReadData & Space(1) & Right("0" & Hex(JigControl.Get_Comm_In_Data(16, DataNumber)), 2)
      Next
      ReadPageEepromData = Trim(ReadData & Space(1) & Right("0" & Hex(JigControl.Get_Comm_In_Data(16, 16)), 2))
      JigControl.Set_Comm_Port_Status = ClosePort
    End FunctionPublic Function ReadPageEepromData1(ByVal DataNo As Byte, DeviceAddr As Byte, ByVal SubAddr As Byte) As String
      Dim ReadData As String
      Dim DataNumber As Byte
      
      JigControl.Set_Comm_Port_Status = OpenPort
      JigControl.Set_Buff_Out_Data_No = 20
      JigControl.Set_Comm_Out_Data 1, &HB1
      JigControl.Set_Comm_Out_Data 2, DataNo
      JigControl.Set_Comm_Out_Data 3, DeviceAddr
      JigControl.Set_Comm_Out_Data 4, SubAddr
      
      JigControl.Set_Comm_Out_Data 5, &H0
      JigControl.Set_Comm_Out_Data 6, &H0
      JigControl.Set_Comm_Out_Data 7, &H0
      JigControl.Set_Comm_Out_Data 8, &H0
      JigControl.Set_Comm_Out_Data 9, &H0
      JigControl.Set_Comm_Out_Data 10, &H0
      JigControl.Set_Comm_Out_Data 11, &H0
      JigControl.Set_Comm_Out_Data 12, &H0
      JigControl.Set_Comm_Out_Data 13, &H0
      JigControl.Set_Comm_Out_Data 14, &H0
      JigControl.Set_Comm_Out_Data 15, &H0
      JigControl.Set_Comm_Out_Data 16, &H0
      JigControl.Set_Comm_Out_Data 17, &H0
      JigControl.Set_Comm_Out_Data 18, &H0
      JigControl.Set_Comm_Out_Data 19, &H0
      JigControl.Set_Comm_Out_Data 20, &H0
        
      JigControl.Set_Send_Data
      Call Sleep(50)
        
      ReadData = Right("0" & Hex(JigControl.Get_Comm_In_Data(16, 1)), 2)
      For DataNumber = 2 To DataNo - 1
        ReadData = ReadData & Right("0" & Hex(JigControl.Get_Comm_In_Data(16, DataNumber)), 2)
      Next
      ReadPageEepromData1 = Trim(ReadData & Right("0" & Hex(JigControl.Get_Comm_In_Data(16, DataNo)), 2))
      JigControl.Set_Comm_Port_Status = ClosePort
    End FunctionPublic Sub PowerEeprom(ByVal RelayData As Byte, ByVal PowerData1 As Byte, ByVal PowerData2 As Byte)
      JigControl.Set_Comm_Port_Status = OpenPort
      JigControl.Set_Buff_Out_Data_No = 20
      JigControl.Set_Comm_Out_Data 1, &HA0
      JigControl.Set_Comm_Out_Data 2, &H0
      JigControl.Set_Comm_Out_Data 3, &H0
      JigControl.Set_Comm_Out_Data 4, RelayData
      
      JigControl.Set_Comm_Out_Data 5, PowerData1
      JigControl.Set_Comm_Out_Data 6, PowerData2
      JigControl.Set_Comm_Out_Data 7, &H0
      JigControl.Set_Comm_Out_Data 8, &H0
      JigControl.Set_Comm_Out_Data 9, &H0
      JigControl.Set_Comm_Out_Data 10, &H0
      JigControl.Set_Comm_Out_Data 11, &H0
      JigControl.Set_Comm_Out_Data 12, &H0
      JigControl.Set_Comm_Out_Data 13, &H0
      JigControl.Set_Comm_Out_Data 14, &H0
      JigControl.Set_Comm_Out_Data 15, &H0
      JigControl.Set_Comm_Out_Data 16, &H0
      JigControl.Set_Comm_Out_Data 17, &H0
      JigControl.Set_Comm_Out_Data 18, &H0
      JigControl.Set_Comm_Out_Data 19, &H0
      JigControl.Set_Comm_Out_Data 20, &H0
        
      JigControl.Set_Send_Data
      Call Sleep(50)
      JigControl.Set_Comm_Port_Status = ClosePort
    End Sub
      

  2.   

    clsRS232COM是1个封装的类,还是1个dll 只要看懂了这个东西,其他的只是调用