03-05-2014 09:42 AM
Hello, I am using a cRIO 9073 with a 9215 DAQ module and a NI 9467 GPS module. I am acquiring 128 samples every 10ms from a signal generator which I have set at 50Hz. The samples are transfered with their GPS timestamp through a FIFO from the FPGA to the Real - time environment. There (at the Host), the samples are converted to ASCII in order to become in a readable format. The problem occurs when I try to generate an XML format from the obtained ASCII string. By the time I enter the GXML generator VI's the waveform crashes (I am obtaining at the host). When I don't use the GXML blocks everything works fine. I would much appreciate any ideas on why this is happening.
03-06-2014 02:05 AM
Hi,
I am asumming that you see the problem once you add the XML Format subVI into the host VI. My suggestion is that you put the XML format subVI in a separate while loop. Then use the producer/consumer design pattern to pass the string data from the loop which does the read to the XML format loop. You can see the link below for more explanation on such design pattern:
http://www.ni.com/white-paper/3023/en/
To start off quickly, search for the example called Simple Queue.vi. The producer/consumer design pattern uses queues to pass data between loops without using wires or variables. This way both loops can run independantly.
The reason I suggested to put the XML format subVI in another loop as I suspect that it is a bottle neck when you try to pass data that you acquire from the FPGA target. Try this out and see if it works.
Regards,
Alan
03-06-2014 06:43 AM
Hi ASEAN,
Thank you very much for your answer! Unfortunately it seems that it doesn't solve the problem. I have attached the changes I made according to the Producer/Consumer pattern.
I checked the CPU usage ( Ni distributor) there is nothing seem to be wrong there.
It seems that it doesn't have to do specifically with the GXML vi's. When I deleted them and ran the VI with just the Queue blocks it crashed as well but after a while.
From what I understand the more code I add the quicker it crashes. Any additional suggestions?