Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

Measurement I/0 Assistant Randomly Starts Returning Empty Strings

Hi everyone,

 

I'm trying to use the LabView instrument I/0 assistant to command and read from two 15 y/o Newport PM500-C motion controllers. The assistant uses VISA connetions to interface with the motion controllers, which are themselves connected with GPIB cables connected to the computer with an NI GPIB-USB-HS adapter. The code works as designed at the start of the program, but, after one or two dozen minutes of running, the assistant begins returning empty strings, instead of the position indicator strings it was happily running before, and I get VISA write error code -1073807339 when attempting to use the VISA Write function within the running VI. When empty strings are returned, the NI spy states that the code is only attempting to "VISA Get Attribute" from all devices on the GPIB whereas it lists that the computer was successfully querying and writing to the motion controllers when correct strings are returned. However, when the VI cannot effectively communicate with the motion controllers, I am still able to query them using the MAX NI-488.2 communicator. Even this sometimes returns "iberr = ENOL

ENOL indicates that no instrument was detected at the specified address. Verify that your instrument is powered on and properly connected to your GPIB interface" though everything is connected properly and I can communicate with the other motion controller on the same GPIB. This message does not return when the communicator is closed and reopened, and the general problem rectifies itself temporarily when the VI is restarted. I am wondering if these interface issues are caused by the obsolescence of the motion controllers, or if there is a way to prevent the I/O assistant from returning empty strings in the first place. Any ideas would be appreciated.

 

Thanks!

0 Kudos
Message 1 of 5
(3,096 Views)

1. Are there any additional events or function executions that occur when the empty strings are returned, or is the program run consistent throughout this time frame? 

 

2. Is there any consistency to the iberr = ENOL error, or does it occur sporadically? 

 

Thanks,

paigec

0 Kudos
Message 2 of 5
(3,040 Views)

When the empty strings are returned, an error message will be generated stating the program can also not write to the motion controllers, leading me to believe LabView loses its connection to the device entirely. Otherwise, the program will keep on running as designed, filling the output arrays with empty strings until the set iteration limit is reached.

 

The iberr = ENOL error occurs sporadically. It sometimes appears after I attempt to use the 488.2 communicator that I had launched before starting my VI, but never returns after I restart the communicator. Other times, it never shows up. I've probably seen the error in <10% of cases where I tried to use the communicator after the VI errored.

 

 

0 Kudos
Message 3 of 5
(3,032 Views)

Yes, it sounds like the connection is not solid or consistent and whenever the disconnect occurs, it sends out the empty strings. Does this occur when you use another cable connection? Also, is your device SCPI compliant? lastly, when you get this error, does it respond to a *IDN? query?

 

0 Kudos
Message 4 of 5
(3,011 Views)

I haven't tried using another cable connection since I can only access the controller using GPIB, which works fine for all other instruments on the interface, even when the affected motion controller is returning empty strings. When I get the error, I cannot get a response to an *IDN? query, or send or receive any information for the motion controller for that matter. I do not believe the device is SCPI compliant.

0 Kudos
Message 5 of 5
(2,980 Views)