Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

PCI-1411, image captured is split

Occasionally the video captured from PCI-1411 is out of sync, image is split in the horizontal direction. When checking with Measurement and Automation, the image is still split. The solution right now is to reboot the computer.
0 Kudos
Message 1 of 9
(4,501 Views)
Hey Legardo,
 
Can you please provide more information about your setup, such as what camera you are using, what video mode you are running in, what frame size, etc... Also, you said this occasionally happens, but is there anything common about when it happens? Does it always happen when your program is running or does it just occur randomly? Are you changing anything when the image splits, or does it happen on its own? Are you using the same camera the whole time when you see the split? Have you tried a different camera with the board? Have you tried the same camera with a different 1411? After reboot, how long does it take for the image to split again? Anything other information you can provide, the better it will help us help you.
 
Usually when an image splits it has something to do with the V-sync signal. After some troubleshooting, if nothing seems to fix the issue, you might have to send the board in for repair. Let us know how troubleshooting goes and please provide more information so that we can help you further. Thanks, and have a great day.
 
Regards,
DJ L.
0 Kudos
Message 2 of 9
(4,476 Views)
I have the same problem on my PXI-1411.  I am using a modified HLRING example using CVI.  If the camera input is switched the image will start to scroll.  Has this issue been solved?  Is there a way to detect the error and refresh the display automatically?  I am using the card to test video products in a production environment.  I am constantly switching video inputs/outputs which reproduces this problem constantly.  Stoping the video acquisition and restarting it will fix the problem but it is time consuming.  I need a fix that will not increase the test time of the video products I am testing.


0 Kudos
Message 3 of 9
(4,417 Views)
I am not surprised that you have to stop and restart the acquisition when you change sources of the video signal.  Unless the two sources were synchronized, the card would take a while to resynchronize with the video signal.  Apparently the 1411 can't do that at all without restarting the video.  I wouldn't think it would be that difficult to stop and restart the acquisition, though.  I assume you know when the signal will be changed.  If not, I assume you could monitor the image and reset it when an acquisition error occurs.  You could have it automatically wait a fixed number of milliseconds before attempting to restart the acquisition, if it isn't an instantaneous switch.
 
Bruce
Bruce Ammons
Ammons Engineering
0 Kudos
Message 4 of 9
(4,408 Views)
The problem is the test fixture I am making is in a production environment.  Seconds count.  We would like to switch the video as fast as possible.  Once the image is split it does not restore on its own.  It starts to slowly scroll from top to bottom.  Is there a way to capture the video image after the video signal has stabalized after a few tens of a second after the relay closes?
0 Kudos
Message 5 of 9
(4,400 Views)

We are getting dangerously close to the limit of my hardware knowledge.  I know a lot more about software than hardware.

I assume you are controlling the relay within software.  Is this correct?  If so, I would make it a three part sequence:  Stop acquisition, change relay, start acquisition.  You don't have to reinitialize the board, so it shouldn't take much time at all.  Much less than one second, I would assume.  I haven't actually timed stopping and starting the acquisition with a 1411, though.

Bruce

Bruce Ammons
Ammons Engineering
0 Kudos
Message 6 of 9
(4,391 Views)

I tried it and I have to put a large delay in to actually make it work.  It is very time consuming.  There has to be another way.  How does the image get stored.  Does it pull in a frame of video?  Is there a way to detect errors in the frame and throw it away?  All I need the card to do is display the image on the screen, to mimick a CCTV monitor.  If there is a minor glitch during switching I don't care as long as the video stabilizes.

 

 

0 Kudos
Message 7 of 9
(4,391 Views)

This sounds more hardware specific than I can help with.

Is there any way to synchronize your devices so they have matching frame starts?

Perhaps NI can chime in with some ideas for quickly switching video signals on the 1411.

Bruce

Bruce Ammons
Ammons Engineering
0 Kudos
Message 8 of 9
(4,381 Views)
 
Hey TheSpecialist,
 
To answer your questions:
"How does the image get stored?  Does it pull in a frame of video?  Is there a way to detect errors in the frame and throw it away?" 
The image gets stored in memory, and if you are using a modified Ring Example, then the images are getting stored in the multiple buffers that you set up in the beginning of your program. The "video" gets stored in these buffers one image at a time, as soon as they are acquired from the framegrabber (1411). Then in software you use an Extract or a copy type of function to get that image from memory and then display it however you want to. There is no way to detect "errors in the frame (image)" as the framegrabber just acquires whatever image it gets from the camera. If you wanted to detect errors in the actual image, then you would have to use some kind of image processing to do that.
 
I was able to set up something similar to what you are doing in LabVIEW, and I was able to get it to lock on to the video as soon as the other camera was connected. So you need to set up in software something similar to what you are already doing. You can set it up to catch an error that occurs if the camera is not connected. Then you need to loop back and start up a new Session. You don't need to set up a new Interface, but you do need a new session. Then if you get to the Examine Buffer again, and you error out, then you need to loop back until you lock onto an image. Or you could set up in software to acquire once after an error, then stop and start a new session after that. This should still be in the milliseconds to check this. You shouldn't need a wait in there for the board to latch on to a signal if the signal is coming in correctly. You will have to play around with where you need to loop at and where you need to check for errors.
 
Have you tried to use a Grab type of acquisition instead of a ring type of acquisition, and how does that work for you? Have you looked at the low level Ring example for some things you can change around or some different functions you can use? One thing that I am unclear on is how fast are you switching from one image source to another? Again, the image acquisition board is set up to lock onto one signal while a grab is acquiring images. In order to switch to another signal, you should really stop the session that is acquiring the image, then start up a new session that has the new signal connected.
 
If you really need to go fast between two image acquisitions, then you have a couple other solutions that you might want to consider. First option would be to get two framegrabbers, which would allow you to constantly be locked onto each signal separately without ever losing any connections. Another option that you have is to GenLock your cameras (if they have that feature), so that they are synchronized in the signal that they send out. The reason your image is rolling when you switch is that it is locked onto the signal at a different frequency than the previous signal that came in. If you genlock the cameras to have the same signal timing, then when you switch between them, the framegrabber would automatically lock onto the new signal. 
 
I hope this helps with your overall system setup and with your software application. Please let me know if you have further questions or concerns. Thanks, and have a great day.
 
Regards,
DJ L.
0 Kudos
Message 9 of 9
(4,322 Views)