08-01-2013 04:14 PM
Hi,
We have an application using FPGA (FIFO-DMA, cRIO 9014 , FPGA 9112) that acquires signals from 11 channels on a continuous way. The data are streaming at RT level to a database (MySQL). We have tested different configurations of sampling rate and FIFO but sooner or later, we always end up with the same error "Waiting for Real-Time target (RT CompactRIO target) to respond".
We are not using Labview connectivity tools, instead we are using functions that found here at the forums for connecting directly to MySQL (NO odbc).
¿Has anyone used databases to record the acquired signals with cRIO FPGA (DMA FIFO)?
Thank you. Regards
08-01-2013 08:39 PM
Use the distributed system manager to monitor your remote system's performance. You are probably hitting the CPU at 100%
08-02-2013 08:40 AM
for(imstuck) thank you for your time.
We also wanted to know if anyone has experience with this configuration, FPGA and Databases. Now, we are not sure if we can use this combination.
On one side a low speed for recording in the database and on the other hand the speed of acquisition of the FPGA. We have tried different sample rates, different sizes for the FIFO in the FPGA and the HOST, different read speeds but in the end, always that problem comes up.
Regards
08-02-2013 10:16 AM - edited 08-02-2013 10:18 AM
@amflores wrote:
@GregFreeman thank you for your time.
We also wanted to know if anyone has experience with this configuration, FPGA and Databases. Now, we are not sure if we can use this combination.
On one side a low speed for recording in the database and on the other hand the speed of acquisition of the FPGA. We have tried different sample rates, different sizes for the FIFO in the FPGA and the HOST, different read speeds but in the end, always that problem comes up.
Regards
I have not done that specifically. But, the troubleshooting is the same nonetheless. Unless you can narrow down what the problem is, it is useless to blindly try different things. That error comes up in the development environment, when you lose communication with the controller, most often because the controller is too busy and your debugging takes lower priority when it comes to RT systems.
My suggestion is to look at the distributed system manager. Determine if your memory and CPU usage are high. Then start disabling parts of the code to determine where the bottleneck is. Once you have determined that, you can play with your code to optimize it. For instance, you're assuming the data to the database is the problem. What if that issue is being caused because you have a tight loop with no wait function in it? And, because that tight loop is taking up all of your CPU, your loop to write to the database won't get a chance to execute. In this case, troubleshooting the streaming to the DB itself is quite useless.
My next suggestion, post the code in question to get feedback.
08-02-2013 10:46 AM
for(imstuck) thanks again
At this time I am going to do tests to apply your advices. As soon as I have news I will write here.
Greetings!