paulofelora Posted October 13, 2019 Report Share Posted October 13, 2019 (edited) I have a requirement that I thought would be SIMPLE, but can't get it to work. I have a 9205 card in a little 9174 cDAQ USB chassis. My *intended* behavior is to wait (block) at the DAQmx Trigger/Start Analog Edge on, say channel ai1, until I get a falling edge thru, say, -0.050V. So I have a little vi (that contains 2 parallel loops) that I want to sit & wait for the trigger to be satisifed. I'm doing "routine" voltage measurements in another AI loop on a different channel. I want this vi to run separately from my "routine" voltage measurements because I want the app to respond "instantly" to input voltage exceeding a limit to prevent expensive damage to load cells. I was afraid that if I used either Finite or Continuous sampling to "catch" an excessive voltage, I might miss it while I'm doing something else. Yes, yes, a cRIO real-time setup would be better for this, but this is a very cost-sensitive task... I just want to "Arm & Forget" this process until it gets triggered, whereupon it fires an event at me. SO... I'm also reading the same voltage on channel ai0 for regular-ole voltage measurements, and just jumpering them together. I did this because I read somewhere that you can't use the same channel for multiple DAQ tasks - I *thought* I would need to set up the tasks differently. {but now that think about it, the setups can be the same...}. I've set up the DAQmx task the same as shipping examples and lots of posts I've seen. I'm supplying a nice clean DC voltage to a 9205 card using a high quality HP variable power supply. Using NI-MAX, I've verified that my 9174 chassis & 9205 are working properly. THE PROBLEM - When I run it, the vi just sails right through to the end, with no error, and an empty data array out. No matter WHAT crazy voltage I give the "DAQmx Trigger.vi" (set up for Start Analog Edge), it never waits for the trigger to be satisfied, just breezes on through as if it weren't there. If I set the Sample Clock for "Finite Samples", the DAQmx Read fails with timeout - makes sense, since the trigger wasn't satisfied. What could I possibly be doing wrong with such a simple task??????? So my fundamental misunderstanding still vexes me - does the DAQmx Trigger vi not block and wait for the trigger condition to be satisfied, like the instructions state - "Configures the task to start acquiring or generating samples when an analog signal crosses the level you specify"? I stripped my requirement down to the bare essentials - see the 1st snippet, the 2nd is my actual vi. Any ideas, anybody? Edited October 13, 2019 by paulofelora wrong pictures Quote Link to comment
TomOrr0W Posted October 13, 2019 Report Share Posted October 13, 2019 I played around with the continuous and finite examples using a 9205 (mine is in a 9178 chassis, but that shouldn't matter), and analog start triggers configured on the same AI as the task's first channel seem to work for RSE continuous measurements, but not differential measurements. They also seem to work for Differential finite measurement, but trigger off the channel configured, not the differential pair. Continuous differential measurements exhibit the same behavior in NI's examples as in your code. A continuous measurement doesn't make much sense for your application, as you are only measuring once after the trigger. Once you do get triggering working, you may be able to use DAQmx connect terminals to route the AnalogComparisonEvent (you can find this if you enable advanced terminals in the I/O Name Filtering) to another card, which could then be used to drive circuits without any software timing involvement. If you change to the 9178 or 9179 chassis, one of these terminals could be the BNC connections on the chassis itself. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.