PLUS+1 Software > Function Library
TSC1 SPN4206; 4207
Quax76:
Hello everybody,
is there anyone out there who can help us...?
We are trying to set up a Volvo TIER IV final engine.
To control this engine via PGN0 we need to provide the checksum and counter (SPN4206; SPN4207)
Unfortunately these SPNs are not provided from Danfoss.
The counter seems not to be a problem. It counts from 0..7 and is provided in the first 4 bits of byte 7 (8).
When we code the calculation of the checksum as described in J1939 to plus+1, we receive other results, then expected from the Volvo engine.
Has anyone tried to control a engine which need these SPNs?
Thanks!
ssutherington:
On a recent Danfoss training day, one of the developers suggested there was an issue with the CRC calculation in the Plus 1 TSC1 block. It was suggested that the block would be fixed in the next release.
We recently had a project involving a Volvo D11 TIER IV final, after some testing on the machine and some communication from Volvo, we found that the message counter and CRC are optional. We finished up using the standard TSC1 block (V2.21) supplied by Danfoss in an earlier J1939 library. The older TSC1 Block did not support message counting or CRC, as a result it transmits 0xFF in its place. Volvo's ECM see's these parameters as not supported and disregards them.
We did investigate creating our own block, calculating the CRC is not difficult to do, we found the calculation in the documentation from Volvo.
We have since had many machine in the filed with no issues.
One trap for the younger player.. the source address for the TSC1 has to match a value pre-set in the Volvo ECM. That one had use scratching our heads for a while.
Quax76:
Thanks for your reply.
Unfortunatenly our Volvo dealer says, that we had to use the checksum and the counter. >:(
When we code the calculation manually, the engine rejects it :'(. Are you able to provie a screenshot from your calculation? Maybe I could locate the mistake.
Meanwhile we switch over to PGN65350. There is also a checksum needed, but this calculation works fine.
George:
Hi Quax76
If you've received the same documentation as I have received from Volvo, you probably have a text telling you the counter is to be placed on bit 44-47 and the checksum on bit 40 - 43, while the included Volvo screenshot places the counter value on 40-43 and the checksum on 44-47... AFAIK the counter needs to be placed on bits 40-43....
I'll find out in a few weeks, since I'm on the verge of power up...
This is an extra layer of CRC in the 8 byte data field, and has nothing to do with the CAN Frame CRC field (15+1 bits, just before the ack bits)
@Mr SSutherington: What version is possibly Bogey?
ssutherington:
Just my two cents from our experience...
The latest TSC1 block from the 2012 library will calculate the CRC and add the msg counter.
Around 1 year ago we used this on a Volvo D11 T4f, the engine rejected the TSC1 message and suggested the CRC was bad.
As a quick fix we changed back to an older TSC1 block (V2.21) which did not calculate the CRC, just sets the bits high. This allowed us to control the engine without any issue. As is always the case there was not any time to dig into the issue during the startup of the machine.
In March of this year we were at a Danfoss conference, where one of the developers suggested there was a newer J1939 library due for release this year, one of the updates was a fix to the TSC1 CRC calculation. ( A ha, that's why our Volvo engine was giving us bother !!)
Looking at the CAN data this morning, using the later TSC1 block, the CRC never changes as the message counter changes, this looks a little strange.
The J1939 SAE spec suggest the CRC calculation to be
Checksum = (Byte1 + Byte2 + Byte3 + Byte4 + Byte5 + Byte6 + Byte7 + message counter & 0x0F + message ID low byte + message ID mid low byte + message ID mid high byte + message ID high byte)
Message Checksum = (((Checksum >> 6) & 0x03) + (Checksum >>3) + Checksum) & 0x07
focusing on
+ message counter & 0x0F +
suggest that the msg count is included in the calculation, given that the lower nibble of byte 8 is the counter and the upper nibble is the CRC.
I have nothing to test against or compare it to, its only my two cents. Attached is a quick attempt to calculate the CRC given the above calculation.
The best action here is to contact the help desk, chances are they already now of the issue and have solutions.
Attached are 3 files
Trace_TSC1_V221.png - screen dump of a CAN trace from our Volvo machine, Not using CRC and Msg counter.
Trace_TSC1_V3.png - screen sump of a CAN trace using the later V3 TSC1 block with the CRC and Msg counter.
CRC.SCS - my attempt at calculating the crc, note- this was never used on a machine so may still be incorrect.
Navigation
[0] Message Index
[#] Next page
Go to full version