LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

488 subaddress command

Is there a labview 488 command that is similar to the ibsad 488 command? It must be 488 only and not 488.2 because my device doesnt support 488.2.
0 Kudos
Message 1 of 9
(2,867 Views)
In LabVIEW one would use VISA to talk to a device. The syntax for a VISA resource name to specify the secondary address of a device is

GPIB[board]:: primary address[::GPIB secondary address][::INSTR]

(note: there is no space after the first set of double colons. I had to put one in to prevent the forum software from treating it as a smiley)

That's all you should need, assuming you have a driver that uses VISA. Do you have such a driver?

Message Edited by smercurio_fc on 07-25-2007 03:57 PM

0 Kudos
Message 2 of 9
(2,858 Views)

Ibsad is used to change the secondary address. Do you need to change the address of the controller or instrument? As smercurio_fr mentioned, with the VISA functions, you can specify the secondary address. If you are using the low level GPIB Write/Read functions, you can specify the secondary address of an instrument as well. From the on-line help of GPIB Write:

address string contains the address of the GPIB device with which the function communicates. You can input both the primary and secondary addresses in address string by using the form primary+secondary. Both primary and secondary are decimal values, so if primary is 2 and secondary is 3, address string is 2+3.

0 Kudos
Message 3 of 9
(2,845 Views)
I cannot use the VISA session because it uses commands that my device does not recognize. It is a device from 1985. I have also tried to address my device using low level commands such as the "488 initialize" command and that seems to work fine. It is when I try to write to my device that I have a problem. I initialize my device at address 2+0 and then I try to write to my device at the address 2+5 and it tells me that I have an invalid address. Do I have to initialize every subaddress? The device I am talking to requires that I access each of its subaddresses to get the information that I need. Another little quirk that this device has is that it wants me to add to each subaddress the number 96. Ex subaddress 1 + 96 = subaddress 97. I dont know why this is necessary but LabView doesnt seem to like it. But when i do it in IBIC, which is a low level GPIB command prompt found in NI's MAX software, IBIC seems to take it fine and the device responds with no errors giving me the data i expected. In IBIC I use "ibsad 97" and then give it the byte count and it returns my data. How do I go about accomplishing that?
0 Kudos
Message 4 of 9
(2,836 Views)
What specifically, is the device you are trying to talk to? A problem is that in 1985 conformance to the 488 standard was ...uh... tenuous (at best!). There were time when I had to use very low level commands to basically bit-bang the interface to get things to work. Do you have any alternatives to this old equipment? Do you have a manual for your instrument?

Mike...

Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

"... after all, He's not a tame lion..."

For help with grief and grieving.
0 Kudos
Message 5 of 9
(2,828 Views)
I am controlling a rate table and sadly there is no other controller that I can use. Can anyone help?
0 Kudos
Message 6 of 9
(2,823 Views)
The age of the device doesn't necessarily mean you can't use VISA. I've used VISA with devices that old. As Mike asked, what is the device? Who makes it? What is the model? Is the company still in existence? Simple saying it's a rate table doesn't provide any useful information.
0 Kudos
Message 7 of 9
(2,802 Views)

Ok look fellows, I dont mean to sound rude but I dont see what knowing the device i am using matters. I was just wondering if LabView had a command that only sends out ibsad. Using the NI Spy i can see that once I have initialized the device for an address such as 2 subaddress 0 and then I do that same initialization but with a different subaddress such as 3, then Labview will send out an ibsad setting the subaddress to 3. Is there anyway to just access the ibsad command? Do I need to initialize everytime I want to send a subaddress? I have also run across the MISC 488 command and was wondering if that list is concrete or if i can use MISC to create other commands such as ibsad?

 

0 Kudos
Message 8 of 9
(2,778 Views)
At the risk of sounding rude as well, let me say that we're just rying to help. What often happens on these boards is that people will ask a question on how to do something, and it turns out that's not what they really should be doing in the first place. As Dennis pointed out, ibsad is used to change or disable the secondary address of the given board, so it's not clear why you would want to use this command to address a device. It's also not clear what exactly you're doing when you say you "initialized the device for an address such as 2 subaddress 0". Usually it helps greatly to see some code. From the perspective of one who's on the other side, it's difficult to know the level of expertise of the persons asking questions so please be a little more receptive to questions that are intended to try to help.

The GPIB Misc doesn't allow you to execute the ibsad command, at least according to the documentation. Nevertheless, if you have to, you can execute it by simply calling the function from the GPIB DLL straight from LabVIEW. There is an excellent example that ships with LabVIEW that shows you how to call DLL functions. However, you might want to check out the MakeAddr function. That function is intended to create a packed address from a primary and secondary address.

Message Edited by smercurio_fc on 07-30-2007 09:57 AM

Message 9 of 9
(2,763 Views)