LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Capture data at set RPM intervals

Thank you, I'll give that a try.

Ron

0 Kudos
Message 11 of 24
(793 Views)

Forgive my total lack of usage of the Q&R function.  I have used many case structure arguments and have used them well, but I am at a loss for putting the Q&R function in one, since it looks like its main function is to calculate the Quotient and the Remainder.  If someone could supply a simple snippet of a case structure with the speed variable input, a seven cell array input and the coding to check the rpm, see if it has dropped 20 rpm.  If not remain.  If it has, pass the data through to a collecting array to eventually write to a file the rpm values plus the array values once the rpm has dropped below 100 rpm.  This would be greatly appreciated.  BTW, my application to look at two pair of x y proximity probes (non-contact probes that read shaft displacement), save the slow speed data and then vectorally subtract it from the at speed data is nearing completion, with the great help of this board.  The only thing left is to save the coastdown magnitude and phase plus the speed into an array that can then be recalled and plotted on a Bode plot (magnitude and phase vs rpm), or a polar diagram (magnitude and phase plotted on a polar plot).  Again, thanks to Bob Schor who came up with the code to put the trigger 'bullets' on the incoming time waveforms.

Ron

0 Kudos
Message 12 of 24
(785 Views)

Screen Dump of Orbits code to date.....

0 Kudos
Message 13 of 24
(783 Views)

I know you folks just love snippets.  Here is my try at creating a vi that simulates what I want.  I can slide the frequency from 3600 to 0 and it works correctly at the logic to stop the vi.  However, I can not figure out how to initialize the rpm and then monitor it as it decreases and at every 50 rpm decrement, save a randomly generated number to the array.

Regards,

Ron

0 Kudos
Message 14 of 24
(769 Views)

Hi Ron,

 

what do you want to achieve with this snippet?

Why do you run the FOR loop 180 times? The value in the shift register doesn't change after the 2nd iteration...

The result of the comparison with 50 is never true.

Why do you (try to) build an array of random values, just to prepend the slide value? 

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 15 of 24
(765 Views)

No one believed me when I said I didn't know what the heck I was doing with this attempt!  The 180 for step is because I want to save 180 'sets' of data during the coastdown from 3600 rpm to 150 rpm.  Yes, I know!  I can't figure out how to properly decrement the rpm, check it against the last rpm value.  If the rpm has changed by 20, then saved the data (for my example, I used a random number), as well as the rpm at which it was saved.  Then continue to watch the rpm and repeat every 20 rpm decrement until the rpm reaches 150.  At this point, stop and save the array.

Sorry, that is another mistake in my snippet.  I want to save data every 20 rpm from 3600 to 150, not 50.

0 Kudos
Message 16 of 24
(760 Views)

OK, here is my latest attempt.  The decrement works fine.  It decreases by 10 RPM for each iteration through the shift registers.  What I want for my logic to save the data is to wait until the RPM has decreased 50 RPM from the previous save and then save the data again.  So from 900 down to 150 RPM, there should be 15 sets of data.  I KNOW my logic isn't correct.  It doesn't look at the present rpm and compare it to the last RPM.   All attempts to figure out how to do this have ended up in failure.  Thank you for looking.

0 Kudos
Message 17 of 24
(741 Views)

Hi Cory,

 

What I want for my logic to save the data is to wait until the RPM has decreased 50 RPM from the previous save and then save the data again. 

- When you want to save at some condition, then the save operation has to be placed inside a case structure. Yours isn't…

- When you want to save, when the rpm has decreased by 50 since last save operation, then you need to store the rpm value of the last save operation in a shift register and compare with it…

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 18 of 24
(737 Views)

Hi again.

I am revisiting this problem and trying to finish my application.  My biggest problem is writing this vi to work with a seven channel DAQ front end, which I do not have,  My company has four installations and I am trying to get this out to them.  I already have the code finished to take prox probe data into the ACC modules and one tach module.  The vi already takes the time data and creates the time waveforms with the tach represented by a red dot on the waveform and another green dot for the maximum vibration.  Unfiltered and filtered orbits are complete.  There is also a slow roll capture which is then used to compensate the 'at speed' orbits and plots both.

The last portion of this vi is for the user to start the data capture and have it wait on a speed drop.  Then the power to the motor is turned off.  The vi should watch the output of the tach and based on a drop of 20 rpm, write to an array the 2d values of the magnitudes and phases of all four prox probes and also save the rpm reading from the the tach at that time.  This process is repeated until the speed reaches 200 rpm, at which time the vi stops acquiring data and writes the array off to a TDS file.

The vi will then read the data back from the TDS file, correct each set of data by compensating for the slow roll runout magnitude and phase and then plot the data as a Bode plot (magnitude and phase over RPM) and a Polar Diagram (magnitude and phase with RPM tags) for both sets of probes (X1 and X2, Y1 and Y2).

Bode and Polar Diagrams.jpg

 

0 Kudos
Message 19 of 24
(646 Views)

Hi Coryman,

 


@Coryman wrote:

My biggest problem is writing this vi to work with a seven channel DAQ front end, which I do not have,  My company has four installations and I am trying to get this out to them.


What is a "seven channel DAQ front end"?

 


@Coryman wrote:

The last portion of this vi is for the user to start the data capture and have it wait on a speed drop.  Then the power to the motor is turned off.  The vi should watch the output of the tach and based on a drop of 20 rpm, write to an array the 2d values of the magnitudes and phases of all four prox probes and also save the rpm reading from the the tach at that time.  This process is repeated until the speed reaches 200 rpm, at which time the vi stops acquiring data and writes the array off to a TDS file.


Has anything changed in the last year? My suggestions are still valid…

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 20 of 24
(634 Views)