SAE J1939 Communication protocol
Eduardo Margulis
Nov-19th, 2017 10:17

SAE J1939 is a CANbus protocol that is supported by Enhanced Division Vision and Samba OPLC™ models. Within the J1939 network, the Vision functions as an ECU (Electronic Control Unit). Note that Vision supports transport protocols such as BAM and RTS/CTS.

Depending on the Vision model, the CANbus port may be an integral part of the PLC, or may be purchased and installed separately. Unfurtunetly UniStream family does not.

The structure on the SAE J1939 protocol is as follows:

Here you'll notice that Priority is the first 3 bits and data page the 4th  and 5th  bit. Then 8 bytes for the PDU Format(PF) and  Specific (PS). All this information should be field according to the document you send us.

The last byte is the address of the sender. We cannot be 00.



Vision enhanced PLCs do support J1939 over Can directly, so we recommend using this family of PLCs for this communication.


Configure the CANbus port using a COM Init function set to CANopen + J1939. Note that the ECU address used by the J1939 protocol is the Vision Unit ID number, which is contained in SI 8 when COM Init runs.

After the Com Init function, place the J1939 Configuration function. This has three tabs comprising the parameters listed below. Note that the Status parameter, J1939 Configuration Startup process status, provides status messages for all tabs in the Configuration.


The last FB stores 18 to SI 8. This will be the unit Id of the PLC, in this case 18. You can use whatever ID you like but as I mention before we cannot be 0.


Configuration Parameters






You can add many PGN by clicking on the add new PGN icon.


 VisiLogic help gi file has more information regarding this protocol under Home>networks (CAN,serial)>SAE J1939




Was this article helpful?
3 out of 4 found this helpful