Purpose

Executes the WriteMemoryByAddress service. Writes data to the ECU memory. Format

Input

data in defines the memory block to be written to the ECU.
diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic on CAN FD.vi or Open Diagnostic on IP.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster.
address defines the memory address to which data are written. Notice that only three bytes are sent to the ECU, so the address must be in the range 0–FFFFFF (hex).
size defines the length of the memory block to be written.
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.
status is TRUE if an error occurred. This VI is not executed when status is TRUE.
code is the error code number identifying an error. A value of 0 means success. A negative value means error: the VI did not execute the intended operation. A positive value means warning: the VI executed intended operation, but an informational warning is returned. For a description of the code, wire the error cluster to a LabVIEW error-handling VI, such as the Simple Error Handler.
source identifies the VI where the error occurred.

Output

diag ref out is a copy of diag ref in. You can wire it to subsequent diagnostic VIs.
success? indicates successful receipt of a positive response message for this diagnostic service.
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.
status is TRUE if an error occurred.
code is the error code number identifying an error. A value of 0 means success. A negative value means error: the VI did not execute the intended operation. A positive value means warning: the VI executed intended operation, but an informational warning is returned. For a description of the code, wire the error cluster to a LabVIEW error-handling VI, such as the Simple Error Handler.
source identifies the VI where the error occurred.

Description

This VI performs the KWP2000 WriteDataByAddress service and writes RecordValues (data values) to the ECU. address and size identify the data. The vehicle manufacturer must ensure the ECU conditions are met when performing this service. Typical use cases are clearing nonvolatile memory, resetting learned values, setting option content, setting the Vehicle Identification Number, or changing calibration values.

For further details about this service, refer to the ISO 14230-3 standard.