Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

Add an network card in a Real Time system

Hi,

I have 2 questions regarding the addition of an Ethernet Network card PXI-8231

 

1)      Is it possible to add 1 2 or 3 Network card in a PXI chassis and be able to use all of them including the one on my PXI controller? My operating system is LabVIEW RT. I heard in the past that was not possible.

 

2)      Is it possible to acquire data from my network cards with no lost of data at 1 msec exactly like I can do with a Analog input card per example.


J.-P.

0 Kudos
Message 1 of 6
(4,782 Views)
Hello gpaito,
 
>Is it possible to add 1 2 or 3 Network card in a PXI chassis and be able to use all of them including the one on my PXI controller? My operating system is LabVIEW RT. I heard in the past that was not possible.
 
I have a PXI8187 controller with the labview RT OS (Ardence ETS) and one card NI8231 and I use both of them at the same time. The one in the controller works as the primary.  The only thing I have not been able to do is to use the NI8231 as the primary and still keep on using the one in the controller.
 
I don't know if you can put more, but it looks like yes.
 
 
>Is it possible to acquire data from my network cards with no lost of data at 1 msec exactly like I can do with a Analog input card per example.
 
I acquire data at 1ms with one of them and with the second one I transfer data to a PC with Windows XP and it works fine. Jitter in the RT acquisition is in the order of ten microseconds.
 
Your application seems to have things in common with mine. Do not hesitate to add more details if you wish.
 
Hope this help
Miguel

 
Message 2 of 6
(4,707 Views)

Hello Miguel,

Thank for your Answer, and your right our application have thing in common. I have to acquire my data from the network card by using UDP with no lost of data at 1 ms also. Righ now I’m upgrading my system from LabVIEW 7.1 to 8.20 and I’m using the controller PXI-8196. I’m having some problems by doing so but we (Me and NI) will probably going to resolve at the end of next week. After that, I’m going to try to use my Network card PXI-8231 and learn how it work.

You said that you acquire data at 1 ms but I thought that the Ethernet protocol was asynchronous and generate an interrupt in the system when it receive a data. At that time the data must be put in ram immediately or it will be lost.

How do you manage to acquire at 1 ms an asynchronous protocol (I think) ?

How do you Time Tag your data ? Do you take a relative time from your controller or from your network card?


Thank and have a nice day

J.-P.

0 Kudos
Message 3 of 6
(4,698 Views)

>How do you manage to acquire at 1 ms an asynchronous protocol (I think) ?

>How do you Time Tag your data ? Do you take a relative time from your controller or from your network card?

My application is a control loop with sensors and actuators. the sensors are sampled at 1KHz and the actuators are commanded at 1KHZ. The data is received from the sensors using one UDP packet each cycle and the actuators are commanded sending then one UDP packet each cycle.

For the sensors I have an external device which acts as ADC and sends one UDP packet of a fixed size every 1ms +- jitter.

In the PXI8187 controller I have a loop which is all the time doing the following:

1.-Read UDP.vi

2.- Put timestamp using "get timestamp.vi" from the real time library.

3.- The information from the UDP packet is proccessed.

4.- The result is sent using another UDP packet to control a set of actuators and starts to wait for a new UDP packet.

These four steps have to be done always in less than 1 milisecond.

There is another loop sending the information througt the  other ethernet line to a PC that stores the results.

I was thinking for a time about how to do it and I thought this was the simplest and best way, anyway if you find a better way, please let me know.

I do not know if this answers your question.

Does your application do something similar to mine.? In that case we can share experience.

Note: the names of the VIs I have mentioned may not be correct, because I have written then by heart.

Best regards

Miguel

 

 

 

 

0 Kudos
Message 4 of 6
(4,692 Views)

Hi Miguel,


Thank you for your answers. There not a lot that I know about the new application that we are developing. I know that we gone a use 2 embedded computers “FCCs” which are install in an aircraft. These 2 FCCs will have 4 Ethernet ports each wich will be connect to a switch. However, the following information is not defined yet. One port of the switch will be connected to my PXI network card to acquire all the data. The two FCCs will transmit their data every 10 ms on each port.

 


I would like to read the UDP port only when their information on it and not by doing some pooling, but I don’t think that possible. I’m gone start working on my network card PXI-8132 next week, so I will be able to tell you more after that.

 


I have a last question for you: How are you able in LabVIEW to select the UDP port on your network card and not the one on your controller? Can you give me the exact name or send me the VI you use for timestamp.

 


Thank you very much for your Help

J.-P.

 

P.S.: Sorry for all my writing mistakes, I not use to write in English since I’m a french Canadian.

0 Kudos
Message 5 of 6
(4,648 Views)
How are you able in LabVIEW to select the UDP port on your network card and not the one on your controller?
 
You can not do it in Labview 8.0, but you can do it in Labview 8.2, because in this last version "Open UDP.vi" has a new input "net address" to indicate the IP at which you want to open the socket in the case of having more than one.
 
 
Hello gpaito
 
Can you give me the exact name or send me the VI you use for timestamp.
 
The name is "RT Get Time stamp.vi" and it is part of the real time tools which is not part of the basic Labview. Check if you have purchase it. I attach a picture showing the vi and the "content help" for it.
 
One important difference introduced by this vi is that it uses a 64bit variable to generate the time-stamp. You have to think of you really need it.
 
Concerning your command of the english language, je voudrai ajouter que j'etude français et pour moi on sera un plaisir de continuer en ta langue.
 
salut
Miguel
 
 
 
0 Kudos
Message 6 of 6
(4,643 Views)