01-20-2014 11:40 AM
Dear NI forum members,
We just got a NI PXIe-1073 Chassis with a NI PXIe-6361 switched in PXI1Slot2 and a shielded connector box BNC-2111. Aim is to trigger two output signals to control a laser and a sound via Matlab Application.
Matlab version is 8.2.0.701 (R2013b) and data acquisition toolbox is 3.4. Installed is the 9.8.0 NI-DAQmx driver. We followed the tutorial example on the Matlab web-page for generating output signal. The code established a connection with a device, it creates a session and adds an output channel. Once done, the session is started in foreground but it fails with the following error massage:
NI Error -89136:
Specified route cannot be satisfied, because the hardware does not support it.
Property: DAQmx_RefClk_Src
Requested Value: /PXI1Slot2/PXI_CLK10
Based on some forums we checked the device route tab in the Automation Explorer and the PXI_CLK10 signal is almost yellow everywhere. It seems like that it expects as a reference clock the PXI_CLK10, but there is no direct route to it. On the other hand there is PXIe_CLK100 which is green.
Question is how via the Matlab session based interface one can set the Reference Clock signal? Or is there another way of solving that error? Maybe some other kind of configuration is needed?
Any tips, leads and solutions are welcomed!
Thank you in advance!
cheers,
go9kata
P.S.: the same question was added three different times to the Matlab support page, but there was no reply at all
http://www.mathworks.de/matlabcentral/answers/107494-acquire-synchronized-data-using-pxie-devices
http://www.mathworks.de/matlabcentral/answers/37134-data-acquisition-from-ni-pxie-1062q
Solved! Go to Solution.
01-23-2014 04:43 AM
Hi go9kata,
I really like to help you with your project but I need some further informations. What wiring did you make to measure your voltage?
How many PXI card did you insert into the chassis? In one of your other posts you talked about syncronization of PXI card. But for me it seems that you are only having one? Perhaps your are starting with the wrong example.
I am not familiar with the Matlab Toolbox, but very familiar with the LabVIEW DAQmx API. The steps to do and the names of the functions should be similar. I think you need to choose the right sample clock. Your error message indicated a wrong reference clock which is not necessary to perform your application.
Kind Regards,
Vanessa
AE Munich
01-24-2014 06:20 AM
Hi, Vans!
Thank you for your massage!
Our aim is to generate 3 synchonized TTL signals that will evoke other instruments trigger.
At the momnet in our NI PXIe-1073 Chassis is using just a single module - NI PXIe-6361 PXI1Slot2.
The links I gave, were not written by members of our group, just examples of similar NI Error in other users.
We noticed that the error appears only by opening an analog channel for either in/out signal. If we open a digital channel the error is not present.
Can we generate a TTL signal with the DAQmx driver?
Thank you for further guidance!
cheers,
georgi
01-28-2014 07:09 AM
Hi Georgi,
sorry for the misunderstanding of the posts.
Of course you can generate a TTL signal using the DAQmx API.
It is expected that you need to create a digital channel. The TTL signal changes between high and low. The exact value of the signal is not known. The sequence of boolean values can only be send to a digital output. The analog channel is waiting for numeric values which are not present.
How far did you get using a digital channel? Where did you get stuck?
Kind Regards
02-07-2014 07:05 AM
Hi, guys!
Here how far I got. I use now the niDAQmx C API together with MEX to incorporate it in Matlab. I found out how I can generate a TTL pulse using the clock signal:
float64 initialDelay; float64 lowTime; float64 highTime; uInt64 periodsPerTrain; float64 maxTime = (lowTime+highTime)*periodsPerTrain + 2*initialDelay; // Configure Pulse DAQmxErrChk(DAQmxCreateTask("", &taskHandle)); DAQmxErrChk(DAQmxCreateCOPulseChanTime(taskHandle, "PXI1Slot2/ctr0", "", DAQmx_Val_Seconds, DAQmx_Val_Low, initialDelay, lowTime, highTime)); // Configure Pulse Train DAQmxErrChk(DAQmxCfgImplicitTiming(taskHandle, DAQmx_Val_FiniteSamps, periodsPerTrain)); // Start Train DAQmxErrChk(DAQmxStartTask(taskHandle)); // Wait for execution DAQmxErrChk(DAQmxWaitUntilTaskDone(taskHandle, maxTime)); // Clean up DAQmxStopTask(taskHandle); DAQmxClearTask(taskHandle);
My next problem is how to generate more than one Pulse Train and that they are synchronized? What I aim for is on the plot (attached image).
Further problem is I am using the BNC2111 connector. Which are the physical channels to be used? At the moment /PXI1Slot2/ctr0 goes to PFI12/P2.4 . But If I create more signals how will I redistribute them on the connector?
Any comments and tips are welcomed!
Thank you in advance!
02-10-2014 04:47 AM
Hello all,
the last questions are also here posted and answered:
multiple TTL finite pulse trains