AB and J1939 can to ethernet

John Morris

Lifetime Supporting Member
Join Date
Sep 2015
Location
San Antonio
Posts
688
Good afternoon all
I am have a difficult time trying to cross what is written in my program of which the origins were Rockwell engineers.
Specifically Cat engine hours. J1939 Data_In_[12] and J1939 Data_In_[13]
The latter [13] is used in a BTD function. Source bit is 0. destination is "Engine Hours Upper Shifted". Destination bit is 15, length is 15. The former, [12] is used in a Bitwise inclusive OR function. Source A is Data [12], source B is the "Engine Hours Upper Shifted" and a destination of "Engine Hours Raw" Run thru a CPT function *.05

Three of older units are not clocking the engine hours after (in the neighborhood of) 3300 hours. In the J1939 register for [13] there is a "1". in the working units there is a "0". I do not understand the significance.

A dozen web sites call engine hours 18FEE500. Another dozen PGN:65253

I have no way to discern what J1939 [13] is and what is the significance of the "1" or "0". I believe strongly the engine hours is the data [12].

Any help understanding this and what might be the solution would be greatly appreciated.

I have snips of working and non working units if need be

Thank you for your time
 
3300 ÷ 0.05 = 66,000, which is perhaps suspiciously close to the upper limit of a 16-bit unsigned integer ...

Can you print the code to a PDF and attach it here?
_
 
Am I the only one who sees summat suspicious about the value of Engine_Hours_Upper_Shifted and nobbut surprising about the result?

Would an expected value of Engine_Hours be more like 1929.1h?

What else is writing to Engine_Hours_Upper_Shifted?

Is Engine_Hours_Upper_Shifted a DINT or UDINT?

If nothing else, put a [CLR Engine_Hours_Upper_Shifted] instruction at the start of that rung.
Untitled.png
 
Last edited:
Or just reorder the operations:
MOV J1939_Data_In[12] Engine_Hours_Upper_Shifted Engine_Hours_Raw BTD J1939_Data_IN[13] 0 Engine_Hours_Raw 15 15 CPT Engine_Hours Engine_Hours_Raw*0.05
 
Last edited:
Actually, based on this, I think you want:

BTD J1939_Data_IN[12] 0 Engine_Hours_Raw 0 16 BTD J1939_Data_IN[13] 0 Engine_Hours_Raw 16 16 CPT Engine_Hours Engine_Hours_Raw*0.05



 
No sir Not really. I have a very shallow understanding of J1939 and can.

After some thought. I suspect the J1939 Data_In_[13] turning 1 was not process by the original programming as the high word, therefore stopped.
 
Last edited:

Similar Topics

Has anyone had experience with J1939, Caterpillar Gensets, or Pyramid Solutions AB7645 J1939/Ethernet gateway? Im currently communicating through...
Replies
1
Views
2,588
I need help to configure the siemens gateway to read data from 5 engines and display it on HMI. I need help from someone who has worked with J1939...
Replies
1
Views
1,994
Hello All! I'm embarking on a new project and have been searching the forums to assist in what is looking to be a rather challenging task. We are...
Replies
3
Views
1,737
Does anyone know much about CAN communications? I potentially have a need to get data from CAN based NOx and NH3 sensors (these are typically...
Replies
5
Views
3,568
Hi I have a AB Compact logix connected with a HMI x-way Ethernet/IP to CAN J1939 Converter that is connected to a CAT engine. I have an Input and...
Replies
5
Views
2,734
Back
Top Bottom