Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

VISA communication reads double characters

I'm trying to find the right combination of settings in the GPIB controller board (ICS PCI 488.2), and in the instrument, and in the program. The configuration program has settings for the controller board (EOS byte=10, Terminate Read on EOS=Yes, Set EOI with EOS on Write=Yes), and settings for the instrument (EOS byte=10, Terminate Read on EOS=Yes, Set EOI with EOS on Write=Yes, Set EOI on Last Byte of Write=No). The instrument has the option to set the talk/listen termination characters, currently both set to line-feed. The program uses 10 for linefeed on the end of commands.
The problem is that, when a VISA Write and Read (Query) is performed, each byte is doubled, i.e. 142 appears as 114422.
Perhaps a separate issue, but possibly a clue: Using Instrument I/O Assistant gives the correct data if run within the I/O Assistant. Running the resulting VI gives an error (-1073807240 at property node... The value of some parameter is invalid.) Opening the I/O Assistant express sub VI front panel and converting it to a standard VI, shows that the first command (instrument property node for timeout) results in the error.
Thanks
0 Kudos
Message 1 of 3
(3,925 Views)
Dekay,

This sounds like an issue with LabVIEW because of the inconsistancies in functionality between the internal IO Assistant and LabVIEW code.  Does the GPIB communication work in Measurment and Automation Explorer (MAX)?  To check this, select Communicate with Instrument after you select your GPIB device in MAX and query with *IDN?.  Post back with the results of that test and we'll see where to go from there.
Sincerely,

Chris G in AE
0 Kudos
Message 2 of 3
(3,892 Views)
I have an ICS board, and have not figured out how to get it to work with MAX. (There is something about setting up a passport, but the options don't come up as in the instructions.) Communications using ICS IBCONF32 work fine, though. The instrument that gave double characters is not 488.2 compliant. It uses IEEE-488-1978 even though it is a new meter. For example, it sending *IDN? results in an unrecognized command error on the meter display. ID is the command used for identification.

Meanwhile, I stumbled across a fix. Changing the VISA read mode to synchronous results in the correct readings, although I'm not sure why. The related information in Help says synchronous is faster if there are less than 5 instruments on the bus. I have two.  It also says that requirements for synchronous or asynchronous are platform dependent. It doesn't say what aspect of the platform. I'm using XP, LV 8.5, and the meter is not 488.2 compliant.

I'm concerned that there still may be some ambiguities in communications that may result in errors if something else changes, such as adding an instrument, of running something in the background that changes the timing...

Let me know if anyone has an insight into why synchronous (set by right clicking on VISA read or write) makes a difference.

Thanks



0 Kudos
Message 3 of 3
(3,885 Views)