PLUS+1 User Forum

PLUS+1™ Software => Function Library => Topic started by: drlageng on August 29, 2017, 01:04:28 AM

Title: TSC1 Lost Messages
Post by: drlageng on August 29, 2017, 01:04:28 AM
Hello All,

I have a really weird problem.  I'm using the TSC1 Block from the Danfoss Function Block Library V4.00 to control the engine RPM.  Most of the time it works great, but occasionally I get a fault from the engine, a J1939 Network Abnormal Update error.  I have analyzed the CANBus with CANKing and have found that there are missing TSC1 messages.  The requested transmission rate in the block is 10ms, and the transmission rate does actually hold to this, most of the time.  There is the occasional instance where it's more than this, 30ms or 40ms.  Then, out of no where it goes to 1000ms and the engine throws the fault (I have found out from the engine manufacturer that it throws this fault when the transmission rate goes above 90ms).  The really weird thing is that after the instance where TSC1 is missing for 1000ms, it comes back but the actual transmission rate changes to about 0.6ms and it completely overloads the buss.  The requested transmission rate in the block is still fixed at 10ms (I'm using a 3-digit Autotype fixed value).  I'm baffled why the TSC1 message would go missing for 1000ms and then come back at a 0.6ms transmission rate.  Any insight will be greatly appreciated.

Title: Re: TSC1 Lost Messages
Post by: jashom1 on August 29, 2017, 03:40:23 AM

What is your bus load like?  General rule of thumb would be to keep it under 60%.  I am guessing it could be something else that is flooding the bus and the pending TSC1 messages build up a back log?

Also what is your loop time like? Is that more than 10ms?  Have you tried slowing down the messages to 50ms to see if that is more reliable?


Title: Re: TSC1 Lost Messages
Post by: ZanInno on August 29, 2017, 05:40:26 AM
Create your own CAN message instead of using the TS1 library block.  Set your exec time to 10ms.  Hold the send on the CAN message to "T". 

Assuming your exec time is currently less than 10ms, that should work. 

If you are sending out lots of other can messages, make sure they are not being sent on the same clock cycle.  Use different oscillators or stagger the transmit signals.

Hope that helps.
Title: Re: TSC1 Lost Messages
Post by: drlageng on August 29, 2017, 05:45:15 PM
My buss load is about 22% according to CANKing.  My requested loop time is 5ms.  I had it at 1ms because that's how the template is set up by default.  When it was at 1ms the TSC1 transmission rate was at 17ms even though the requested rate is 10ms.  So I changed the requested loop time to 5ms and the TSC1 rate changed to 10ms as requested.  Should I try slowing down the loop time even more?  10 ms maybe?

I can also try slowing down the request transmission rate of TSC1, but doesn't J1939 state that it should be 10ms? 
Title: Re: TSC1 Lost Messages
Post by: FluidPowerTom on August 30, 2017, 01:12:50 AM
It does state that it should be 10ms.  I'd keep the loop time at the default 1, so when you do that it just goes as fast as it can while still executing everything.  Is your program pretty big?  Maybe watch the loop time with these different settings and see if the TSC1 transmission rate matches up with the loop time.

Also, maybe try unplugging everything else from the CAN bus and then analyzing the transmission rate.  Does it change with nothing else plugged in?
Title: Re: TSC1 Lost Messages
Post by: drlageng on September 05, 2017, 07:31:31 PM
So I have done a number of things since the last time I posted.  I've tried different loop times: 1ms, 2ms, 5ms, 10ms.  The fault still occurs no matter what the loop time is.  I updated the .hwd file withing the .p1p to the most up-to-date version for both the controller and the display.  I even completely replaced the controller thinking it might be a CANBus transceiver problem with the original unit.  All of these items had no effect.  The weird thing is, whether it was with the original controller or the new controller, the problem doesn't occur until the machine has run for at least 20-30 minutes.  Then it does it very consistently after that, like every minute or 2.  Each time it does it, you have to turn the machine off and back on again.  Fortunately, this is just on a prototype machine and not on hundreds of production machines.  If it were, I'd be in a big mess.  I'm about ready to scrap the idea of a TSC1 controlled throttle and change to an analog throttle.
Title: Re: TSC1 Lost Messages
Post by: jashom1 on September 07, 2017, 07:38:33 AM
Hmmm, bizarre!

Is the bus only connected to your controller or are there other things connected to it? Is something else happening after this time period?

Are you using a monitor to send the messages or an MC controller?  Monitors loop times can be all over the place.  Have you taken a log of the messages with CANKing while the error occurs, does the load increase at the time of the fault?

Do you have 120 ohm resistors at each end of the bus?

Tried a shielded CAN cable?  Using gold plated pins in connectors?

Sorry for asking the obvious questions, which no doubt you have probably gone through already.  This really intrigues me  ;)

Title: Re: TSC1 Lost Messages
Post by: drlageng on September 13, 2017, 10:45:16 PM
There are other devices on the bus, but as far as I can tell there is nothing else happening to trigger the event.  I am using an MC050-112 controller to send the messages, not a display.  I have monitored the bus with CANKing when an event occurs.  Before it happens, the buss load is a consistent 21-22%.  After it happens the buss load goes all over the place, very high to very low, but I attribute this to the TSC1 message missing for 1000ms and then going to a transmission rate of 0.6ms.  As far as I can tell, there is no other rogue message, or slug of messages, that is occuring to trigger the event.

No problem asking the obvious questions, I'd do the same.  120 ohm resistors are in place at each end of the buss.  We are using shielded CAN cable and all CAN connections use gold plated pins and sockets.
Title: Re: TSC1 Lost Messages
Post by: pinias on September 21, 2017, 08:45:52 PM

what engine are you trying to work with?

the CAT engines tells you how often the PGN 0 should be sendtin order to keep it running at a steady RPM.

now, what priority have you set?

the engine manufacturer should tell you how the priorities has been set.

otherwise I would say you may have a short circuit from other circuit but it is seen by the can bus through the shield if you have it connected to chassy GND, or it may be a loose connection.

I would check that everything else is working as I excpect so that I can isolate the CAN issue.

I hope this helps.