06-28-2020 01:12 PM
I am using PCI 6259 card and this .vi to generate analog voltage which is connected to the input of power amplifier. The output of amplifier is connected to the device under test for which I need to measure simultaneously two voltages, using the same .vi. Generation and acquisition is working properly, but one problem exists. Unwanted pulses appear in measured voltage, as it is shown in the figure. I generate AC voltage below 1 V at 50 Hz. Measured voltages should be also AC, without pulses, below 1 V at first channel and around 1 V or several volts at second channel. I suppose that the problem appears because of bad timing of voltage generation because it does not execute in the same way each time. For example, if I want to generate only one period of AC voltage, it would be the best to start generation with 0 V and finish with 0 V in each step. My opinion now is that this .vi begins and finishes generation each time at different level. This produces sudden drops and rises in the output voltage of amplifier.
In the previous setup I was using cDAQ with NI 9263 and NI 9205 to perform the same measurements. Additional analog voltage (rectangular voltage pulse) was generated and used as an analog trigger for another analog voltage generated and two analog voltages measured. Everything worked perfectly.
Therefore, I would need to set a trigger in this .vi, but I want to do it in different way. I do not want to use another analog voltage as trigger in order to reduce number of outputs and inputs used. I know that PCI 6295 have various options for signal triggering, but I am not familiar with its settings. I have tried many available solutions besides this one, but without success. Currently, I am thinking on usage of PFI or APFI as analog triggers, but still without solution.
I would appreciate a lot any help with this problem.
06-28-2020 07:29 PM - edited 06-28-2020 07:31 PM
I don't understand the full needs of the app in terms of waveforms to be generated, durations, starting/ending points, etc.
But here's one small step forward that'll achieve hardware sync between your AO and AI tasks. You should start seeing *consistent* behavior, which is at least a step closer to making it show the *correct* behavior.
I made the very minimal mods to accomplish sync between the tasks, i.e., the first sample captured by AI will occur at the same time as the first sample generated by AO.
-Kevin P
06-29-2020 01:28 AM
Hi Kevin,
Thank you on fast reply.
Yes, this improved sync between AO and AI tasks and behavior is consistent now. However, there is still the problem with pulses. Can be that related to the configuration of AO, which are differential, and AI, which is RSE?
Regards,
Branko
06-29-2020 07:57 AM
I don't think I'm equipped to speculate about the cause of those "pulses" you see. About all I can try to say as a layman is that the signal shows gentle, smooth curvature with a well-behaved shape and a fairly large amplitude. These kinds of things suggest a real response phenomenon (for reasons I don't have any insight about) rather than something like electrical noise or intermittent connection problems.
It sure wouldn't hurt though to double check your terminal configuration settings and your physical loopback wiring for AO and AI. You might try this trick over here to have your AI task read AO via an internal signal path that doesn't use your external physical wiring.
-Kevin P
06-29-2020 04:49 PM
Thank you Kevin. Excellent trick!
I applied it. The result, a half and a quarter of a period of generates signal, is presented in figures in the attachment. Undesired deviation can be seen at the beginning of the signal. The last value is -1 V in the first step (it is not shown in figures, but it is so) and the first value is not -1 V in next step, and this repeats each step. Since such distorted voltage is connected to the input of the amplifier, amplified voltage contains those peaks.
I did not expected such an issue. How to deal with it? Does it comes from the hardware or from the software?
06-30-2020 08:30 AM
No real guesses because I know so little about your equipment and setup.
FWIW, the transient has the look of some kind of step response. Maybe that gives you some clue where to investigate?
-Kevin P
07-01-2020 09:34 AM
I have disconnected everything from the connector block, but the deviation is still present when I measure it with "_ao0_vs_aognd". However, when I connect the output directly to the input it is not present in measured voltage. So, this is not related to the setup. Can it be related to the reference points ("grounds"), the chassis of connector block or the cable? How to check these things correctly?
07-01-2020 12:45 PM
Honestly, I just don't have the depth of knowledge in electrical engineering to be able to comment with confident accuracy. I'd also advise that you do some of your troubleshooting with MAX test panels or shipping examples and also describe very comprehensively the entire sequence of steps involved in the tests you run and the observations you make.
Using those simple, standardized sources for I/O will let someone more knowledgeable than I at the EE stuff to replicate your tests and observations. Good luck!
-Kevin P
07-06-2020 01:36 PM
Thank you, Kevin.
I have investigate again which are known problems with voltage generation. It seems my problem is related to glitches, according to the user manual for PCI 6259 card. However, they are much greater (several hundreds of mV) than it is stated (about 10 mV). Maybe someone with larger experience with glitches can help. I will check the forum. Maybe it would be needed to create new post.
07-23-2020 09:04 AM
Hi Kevin,
I have performed some tests with your application and the results are in the attachment. The problem appears when I use your app for continuous generation of voltage. When I run your code continuously or when I put it in a While Loop I get discontinuous signal generated. I need to run it continuously because generated voltage should change after each iteration in order to have controlled shape of measured signal.
Please, check the images for one iteration, five iteration and ten iteration in a For Loop. There is a pause corresponding to the number of iterations. Similar situation is when acquisition mode is changed from Continuous to Finite.
Please, look at these images and try to suggest some improvement in the code. Also, I kindly ask others as well to help me with this.
Thank you very much.
Branko