11-12-2012 11:20 AM
I am using a VME-MXI-2 with a PCI-MXI-2 card installed on a Dell Optiplex 390 running Windows 7 64-bit.
The PCI card is plugged on a PCI express X1 slot using a PCI to PCIe adapter. To test my communication I use a VME card manufactured in house that contains relays with LED's to indicate which relay is ON. The relays are connected to registers and by writing to this registers the relays can be controlled. The VME-MXI-2 is installed in slot 0 of the VME bucket and my test card on slot 1.
My test card is setup on A16 address space using LA 256 and uses address 4000 to 407F.
This entire setup was used on an older computer running Win XP professional and using MXI Visa ver 3.3 and it worked fine. We need to build a second test set and a new computer was purchased without PCI slots and that is why we had to use an adapter. Initially I installed the MXI software (ver 3.3) but nothing was working. The PCI card would not appear on Device Manager. Reading on this web site I learned that this version of software was not compatible with Windows 7 and I needed to download NI-VXI 3.8.1. I removed the old software and I installed the new software and now the PCI card shows on Device Manager and Resman runs successfully.
Here is my problem, in the old computer with visa 3.3, I created a new VME device and using Visa interactive I could open a panel to control the card manually. By using the I/O tab on the panel I could set the offset address for a register and write a number to control the relays. When I create a VME device in the new computer with Visa 3.8.1 and I open a Visa test panel on MAX to control the card I can only see a tab to send messages but I don't have a tab for I/O to write to the register. If I open a test panel on the VME-MXI card on slot 0, I do have an I/O tab to access the registers on that card. For some reason the panel for my card is different and I can figure out why.
I want to add that if I select MEMACC on MAX and I open a Visa test panel, I get the I/O tab and if I write the absolute address of a register instead of the offset, I can write to them and turn on relays that way. So it seems that the communication is there, I just can do it with a test panel from my test card.
I am not a wiz at this stuff and I am out of Ideas. I would appreciate any help anybody can provide. Sorry for the lengthy explanation. Thanks.
11-13-2012 06:04 PM
Hello,
I believe VXI Interactive Control may give you functionality you're looking for. You can take a look at some details in the user manual linked here. It should be installed with NI-VXI Drivers.
Repost if that helps at all or if you run into further problems.
Regards,
11-15-2012 07:32 AM
Hi Chris,
Thank you for your input, I believe I had tryed VXI Interactive control and I didn't have any luck with it. Since I had the document you refered me to, I decided to give it another try but I can't open it now. It pops an error message saying "Unable to load device info fields. File DEVINFO.TBL missing".
Any ideas of what may be causing the problem. Is there any way to regenerate the missing file ?
I appreciate your help.
11-16-2012 06:16 PM
The in-house card you're working with won't be officially supported, but I suspect you should still be able to communicate with it.
What I'd try is using some simple LabVIEW VXI examples to open up communication with the module. You can open basic examples through LabVIEW under Help >> Find Examples, and then do a search for "VXI".
11-26-2012 07:25 AM
Chris
We do not use LabView, we have LabWindows/CVI. I tried running a LabWindows program with a panel that allows me to control the relays in my card. This program worked fine on the older XP machine but it's not doing anything on the new Win 7 computer. Do you think that maybe I should recompile the program in the new machine under Win 7 ?. Also I am not sure if I am installing my DLL and LIB files in the correct folders since the folder structure look different than in the older system. If you could give me some direction as to where I should install these files under NI-VXI 3.8.1 would be greatly appreciated. Any ideas about why the VXI Interactive Control is giving me the error about the "DEVINFO.TBL" being missing (see my previous reply). Thank You.
11-27-2012 08:31 AM
Hector,
My best guess is that something didn't properly install with the NI-VXI driver. DEVINFO.TBL should just be a component of NI-VXI, and I can't find any resources that suggest specific reasons why that message would pop-up. We may want to try uninstalling and reinstalling the drivers to see if we can alleviate that problem.
As far as the LabWindows/CVI program, we could double check if the functions being used are still supported in NI-VXI 3.8.1 (I'd imagine they would be) and recompiling wouldn't be a bad idea as well. The NI-VXI 3.8.1 files should automatically install to the correct directories, are there other DLL and LIB files that you are needing to manually place?
Regards,
11-28-2012 03:44 PM
Hi Chris,
I was able to fix the problem with VXI Interactive Control by using "Add/Remove Programs" on Windows 7. When you click "Uninstall" on the National Instruments group it opens a list of all the components installed where you can select one and you have a choice of uninstall or repair. I used repair on VXI 3.8 and now VIC runs ok without the error message about the missing file. Once it was fixed, I tried writing to a register in my card using the "Bus Access" tab with the OutReg command using the offset address (h10). The Status light IADR in the same panel turns red when I do that. Then I used the Out command using the full address (h4010) and works without any Status error (the CMPL ligth goes green). It looks like it does not know the base address of the card so the offset won't work. Maybe the base address info is not being saved when I create a VME device and the system can't resolve the full address when I use the offset address.
I also looked into my test program and the commands I am using to talk to the registers are "ViIn16" and "ViOut16". I would imagine these commands still should be supported on VXI 3.8. As far as the placement of my LIB and DLL, I am not running any installation program, I recompiled the program in Windows 7 and I simply run it from the folder where all the suport files are, including de LIB and DLL. I remember in the old computer under Win XP I used to manually place the DLL in C:\VXIPNP\WINNT\BIN and the LIB file in C:\VXIPNP\WINNT\LIB\MSC. The folder structure looks different in Win 7 with VXI 3.8 and I am not sure if it matters. The program does not present any error when it runs, I would imagine if it can't find de library files it would show some error right ?
I should tell you that my company purchased a support contract with NI today and tomorrow I should be able to use it to get some help with this problem. I would still welcome any input you may have and I am greatful for all your help. I appreciate you taking the time to help me.
11-30-2012 02:33 PM
Hector,
I believe the function VIC calls on that tab (vxioutreg) requires the full address to be used, so what you're seeing would be expected behavior. Is the code you have written to address the card with only the offset address?
Regards,
12-03-2012 11:23 AM
Chris,
When you use the "Bus Access" tab on VIC you get two choices of input and output commands, IN-OUT or INREG-OUTREG. IN and OUT requires the full address to reach a register on the card and I was aware that this is expected, I only mencioned it to show that there is conectivity to my card. But when you use INREG and OUTREG, you have to use the offset address, that is what the field is called and if you try to use the full address it would try to change it and it would not accept the full address.
On my program I use ViIN16 and ViOUT16 and they require 4 parameters the logical identifier to a session, the address space information, the offset of the address or register and the variable for the data. Like I said before this program worked fine on the machine with Win XP.
My boss wondered if VXI 3.8 supports MXI-2 which is the interface we are using, I said that in my original post but maybe you don't remember. Maybe you could confirm that supports MXI-2.
12-04-2012 06:45 PM
Hector,
I see what you're referring to. I will see if I have the hardware available to put together a similar system and test this on my end with that version ov NI-VXI, but per the readme for NI-VXI 3..8, MXI-2 is supported and should work just fine. I will let you know any results I'm able to find.
Regards,