Chapter 6 Application Programs
Example Program for Excel 97
'*********************************************************************************
'This routine send a SCPI command string to the GPIB port or
'If the command contains a question mark, the response is read, and returned '********************************************************************************** Private Function SendSCPI(command As String) As string
Dim commandString As String | ' Command passed to power supply |
Dim ReturnString As String | ' Store the string returned |
Dim crlfpos As Integer | ' Location of any nul’s in Read Buffer |
Dim ReadBuffer As String * 512 | ' Buffer used for returned string |
Dim actual As Long | ' Number of characters sent/returned |
commandString = command & Chr$(10) | ' The instrumented by linefeed |
ErrorStatus = viWrite(power_supply, ByVal commandString, Len(commandString), _ actual)
CheckError "Can’t Write to Device"
If bGPIB = False Then
delay 0.5 End If
If InStr(commandString, "?") Then
ErrorStatus = viRead(power_supply, ByVal ReadBuffer, 512, actual) CheckError "Can’t Read From Device"
ReturnString = ReadBuffer
crlfpos = InStr(ReturnString, Chr$(0)) If crlfpos Then
ReturnString = Left(ReturnString, crlfpos - 1)
End If
SendSCPI = ReturnString
End If
End Function
Private Function ClosePort()
ErrorStatus = viClose(power_supply)
ErrorStatus = viClose(defaultRM)
End Function
Private Function delay(delay_time As Single)
Dim Finish As Single
Finish = Timer + delay_time
Do
Loop Until Finish <= Timer
End Function
Private Function CheckError(ErrorMessage As String)
If ErrorStatus < VI_SUCCESS Then
Cells(5, 2) = ErrorMessage
ClosePort
End
End If
End Function
End of Program
142