Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

Insufficient transfer engine resources error

Hello,
We have 2 cameras on our test station, one to acquire movies of the test case running using "grab acquire" and saving an avi frame, and the other to periodically snap images. We are having a problem with an error we get when trying to snap an image with one camera, while acquiring video with another. We get:

NI-IMAQdx: (Hex 0xBFF69018) Insufficient transfer engine resources.

-1074360296; User-defined error code.

The 2 firewire cameras are both connected to the PC, one on the front and one on the back (HP xw8400). Our guess is that the firewire bus is shared between the two cameras, and that getting a seperate firewire card might fix the problem (so that they are not sharing bandwidth). Could this be the cause? Could someone please shed more light on the nature of this error message?

Thanks
Message 1 of 15
(12,554 Views)

Hello David,

 

 

 

 

You are correct that both firewire cameras are sharing the card’s resources.  You will need to see what bandwidth your firewire board can handle.  Our IEEE 1394 interface (PCI-8252) can handle up to 400 Mb/s of data transfer.  Depending on the combined bandwidth of your cameras, you are probably exceeding this limit.  Daniel has posted a possible work around here regarding packet size.    If you are looking into purchasing a second firewire card, you will probably also need to check if you are limited by the PCI bus rate which is roughly 528MB/s.   I hope this helps.

 

Vu D

 

 

 
Message 2 of 15
(12,538 Views)
Thanks for the reply.

Funny thing is, when we limit the bandwidth of each camera to 200mb/s each, we still get the error. Another funny thing, once a video acquisition has begun, merely stopping acquisition does not get rid of the error when trying to snap with the other camera, the IO session has to be completely closed. But, if the IO session for the movie camera has been opened, but no acquisition has taken place, there is no error when snapping with the other camera. So it seems once resources have been allocated for the movie camera, no matter what the speed, it needs to be completely closed in order to be able to snap with the other camera again.

We have PCI express slots available, we are probably going to pick up a PCIe card and give it a try. I will post our results here.

Any other insights/work arounds are very welcome.

Thank you.
David Jenkinson
0 Kudos
Message 3 of 15
(12,527 Views)
Update, I have tried the packet size setting suggested in the link provided here, and it works now. I limited them both to 2048, rather than the default 4096. Thanks for the tip!

Message Edited by david_jenkinson on 01-30-2007 02:10 PM

Message 4 of 15
(12,523 Views)
David

Here is small table of the maximum packet size based on the camera speed:

Camera Speed - Maximum cumulative packet size
100 Mbps - 1024 bytes
200 Mbps - 2048 bytes
400 Mbps - 4096 bytes
800 Mbps - 8192 bytes

Run the attached LabVIEW 7.1 application to simulate FireWire resource usage on the bus:

Hope this helps,

Johann
Message 5 of 15
(12,461 Views)
I am using CVS 1456.
I tried to connect two cameras using the necessary function grab and made setups in MAX so that the addition of the packages did not exceed 4096.

However the error “insufficient to transfer engine resources” continues appearing.

Then I reduced so that the addition of the packages did not exceed 1024, and then functioned.
However the transferencia tax was very low and my program did not obtain to read all the images that I need.

What I must make to function adequately?
Somepeople has some idea?

Greetings
0 Kudos
Message 6 of 15
(12,213 Views)
If your cameras function when you do not exceed 1024 bytes per frame, then it sounds like you have the cameras set to run at 100Mbps. Ensure that both cameras are set to run at 400Mbps. The speed is configured in the acquisition attributes tab in MAX. If both cameras are set to 400Mbps, you should be able set each camera to run at 2048 bytes per frame.

Hope this helps,

JohannS
Message 7 of 15
(12,190 Views)
Sorry Johann,
I believe that I was not clearly
But I already tried to make this.
I already configured both camera that the addition of the packages did not exceed 4096 bytes, but I did not function.
In MAX already I modified some parametros, but it only functioned when the addition is below of 1024 bytes.

Also I made the configuration through labVIEW and in the same way the error “insufficient you transfer engine resources” appears.

I am sending some images gotten in printscrem of the screen, and the software that I prepared to make the tests.

Greetings
Eduardo
Download All
0 Kudos
Message 8 of 15
(12,179 Views)
BTW, our final solution in the end was to buy another dedicated FW adaptor for our second camera, so that we could leave the default 4096 intact and get maximum throughput.

David Jenkinson
0 Kudos
Message 9 of 15
(12,171 Views)
Eduardo,

Looking at your MAX screenshots I see the following configuration:

Camera:              Basler                  Sony
Speed:                 200 Mbps               200 Mbps
Packet Size:        2048 bytes            1536 bytes

As I mentioned before in this thread, the maximum cumulative packet size for 200 Mbps is 2048 bytes. That is 2048 bytes for ALL cameras. That means that when both cameras are configured for 200Mbps, the Basler camera consumes 2048 bytes and the Sony consumes 1536 bytes. At 200 Mbps the total bandwidth (2048 bytes + 1536 bytes = 3584 bytes) exceeds the maximum bandwidth (2048 bytes). The error is expected.

To fix this: Switch both cameras' speed to 400Mbps. At 400Mbps, the total bandwidth (3584 bytes) will not exceed the maximum bandwidth (4096 bytes).

Hope this helps,

JohannS


Message Edited by JohannS on 09-04-2007 02:40 PM

Message 10 of 15
(12,172 Views)