Destination-specific TSC1 transmission

Discuss issues and ideas you have to configuring displays with PowerVision
mehfoos
Posts: 5
Joined: Thu Jan 10, 2013 3:05 am

Destination-specific TSC1 transmission

Post by mehfoos » Thu May 16, 2013 7:51 am

I had a query:

I'd like to have the PV300P transmit TSC1 requests every 10ms to a user-configurable source address. I would also like the device to use the correct source address(panel Source address: incidentally, this is also user configurable).

I did not try the approach where one adds the TSC1 SPNs to the J1939 Database and then have it transmitted; only because I couldn't find a way to pause the transmission(which is also a requirement). Besides, the 'SourceAddress' field in the Device Setup of 'Transmit Device' is grayed out and shows a value of 0, which is wrong? (Doesn't match up the address I configured the panel to take).

So I have defined a 'Free Form Numeric Message' instead. I am able to control the transmission of the message alright. I am also able to pause it as and when required. I haven't yet validated if it's actually being sent every 10ms (will get on it soon), but the engine ECU does respond.

Now I'd like to have the ability to control the destination and source address of the TSC1 message dynamically. Is that possible? This is critical for an application where we have multiple engines on the same CAN network with different speeds requirements and multiple panels.

Regards
Mehfoos

Edit: so long as the TSC1 message is directed to the 'Engine Device', i'm fine with that. It'd also be great to have the ability to override the ECU function instance.
alb
Posts: 43
Joined: Wed Dec 15, 2010 1:30 pm

Re: Destination-specific TSC1 transmission

Post by alb » Fri May 24, 2013 1:55 pm

I believe TSC1, (PGN 0), is destination specific by default/design. You can't control the Torque or speed of an entire controller network unless every engine responds equivalently to a global address broadcast (DA=FF).

If I was an engine manufacturer, (Speculative) I would ignore a global address TSC1 message.

In that case, none of the CAN IDs or PGNs will be the same if the engine ECMs have different SA's.

Creating a specific TSC1 freeform CAN message for every engine on the network with the relevant SA then manipulate with a script/state machine is the correct answer. I don't suspect there is a method to access the hex frame ID of the FFCAN msg as a variable.

You can effectively nullify the message without pausing it by broadcasting invalid/out of range data bytes (usually FF) in the correct SPNs.