PV380 FFCAN TSC1 Messaging

Discuss issues and ideas you have to configuring displays with PowerVision
schwarzr
Posts: 2
Joined: Tue Feb 19, 2013 7:23 am

PV380 FFCAN TSC1 Messaging

Post by schwarzr » Thu Jun 12, 2014 2:58 pm

Hi All,

I am currently developing a config that will send out J1939 TSC1 messages determined by the states of the resistive inputs. A screen shot of my "Current State Machine" can be seen in an attachment.

I have no problem navigating from state to state using my resistive inputs. A still shot of my "Current Progress" is attached below.

The next goal is to transmit specified J1939 TSC1 messages instead of simply altering visible condition variables within each state. I believe in order to do this you need to use FF CAN, but I have run into a roadblock trying to figure out FF CAN. I know the PID, PGN and SPN's for all the TSC1 messages I am trying to transmit, I simply have no idea how to create a variable and then transmit it.

Also with TSC1 transmitting the message is tricky since the message is supposed to be transmitted at a 10ms rate and the PV380 only allows you to use one 10ms timer.

Are there any tutorials on FF CAN that I can reference so I can simply accomplish sending a single J1939 TSC1 message? Then from there I can hopefully build off of that concept to assign that message to a variable that changes value based on the resistive inputs. This way I can have a simple state machine that is transmitting that variable using a single 10ms clock.

Please let me know if you can help or if I am way off. I am quite new to powervision. I appreciate the time. Thank you.
Attachments
Current Progress.JPG
Current Progress.JPG (135.25 KiB) Viewed 126 times
Current State Machine.PNG
Current State Machine.PNG (38.65 KiB) Viewed 126 times
stalley
Enovation Controls Development
Enovation Controls Development
Posts: 618
Joined: Tue Mar 18, 2014 12:57 pm

Re: PV380 FFCAN TSC1 Messaging

Post by stalley » Sat Jun 14, 2014 5:00 pm

Hi Schwarzr,

Right now, we don't have a tutorial about free form CAN that I can find. If we put one together, we will post it over with the examples.

You may have already been able to get something going, but in case you are still needing some help I made a very simple configuration with a partial TSC1. I haven't run it so I don't know how well it works, but you should be able to get an idea of how to create a free form CAN message.

If you look on the Connections tab, there is a TX TSC1 Message on the Free Form Numeric Messages column. I have created the parameters for bytes 1-3 in the message. You will need to add the SPNs required by the ECU you need to control. Since this has the 29-bit identifier, I used the Extended Frame Send for Message Type. For the Frame ID I arbitrarily chose priority 3 (C) and source address DA (218). If you check the Update Device Address on outbound messages, the source address entered here will be overwritten by the value you set on the CANPort1.Address.

If you don't check the Update Device Address on outbound messages, the source address will be what you put in the last byte of the Frame Id.

The Message Visualization shows you how your bytes will be transmitted.

You add the SPNs to the message using the + found on the right side of the Variable Packing section.
You can create the variables/SPNs here or you can create them under Programming and pick them from the list that pops up when you click on the (Not Mapped - Disabled).

After you have the SPNs created and your message formatted, you just need to put the calculation events on the variables/SPNs over in the Programming. It sounds as though you have a state machine that will fire the events.

Hope this helps.
FFCAN Tx Example.zip
Free Form CAN Message Example
(201.06 KiB) Downloaded 34 times
Sara Talley
Software Engineer
Enovation Controls
schwarzr
Posts: 2
Joined: Tue Feb 19, 2013 7:23 am

Re: PV380 FFCAN TSC1 Messaging

Post by schwarzr » Mon Jun 16, 2014 7:15 am

Thank you Sara,

I have got my configuration to work. I am successfully transmitting TSC1 messages for 1000, 1500 and 1800 RPM based off of resistive input combinations.

I was just confused by the SPN part. I thought I could create one variable for the entire 64-bit message, but I kept getting an error saying that the max is a 32-bit message.

Once I broke down the 64-bit message and assigned the different SPN's to variables I was able to send a message (it wasn't right, but it was something)

Then I tinkered around and found out that the variables needed to be based off decimals and not binary. Then wah-lah the concept is complete.

I still appreciate the quick response and the example configuration. I will take a look at it to see if there are any concepts I am not using in mine. Thanks again!