Limitations

J1939

Request messages

Fieldbus Access runtime and LinX Manager Fieldbus Access does not have support for request messages. Support is planned for future releases.

Cyclic timeout detection for RX PGNs

Timeout detection does not work for RX PGNs with Transmission Mode set to Cyclic and Source Address set to 0xFF(global). PGNs tracked for reception needs to be configured to be received from a specific transmitter.

Considerations when mixing SPN data types in PGNs

The configuration tool allows a mixture of data types for SPNs to be entered. However, there are runtime limitations which need to be considered. Not all combinations are valid and invalid choices may lead to unwanted behaviour or system errors.

The following types are possible to mix without any limitations:

  • BOOL

  • CHAR

  • SHORT

  • INT

  • FLOAT

  • UCHAR

  • USHORT

  • UINT

Excluded from the list are: BLOB and STRING. Only one signal can be added to a PDO if the data type is set to BLOB or STRING. If it’s required to use either BLOB or STRING for a signal, then there cannot be any other signals defined in the PDO.

Cyclic reception of the same PGN from multiple sources

Reception of the same PGN from multiple sources is supported if the transmission mode is set Change of state.

Timeout detection of the same PGN from multiple sources is not supported, but there is a workaround that can be applied. The solution is centered around a feature in Fieldbus Access which overrides the configured CAN-bus number. This in combination with a “faked” CAN bus in the configuration makes it possible to have timeout detection of a PGN which is received from multiple sources on a single CAN-connection.

The presented example in the following sections assume that the device which runs Fieldbus Access is connected to the CAN network on bus 0 (first CAN connector) and should receive a PGN from two different sources.

Configure additional CAN buses

Any PGN which should be received from multiple sources needs to be defined in a separate J1939 CAN-bus node in LinX Manager Fieldbus Access. The number of added buses should be equal to the number of source addresses which the PGN should be received from (up to a maximum of 8 source addresses).

Example
The PGN EEC1 (61444) should be received from two different sources (0x00 and 0x01). To accomplish this, we first needs to create two J1939 buses and configure these to use unique Node IDs (one per bus). Fieldbus Access will run one J1939 instance per bus which in the end will communicate on the same physical CAN-bus (hence the need to not share the Node ID as it would otherwise lead to name claiming issues).

Two J1939 buses

Add PGNs

The PGNs that should be received from more than one source can now be added to the configured J1939 buses. The SPNs needs to have unique names. Append the source address to the name is a good way to distinguish between SPNs received from different sources. Update any loaded project with these settings and access the signals as shown in Cyclic timeout detection for J1939 SPNs in QML

Example
Continuing from the previous step, we add EEC1 (61444) from the library to both J1939 buses as RX Signals (receive). Rename the signals to make it clear that they are received from one or the other source (0x00 and 0x01). Notice that the field Source Address is different between the PGN added to Bus 0 and Bus 1. These are set to match the source address where the PGN should be received from.

PGNs added

Enable CAN override on target

An environment variable needs to be set to override the configuration and force Fieldbus Access to communicate on a specific CAN bus: FIELDBUSACCESS_CAN_BUS_NR_OVERRIDE. The variable should be assigned the bus number to use (0=first CAN connector, 1=second CAN connector…).

i.MX 5 and i.MX 6

Add export FIELDBUSACCESS_CAN_BUS_NR_OVERRIDE=0 to set the environment variable in the startup-script /opt/etc/init.d/StartupFieldbusAccess. This will set the bus number override to 0:

#!/bin/sh
export FIELDBUSACCESS_CAN_BUS_NR_OVERRIDE=0
APPLICATION_EXECUTABLE="fieldbusaccess"
APPLICATION_PATH="/opt/bin"
APPLICATION_ARGUMENT="/opt/bin/FieldbusAccess_ConfigFile.json"