Has anyone calculated how much latency there is when comunicating with the NI 9146? Any info on how busy or how much traffic there needs to be before the latency starts to change? I know there will be some just because of the "network". But do I actualy need to worry about it...
I jumped in and started setting up one of the DO channels on the NI 9146 to create a "sync clock". Being that I have that almost done I may just use it but did I realy need it and on the flip side, do I need to change how I pass data due to latency.
My current setup is on an isolated netowrk (using a Gigabit switch) to connect a TCP-2215 Touch panel, a CVS-1457RT, and a NI 9146 Ethernet RIO. Inplace of the TCP-2215 I have a Laptop for development.
I am planning on using the CVS system to identify the objects to eject and send the NI 9146 the location and Time detected and let the NI 9146 handle the "ejectors" by adding a time delay to the info the CVS data to allow the object to align with the ejector before ejecting the object. (Yes this is a sorting system...)
Thought I would try the comunity before I call NI on Monday...
Thank you for the info,
Here is a pretty nice white paper that describes some of the approximate latencies and max bandwidth for different bus types in the “What Kind of Performance Do I Need” section:
Although this provides some concrete numbers for a Gigabit Ethernet bus it should be noted that there are many factors that can affect the latency of your specific network topology and the most accurate number may come from benchmarking your specific system as it is now.
I noticed that you said you were using a Gigabit switch for your configuration, how do you have all the devices connected?
Are you using the CVS-1457RT Host VI to communicate with the NI 9146 FPGA VI?
Thanks for the reply... I have been trying to finish this project for a while now... Thought I would post an update.
I changed gears, I have added a sync clock signal that is generated from the NI 9146 and being read on the CVS. That fixed my timing problem....
Right now I have a ticket open and Kevin Wenner has been helping me trouble shoot the program. If you want to take a look at the code take a look at ticket # 7410211.
I will be uploading code again tonight but I think I am going to scrap the FPGA code on the NI 9146 and start over. From the testing I did over the weekend so far, I think there are at least 2 bugs that are going to take more time to find then it will be to re-write / re-think it from the ground up... now that I know what what needs passed from the CVS to the FPGA.
And yes, I am using the CVS Host VI to comunicate with the NI 9146 FPGA VI.
Know how to setup a custom data type for the FIFO to talk from the host to the FPGA? Everything I have tried has the custom data type greayed out...
When setting up a FIFO that communicates between the host VI and the FPGA VI you still must use the supported FPGA data types. However, you can configure the FIFO to use a custom control that you have created as the data type. Keep in mind that this custom control still must use the supported data types, whether it is scalar, array, or cluster of the supported data types.
I think the following resource will offer you more insight into this.
Using Custom Data Types with FIFO and Memory (FPGA Module):
I hope this helps!
Yes, I found that link too. But I can't figure out how to select it... maybe I am missing something.
RT click the FPGA Target -> New -> FIFO
Change Type to Host to Target - DMA
Select Data Type Category
Try to select Data Type in the drop down box.
Custom Control is greyed out.
When I Leave the Type as Target-Scoped the Custom Control is avalible and when I select it it pop-up whth the selection window.
Originally I was going to use a cluster with a U16 and an array of 15 U32 elements, but now I can use a 2 U16 and a U32.
Are trying to configure a DMA FIFO? DMA and peer to peer FIFOs do not support custom data types. This is most likely why the Custom Control is greyed out.