LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Processing 1D array of 8-byte Double for Edge Detection

Hey everyone,

 

Been a lurker on here for many years now and I usually find the answers to my questions but this time I've hit a dead end. 

 

I have a .dll pulling data from a MicroEpsilon OptoNCDT1420 senor but it puts out a 1D array of 8-byte double that is an Array Data Pointer. 

This is my first time dealing with a .dll and that too something that I have not built from scratch. So, basically, my first foray into advanced LabVIEW programs. 

 

I am hoping to run basic edge detection with an indicator in a single VI. It can be based on level change or, even better, detecting above and below a user selectable threshold using the derivative of the input values. PS, the output of the sensor is the amplitude from the bottom face of the sensor so I will be eventually subtracting this value from the max range to get the actual height of the object but that isn't my priority right now.

 

Any help is greatly appreciated!!!!

0 Kudos
Message 1 of 2
(2,667 Views)

 

Have you looked at the Transition Measurements VI? If you were able to convert that double array into a waveform you'd be able to use this VI to detect the level change and identifying the transition duration, slope, and pre/post transition waveforms. You can also make similar measurements with the Timing and Transition Measurements Express VI.

 

If you want to go with the derivative method that you mentioned, it may be worth looking into the Derivative x(t) Point by Point function or the regular Derivative x(t) function. The later would probably be best since you're returning an array of values. From there it's just a matter of iterating through the returned array of calculated dX/dt values and comparing with your user-defined threshold.

0 Kudos
Message 2 of 2
(2,554 Views)