04-07-2009 09:39 AM
May a RT hosted VI and a PC hosted VI access same FPGA reference at same time?
If the RT is restarted, asy from a power failure, how should I deal with the old reference to the FPGA and pass the new FPGA reference to the PC hosted VI?
Any suggestions are appreciated.
04-08-2009 08:37 AM
mgroom,
What hardware platform are you using? Are you using cRIO and accessing the FPGA VI from the PC and from the RT controller?
I am not sure off the top of my head if you can do both at once, but I can't think of a good reason I would recommend someone do that.
Can you give some detail about your application and what you are trying to accomplish?
thanks,
Kurt
04-08-2009 10:16 AM
04-09-2009 09:22 AM
04-09-2009 07:06 PM
So as I mentioned, I have tried to have both targets access the FPGA at the same time, and it seemed to work alright once both targets actually connected. However, occasionally there were issues with the host trying to connect after the RT already had. Essentially, you might be able to do things this way, but this is not how the FPGA was meant to be used.
In general, the FPGA should only be opened by either the RT or the Host. If both targets require data from the FPGA, then the RT target should gather the data, and send the appropriate data back to the Host. I would highly recommend using this architecture for your application because many unforseen problems may occur otherwise. However if you would like to stick with what you have, the only way I can think of getting a new FPGA reference to the PC would be for it to close its current reference and open a new one once the system was back up again. You would need to set-up a system where the PC is notified when the controller reboots, and then goes into a reconnection routine and opens a new reference. Again I do not recommend this, but it might be a solution for you.
04-10-2009 09:05 AM
04-10-2009 11:51 AM
Hey mgroom,
It sounds like your I/O rate requirements are not very high. If you are using LabVIEW Real-Time 8.6, your application architecture could be simplified quite a bit if you used CompactRIO Scan Mode (http://zone.ni.com/devzone/cda/tut/p/id/7338)
It can easily handle I/O rates in the 100Hz range, without you having to program the FPGA. Also, the scan engine automatically pulished all I/O to the network so that you can read/write to I/O from the host application on your Windows machine.
Since you are using a 9072 you will have to take one special step to get scan mode running on your cRIO, but you only have to do it once. See this KB: http://digital.ni.com/public.nsf/allkb/122E971F52FD081A86257500007A046C
Definitely worth looking into if you have 8.6.
Kurt
04-10-2009 04:17 PM
Hello mgroom,
I wanted to let you know that as far as memory is concerned, you could try putting a smaller subset of the drivers on your controller. You could find some drivers that you aren't using in your application and remove them from the controller to free up space. Also if you are doing any logging, you might want to look into our 9802. This could save the rest of the space on the C drive for your application. Also, you could always try to make your program smaller. If none of this is possible, then your only option may be to upgrade controllers. Hope this helps!
04-10-2009 05:07 PM
Thanks for your suggestions Burt.
Scan Mode sounds like the best way to go.
Thanks again,
Merrill