Setting up log files for many DM1 messages

Argy Tzouhas 8 years ago in IQANdesign updated by Gustav Widén (System support) 6 years ago 14

I have a system that has 800 DM1 messages that all have to be logged when they come up.is there an easy way to load this into a diagnostic log group and trigger the log file as they come up?


This thread was very helpful.

Thanks for everyone's input!

Satisfaction mark by Argy Tzouhas 8 years ago

The best way I can think of is to select all the SPN channels at once an drag them to the event log.

When dropping channels of value types other than boolan (like the SPN channels), this will create one Value log item for each channel.

For the first SPN channel, create an math object to check if its FMI value is larger than or equal to zero. Then comes the tedious work, copying this to the other empty Value log items, and for each one change it to point to the correct SPN.

It is easier to create event log items based on channels of value type boolean, for these (e..g the indicator lamps), you only need to drag it to the event log and an activating object is created automatically.

I'd estimate that doing this for 800 SPN channels would add up to about 200 kB of additional RAM usage on the application.

My currently utilization is 7%.

What would you estimate this will push the utilization to?

Do you mean cycle utilization?

This will depend on the type of master module and the application cycle time.

Writing to the log happens after the application cycle has been completed, so this is not seen on the cycle utilization measure, but checking the log conditions is part of the application loop, so adding all these value event logs will have an impact.

One other way is to create a custom J1939 frame input on PGN 65226. You could then determine the specific SPN/FMI and which lights are illuminated.

This sounds interesting...

Can you explain further? I am not sure I understand how to implement what you are proposing.

All engine fault codes are transmitted through DM1 on PGN 65226. Parker went through the trouble to decode DM1 message for you but you can still piece out the information from PGN 65226. You will need to look into SAE J1939/73 and/or look for examples online in order to piece out the specific bits information that make up a fault code.

Thanks for your input James but this is way beyond my capabilities

Thanks for the suggestion James, for the cases when there is only one active fault, your idea of going via a JFIN with PGN 65226 will be a really compact way of reading the SPN/FMI on the single active fault.

For anyone implementing this, it is good to be aware that when there are two or more active faults, DM1 is no longer sent as a single CAN frame with PGN 65226 in the identifier field, but as a multi-packet message using the broadcast announcement and data transfer PGN:s (PGN 60160 and PGN 60416)

In IQAN, the incoming CAN frames are matched to the channels in the application based on a priority, where JFIN channels take priority over the built-in DM1 decoding.

The effect in an application that has a JFIN with PGN 65226 and a DM1 channel for the same module will be the following:

-When there is one active fault, the JFIN will see it instead of the DM1 channel

-When there are two or more active faults, the DM1 channel will see this, but JFIN will not.

Can I look for traffic on PGN 60160 and PGN 60416?

Gustav your comments explain what I was seen on IQAN-Analyze.

I have both DM1 and 65226 in the application.

I was trying to use 65226 for turning some warning lights on but this was not always working.

If I remove PGN 65226 from the application and look for the warning lights in the DM1 message would that work more predictably?

I just realized there are no SPN's for the lights.

The lamp status from the DM1 message is extracted as MDGN channels that you place on the J1939 module.

Sorry for reviving an old thread, but does anyone know if MDGN lamp status from a Caterpillar ECM will flash the lamp when needed, or do I need a separate SPN for flashing?