05-26-2010 02:24 PM
I'm limited to 8.6.1 for my project, although it looks like the same problem exists on LV2009.
MAX 4.6, NI-DAQmX 8.8, LabVIEW RT 8.6.0
My client wants to add a few ENET devices to the mix (already have SCXI, cDAQ, various TCP/UDP instruments, and various PXI boards in the system: 200+ channels).
I don't have the devices in hand, though I could get them if necessary.
In MAX, if I right click on the host's DEVICES AND INTERFACES, and choose CREATE NEW: NI-DAQmx Simulated Device, I get a menu with a category called "Network DAQ", from which I can choose the ENET-9211 or 9215 or the various devices I need.
But on the Remote System's (PXI's) part of the MAX interface, if I try the same thing, the menu does NOT include the Network DAQ category, and I cannot create a simulated ENET device.
My PXI has a PXI-8196 controller running NI-DAQmx 8.9.0
The architecture of my system is such that the PXI is the central collector of data, and the alarm manager, in addition to its real-time duties.
So what I want is for the PXI to operate the ENET devices, collect their data, check for alarms, and merge it into the big blob of data that's already being sent to the host.
So, how do I get there from here? Can the PXI be the boss of the ENET devices? Do I need a newer NI-DAQmx on the PXI box?
Blog for (mostly LabVIEW) programmers: Tips And Tricks
05-27-2010 02:28 PM
Howdy Steve!
You will not be able to create simulated devices under Remote Systems section for your real-time PXI system. If you create a simulated ENET under Devices and Interfaces (it will appear under the network devices section) then it will be on the same "network" even though it is fake. I think if you simulate the ENET device via Devices and Interfaces you should be able to use it successfully during your development.
Regards,
05-27-2010 02:44 PM
Well, that sounds promising, but it doesn't seem to work.
I do not have a "network devices" section in MAX.
When I run my little test program (which reads from "ENET1") on the host it's fine (I get a noisy sine wave, as expected).
But if I run it on PXI, I get Error -200220 : device identifier is invalid (ENET1).
MAX looks like this:
Blog for (mostly LabVIEW) programmers: Tips And Tricks
05-28-2010 01:50 PM - edited 05-28-2010 01:50 PM
Howdy Steve!
I realized that you will indeed need to upgrade to DAQmx 9.0 to have the Network Devices section. Below is a screenshot from MAX on my machine (using DAQmx 9.0.2; VISA 4.6; MAX 4.6.2). The description on the right states the need for DAQmx 9.0. I apologize for not realizing this earlier.
Regards,
05-28-2010 01:53 PM
Hmmm. The official answer from Tech Support is that "you cannot do that".
Your idea that configuring from the host would allow the PXI to see it seems to be incorrect.
I quote:
I don't see what determinism has to do with it: I'm running a CAN board, for crying out loud, and that is certainly not deterministic, in terms of when the samples come in. I'm running several TCP instruments that are not deterministic. I just take the latest values I have when it's sample time.
But there it is. I can't get there from here.
Blog for (mostly LabVIEW) programmers: Tips And Tricks
05-28-2010 01:56 PM - edited 05-28-2010 02:05 PM
OK our messages crossed on the wires. Is that MAX shot on a remote PXI system, or the host? I can't tell from looking at it.
EDIT: That has to be the host, as it has a PXI section below.
I hope that means that once configured, the device is visible from PXI.
Blog for (mostly LabVIEW) programmers: Tips And Tricks
05-28-2010 03:31 PM
Sorry, but that flat out does not work.
I copied the VM (I like virtual machines!!!) and upgraded the copy to NI-DAQmx 9.0f2
I also upgraded just NI-DAQ (not LV RT or anything) on the PXI box to 9.0f2
I now have the NETWORK DEVICES section within MAX, as you suggested.
I created the fake ENET1 device.
It works fine on the host, but not from the PXI.
Same story: it does not see the ENET1 device.
How is the configuration (for example, naming it "ENET1") supposed to be seen from the PXI, anyway?
Blog for (mostly LabVIEW) programmers: Tips And Tricks
05-28-2010 03:48 PM
The more I think about it, the less I understand how what you say could possibly work.
I assume it's using TCP/IP and/or UDP, maybe that's my mistake.
If so, then somewhere, there has to be a translation table that turns "ENET1" into "192.168.0.123" or whatever the IP number is.
If I create the fake device on the host, then it can make up an IP number and tell NI-DAQ about it thru some config file somewhere.
When I ask NI-DAQ to do something to ENET1, it looks up the number and sends the command.
But, unless you publish that configuration data ("ENET1" --> "192.168.0.123") somehow out to the PXI, then the PXI's NI-DAQ has no way of knowing that there is such a beast as "ENET1".
Hence the error.
Blog for (mostly LabVIEW) programmers: Tips And Tricks
06-01-2010 12:44 PM
You are correct that the screenshot I posted was from a host machine. Also, you are correct that it will not be possible to configure the remote PXI target to communicate with the simulated device. I had originally thought that this could be done, but after further testing it turns out that I was wrong. As you stated the address translation prevents this from being possible.
Regards,