Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

IMAQ Image Cluster to Image Data Type problem

I have a simple VI that runs in a loop and continually displays an image in memory. It works by passing an image reference to the VI, which uses the "IMAQ Image Cluster to Image Data Type" VI to convert the numerial reference the format required by an image indicator.

The VI works fine, but in order to run it on a deployed system I created an executable activeX server version of it. Now, whenever I try to pass it a reference and run the VI I get an exception error. The error message indiates that the error occured at "node 0x184 of subVI "IMAQ Image Cluster to Image Datatype.vi"

I have no idea why the executable will not work. The VI, Executable and Library file are attached.

Thanks,
Dave
0 Kudos
Message 1 of 4
(3,710 Views)
Hi Dave -

The "IMAQ Cluster to Image Data Type" VI was created when the Image datatype was defined for LabVIEW 7.0.  It is necessary in some low-level API functions for interoperability with backward-compatible driver functions.  This VI is not exposed on the block diagram palettes in LabVIEW because end users should have no need to use it in their applications.  Can you tell me why you decided to use it instead of working directly with the Image datatype?

Since the Call Library Function node (and the function it calls) works properly when used with DLL calls that return the old image datatype (where the image reference is defined by the DLL), I can only assume that he error you're receiving is thrown when invalid reference data is input to the this node.  How are you building the image reference, and what are you using as your source data?  Again, this questioning leads me to wonder why you've chosen to go this route instead of using the Image dataype provided in newer versions of LabVIEW.
David Staab, CLA
Staff Systems Engineer
National Instruments
0 Kudos
Message 2 of 4
(3,687 Views)

I realize now my explanation was incomplete.  The reason I am using a numerical reference to the image is because I'm passing it from one VI to another via TestStand.  i.e. I snap a picture with one VI and pass the reference back to TestStand and store it in a local.  I can then use other VIs to display/process/test the image by just passing the reference to them.  It worked fine in development mode.

The problem occurs when I try and use the reference with a VI I have running in the background as an ActiveX server.  When I try and deploy the TestStand sequence and use the runtime engine instead of the development system the reference appears to be invalid.  I tried both running the server as a VI and compiling it with the same results.  I've opened a support request with NI and they are looking in to it and a possible fix/work around.

If there is no workaround, I can change the structure of the Test Sequence and vias albiet with a lot of work.  Would you know of any other way to make the two engines point to the same image memory location?

Thanks,

Dave

0 Kudos
Message 3 of 4
(3,687 Views)
Hi Cabman -

I see what you're trying to do now.  My knowledge of TestStand is minimal; I focus primarily on machine vision algorithms and IMAQ/Motion hardware.  At this point I would normally query one of our TestStand supporters, but if they're already working on the issue I wouldn't be able to give you more information you'll get from them directly.  I encourage you to follow up on this question through your service request, since you'll be talking to the right people for TestStand issues.
David Staab, CLA
Staff Systems Engineer
National Instruments
0 Kudos
Message 4 of 4
(3,671 Views)