09-29-2016 04:45 AM
Hello Everybody,
I got a question regarding MC DAQ read vi and MC Download vi.
I need to read data in two different CAN interfaces with the MC DAQ read vi (in polling mode), so I create two loops in parallel. In theo, two loop should be runing in parallel. But after experiment, the time of loop 1 exucution doubled when I actived the loop 2. That means something inside prevents it to be runing in parallel.
The issue is this vi is protected by password, so I cant open its diagram.
Is there anyone know what prevents it to runing in parallel? Or how to open its diagram?
Regards ,
Cheng
Solved! Go to Solution.
09-30-2016 09:22 AM
Hello CCXu,
Have you tried to run these loops in two separated VIs ? Just in order to see if the same behaviour occurs.
Best regards,
Samir
09-30-2016 01:03 PM - edited 09-30-2016 01:05 PM
Opening it's diagram won't help. In this case the VI is already set to reentrant (pre allocate) so calling the subVI isn't the blocking call, both parallel loops will go into the subVI at the same time. The problem is that in that subVI there is a DLL call to the DLL niemclv.dll installed in your System32 folder. This is the DLL that does all the heavy lifting for the toolkit reading functions. If the execution time really does double like you say, then that DLL is not setup to have multiple parallel calls to it, and that is what is blocking this from working. There is nothing that can be done to remedy this short of NI releasing a new version of the toolkit to support this.
I'm not a fan of these toolkit limitations, when they are basically a software layer over CAN, which is why I made an idea on the idea exchange to make this toolkit (and another CAN one) written in pure G, so that issues like this can be fixed by the developer.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord