Automotive and Embedded Networks

cancel
Showing results for 
Search instead for 
Did you mean: 

PCI-CAN/XS2 Single wire causing fatal error

We have been operating sense 2007 successfully. Our Windows controller was Win2K. The controller died and we replaced it with Win7-32bit system. We have been operating several months, but we have a periodic system crash. The error indication to the operator is communication error with NI-Can, we reset & restart, and the windows system crashes, and reboots. Analysing the event viewer, we see the Hp function "TNDRIVER" showing an exception.((The hardware resources for \Device\PointerPort0 are already in use by another device)). This error occurs occasionally in the event viewer, but only occasionally causes the system to crash. We downloaded all the latest device drivers for the Win7 upgrade. Can any one shed some light on this failure???  When we use NI-MAX to self test the NI-Can it will cause a system crash. We can run 1000 boards and have no issues. other times we run 500-800 and have this condition occur.

0 Kudos
Message 1 of 17
(7,174 Views)

Hi Rich_G,

 

Do you get a specific error number before the system crashes? What version of LabVIEW are you using and what version of the drivers are you using? Are you able to get one of the simple examples working to isolate the problem to the hardware and drivers?

Patrick H | National Instruments | Software Engineer
0 Kudos
Message 2 of 17
(7,145 Views)

Hello Patrick H

-1).Do you get a specific error number before the system crashes? Not with the software we are running. We have the XS2 plugged into an in circuit tester. We are communicating with the modules under test. We are communicating using Marconi-test-language. It is UNIX based. A hybrid ( Pascal / C ) type of code. I have attached the main file which calls the XS2 and performs the necessary communication. This code was working flawlessly with Win-2K. The code continues to work except for the occasional crash. It looks like a timing / protocol issue. I wish it was CVI then I could run the debugger. Marconi does not provide a debug option.

-2).What version of LabVIEW are you using and what version of the drivers are you using? I have included the NI-Max report. I am not running LabVIEW, see above.   -3).Are you able to get one of the simple examples working to isolate the problem to the hardware and drivers? I do not have a machine to use offline. I only have the one machine used in production.

Download All
0 Kudos
Message 3 of 17
(7,132 Views)

I apologize for my confusion on the previous post. I took a look at the MAX technical report and that driver version should be supported for that hardware. My thought at this point is if there is something that has changed in that driver overtime that would force a subtle change in your application. What version of the driver were you using on the Windows 2000 machine?

Patrick H | National Instruments | Software Engineer
0 Kudos
Message 4 of 17
(7,120 Views)

I will need to restore an image and dig around a bit, but I will post an answer soon.  What I find curious is that it runs through the code maybe 800 times and logs a few exceptions with TNDRIVER, then Bam. Tndriver throws an exception the program chokes on Can communication and we have a fatal error.

0 Kudos
Message 5 of 17
(7,116 Views)

Hi Rich_G,

 

I am curious if there may be some sort of memory leak that was introduced with the change. It may be useful to monitor the memory usage of your system as the application is running. I am hoping that I will be able to look through the documentation of the older driver up to the driver you are using now to find a reason. Did you have to change anything code from your old system to conform to the new driver? Even something that should be very minor.

Patrick H | National Instruments | Software Engineer
0 Kudos
Message 6 of 17
(7,105 Views)

NI-CAN 2.3.2f1 Controller Area Network (CAN) Driver Software

 

AS reported by NI-Max (software)

0 Kudos
Message 7 of 17
(7,100 Views)

 

I am sorry, I forgot to answer the other question.

No there were no software changes. Only updating the drivers.

We pasted the directory with all the code for the ICT intact from

the Windows 2000 machine. It is more or less self contained.

0 Kudos
Message 8 of 17
(7,096 Views)

Hi Rich_G,

 

If you have not done anything but change the driver then I think you first need to double check that your code is still using the API correctly. As I stated in my last post, it sounds like you have a memory leak from what you have described which could be caused by a change in the driver. I would run your application and see how your system memory is changing to determine if there is a leak.

Patrick H | National Instruments | Software Engineer
0 Kudos
Message 9 of 17
(7,088 Views)

Hi Haagen-Daz.

 

I have been swamped and I have collected a few snapshots of memory usage.  If there is a leak, it is not critical. During the "event", I still have an abundance of memory. I am not overly familiar with leak investigation, or tools. Typically when I have code eat all available resources, a simple task manager check will indicate a steady decline. I am not seeing it here. I printed a typical memory check. All the samples I have captured are relitavely the same. I am open to suggestions.  Thank You for looking.

 

If I am having an issue where 2 programs are fighting over a "hook" or "port" to use for communication and they butt heads. Such that they can clash a dozen times or more before they cause an exception and BSOD.  I see several errors for "TNDRIVER" appearing periodiocally, in the event log, before the crash. Maybe, just guessing, one an hour or so.

0 Kudos
Message 10 of 17
(6,892 Views)