From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Wrong function of MC DAQ Read for 4 ECUs on a same CAN bus

Solved!
Go to solution

Hi,

I have a problem with reading of measurements from 4 ECUs connected to one CAN bus. The HW is NI PXI-8512/2 CAN card and SW is ECU M&C Toolkit 2015, LabView 2015 SP1 and NI-XNET 15.5. ECUs has same CAN ID but different Station Address (0xAD01 to 0xAD04). In a LabView I use several functions from ECU M&C Toolkit for open an A2L file, set termination on CAN port, set unique CCP Station Addresses and get all available Measurement Names. At first I have tested function MC DAQ Read (NCh 1Samp 1D Double)in a while loop with previous MC DAQ Initialize with some of available measurements (6 measurements with live data) and at the end of communication MC DAQ Clear. The reading is working OK but some times for one or more ECUs MC DAQ Read return wrong data and some times function MC DAQ Read started to return always last reading data with error out = false and number of samples returned = 1. Also the attribute DAQ Last Frame Age is varying same as for another ECUs with actual good communication. Then I have to restart communication by MC DAQ Clear and MC DAQ Initialize again. I have also rewrite and test MC Measurement Read (1Ch 1Sample) in a for loop but with a similar behaviour (only some times returned wrong data). I have already checked the CAN bus by an osciloscope and CAN High a Low signals are sharp without noise and peaks. Termination on both ends is also OK. I have run NI-XNET Bus Monitor and on a panel Statistics there are no errors and low bus load. I run utility CCP/XCP Spy and catch communication during wrong returned data and possible reason for always returned last reading data. There are moments when ECU randomly sends two responds with same command counter (last column). E.g. line 505390 and after a few rows (505430) there is a last communication with AD02 and AD03. There is a same behaviour if i changed timing for reading to less frequently. Why there is no communication with AD02 and AD03 and MC DAQ Read still returns last reading data with no signalized error? What is a reason for second response (also OK) from ECU?

Does anybody know the answers for this behaviour and how to solve it?

Thanks
Petr

0 Kudos
Message 1 of 2
(2,628 Views)
Solution
Accepted by topic author Petr

Hi all,

 

I have already solved the problem. The problem was missing of MC ECU Disconnect at the end of communication with one ECU before start of communication with another ECU started by Auto connect function of all MC functions.

 

Petr

0 Kudos
Message 2 of 2
(2,522 Views)