Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

Sychronized start using trigger between 4 boards

Greetings,

I have a fairly complex system that I need some help on.  I am trying to do digital I/O, analog output, and analog input all with different sample rates but starting at the same time. For example, I want to use the following setup (All cards are connected through a RTSI bus):

-- NI 6071E -- dev1 -- Analog input -- I set this device up using its own sample clock (I left the source unwired).  I want to use this device as the trigger for all the others to start.

-- Two NI 6713 AO cards -- dev 3 and dev4 - each with 8 output channels . I have set these up to use different a sample clock than the 6071, using the same rate for both, although I do not have them using the same source for the sample clocks (right now I have the "source" terminal unwired on the "Sample Clock" blocks).  I think I should probably change this, yes? Also, I have set this up to trigger on dev1/ai/StartTrigger and I get no errors when running.

-- NI 6534 DIO - dev5 -- 8 channels output (port0), 2 channels input (port2), using the same sample clock.  I followed one of the examples and used PFI2 as the source for the output task sample clock and PFI3 for the input task sample clock, routed together through RTSI0 using the block "DAQmx connect terminals." This part works correctly. However, when I try to set up the two tasks (input/output) to use a digital start trigger from source Dev1/ai/StartTrigger, I get Error -215006 -- undefined error.  I have tried exporting Dev1/ai/StartTrigger to a channel on Dev1/RTSI (I've tried multiple) and setting up the trigger source to be the same, but then I get error 89137 -- resources currently in use by another route.  The same thing happens if I try to export the signal to a channel on Dev5/RTSI.

My understanding was that I could set up the start trigger in the configuration, start all the tasks in order using error signal routing, keeping the Analog Input task last so the start trigger would trigger all the other events. My code is not easily posted for review because it's broken up into functions and spread across a few VIs.

I apologize if this is hard to understand. Please ask questions if clarification is needed. I appreciate any help!

Kevin

0 Kudos
Message 1 of 4
(3,435 Views)
Any ideas out there?
0 Kudos
Message 2 of 4
(3,421 Views)
Hi Kevin,

When synchronizing multiple M Series devices, you need to share two signals:
  1. the clock
  2. the start trigger
So far, it appears you've been trying to share the start trigger and are happy to use independent clocks for your boards. Is that what you want in the end, or would you prefer to share the clocks as well?

Before we get too deep into the details, I'd like for you to explain a bit more about your set-up:
  1. In MAX, does your RTSI cable have all of your boards configured as present?
  2. Which example did you use to share sample clocks for DI and DO tasks?
  3. Can you get the -215006 error to happen for just the DI or DO half, or only when both DI and DO tasks use Dev1/ai/StartTrigger?
  4. I realize that your code will be difficult to share, but if you could provide screen-shots of the configuration portions, then I may be able to make some more suggestions. I want to see the Create Channel, Timing, and Trigger VIs for each of your tasks.
Joe Friedchicken
NI Configuration Based Software
Get with your fellow OS users
[ Linux ] [ macOS ]
Principal Software Engineer :: Configuration Based Software
Senior Software Engineer :: Multifunction Instruments Applications Group (until May 2018)
Software Engineer :: Measurements RLP Group (until Mar 2014)
Applications Engineer :: High Speed Product Group (until Sep 2008)
0 Kudos
Message 3 of 4
(3,411 Views)
Hi Joe,

Thanks for the reply. I was running out of ideas of what to try, and unsure why I was getting the errors I observed.  After gaining some confidence that my code was correct, I went into the MAX and reset the device.  It turned out that this solved my problems.  I am not the only user of the system, and one of the other projects with it uses the Traditional DAQ drivers. I think what was happening was some sort of residual allocating that needed to be cleared before I could share lines with the 6534.

So for now, everything seems to be working correctly.  I will definetely post again if I run into other errors.  If you would still like to see my code, let me know.

Thanks again,

Kevin
0 Kudos
Message 4 of 4
(3,406 Views)