Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

synchronise CAN and NI-DAQmx

Hi everyone!
I have been trying to synchronize CAN and NI-DAQmx channels using LABView 7.1, NI-DAQ 3.1 and Windows XP. I want to read the specified CAN list in sync with a frequency measurement from an SCXI 1126 frequency measurement module using the SCXI 1600 USB unit. There are no problems when I read the CAN channels alone and also no problems reading the frequency channel alone. However, as soon as I try to use the synchronizing building blocks in LABView called "CAN Sync Start with NI-DAQmx" and "CAN Clear with NI-DAQmx" I get an error message saying "Physical channel does not exist on this device". The channel does exist, because I can read it alone without problems. I have no idea where the error might be. I put the synchronizing part in LABview together as described in the support section on the website, so unless there is something in there that I did not understand, it should all be OK.

Any suggestions would be most helpful

Thanks
Charel Marais
0 Kudos
Message 1 of 6
(3,677 Views)
Charel,

it looks like there is a misunderstanding here. The CAN Sync Start with NI-DAQmx.vi synchronizes a DAQ plugin board and a CAN board using RTSI.
RTSI is the real-time system integration bus. The National Instruments timing bus that connects DAQ boards directly, by means of connectors on top of the boards, for precise synchronization of functions.
This bus is only available on NI plugin boards but not on an external device like the SCXI-1600.

Thus the error message doesn't mean that your measurement channel doesn't exist but that there is no RTSI availble for the SCXI-1600.
With your hardware you won't be able to do a hardware based synchronization. You can only do a software based synchronization which is much less accurate.

Regards,

Jochen Klier
National Instruments Germany
0 Kudos
Message 2 of 6
(3,666 Views)
Hello, sorry for posting in this thread, but I can't post a new message.

I will to simulate discrete default on the can network.
Per example : 1 frame missed every 9 frames.

I used a couter output for generate trigger and share it on a RTSI terminal.
I configure CAN frame object for transmit on RTSI event.

But, it can find a good solution for dynamicaly change the counter frequency with short timming (10ms).

regards,

Hm@n
0 Kudos
Message 3 of 6
(3,354 Views)

Hi Hm@n,

If I understand correctly you are using a counter output frequency task to generate a signal for your CAN bus and you want to be able to change the frequency while the task is running.  This can be accomplished using a DAQmx Channel Property Node. There is a Developer Zone Example Program that shows you how to do this. It is located here. I found this article by searching the NI website for “counter output frequency”. The example is well documented and worth looking at. Let me know if you have any questions and have a great week.

Thanks,

Nathan
NI Chief Hardware Engineer
0 Kudos
Message 4 of 6
(3,328 Views)
Hi Nathan,
 
Thank you for your answer.
You understand correctly my problem.
I already use the exampe "Change Counter Output Frequency on the Fly", but sometimes the fequency is changed too late, because the period is very short and my VI have not the time to change the frequency.
I think it's because application lauched on my opperating system have above priority than my VI, however I have changed the priority of my VI in the VI properties.
But when I change the priority of Labview in the windows task manager to high, the VI run correctly.
 
Else, I think that I have found another solution for this problem, in the example "Gen Dig Pulse Train-Continuous-Pause Trigger", but I can't test it for the moment.
 
Regards,
 
Sébastien
 
 
 
0 Kudos
Message 5 of 6
(3,311 Views)

Hi Sébastien,

The speed you can change the frequency programmatically is going to be very dependent on how fast your computer is and what Windows is doing. The fastest you can change it assuming your computer is fast enough is once per period of the output.

Pause triggering is a great way to control the output if all you need is either no signal or a set frequency. When you pause the task the output will go to the idle level setting of either high or low. When the counter task is not paused it will output the set frequency normally. You can also still change the frequency on the fly while using pause triggering to completely stop the output. Pause triggering however is not software controlled normally. Do you have a digital signal that specifies when the counter should output? If not you can use a digital output wired to the pause trigger terminal. Then you can control the pause triggering in software by writing high or low to the digital out.

Let me know if you have any questions and have a great weekend.

Thanks,

Nathan
NI Chief Hardware Engineer
0 Kudos
Message 6 of 6
(3,288 Views)