From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

VXI and VME

cancel
Showing results for 
Search instead for 
Did you mean: 

Address modifier labview vi

I am trying to write a test program for a piece of VME hardware. I need to enter the "Address Modifier" value. Can you advise if there is a method of doing this under VISA VI's
0 Kudos
Message 1 of 6
(7,187 Views)
Alex:

There should be a set of properties "Src/Dest/Win Access Priv". You can set/write the value to be any of the following: {Data/Privileged=0, Data/NonPrivileged=1, Program/Privileged=2, Program/NonPrivileged=3, Block/Privileged=4, Block/NonPrivileged=5, D64/Privileged=6, D64/NonPrivileged=7}.

These correspond to 8 of the defined address modifiers for VME/VXI. Each of the 3 attributes corresponds to a different set of accesses (Src for reading data from VME, Dest for writing data to VME, and Win for peeking/poking data across VME). Note that these are not the actual VME/VXI address modifiers that appear on the bus. You cannot set custom/arbitrary values using VISA (or NI-VXI for that matter).

Dan Mondrik
Senior Software Engineer, NI-VISA
Nationa
l Instruments
0 Kudos
Message 2 of 6
(7,187 Views)
Thank you Dan I was in the right area within the manual but it gave a very poor description and did not provide the numbers.
I have tried out your suggestion but the result was an error. The error was as follows:

"Error 0073807331 occurred at property node (org 1) in 16-bit-out-vi.
Problem Reason:
VISA: (HEX0XBFF001D) The specified attribute is not defined or supported by the reference resource".

I am using LABView 5.0.1

The steps taken to introduce the proberty node was to call it up from the VISA group. It entered into my program as INTR. Right clicked on the proberty box and selcted PROBERTIES, VME\VXI PROBERTIES, WINDOW ACCESS PRIVELEDGED. Right clicked on the proberty box again and then clicked CHANGE TO WRITE (which makes the arrow go to t
he left edge). Right click on the arrow and select CREATE A CONTROL. Into this I entered one of the values you gave me (0 to 7). This was wired into the VI as per the diagram shown on page 8-16 of the user manual.
0 Kudos
Message 3 of 6
(7,187 Views)
Hello Alex,

1. I would like to back up a bit here and clarify what you mean by you "need to enter the 'Address Modifier' value".

In the old NI-VXI API, you needed to enter a "accessparm" parameter on I/O functions, which identified the address space and the access privilege type.

You do not really need to do this under NI-VISA, as VISA keeps track of which address space you are communicating with if your VME device is setup properly in your configuration software.

2. A second theory that I can offer, if you truly mean to be modifying the address modifier, is that you cannot write the value of VI_ATTR_WIN_ACCESS_PRIV after you have already mapped the memory space for your VISA session.

3. What version of NI-VXI are you using?

4. What vers
ion of NI-VISA are you using?

5. Have you successfully communicated with this VME device in some other fashion?

Regards,
Joshua Hernstrom
PXI/VXI Product Support Engineer
National Instruments
0 Kudos
Message 4 of 6
(7,187 Views)
My software configuration is:
NI-VISA for Windows 95/NT 1.2.0.94
NI-VXI 2.0.0.74
NI-VISA/NI-VXI Configuration Engine 1.1.0.1
T&M Explorer 1.0.0.98
NI Spy 1.0.0.4

The VME Mux Dev Propertes Resources are:
A32 Address Range 0xFFFFC200 - 0xFFFFC2FF
Interrupt Level 1
Handler Level 1

The device under test is patched to regognise an "am" of 2D (Short Supervisory Access) or 29 (Short Non Priveleged Access)on the VME bus. Where as the the properties you identify appear to cover 09 to 0F. I have managed to get the device under test to function correctly by using NI-VISA (without the Property box) and tying the AM5 bit high but I would prefer not to leave this as a long term situation
0 Kudos
Message 5 of 6
(7,187 Views)
Hi Alex,

First a couple of points:
The attribute values you mentioned do indeed cover 09-0F in terms of VME Address modifiers, but it also covers many other address modifier codes as well because the VISA attributes in question only refer to access type, and not the address space. Under VISA, the address space is specified by the "space" parameter, for example in the function viOut16().

So, I have a few more questions for you:
1. What type of VXI slot 0 controller do you have?

2. Can you clarify why you are trying to use address modifier codes 29 or 2D and them attempting to access A32 space? Those VME codes are for short addresses (A16), so I would expect that an error would be returned if you set those attributes and then
attempted to do a write to A32 space.

3. Can you generate an NI-Spy file of a simple example using VISA that does not work?

4. Can you generate an NI-Spy file of a simple example using VISA that does not attempt to modify the attributes in question, but does attempt to write to the device? (also fails, I assume?)

5. Are you able to use the NI-VXI API to access this device successfully, and if so, can you describe how?

6. Have you considered upgrading your driver versions? The versions you are using are about 4-5 years old and have undergone many revisions and bug fixes. I would suggest upgrading to NI-VISA 2.0 at least and NI-VXI 2.1.1, depending on your hardware used.

(FYI, NI-VXI is now at v3.2 and NI-VISA at v2.6, but these are major revisions that may impact your code. You would see less effect yet still much benefit from upgrading partially to NI-VXI 2.1.1 and NI-VISA 2.0 or higher.)

Regards,
Joshua Hernstrom
PXI/VXI Product Support Engineer
National Instr
uments
0 Kudos
Message 6 of 6
(7,187 Views)