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.