|Download Help (Windows Only)|
Opens a diagnostic session on a CAN or CAN FD port. Communication to the ECU is not yet started.
|Max DLC is the maximum CAN frame length to be used in CAN FD diagnostic communication. Allowed values are 8, 12, 16, 20, 24, 32, 48, and 64. For an IO Mode of CAN 2.0, this setting is ignored and a value of 8 is used. For the CAN FD settings of the IO Mode, this limits the frame size for transmission of diagnostic requests. The receive data length is determined from the incoming messages and not limited by this value.|
|CAN interface specifies the CAN interface on which the diagnostic communication should take place.|
The CAN interface is the name of the NI-CAN Network Interface Object to configure. This name uses the syntax CANx, where x is a decimal number starting at 0 that indicates the CAN network interface (CAN0, CAN1, up to CAN63). CAN network interface names are associated with physical CAN ports using Measurement and Automation Explorer (MAX).
By default, the Automotive Diagnostic Command Set uses NI-CAN for CAN communication. This means you must define an NI-CAN interface for your NI-XNET hardware (NI-CAN compatibility mode) to use your XNET hardware for CAN communication. However, to use your NI-XNET interface in the native NI-XNET mode (meaning it does not use the NI-XNET Compatibility Layer), you must define your interface under NI-XNET Devices in MAX and pass the NI-XNET interface name that the Automotive Diagnostic Command Set will use. To do this, add @nixnet to the protocol string (for example, CAN1@nixnet). The interface name is related to the NI-XNET hardware naming under Devices and Interfaces in MAX.
If using CompactRIO or R Series hardware, you must provide a bitfile that handles the CAN communication between the host system and FPGA. To access the CAN module on the FPGA, you must specify the bitfile name after the @ (for example, CAN1@MyBitfile.lvbitx). To specify a special RIO target, you can specify that target by its name followed by the bitfile name (for example, CAN1@RIO1,MyBitfile.lvbitx). RIO1 defines the RIO target name as defined in your LabVIEW Project definition. The lvbitx filename represents the filename and location of the bitfile on the host if using RIO or on a CompactRIO target. This implies that you must download the bitfile to the CompactRIO target before you can run your application. You may specify an absolute path or a path relative to the root of your target for the bitfile.
|baudrate is the diagnostic communication baud rate. You can wire standard baud rates as well as custom 64-bit baud rates to this control. For more information on 64-bit nonstandard baud rates, refer to the NI-XNET Hardware and Software Help. You can use the NI-XNET Bus Monitor and NI-XNET Database Editor utilities to create a custom baud rate. Refer to NI-XNET Tools and Utilities Help and NI-XNET Hardware and Software Help for more information about creating a custom baud rate.|
|FD baudrate is the diagnostic communication FD baud rate for the CAN FD+BRS IO Mode. You can wire standard FD baud rates as well as custom 64-bit baud rates to this control. For more information on 64-bit nonstandard FD baud rates, refer to the NI-XNET Hardware and Software Help. You can use the NI-XNET Bus Monitor and NI-XNET Database Editor utilities to create a custom FD baud rate. Refer to NI-XNET Tools and Utilities Help and NI-XNET Hardware and Software Help for more information about creating a custom FD baud rate.|
|IO Mode is the CAN I/O Mode to be used for the diagnostic communication. Choices are:
|transport protocol specifies the transport protocol for transferring the diagnostic service messages over the CAN network. The following values are valid and can be obtained through an enum control:
|transmit ID is the CAN identifier for sending diagnostic request messages from the host to the ECU. To specify an extended (29-bit) ID, OR the value with 0x20000000.|
|receive ID is the CAN identifier or sending diagnostic response messages from the ECU to the host. To specify an extended (29-bit) ID, OR the value with 0x20000000.|
|error in is a cluster that describes error conditions occurring before the VI executes. If an error has already occurred, the VI returns the value of the error in cluster to error out.
|diag ref out is a cluster containing all necessary diagnostic session information. Wire this cluster as a handle to all subsequent diagnostic VIs and close it using Close Diagnostic.vi.|
|error out describes error conditions. If the error in cluster indicated an error, the error out cluster contains the same information. Otherwise, error out describes the error status of this VI.
Open Diagnostic on CAN FD.vi opens a diagnostic communication channel to an ECU. The CAN port specified as input is initialized, and a handle to it is stored (among other internal data) in the diag ref out cluster, which serves as reference for further diagnostic functions.
Possible examples of selections for the interface parameter for the various hardware targets are as follows.
Using NI-CAN hardware:
Using NI-XNET hardware with NI-XNET Frame Input/Output-based sessions:
Using NI-XNET hardware with NI-XNET Stream Input/Output-based sessions:
Using R Series:
|Note No communication to the ECU takes place at this point. To open a diagnostic session on the ECU, call StartDiagnosticSession.vi or UDS DiagnosticSessionControl.vi.|
In general, it is not necessary to manipulate the diag ref out cluster contents, with one notable exception: If you use the ISO TP—Mixed Mode transport protocol, you must store the address extensions for transmit and receive in the appropriate cluster members.