【正文】
As Long Call SendGpib(TOS9201, strCmd, STRING, lngGpibResponse) End Sub Public Sub SendGpib( _ strMeasName As String, _ strSendCmd As String, _ strSendDataType As String, _ lngGpibResponse As Long _ ) Call chGPIBAdress(strMeasName) If WriteToInstrument(strSendCmd + nGPIPDEL) = False Then MsgBox GPIB Error, [ + strMeasName + ],Please Check your Instruments!, vbCritical Exit Sub End If End Sub Public Function WriteToInstrument(s As String) As Boolean nBytesToSend = Len(s) nStatus = viWrite(hChannel, s, nBytesToSend, nBytesSent) Select Case nStatus Case VI_SUCCESS: WriteToInstrument = True Exit Function Case VI_ERROR_INV_SESSION: WriteToInstrument = False Case VI_ERROR_INV_OBJECT: WriteToInstrument = False Case VI_ERROR_NSUP_OPER: WriteToInstrument = False Case VI_ERROR_RSRC_LOCKED: WriteToInstrument = False Case VI_ERROR_TMO: WriteToInstrument = False Case VI_ERROR_RAW_WR_PROT_VIOL: WriteToInstrument = False Case VI_ERROR_RAW_RD_PROT_VIOL: WriteToInstrument = False Case VI_ERROR_INP_PROT_VIOL: 蘇州大學成人教育畢業(yè)論文(設計) 18 WriteToInstrument = False Case VI_ERROR_BERR: WriteToInstrument = False Case VI_ERROR_INV_SETUP: WriteToInstrument = False Case VI_ERROR_NCIC: WriteToInstrument = False Case VI_ERROR_NLISTENERS: WriteToInstrument = False Case VI_ERROR_IO: WriteToInstrument = False End Select viClear (hChannel) 39。 device clear End Function 3).測試執(zhí)行 Public Sub TestExecute() Dim intI As Integer Dim intQ As Integer Dim strCmd As String Dim lngGpibResponse As Long = False (3).Text = Testing gblnTestResult = True gblnItemsSelectdAll = True mintDisplayRows = 1 Call SendToTOS9201(DSE HFF) For intI = 0 To UBound(gudtTestItems) If (intI).Value = vbChecked Then Call DisplayTestItems(intI) (intI).BackColor = vbRed If gudtTestItems(intI).TestType = ACW Or _ gudtTestItems(intI).TestType = DCW Or _ gudtTestItems(intI).TestType = IR Then Wait 500 strCmd = PHOL Call SendToTOS9201(strCmd) Wait 500 If TestGo(intI) = False Then Call DisplayTestResult(intI, FAIL) gblnTestResult = False (intI).BackColor = amp。H8000000F 蘇州大學成人教育畢業(yè)論文(設計) 19 Exit For Else Call DisplayTestResult(intI, PASS) End If End If (intI).BackColor = amp。H8000000F Else gblnItemsSelectdAll = False End If Next Call SendToTOS9201(STOP) If gblnTestResult = True Then If gblnItemsSelectdAll = False Then (3).Text = Single PASS = amp。HFFC0C0 Else (3).Text = PASS = vbGreen Call SignalpoleSetAll(sigOff) Call SignalPoleSet(sigGreen1 + sigBuzzer2, sigOn) End If Else (3).Text = FAIL = vbRed Call SignalpoleSetAll(sigOff) Call SignalPoleSet(sigRed2 + sigBuzzer1, sigOn) End If = True gblnAlarmStop = False intQ = 1 gblnTestStart = False = Test Start End Sub 4).TOS9201 設定,測試 Public Function TestGo(intI As Integer) As Boolean Dim lngDeviceRegister As Long Dim lngFailRegister As Long Dim lngProtectionRegister As Long Dim lngProtectionRegister2 As Long Dim strRegProt As String Dim intJ As Integer Dim strDispData As String Dim dblRcvData As Double Dim strRemainTime As String 蘇州大學成人教育畢業(yè)論文(設計) 20 Dim strRcvData As String Dim strRcvBuffer() As String Select Case gudtTestItems(intI).TestType Case ACW gstrTestType = ACW Call SendToTOS9201(FUNCTION 0) Call SendToTOS9201(A:FREQ + gudtTestItems(intI).Frequency) Call SendToTOS9201(A:TES + gudtTestItems(intI).TestVoltage + E+3) If gudtTestItems(intI).UpperLimit Then Call SendToTOS9201(A:UPP + gudtTestItems(intI).UpperLimit + E3) End If If gudtTestItems(intI).LowerLimit Then Call SendToTOS9201(A:LOW + gudtTestItems(intI).LowerLimit + E3,ON) End If Call SendToTOS9201(A:TIM + gudtTestItems(intI).ExecuteTime + ,ON) Call SendToTOS9201(A:OFF OFF) Call SendToTOS9201(A:STAR 0) Call SendToTOS9201(A:RTIM + gudtTestItems(intI).RiseTime) Call SendToTOS9201(A:FTIM + gudtTestItems(intI).FallTime) Call SendToTOS9201(A:VRAN 0) Call SendToTOS9201(A:RES 2) Call SendToTOS9201(A:GND 0) If gudtTestItems(intI).ContactCheckOn = True Then Call SendToTOS9201(A:CCH ON) Else Call Se