by DuaneM on Tue Mar 09, 2010 8:40 am
You can set up an OBD template on an ADL2 or 3 by using a timer and lookup table to generate a transmit list, and some slightly messy channel maths to filter the response messages.
OBD is a polled system but if you transmit the relevant service 1 PIDs at a suitable rate you'll get a continuous response stream which can be filtered.
If you don't know about OBD and PIDs in general I'd take a look at the wikipedia entry on it, it's quite useful.
In essence you only transmit on 1 can address with the data specifier (known as a PID) included in the message. The OBD response is also on a single CAN address, with the PID echo followed by the one or two byte data, always in the same position on the CAN message. So the channel math filtering needs to assign this one or two byte response to the relevant channel (ie RPM or TPS) based on the PID response byte. In this way you don't actually need to worry about the polling timing, just use the response identifier to assign the value to a channel.
You should also be aware that OBD allows the vehicle manufacturer to define which PIDs it will allow for a given engine. So not all engines will respond with the same data variables. In some cases they may only send RPM and Road Speed and a few others, somethimes they'll send a ton of variables. Also note that as OBD is emissions-related the PIDs are skewed towards error analysis, not necessarily good for tuning..
I have done several templates for ADL2. As they use channel math I don't think they can be adapted to SDL models.
We are planning a technote on this topic, and possibly a downloadable seminar sometime in the near future.