0
Answered

Multiple XC10s No Contact or Multiple Addresses Intermittent Issues

M Donaldson 7 years ago in Expansion modules / XC10 updated by Gustav Widén (System support) 6 years ago 6

We are having issues with a system that has 2 XC10's on the same expansion bus. This is the first system we used multiple XC10's and have been having issues since we got it online.The XC10's expansion bus is connected to a MC43.


Changing different settings seems to have some affect but I feel like no matter how we change settings this issue is still around it just might not popup as much.


We either get a multiple address error or a no contact error. When we get the no contact error if we look online the device is working however any outputs that were active are faulted and we need to cycle them to get it going. This seems normal for a no contact issue. We see these errors on startup and occasionally while running.


Here are settings I changed. When I changed them I cycle power 25 times to try to gauge where we need things set. The settings I played with are the MC43 cycle time, expansion bus divider, delaying and staggering the 'Enable' for the XC10's. And I recorded the occurrences of each message.


There is a pattern but I'm having a hard time decided where to set things. We currently have the system set with settings that didn't give us problems during the test, but during further testing we occasional see them.



20 ms MC43 

Expansion bus divider =  2(40mS)

Cycle util = 11% 

XC10[0] Enable delay = 0000 

XC10[1] Enable delay = 0000               

0 - No Contacts     

0 - XC10 Multiple addresses


10 ms MC43 

Expansion bus divider =  2(20mS) 

cycle util = 21% 

XC10[0] Enable delay = 0000 

XC10[1] Enable delay = 0000                

0 - No Contacts     

2 - XC10 -Multiple addresses


10 ms MC43 

Expansion bus divider =  2(20mS) 

cycle util = 21% 

XC10[0] Enable delay = 5000 

XC10[1] Enable delay = 0000             

0 - No Contacts     

2 - XC10 -Multiple addresses


10 ms MC43 

Expansion bus divider =  9(90mS) 

cycle util = 21% 

XC10[0] Enable delay = 0000 

XC10[1] Enable delay = 0000                

0 - No Contacts     

0 - XC10 -Multiple addresses


 5 ms MC43 

Expansion bus divider =  2(10mS) 

cycle util = 41% 

XC10[0] Enable delay = 0000 

XC10[1] Enable delay = 0000                

0 - No Contacts     

4 - XC10 -Multiple addresses


 5 ms MC43 

Expansion bus divider =  2(10mS) 

cycle util = 41% 

XC10[0] Enable delay = 5000 

XC10[1] Enable delay = 0000               

0 - No Contacts     

3 - XC10 -Multiple addresses

  

  5 ms MC43 

Expansion bus divider = 10(50mS) , 

cycle util = 41%  

XC10[0] Enable delay = 0000  

XC10[1] Enable delay = 0000                

1(1) - No Contacts     

0 - XC10 -Multiple addresses

 

5 ms MC43 

Expansion bus divider = 10(50mS) 

cycle util = 41% 

XC10[0] Enable delay = 4000 

XC10[1] Enable delay = 8000                

1(1)  - No Contacts     

0 - XC10 -Multiple addresses


Is there a problem running the MC43 cycle time at 20ms?

It wouldn't be ideal. Also would this mean I need to keep my cycle utilization <= 11% to ensure I can have communications with 2 XC10's ? Something doesn't seem right.

Can you see what the CAN bus utilization is for the expansion bus with the two XC10 modules?

The sample rate divider was set to 2.

With a MC43 cycle time of 5mS the expansion bus utilization was 60%

With a MC43 cycle time of 10mS the expansion bus utilization was 30%

Under review

I know you have established a good contact with Ed to investigate, but for anyone else reading this post, here is a short summary:


The No contact when using a short cycle time and sample rate divider could possibly be explained by an unnecessarily short timeout, that is being updated in version 5.02 that will be released shortly. 

Why the MC4 gives a multiple address detect for the XC10 is still not clear to me.

Answered

In version 5.02, the function for setting a slower polling cycle time than the application cycle time has been improved with better margins for timeout. Now the timeout is always 3x polling cycle time, regardless of whether the polling cycle is the application cycle time (default) or a slower rate.  




This does not explain why you had the multiple address problem though. After investigating, we figured out that the problem is with the XC10. 

The XC10 module is not designed to have the same real-time performance as the other IQAN expansion modules, and when running a too short polling cycle, it cannot always keep up. The symptoms is a No contact followed by a multiple address, this typically occurs after startup or after enabling of the module. I have observed the symptom on 10 ms application even with just one XC10 expansion in the system. 


With other IQAN expansions such as XA2 or XC21, the limiting factor is simply the bus utilization, but the XC10 needs more margins. 

It should also be noted that the XC10 local sample rate is only 20 ms, so for functions using XC10 I/O there is little or no value in trying to run a faster cycle than this this.