LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

6561 TClk Synchroization Problem

Solved!
Go to solution

Hello Brian,

 

I performed the math again, and have had it checked.  As I mentioned last time, I was just performing some quick calculations and apologize that they have been proven incorrect.

 

Just as you have described yourself, each card transfers 4MB/s, which over 6 cards is 24MB/s.  The PXI bus can transfer this without a problem within operating standard.

 

As for running out of memory, this has to do with the transfer from the PCI bus, through to the RAM, the queue system, and finally writing to file.  Also TDMS is quick, relative to text files, straight Binary files are even more efficient.  This would mean that the Queue and PC RAM empties quicker.  However, with lower level Binary, you would have to design your own structure for interleaving the channels and recognizing which data belongs to each.  U16 will also write much faster to Binary, rather than a Waveform.

 

In the system specification, the PXI has 1 GB of RAM and runs Windows XP.  A large portion of the RAM will probably be used by the Windows OS alone and the background services, leaving only a small portion for this application.  After the PXI is next rebooted, without running any additional programs, please record and reply with how much physical memory is left over.  An example is in the screenshot below.

 

Windows Task Manager_2011-07-07_17-54-30.png 

 

It is possible to increase the amount of RAM on this controller.  However, please post back first with the available memory so that we can perform some further calculations.

 

Regards, 

George T.
Senior Applications Engineer
National Instruments UK and Ireland
0 Kudos
Message 31 of 45
(974 Views)

Hi,

 

you must have been creating your reply at the same time as my last post.  I'll check out the RAM first thing tomorrow.  I've checked the original quote for the hardware, we have part 779886-01 NI PXI-8106 Core 2 Duo 2.16 GHz Controller with Windows and part 779302-1024 (quantity 2) 1GB DDR2 RAM for NI8106 and NI8104 controllers.

 

Regards,

 

Brian

0 Kudos
Message 32 of 45
(973 Views)

Hi,

 

I rebooted our PXI-8106 (part 779886-01) controller.  It appears we have 2Gig of RAM.  The standard spec is 512MB for the 8106, so I'm assuming when we ordered 2Gig, the 512MB was removed and 2x1Gig installed.  The maximum for the 8106 is 4Gig, so would I be correct to assume we can buy another 2Gig of RAM to install ?

 

20110708 Available Memory of PXI-8106 001.jpg     20110708 Available Memory of PXI-8106 002.jpg

0 Kudos
Message 33 of 45
(965 Views)

Not certain how the RAM fits physically.  Can I add one 780031-2048 to arrive at 4Gig, or would I need to discard the 779302-1024 I have installed at the moment and buy two of 780031-2048 ?

0 Kudos
Message 34 of 45
(961 Views)

Hi bmann2000,

 

Through Task Manager, it is verified that the PXI-8106 has the 2GB upgrade.  The PXI-8106 has two slots for DDR2 RAM.

 

Standard PC technology uses DDR2 RAM.  Best practices for DDR2 RAM is that both sticks or memory are a matching storage size, and matching bus speeds.  Therefore, if an upgrade was required, two units of 780031-2048 could be purchased and replaced by yourself and replaced in the existing 8106. 

 

Windows XP is a 32-bit operating system, which means that of the 4GB, it can only address about 3.4GB.  This would mean that after booting, about 400MB will be needed for running Windows, and approximately 3GB will be left for the PC to run applications such as LabVIEW.

 

I will respond to the additional questions from previous post shortly.

 

Regards, 

George T.
Senior Applications Engineer
National Instruments UK and Ireland
0 Kudos
Message 35 of 45
(957 Views)

I've organised the purchase of 2x2Gig RAM modules.  If we're going for a solution that involves Continuous-Acquisition from all six cards, I'd be best to start work on perfecting a Consumer loop to save U16 data as Binary.  I'd also need to write code that'll read U16 from the binary files and convert the rising edges to time-of-arrival.

 

Before I invest the time in creating this code.  Can you confirm that a PXI8106 controller with 4Gig RAM will be capable of streaming and saving to binary file a combined total of 24MBytes/s from six 6561 cards.  National Instruments must know if this is possible as PXI systems with multiple cards will have been benchmarked many times before.   Please advise what applicable benchmarking data you can access and share.  Alternatively, if you call someone is sales and say you have a 2MS/s high channel count application, how many 8 channel cards would they recommend per PXI chassis?

0 Kudos
Message 36 of 45
(955 Views)

Hi bmann2000,

 

The increase of RAM is a short term solution.  Performing further research on Windows XP, I have found that there is a natural limitation in the Operating System which limits the maximum Memory assigned to a single application.  Windows will never allow a single application to allocate more than half of the physical memory to itself.  In the current case, more than 1GB will not be assigned to LabVIEW. That said, I believe the next step is to optimize the code so that data is written to the hard drive faster, rather than filling Queue, which uses the memory.

 

Understanding Windows XP and the standard harddrive operation, documentation online states that hard disk drives(HDD) operate in 512B chunks of data.  This means that if we attempt to write to the  HDD in multiples of 512B, this should be less time for the physical needle and platter to move.  In terms of the "Number of Samples To Fetch Per Cycle", we can also request multiples of 512B.  Therefore, we could request 204800.

 

Furthermore, our current File operation is to write to TDMS.  Although TDMS is good for streaming data, at this point, there will be additonal information and properties that will add more data for each write operation.  Therefore, if we did manage to organize the write data to multiples of 512B, the TDMS operation will add more Bytes, breaking the principle of matching the HDD operation.

 

I am updating the example I sent a few posts ago to include the concept of writing to Binary, and generally improving the timing.  

 

Regards, 

George T.
Senior Applications Engineer
National Instruments UK and Ireland
0 Kudos
Message 37 of 45
(953 Views)

good to know, it appears that it's possible to increase the memory available to LabVIEW to 3Gig by adding /3G to the Windows XP boot.ini file.

 

http://www.jvadillo.com/software/3gbproblem.html

 

0 Kudos
Message 38 of 45
(950 Views)

Hi,

 

That is true, however, that is only applicable if you have already purchased and installed the 4GB of RAM.  I am not sure if the /3GB switch works for your current amount of RAM in the interim.

 

Regards, 

George T.
Senior Applications Engineer
National Instruments UK and Ireland
0 Kudos
Message 39 of 45
(947 Views)

Hello bmann2000,

 

I have attached an updated version of the project, save for version 8.5.  This example should be able to Acquire and Queue data is chucks of 512B, to facilitate faster Binary write times.  The Consumer loop now use the Write to Binary VI.

 

To further improve writing, and since all the data will be looked at in post-processing, that data from each PXI HSDIO card is written to a different Binary file.  This avoids the problem of having to have metadata in the Binary file which separates the cards.  When processing the data, a VI could be written that pulls information from each file.

 

When running the VI, please monitor the RAM in the Task Manager, and the number of items in the Queue, which is displayed on the Front Panel.

 

The VI to run is named  "UKSupportContinuous Acquisition - Stream to Memory with multiple Binary files".

 

Regards, 

George T.
Senior Applications Engineer
National Instruments UK and Ireland
0 Kudos
Message 40 of 45
(941 Views)