02-01-2006 02:39 PM
02-01-2006 04:08 PM
Hello KHP,
It would be helpful to see some code that demonstrates exactly how you're communicating with the device. Are you issuing any board-level commands to do things like manipulate line levels on the bus directly? This can sometimes lead to leaving the bus in an invalid state.
Regards,
Glenn Burnside
02-02-2006 07:05 AM
HPPower =
New Device(CInt(BoardAddress), CByte(HPPowerAddress), CByte(0))HPPower.Write(ReplaceCommonEscapeSequences("ID?"))
ReturnStr = HPPower.ReadString()
If (InStr(ReturnStr, "ID HP6033A") <> 0) ThenHPPower.Write(ReplaceCommonEscapeSequences("RST"))
HPPower.Write(ReplaceCommonEscapeSequences("CLR"))
HPPower.Write(ReplaceCommonEscapeSequences("OUT ON"))
HPPower.Write(ReplaceCommonEscapeSequences("FOLD CC"))
HPPower.Write(ReplaceCommonEscapeSequences("ISET5.0"))
HPMeter.Write(ReplaceCommonEscapeSequences("SYST:ERR?"))
HPERR = HPMeter.ReadString()
HPERR = ""
ElseMsgBox(ReturnStr, MsgBoxStyle.Critical, "HP Power Supply Error")
End IfHPPower.Write("VSET" & Format(Value, "#0.0#") & "V")
02-02-2006 08:30 AM
Here is the NI-SPY Capture report for the application. #486 is a good one and #487 is when i got the error. The time between the two commands is very short (probably in milliseconds).
486. ThreadIbcntl()
Process ID: 0x00000FDC Thread ID: 0x00000A10
Start Time: 14:13:52.004 Call Duration: 00:00:00.000
ibsta: 0x100 iberr: 0 ibcntl: 8(0x8)
> 487. ibwrt(UD1, "VSET12.0V", 9 (0x9))
> Process ID: 0x00000FDC Thread ID: 0x00000A10
> Start Time: 14:13:59.554 Call Duration: 00:00:00.000
> ibsta: 0x8100 iberr: 2 ibcntl: 5(0x5)
02-02-2006 11:24 AM
02-06-2006 12:18 AM
Seems like you are using very old non-SCPI based instrument from HP (Agilent). I think that the instrument is likely showing an unstable behaviour for recent high performance GPIB card due to old instrument design, because No-Listener error can normally be generated only when a cabling problem or instrument's firmware problem.
What I noticed is that your program is sending voltage and current values with VSET and ISET commands, but no white space is inserted between VSET (or ISET) and the value. Also the command string has no explicit terminator (such as CR 0x0D or LF 0x0A) appended. This may knock out the instrument's command parser (though I don't know what is the correct syntax for your instrument). Try "VSET 12.0V\r\n" rather than "VSET12.0V".
Other possible issue is GPIB bus speed. The default bus-timing for NI PCI-GPIB is 500ns (from 350ns, 500ns, 2us choices) but some old instruments may not work stably with 500ns or 350ns bus-timing. Try to slowdown the GPIB controller's bus-timing at Device Manager settings.
Hope this helps,
Makoto
02-06-2006 09:31 AM