07-30-2012 11:13 AM
Hello again!
I have another question about triggering.
I want to trigger a signal belonging to the amplitude of a signal. But I am not sure how such a triggering could be implemented.
I tried to use the RMS value. Here is a short example:
This is dificult because I cannot trigger using a desired voltage lvl because of the oscillating waveform. Relais00 should only open when the amplitude is lower than 3V and close if the amplitude is higher than 3V. A combitrigger detects only the value of the actual voltage and not the amplitude.
The solution above is very slow, and i do not use the other values given from E-Tech00. When I change the amplitude from 4V to 2V it takes a long time till the relay reacts. The Diagramm shows the 2V waveform instead of the 4V waveform. Is there a better way to solve this task?
Thanks so much and have a nice day!
Best Regards,
Hilby
07-31-2012 06:02 AM
Please attach the worksheet, and more detailed information:
I do not understand, what you want to do.
I cannot see the data that is generated.
07-31-2012 12:03 PM
Hello HW!
Thank you for your reply. I do not have the worksheet at the moment. But I made a picture of a sample signal where you can see what I want to do.
As you can see I want to trigger the signal. When the amplitude of the signal is higher than 3V the Trigger should start, and when it is lower than 3V it should immediately stop. I could use a normal trigger where the start condition is start when the level is higher than 3.01V for example. But how can I stop the trigger? I cannot use a normal trigger with the stop condition stop when the signal is lower then 3V because the signal is oscillating.
Hope this helps to understand the issue.
Best regards
Hilby
08-01-2012 02:46 AM
Try changing the value for the trigger to an absolute value. Would that work?
08-01-2012 04:52 AM
I do not know if I understand what you mean. But using the absolute value of the signal does not work because the slopes of the signal are not ideal so that the gradient is not unlimited. Using the absolute value would look like this:
You can see, if I trigger based on a voltage level, for example 3.01V, the trigger would start correctly, but if I have the same stop condition, the trigger would stop as soon as the signal is below 3.01 V what happens after the first half period of the 4V signal. That happens because the voltage falls down to 0V between the three 4V maximums.
Best way in my opinion would be to control the maximum of the last half period. If the maximum of the last half period would be higher than 3V than the trigger should start, otherwise it should stop. Is that possible?
Thanks a lot and Best regards.
Hilby
08-01-2012 05:42 AM - edited 08-01-2012 05:43 AM
Hmm, don't know if this works, just an idea:
You can use a Time Delay-module (delay by ~3 values). If you substract the "current value" from the "delayed value", and the result equals 0, the "current value" is on a "plateau", not on a "slope". If this is the case, look at the "current value" again: if it's lower than 3.0, it's time to stop the trigger.
08-01-2012 07:12 AM
Okay, I will try that tomorrow. Sounds a bit complicated, but I will see if I can use that.
I will give you a feedback if it works.
08-02-2012 04:22 AM
Hallo again!
I am a bit frustrated and I still need some help.
I just had written another topic:
http://forums.ni.com/t5/DASYLab/rms-value-trigger/td-p/2106188
I had some Problems with the use of circular buffers. The problem described before belongs to the problem with the circular buffer, too.
As you can see I have a nearly square-wave signal. I would like to have a start signal as soon as the signal raises above 3V. Then a counter should start for a period of time (2 hours). In this time the circular buffer should be filled with data. After that 2 hours the data have to be written in a file.
Than after the two hours the condition have to be controlled again. It is not interesting what happens in between of the two hours.
So how can I delay the trigger signal? I tried to use a time delay module, but than the whole process was delayed and I got an errormessage. (One of the modules is blocking the datatransfer or something like that, the message is in german.) And how can I ignore the triggerconditions during the data collection time? Is there a possibility to use a delayed action or something like that?
I hope my explanation is good enough for you to unde3rstand my problems.
Thank you for all your help and best regards.
Hilby
08-03-2012 02:52 AM
Good morning!
I have my solution now. It is a time based solution and I stop the trigger after a defined period of time.
I will put my solution at the end of this post.
Have a nice day.
Best regards, Hilby