National Instruments CAN User Manual

Automotive diagnostic command set
Table of Contents

Advertisement

CAN
Automotive Diagnostic Command Set User Manual
Automotive Diagnostic Command Set User Manual
December 2007
372139B-01

Advertisement

Table of Contents
loading

Summary of Contents for National Instruments CAN

  • Page 1 Automotive Diagnostic Command Set User Manual Automotive Diagnostic Command Set User Manual December 2007 372139B-01...
  • Page 2 Thailand 662 278 6777, Turkey 90 212 279 3031, United Kingdom 44 (0) 1635 523545 For further support information, refer to the Technical Support and Professional Services appendix. To comment on National Instruments documentation, refer to the National Instruments Web site at and enter ni.com/info the info code feedback ©...
  • Page 3: Important Information

    Instruments Corporation. National Instruments respects the intellectual property of others, and we ask our users to do the same. NI software is protected by copyright and other intellectual property laws. Where NI software may be used to reproduce software or other materials belonging to others, you may use NI software only to reproduce materials that you may reproduce in accordance with the terms of any applicable license or other legal restriction.
  • Page 4 These classes are known as Class A (for use in industrial-commercial locations only) or Class B (for use in residential or commercial locations). All National Instruments (NI) products are FCC Class A products. Depending on where it is operated, this Class A product could be subject to restrictions in the FCC rules. (In Canada, the Department of Communications (DOC), of Industry Canada, regulates wireless interference in much the same way.) Digital...
  • Page 5: Table Of Contents

    OBD (On-Board Diagnostic) ..................1-6 Chapter 2 Installation and Configuration Installation ........................2-1 LabVIEW Real-Time (RT) Configuration ..............2-2 Hardware and Software Requirements ................2-2 Chapter 3 Application Development Choosing the Programming Language ................3-1 LabVIEW ......................3-1 LabWindows/CVI....................3-1 © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 6 Contents Visual C++ 6 ....................3-2 Other Programming Languages ..............3-2 Debugging an Application..................... 3-3 Chapter 4 Using the Automotive Diagnostic Command Set Structure of the Automotive Diagnostic Command Set ..........4-1 Automotive Diagnostic Command Set API Structure........... 4-2 General Programming Model ..................4-3 Available Diagnostic Services..................
  • Page 7 OBD Request Emission Related DTCs During Current Drive Cycle.vi ..5-128 OBD Request On-Board Monitoring Test Results.vi........5-131 OBD Request Powertrain Freeze Frame Data.vi..........5-133 OBD Request Supported PIDs.vi ..............5-135 OBD Request Vehicle Information.vi .............5-137 © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 8 Contents Chapter 6 Automotive Diagnostic Command Set API for C Section Headings ......................6-1 Purpose......................6-1 Format ......................6-1 Input and Output ..................... 6-1 Description ...................... 6-1 List of Data Types ......................6-2 List of Functions......................6-3 General Functions......................6-12 ndCloseDiagnostic ..................
  • Page 9 ..............6-113 OBD (On-Board Diagnostics) Services .................6-115 ndOBDClearEmissionRelatedDiagnosticInformation ........6-115 ndOBDRequestControlOfOnBoardDevice .............6-116 ndOBDRequestCurrentPowertrainDiagnosticData .........6-118 ndOBDRequestEmissionRelatedDTCs ............6-120 ndOBDRequestEmissionRelatedDTCsDuringCurrentDriveCycle ....6-122 ndOBDRequestOnBoardMonitoringTestResults ..........6-124 ndOBDRequestPowertrainFreezeFrameData..........6-126 ndOBDRequestVehicleInformation ..............6-128 Appendix A Technical Support and Professional Services Index © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 10: About This Manual

    Italic text in this font denotes text that is a placeholder for a word or value monospace italic that you must supply. © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 11: Related Documentation

    About This Manual Related Documentation The following documents contain information that you might find helpful as you read this manual: • ANSI/ISO Standard 11898-1993, Road Vehicles—Interchange of Digital Information—Controller Area Network (CAN) for High-Speed Communication • CAN Specification Version 2.0, 1991, Robert Bosch GmbH., Postfach 106050, D-70049 Stuttgart 1 •...
  • Page 12: Introduction

    It is standardized as ISO 14230-3. KWP2000 describes the implementation of various diagnostic services you can access through the protocol. You can run KWP2000 on several transport layers such as K-line (serial) or CAN. © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 13: Transport Protocol

    Chapter 1 Introduction Transport Protocol As KWP2000 uses messages of variable byte lengths, a transport protocol is necessary on layers with only a well defined (short) message length, such as CAN. The transport protocol splits a long KWP2000 message into pieces that can be transferred over the network and reassembles those pieces to recover the original message.
  • Page 14: Connect/Disconnect

    The Upload/Download functional unit services are highly manufacturer specific and not well defined in the standard, so they are not a good way to provide a general upload/download mechanism. © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 15: Measurements

    Chapter 1 Introduction Measurements Use the ReadDataByLocal/CommonIdentifier services to access ECU data in a way similar to a DAQ list. A Local/CommonIdentifier describes a list of ECU quantities that are then transferred from the ECU to the tester. The transfer can be either single value or periodic, with a slow, medium, or fast transfer rate.
  • Page 16: Uds (Unified Diagnostic Services)

    KWP2000. The Request Message has the ServiceId as first byte, plus additional service-defined parameters. The Positive Response Message has an echo of the ServiceId with bit 6 set as first byte, plus the service-defined response parameters. © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 17: External References

    Chapter 1 Introduction Some parameters to both the Request and Positive Response Messages are optional. Note Each service defines these parameters. Also, the standard does not define all parameters. The Negative Response Message is usually a three-byte message: it has the Negative Response ServiceId (0x7F) as first byte, an echo of the original ServiceId as second byte, and a ResponseCode as third byte.
  • Page 18: Installation And Configuration

    CAN device, then select Self-test. If the self-test passes, the card icon shows a checkmark. If the self-test fails, the card icon shows an X mark, and the Test Status in the right pane describes the problem. © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 19: Labview Real-Time (Rt) Configuration

    LabVIEW Real-Time (RT) Configuration LabVIEW Real-Time (RT) combines easy-to-use LabVIEW programming with the power of real-time systems. When you use a National Instruments PXI controller as a LabVIEW RT system, you can install a PXI CAN card and use the NI-CAN APIs to develop real-time applications. As with any...
  • Page 20: Application Development

    The Automotive Diagnostic Command Set API header file is . The Automotive Diagnostic Command Set nidiagcs.h API library is . The toolkit software includes a full set of nidiagcs.lib © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 21: Visual C++ 6

    The Automotive Diagnostic Command Set software supports Microsoft Visual C/C++ 6. The header file and library for Visual C/C++ 6 are in the \ProgramFiles\National Instruments\Automotive folder. To use the Diagnostic Command Set\MS Visual C Automotive Diagnostic Command Set API, include the nidiagcs.h...
  • Page 22: Debugging An Application

    Automotive Diagnostic Command Set. To launch this tool, open the LabVIEW Example Finder and search for Diagnostic Monitor.vi under Hardware Input and Output/CAN/ Automotive Diagnostic Command Set/Diagnostic Monitor. © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 23: Using The Automotive Diagnostic Command Set

    Services Diag) Services Services Diagnostic Transport Layer Auxiliary Routines Connection Service Execution Management Transport Protocols ISO TP VW TP 2.0 (ISO 15765-2) CAN Layer (C++ DLL) NI-CAN 2.3.3 (or Higher) © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 24: Automotive Diagnostic Command Set Api Structure

    Chapter 4 Using the Automotive Diagnostic Command Set The Automotive Diagnostic Command Set is structured into three layers of functionality: • The top layer implements three sets of diagnostic services for the diagnostic protocols KWP2000, UDS (DiagOnCAN), and OBD (On-Board Diagnostics). •...
  • Page 25: General Programming Model

    Note that for the VW TP 2.0, you must execute the VWTP ConnectionTest routine periodically (once per second) to keep the communication channel open. © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 26: Available Diagnostic Services

    The standards on automotive diagnostic define many different services for many purposes. Unfortunately, most services leave a large amount of room for manufacturer-specific variants and extensions. National Instruments implemented the most used variants while trying not to overload them with optional parameters.
  • Page 27: Automotive Diagnostic Command Set Api For Labview

    The format section describes the VI format. Input and Output The input and output sections list the VI parameters. Description The description section gives details about the VI purpose and effect. © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 28: List Of Vis

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW List of VIs The following table is an alphabetical list of the Automotive Diagnostic Command Set VIs. Table 5-1. Automotive Diagnostic Command Set API VIs for LabVIEW Function Purpose ClearDiagnosticInformation.vi Executes the ClearDiagnosticInformation service and clears selected Diagnostic Trouble Codes (DTCs).
  • Page 29 (or last completed) drive cycle. OBD Request On-Board Monitoring Test Executes the OBD Request On-Board Results.vi Monitoring Test Results service. Reads a test data record from the ECU. © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 30 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Table 5-1. Automotive Diagnostic Command Set API VIs for LabVIEW (Continued) Function Purpose OBD Request Powertrain Freeze Frame Data.vi Executes the OBD Request Powertrain Freeze Frame Data service. Reads a data record from the ECU that has been stored while a Diagnostic Trouble Code occurred.
  • Page 31 ECU in a specific diagnostic mode. UDS ECUReset.vi Executes the UDS ECUReset service. Resets the ECU. UDS InputOutputControlByIdentifier.vi Executes the UDS InputOutputControlByIdentifier service. Use this VI to modify ECU I/O port behavior. © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 32 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Table 5-1. Automotive Diagnostic Command Set API VIs for LabVIEW (Continued) Function Purpose UDS ReadDataByIdentifier.vi Executes the UDS ReadDataByIdentifier service. Reads a data record from the ECU. UDS ReadMemoryByAddress.vi Executes the UDS ReadMemoryByAddress service.
  • Page 33 Terminates a connection channel to an ECU using the VW TP 2.0. WriteDataByLocalIdentifier.vi Executes the WriteDataByLocalIdentifier service. Writes a data record to the ECU. WriteMemoryByAddress.vi Executes the WriteMemoryByAddress service. Writes data to the ECU memory. © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 34: General Functions

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW General Functions Close Diagnostic.vi Purpose Closes a diagnostic session. Format Input diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster.
  • Page 35 ECU. Note that this command does not communicate the closing to the ECU before terminating; if this is necessary, you must manually do so (for example, by calling StopDiagnosticSession.vi) before calling Close Diagnostic.vi. © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 36: Convert From Phys.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Convert from Phys.vi Purpose Converts a physical data value into a binary representation using a type descriptor. Format Input type descriptor is a cluster that specifies the conversion of the physical value to its binary representation: Start Byte gives the start byte of the binary representation.
  • Page 37 Convert from Phys.vi converts only the portion specified by one type descriptor to a binary representation. If your data input consists of several values, you can use Convert from Phys.vi multiple times and concatenate their outputs. © National Instruments Corporation 5-11 Automotive Diagnostic Command Set User Manual...
  • Page 38: Convert To Phys.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Convert to Phys.vi Purpose Converts a binary representation of a value into its physical value using a type descriptor. Format Input type descriptor is a cluster that specifies the conversion of the binary representation to its physical value: Start Byte gives the binary representation start byte in the data in record.
  • Page 39 3 and 4 are engine RPM scaled as .25 * RPM in Motorola representation), you can use Convert to Phys.vi to extract the physical value from the byte stream by filling an appropriate type descriptor cluster. © National Instruments Corporation 5-13 Automotive Diagnostic Command Set User Manual...
  • Page 40: Create Extended Can Ids.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Create Extended CAN IDs.vi Purpose Creates diagnostic CAN IDs according to ISO 15765-2. Format Input addressing mode specifies whether the ECU is physically or functionally addressed. transport protocol specifies whether normal or mixed mode addressing is used.
  • Page 41: Diag Get Property.vi

    The default is 5 ms. Max Wait Frames (N_WFTmax) is the maximum number of WAIT frames the master accepts before terminating the connection. The default is 10. © National Instruments Corporation 5-15 Automotive Diagnostic Command Set User Manual...
  • Page 42 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Wait Frames to Send (N_WAIT) is the number of WAIT frames the master sends every time before a CTS frame is sent. If this value is set to a negative number (for example, 0xFFFFFFFF = –1), the master sends an OVERLOAD frame instead of a WAIT, and reception is aborted.
  • Page 43: Diag Set Property.vi

    The default is 5 ms. Max Wait Frames (N_WFTmax) is the maximum number of WAIT frames the master accepts before terminating the connection. The default is 10. © National Instruments Corporation 5-17 Automotive Diagnostic Command Set User Manual...
  • Page 44 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Wait Frames to Send (N_WAIT) is the number of WAIT frames the master sends every time before a CTS frame is sent. If this value is set to a negative number (for example, 0xFFFFFFFF = –1), the master sends an OVERLOAD frame instead of a WAIT, and reception is aborted.
  • Page 45: Diagnostic Service.vi

    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. © National Instruments Corporation 5-19 Automotive Diagnostic Command Set User Manual...
  • Page 46 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Output diag ref out is a copy of diag ref in. You can wire it to subsequent diagnostic VIs. error code is the error code sent with a negative response message. In addition, the error cluster indicates an error and gives a more detailed description.
  • Page 47: Dtc To String.vi

    The SAE J2012 standard specifies a naming scheme for 2-byte DTCs consisting of one letter and four digits. Use DTC to String.vi to convert a DTC numerical representation to this name. © National Instruments Corporation 5-21 Automotive Diagnostic Command Set User Manual...
  • Page 48: Obd Open.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW OBD Open.vi Purpose Opens an OBD-II diagnostic session on a CAN port. Format Input CAN interface specifies the CAN interface on which the diagnostic communication should take place. The values are CAN0, CAN1, and so on. baudrate is the diagnostic communication baud rate.
  • Page 49 29-bit OBD CAN identifiers are tried. If that also fails, the VI returns an error. You can overwrite the default OBD CAN identifiers optionally with any other identifiers. In general, it is not necessary to manipulate the diag ref out cluster contents. © National Instruments Corporation 5-23 Automotive Diagnostic Command Set User Manual...
  • Page 50: Open Diagnostic.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Open Diagnostic.vi Purpose Opens a diagnostic session on a CAN port. Communication to the ECU is not yet started. Format Input CAN interface specifies the CAN interface on which the diagnostic communication should take place.
  • Page 51 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. © National Instruments Corporation 5-25 Automotive Diagnostic Command Set User Manual...
  • Page 52: Vwtp Connect.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW VWTP Connect.vi Purpose Establishes a connection channel to an ECU using the VW TP 2.0. Format Input diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster.
  • Page 53 You must maintain the communication link you created by periodically (at least once Note a second) calling VWTP Connection Test.vi. There is no equivalent for the ISO TP (ISO 15765-2), as the ISO TP does not use a special communication link. © National Instruments Corporation 5-27 Automotive Diagnostic Command Set User Manual...
  • Page 54: Vwtp Connection Test.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW VWTP Connection Test.vi Purpose Maintains a connection channel to an ECU using the VW TP 2.0. Format Input diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster.
  • Page 55 This VI sends a Connection Test message to the ECU and evaluates its response, performing the steps necessary to maintain the connection. There is no equivalent for the ISO TP (ISO 15765-2), as the ISO TP does not use a special communication link. © National Instruments Corporation 5-29 Automotive Diagnostic Command Set User Manual...
  • Page 56: Vwtp Disconnect.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW VWTP Disconnect.vi Purpose Terminates a connection channel to an ECU using the VW TP 2.0. Format Input diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster.
  • Page 57 You can create a new connection to the same ECU using VWTP Connect.vi again. There is no equivalent for the ISO TP (ISO 15765-2), as the ISO TP does not use a special communication link. © National Instruments Corporation 5-31 Automotive Diagnostic Command Set User Manual...
  • Page 58: Kwp2000 Services

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW KWP2000 Services ClearDiagnosticInformation.vi Purpose Executes the ClearDiagnosticInformation service and clears selected Diagnostic Trouble Codes (DTCs). Format Input DTC descriptor is a cluster that describes the DTC records the ECU delivers: DTC Byte Length indicates the number of bytes the ECU sends for each DTC.
  • Page 59 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. © National Instruments Corporation 5-33 Automotive Diagnostic Command Set User Manual...
  • Page 60 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 61: Purpose

    Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster. data in specifies application-specific data that control DTC generation. © National Instruments Corporation 5-35 Automotive Diagnostic Command Set User Manual...
  • Page 62 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW group of DTC specifies the group of Diagnostic Trouble Codes to be controlled. The following values have a special meaning, and you can specify them through a ring control: 0x0000 All powertrain DTCs 0x4000 All chassis DTCs 0x8000...
  • Page 63 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. © National Instruments Corporation 5-37 Automotive Diagnostic Command Set User Manual...
  • Page 64: Disablenormalmessagetransmission.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW DisableNormalMessageTransmission.vi Purpose Executes the DisableNormalMessageTransmission service. The ECU no longer transmits its regular communication messages (usually CAN messages). Format Input diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic.vi and wired through subsequent diagnostic VIs.
  • Page 65 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. © National Instruments Corporation 5-39 Automotive Diagnostic Command Set User Manual...
  • Page 66: Description

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW ECUReset.vi Purpose Executes the ECUReset service. Resets the ECU. Format Input diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster.
  • Page 67 This VI requests the ECU to perform an ECU reset effectively based on the mode parameter value content. The vehicle manufacturer determines when the positive response message is sent. © National Instruments Corporation 5-41 Automotive Diagnostic Command Set User Manual...
  • Page 68: Enablenormalmessagetransmission.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW EnableNormalMessageTransmission.vi Purpose Executes the EnableNormalMessageTransmission service. The ECU starts transmitting its regular communication messages (usually CAN messages). Format Input diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic.vi and wired through subsequent diagnostic VIs.
  • Page 69 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. © National Instruments Corporation 5-43 Automotive Diagnostic Command Set User Manual...
  • Page 70: Inputoutputcontrolbylocalidentifier.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW InputOutputControlByLocalIdentifier.vi Purpose Executes the InputOutputControlByLocalIdentifier service. Modifies ECU I/O port behavior. Format Input data in defines application-specific data for this service. diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic.vi and wired through subsequent diagnostic VIs.
  • Page 71 This VI substitutes a value for an input signal or internal ECU function. It also controls an output (actuator) of an electronic system referenced by the local ID parameter. For further details about this service, refer to the ISO 14230-3 standard. © National Instruments Corporation 5-45 Automotive Diagnostic Command Set User Manual...
  • Page 72: Readdatabylocalidentifier.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW ReadDataByLocalIdentifier.vi Purpose Executes the ReadDataByLocalIdentifier service. Reads a data record from the ECU. Format Input diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster.
  • Page 73 VI where the error occurred. Description This VI requests data record values from the ECU identified by the local ID parameter. For further details about this service, refer to the ISO 14230-3 standard. © National Instruments Corporation 5-47 Automotive Diagnostic Command Set User Manual...
  • Page 74: Readdtcbystatus.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW ReadDTCByStatus.vi Purpose Executes the ReadDiagnosticTroubleCodesByStatus service. Reads selected Diagnostic Trouble Codes (DTCs). Format Input DTC descriptor is a cluster that describes the DTC records the ECU delivers: DTC Byte Length indicates the number of bytes the ECU sends for each DTC.
  • Page 75 DTC is the resulting Diagnostic Trouble Code. For the default 2-byte DTCs, you can use DTC to String.vi to convert this to readable format as defined by SAE J2012. © National Instruments Corporation 5-49 Automotive Diagnostic Command Set User Manual...
  • Page 76 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Status is the DTC status. Usually, this is a bit field with the following meaning: Meaning testFailed testFailedThisMonitoringCycle pendingDTC confirmedDTC testNotCompletedSinceLastClear testFailedSinceLastClear testNotCompletedThisMonitoringCycle warningIndicatorRequested Add Data contains optional additional data for this DTC. Usually, this does not contain valid information (refer to DTC descriptor) success? indicates successful receipt of a positive response message for this diagnostic service.
  • Page 77: Readecuidentification.vi

    VI where the error occurred. Output diag ref out is a copy of diag ref in. You can wire it to subsequent diagnostic VIs. data out returns the ECU identification data. © National Instruments Corporation 5-51 Automotive Diagnostic Command Set User Manual...
  • Page 78 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 79: Readmemorybyaddress.vi

    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. © National Instruments Corporation 5-53 Automotive Diagnostic Command Set User Manual...
  • Page 80 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Output diag ref out is a copy of diag ref in. You can wire it to subsequent diagnostic VIs. Data out returns the memory data from the ECU. success? indicates successful receipt of a positive response message for this diagnostic service.
  • Page 81: Readstatusofdtc.vi

    Open Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster. © National Instruments Corporation 5-55 Automotive Diagnostic Command Set User Manual...
  • Page 82 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW group of DTC specifies the group of Diagnostic Trouble Codes to be read. The following values have a special meaning, and you can specify them through a ring control: 0x0000 All powertrain DTCs 0x4000 All chassis DTCs 0x8000...
  • Page 83 DTC parameter, the ECU reports DTCs based only on the functional group selected by group of DTC. For further details about this service, refer to the ISO 14230-3 standard. © National Instruments Corporation 5-57 Automotive Diagnostic Command Set User Manual...
  • Page 84: Requestroutineresultsbylocalidentifier.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW RequestRoutineResultsByLocalIdentifier.vi Purpose Executes the RequestRoutineResultsByLocalIdentifier service. Returns results from a routine on the ECU. Format Input diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster.
  • Page 85 This VI requests results (for example, exit status information) referenced by local ID and generated by the routine executed in the ECU memory. For further details about this service, refer to the ISO 14230-3 standard. © National Instruments Corporation 5-59 Automotive Diagnostic Command Set User Manual...
  • Page 86: Requestseed.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW RequestSeed.vi Purpose Executes the SecurityAccess service to retrieve a seed from the ECU. Format Input diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster.
  • Page 87 Send the key to the ECU using SendKey.vi with access mode = n + 1. The security access is granted if the ECU validates the key sent. Otherwise, an error is returned. © National Instruments Corporation 5-61 Automotive Diagnostic Command Set User Manual...
  • Page 88: Sendkey.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW SendKey.vi Purpose Executes the SecurityAccess service to send a key to the ECU. Format Input diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster.
  • Page 89 Send the key to the ECU using SendKey.vi with access mode = n + 1. The security access is granted if the ECU validates the key sent. Otherwise, an error is returned. © National Instruments Corporation 5-63 Automotive Diagnostic Command Set User Manual...
  • Page 90: Startdiagnosticsession.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW StartDiagnosticSession.vi Purpose Executes the StartDiagnosticSession service. Sets up the ECU in a specific diagnostic mode. Format Input diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster.
  • Page 91 The default session supports at least the following services: • The StopCommunication service (refer to Close Diagnostic.vi and the ISO 14230-2 standard). • The TesterPresent service (refer to TesterPresent.vi and the ISO 14230-3 standard). © National Instruments Corporation 5-65 Automotive Diagnostic Command Set User Manual...
  • Page 92: Startroutinebylocalidentifier.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW StartRoutineByLocalIdentifier.vi Purpose Executes the StartRoutineByLocalIdentifier service. Executes a routine on the ECU. Format Input diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster.
  • Page 93 ECU to a specific diagnostic mode using StartDiagnosticSession.vi or unlock the ECU using the SecurityAccess service prior to using StartRoutineByLocalIdentifier.vi. For further details about this service, refer to the ISO 14230-3 standard. © National Instruments Corporation 5-67 Automotive Diagnostic Command Set User Manual...
  • Page 94: Stopdiagnosticsession.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW StopDiagnosticSession.vi Purpose Executes the StopDiagnosticSession service. Returns the ECU to normal mode. Format Input diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster.
  • Page 95 ECU algorithms. You should call StopDiagnosticSession.vi before disabling communication with Close Diagnostic.vi, but only if you previously used StartDiagnosticSession.vi. © National Instruments Corporation 5-69 Automotive Diagnostic Command Set User Manual...
  • Page 96: Stoproutinebylocalidentifier.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW StopRoutineByLocalIdentifier.vi Purpose Executes the StopRoutineByLocalIdentifier service. Stops a routine on the ECU. Format Input diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster.
  • Page 97 VI where the error occurred. Description This VI stops a routine in the ECU memory referenced by the local ID parameter. For further details about this service, refer to the ISO 14230-3 standard. © National Instruments Corporation 5-71 Automotive Diagnostic Command Set User Manual...
  • Page 98: Testerpresent.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW TesterPresent.vi Purpose Executes the TesterPresent service. Keeps the ECU in diagnostic mode. Format Input diag ref in specifies the diagnostic session handle, obtained from Open Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster.
  • Page 99 The TesterPresent service is this “keep alive” signal. It does not affect any other ECU operation. Keep calling TesterPresent.vi within the ECU timeout period if no other service is executed. © National Instruments Corporation 5-73 Automotive Diagnostic Command Set User Manual...
  • Page 100: Writedatabylocalidentifier.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW WriteDataByLocalIdentifier.vi Purpose Executes the WriteDataByLocalIdentifier service. Writes a data record to the ECU. Format Input data in defines the data record written to the ECU. If you know the record data description, you can use Convert from Phys.vi to generate this record.
  • Page 101 Vehicle Identification Number, or changing calibration values. For further details about this service, refer to the ISO 14230-3 standard. © National Instruments Corporation 5-75 Automotive Diagnostic Command Set User Manual...
  • Page 102: Writememorybyaddress.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW WriteMemoryByAddress.vi 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.vi and wired through subsequent diagnostic VIs.
  • Page 103 Vehicle Identification Number, or changing calibration values. For further details about this service, refer to the ISO 14230-3 standard. © National Instruments Corporation 5-77 Automotive Diagnostic Command Set User Manual...
  • Page 104: Uds (Diagoncan) Services

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW UDS (DiagOnCAN) Services UDS ClearDiagnosticInformation.vi Purpose Executes the UDS ClearDiagnosticInformation service. Clears selected Diagnostic Trouble Codes (DTCs). Format Input DTC descriptor is a cluster that describes the DTC records the ECU delivers: DTC Byte Length indicates the number of bytes the ECU sends for each DTC.
  • Page 105 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. © National Instruments Corporation 5-79 Automotive Diagnostic Command Set User Manual...
  • Page 106 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Description This VI clears the diagnostic information on the ECU memory. If the group of DTC parameter is present, the ECU is requested to clear all memory including the DTCs. For further details about this service, refer to the ISO 15765-3 standard. Automotive Diagnostic Command Set User Manual 5-80 ni.com...
  • Page 107: Uds Communicationcontrol.vi

    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. © National Instruments Corporation 5-81 Automotive Diagnostic Command Set User Manual...
  • Page 108 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 109: Uds Controldtcsetting.vi

    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. © National Instruments Corporation 5-83 Automotive Diagnostic Command Set User Manual...
  • Page 110 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 111: Uds Diagnosticsessioncontrol.vi

    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. © National Instruments Corporation 5-85 Automotive Diagnostic Command Set User Manual...
  • Page 112 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 113: Uds Ecureset.vi

    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. © National Instruments Corporation 5-87 Automotive Diagnostic Command Set User Manual...
  • Page 114 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 115: Uds Inputoutputcontrolbyidentifier.vi

    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. © National Instruments Corporation 5-89 Automotive Diagnostic Command Set User Manual...
  • Page 116 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 117: Uds Readdatabyidentifier.vi

    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. © National Instruments Corporation 5-91 Automotive Diagnostic Command Set User Manual...
  • Page 118 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Output diag ref out is a copy of diag ref in. You can wire it to subsequent diagnostic VIs. data out returns the data record from the ECU. If you know the record data description, you can use Convert to Phys.vi to interpret this record.
  • Page 119: Uds Readmemorybyaddress.vi

    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. © National Instruments Corporation 5-93 Automotive Diagnostic Command Set User Manual...
  • Page 120 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Output diag ref out is a copy of diag ref in. You can wire it to subsequent diagnostic VIs. data out returns the ECU memory data. success? indicates successful receipt of a positive response message for this diagnostic service.
  • Page 121: Uds Reportdtcbyseveritymaskrecord.vi

    Open Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster. © National Instruments Corporation 5-95 Automotive Diagnostic Command Set User Manual...
  • Page 122 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW severity mask defines the status of DTCs to be read. The values are application specific. status defines the status of DTCs to be read. The values are application specific. error in is a cluster that describes error conditions occurring before the VI executes.
  • Page 123 Description This VI executes the ReportDTCBySeverityMaskRecord subfunction of the UDS ReadDiagnosticTroubleCodeInformation service and reads the selected DTCs. For further details about this service, refer to the ISO 15765-3 standard. © National Instruments Corporation 5-97 Automotive Diagnostic Command Set User Manual...
  • Page 124: Uds Reportdtcbystatusmask.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW UDS ReportDTCByStatusMask.vi Purpose Executes the ReportDTCByStatusMask subfunction of the UDS ReadDiagnosticTroubleCodeInformation service. Reads selected Diagnostic Trouble Codes (DTCs). Format Input DTC descriptor is a cluster that describes the DTC records the ECU delivers: DTC Byte Length indicates the number of bytes the ECU sends for each DTC.
  • Page 125 Meaning testFailed testFailedThisMonitoringCycle pendingDTC confirmedDTC testNotCompletedSinceLastClear testFailedSinceLastClear testNotCompletedThisMonitoringCycle warningIndicatorRequested Add Data contains optional additional data for this DTC. Usually, this does not contain valid information (refer to DTC descriptor). © National Instruments Corporation 5-99 Automotive Diagnostic Command Set User Manual...
  • Page 126 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 127: Uds Reportseverityinformationofdtc.vi

    Open Diagnostic.vi and wired through subsequent diagnostic VIs. Normally, it is not necessary to manually manipulate the elements of this cluster. © National Instruments Corporation 5-101 Automotive Diagnostic Command Set User Manual...
  • Page 128 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW DTC mask record defines the status of DTCs to be read. The values are application specific. 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.
  • Page 129 This VI executes the ReportSeverityInformationOfDTC subfunction of the UDS ReadDiagnosticTroubleCodeInformation service and reads the selected DTCs from the ECU memory. For further details about this service, refer to the ISO 15765-3 standard. © National Instruments Corporation 5-103 Automotive Diagnostic Command Set User Manual...
  • Page 130: Uds Reportsupporteddtcs.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW UDS ReportSupportedDTCs.vi Purpose Executes the ReportSupportedDTCs subfunction of the UDS ReadDiagnosticTroubleCodeInformation service. Reads all supported Diagnostic Trouble Codes (DTCs). Format Input DTC descriptor is a cluster that describes the DTC records the ECU delivers: DTC Byte Length indicates the number of bytes the ECU sends for each DTC.
  • Page 131 Meaning testFailed testFailedThisMonitoringCycle pendingDTC confirmedDTC testNotCompletedSinceLastClear testFailedSinceLastClear testNotCompletedThisMonitoringCycle warningIndicatorRequested Add Data contains optional additional data for this DTC. Usually, this does not contain valid information (refer to DTC descriptor). © National Instruments Corporation 5-105 Automotive Diagnostic Command Set User Manual...
  • Page 132 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 133: Uds Requestseed.vi

    VI where the error occurred. Output diag ref out is a copy of diag ref in. You can wire it to subsequent diagnostic VIs. seed out returns the seed from the ECU. © National Instruments Corporation 5-107 Automotive Diagnostic Command Set User Manual...
  • Page 134 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 135: Uds Routinecontrol.vi

    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. © National Instruments Corporation 5-109 Automotive Diagnostic Command Set User Manual...
  • Page 136 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 137: Uds Sendkey.vi

    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. © National Instruments Corporation 5-111 Automotive Diagnostic Command Set User Manual...
  • Page 138 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 139: Uds Testerpresent.vi

    You can wire it to subsequent diagnostic VIs. success? indicates successful receipt of a positive response message for this diagnostic service. © National Instruments Corporation 5-113 Automotive Diagnostic Command Set User Manual...
  • Page 140 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 141: Uds Writedatabyidentifier.vi

    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. © National Instruments Corporation 5-115 Automotive Diagnostic Command Set User Manual...
  • Page 142 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 143: Uds Writememorybyaddress.vi

    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. © National Instruments Corporation 5-117 Automotive Diagnostic Command Set User Manual...
  • Page 144 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 145: Obd (On-Board Diagnostics) Services

    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. © National Instruments Corporation 5-119 Automotive Diagnostic Command Set User Manual...
  • Page 146 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 147: Obd Request Control Of On-Board Device.vi

    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. © National Instruments Corporation 5-121 Automotive Diagnostic Command Set User Manual...
  • Page 148 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Output diag ref out is a copy of diag ref in. You can wire it to subsequent diagnostic VIs. data out returns application-specific data for this service. success? indicates successful receipt of a positive response message for this diagnostic service.
  • Page 149: Obd Request Current Powertrain Diagnostic Data.vi

    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. © National Instruments Corporation 5-123 Automotive Diagnostic Command Set User Manual...
  • Page 150 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Output diag ref out is a copy of diag ref in. You can wire it to subsequent diagnostic VIs. data out returns the ECU data record. If you know the record data description, you can use Convert from Phys.vi to interpret this record.
  • Page 151: Obd Request Emission Related Dtcs.vi

    VI executes. If an error has already occurred, the VI returns the value of the error in cluster to error out. © National Instruments Corporation 5-125 Automotive Diagnostic Command Set User Manual...
  • Page 152 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 153 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. © National Instruments Corporation 5-127 Automotive Diagnostic Command Set User Manual...
  • Page 154: Obd Request Emission Related Dtcs During Current Drive Cycle.vi

    Chapter 5 Automotive Diagnostic Command Set API for LabVIEW OBD Request Emission Related DTCs During Current Drive Cycle.vi Purpose Executes the OBD Request Emission Related DTCs During Current Drive Cycle service. Reads the emission-related Diagnostic Trouble Codes (DTCs) that occurred during the current (or last completed) drive cycle.
  • Page 155 SAE J2012. Status is the DTC status. Usually, this is a bit field with the following meaning: Meaning testFailed testFailedThisMonitoringCycle pendingDTC confirmedDTC testNotCompletedSinceLastClear testFailedSinceLastClear testNotCompletedThisMonitoringCycle warningIndicatorRequested © National Instruments Corporation 5-129 Automotive Diagnostic Command Set User Manual...
  • Page 156 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW For OBD, this field usually does not contain valid information. Add Data contains optional additional data for this DTC. Usually, this does not contain valid information (refer to DTC descriptor). success? indicates successful receipt of a positive response message for this diagnostic service.
  • Page 157: Obd Request On-Board Monitoring Test Results.vi

    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. © National Instruments Corporation 5-131 Automotive Diagnostic Command Set User Manual...
  • Page 158 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Output diag ref out is a copy of diag ref in. You can wire it to subsequent diagnostic VIs. data out returns the ECU data record. If you know the record data description, you can use Convert from Phys.vi to interpret this record.
  • Page 159: Obd Request Powertrain Freeze Frame Data.vi

    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. © National Instruments Corporation 5-133 Automotive Diagnostic Command Set User Manual...
  • Page 160 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Output diag ref out is a copy of diag ref in. You can wire it to subsequent diagnostic VIs. data out returns the ECU data record. If you know the record data description, you can use Convert from Phys.vi to interpret this record.
  • Page 161: Obd Request Supported Pids.vi

    You can wire it to subsequent diagnostic VIs. PIDs out returns an array of valid PIDs for the OBD Request Current Powertrain Diagnostic Data service. © National Instruments Corporation 5-135 Automotive Diagnostic Command Set User Manual...
  • Page 162 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW 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.
  • Page 163: Obd Request Vehicle Information.vi

    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. © National Instruments Corporation 5-137 Automotive Diagnostic Command Set User Manual...
  • Page 164 Chapter 5 Automotive Diagnostic Command Set API for LabVIEW Output diag ref out is a copy of diag ref in. You can wire it to subsequent diagnostic VIs. data out returns the vehicle information from the ECU. You can obtain the description from the SAE J1979 standard.
  • Page 165: Section Headings

    The format section describes the function format for the C programming language. Input and Output The input and output sections list the function parameters. Description The description section gives details about the function purpose and effect. © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 166: List Of Data Types

    Chapter 6 Automotive Diagnostic Command Set API for C List of Data Types The following data types are used with the Automotive Diagnostic Command Set API for C functions. Table 6-1. Data Types for the Automotive Diagnostic Command Set for C Data Type Purpose 8-bit signed integer...
  • Page 167: List Of Functions

    ISO 15765-2. Executes a generic ndDiagnosticService diagnostic service. If a special service is not available through the KWP2000, UDS, or OBD service functions, you can build it using this function. © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 168 Chapter 6 Automotive Diagnostic Command Set API for C Table 6-2. Functions for the Automotive Diagnostic Command Set for C (Continued) Function Purpose Executes the ndDisableNormalMessageTransmission DisableNormalMessage Transmission service. The ECU no longer transmits its regular communication messages (usually CAN messages).
  • Page 169 Diagnostic Trouble Codes (DTCs) that occurred during the current (or last completed) drive cycle. Executes the OBD ndOBDRequestOnBoardMonitoringTestResults Request On-Board Monitoring Test Results service. Reads an ECU test data record. © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 170 Chapter 6 Automotive Diagnostic Command Set API for C Table 6-2. Functions for the Automotive Diagnostic Command Set for C (Continued) Function Purpose Executes the OBD ndOBDRequestPowertrainFreezeFrameData Request Powertrain Freeze Frame Data service. Reads an ECU data record stored while a diagnostic trouble code occurred.
  • Page 171 Executes the ndStartRoutineByLocalIdentifier StartRoutineByLocal Identifier service. Executes a routine on the ECU. Returns a description for ndStatusToString an error code. Executes the ndStopDiagnosticSession StopDiagnosticSession service. Returns the ECU to normal mode. © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 172 Chapter 6 Automotive Diagnostic Command Set API for C Table 6-2. Functions for the Automotive Diagnostic Command Set for C (Continued) Function Purpose Executes the ndStopRoutineByLocalIdentifier StopRoutineByLocal Identifier service. Stops a routine on the ECU. Executes the ndTesterPresent TesterPresent service. Keeps the ECU in diagnostic mode.
  • Page 173 UDS ReadDiagnosticTrouble CodeInformation service. Reads selected Diagnostic Trouble Codes (DTCs). Executes the ndUDSReportDTCByStatusMask ReportDTCByStatus Mask subfunction of the UDS ReadDiagnosticTrouble CodeInformation service. Reads selected Diagnostic Trouble Codes (DTCs). © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 174 Chapter 6 Automotive Diagnostic Command Set API for C Table 6-2. Functions for the Automotive Diagnostic Command Set for C (Continued) Function Purpose Executes the ndUDSReportSeverityInformationOfDTC ReportSeverity InformationOfDTC subfunction of the UDS ReadDiagnosticTrouble CodeInformation service. Reads selected Diagnostic Trouble Codes (DTCs) are read.
  • Page 175 ECU using the VW TP 2.0. Executes the ndWriteDataByLocalIdentifier WriteDataByLocal Identifier service. Writes a data record to the ECU. Executes the ndWriteMemoryByAddress WriteMemoryByAddress service. Writes data to the ECU memory. © National Instruments Corporation 6-11 Automotive Diagnostic Command Set User Manual...
  • Page 176: General Functions

    Chapter 6 Automotive Diagnostic Command Set API for C General Functions ndCloseDiagnostic Purpose Closes a diagnostic session. Format long ndCloseDiagnostic( TD1 *diagRefIn); Input diagRefIn Specifies the diagnostic session handle, obtained from and passed ndOpenDiagnostic to subsequent diagnostic functions. Normally, it is not necessary to manually manipulate the elements of this struct.
  • Page 177: Ndconvertfromphys

    ScaleFactor Phys = ( ) * (binary representation) + ( ScaleFactor ScaleOffset (refer to ScaleOffset ScaleFactor value The physical value to be converted to a binary representation. © National Instruments Corporation 6-13 Automotive Diagnostic Command Set User Manual...
  • Page 178 Chapter 6 Automotive Diagnostic Command Set API for C Output dataOut Points to the byte array to be filled with the binary representation of value On input, must contain the array length. On return, it contains the number dataOut of valid data bytes in the array.
  • Page 179: Ndconverttophys

    2: Float. Only byte lengths 4 or 8 are allowed. defines the physical value scaling: ScaleFactor Phys = ( ) * (binary representation) + ( ScaleFactor ScaleOffset (refer to ScaleOffset ScaleFactor © National Instruments Corporation 6-15 Automotive Diagnostic Command Set User Manual...
  • Page 180 Chapter 6 Automotive Diagnostic Command Set API for C dataIn Points to the byte array that contains the binary representation of value Must contain the array length. dataIn Output value The physical value converted from the binary representation. Description Data output from diagnostic services (for example, ) is ndReadDataByLocalIdentifier usually a byte stream of binary data.
  • Page 181: Ndcreateextendedcanids

    ISO TP—Mixed Mode. The ISO TP as specified in ISO 15765-2 is used; the first data byte is used as address extension. sourceAddress The host (diagnostic tester) logical address. targetAddress The ECU logical address. © National Instruments Corporation 6-17 Automotive Diagnostic Command Set User Manual...
  • Page 182 Chapter 6 Automotive Diagnostic Command Set API for C Output transmitID The generated CAN identifier for sending diagnostic request messages from the host to the ECU. receiveID The generated CAN identifier for sending diagnostic response messages from the ECU to the host. Description ISO 15765-2 specifies a method for creating (extended/29 bit) CAN identifiers for diagnostic applications given the addressing mode (physical/functional), the transport protocol...
  • Page 183: Nddiagnosticservice

    Contains the response message byte sequence of the diagnostic service returned from the ECU. len2 On input, must contain the number of bytes provided for the buffer. len2 dataOut On output, it returns the number of valid data bytes in dataOut © National Instruments Corporation 6-19 Automotive Diagnostic Command Set User Manual...
  • Page 184 Chapter 6 Automotive Diagnostic Command Set API for C Return Value The return value indicates the function call status as a signed 32-bit integer. Zero means the function executed successfully. A negative value specifies an error, which means the function did not perform the expected behavior.
  • Page 185: Nddtctostring

    The SAE J2012 standard specifies a naming scheme for 2-byte DTCs consisting of one letter and four digits. Use to convert the DTC numerical representation to this ndDTCToString name. © National Instruments Corporation 6-21 Automotive Diagnostic Command Set User Manual...
  • Page 186: Ndgetproperty

    Chapter 6 Automotive Diagnostic Command Set API for C ndGetProperty Purpose Gets a diagnostic global internal parameter. Format void ndGetProperty( unsigned short propertyID, unsigned long *propertyValue); Input propertyID Defines the parameter whose value is to be retrieved: Timeout Diag Command is the timeout in milliseconds the master waits for the response to a diagnostic request message.
  • Page 187 Output propertyValue The requested property value. Description Use this function to request several internal diagnostic parameters, such as timeouts for the transport protocol. Use to modify the parameters. ndSetProperty © National Instruments Corporation 6-23 Automotive Diagnostic Command Set User Manual...
  • Page 188: Ndobdopen

    Chapter 6 Automotive Diagnostic Command Set API for C ndOBDOpen Purpose Opens a diagnostic session on a CAN port for OBD-II. Format long ndOBDOpen ( char CANInterface[], unsigned long baudrate, unsigned long transmitID, unsigned long receiveID, TD1 *diagRefOut); Input CANInterface Specifies the CAN interface on which the diagnostic communication should take place.
  • Page 189 (11-bit or 29-bit with bit 29 set) are given, transmitID receiveID communication is tried on these identifiers. If that fails, an error is returned. In general, it is not necessary to manipulate the struct contents. diagRefOut © National Instruments Corporation 6-25 Automotive Diagnostic Command Set User Manual...
  • Page 190: Ndopendiagnostic

    Chapter 6 Automotive Diagnostic Command Set API for C ndOpenDiagnostic Purpose Opens a diagnostic session on a CAN port. Communication to the ECU is not yet started. Format long ndOpenDiagnostic( char CANInterface[], unsigned long baudrate, unsigned short transportProtocol, unsigned long transmitID, unsigned long receiveID, TD1 *diagRefOut);...
  • Page 191 ISO TP—Mixed Mode transport protocol, in which case you must store the address extensions for transmit and receive in the appropriate members of that struct. © National Instruments Corporation 6-27 Automotive Diagnostic Command Set User Manual...
  • Page 192: Ndsetproperty

    Chapter 6 Automotive Diagnostic Command Set API for C ndSetProperty Purpose Sets a diagnostic global internal parameter. Format void ndSetProperty( unsigned short propertyID, unsigned long propertyValue); Input propertyID Defines the parameter whose value is to be modified: Timeout Diag Command is the timeout in milliseconds the master waits for the response to a diagnostic request message.
  • Page 193 The requested property value. Output None. Description Use this function to set several internal diagnostic parameters, such as timeouts for the transport protocol. Use to read them out. ndGetProperty © National Instruments Corporation 6-29 Automotive Diagnostic Command Set User Manual...
  • Page 194: Ndstatustostring

    Chapter 6 Automotive Diagnostic Command Set API for C ndStatusToString Purpose Returns a description for an error code. Format void ndStatusToString( long errorCode, char message[], long *len); Input errorCode The status code (return value) of any other diagnostic functions. Output message Returns a descriptive string for the error code.
  • Page 195 PrintStat(mcTypeStatus status, char *source) char statusString[1024]; long len = sizeof(statusString); if (status != 0) ndStatusToString(status, statusString, &len); printf("\n%s\nSource = %s\n", statusString, source); if (status < 0) ndCloseDiagnostic(&MyDiagHandle); exit(1); © National Instruments Corporation 6-31 Automotive Diagnostic Command Set User Manual...
  • Page 196: Ndvwtpconnect

    Chapter 6 Automotive Diagnostic Command Set API for C ndVWTPConnect Purpose Establishes a connection channel to an ECU using the VW TP 2.0. Format long ndVWTPConnect( TD1 *diagRef, unsigned long channelID, unsigned char applicationType); Input diagRef Specifies the diagnostic session handle, obtained from and passed ndOpenDiagnostic to subsequent diagnostic functions.
  • Page 197 You must maintain the communication link thus created by periodically (at least once a second) calling ndVWTPConnectionTest No equivalent exists for the ISO TP (ISO 15765-2), as the ISO TP does not use a special communication link. © National Instruments Corporation 6-33 Automotive Diagnostic Command Set User Manual...
  • Page 198: Ndvwtpconnectiontest

    Chapter 6 Automotive Diagnostic Command Set API for C ndVWTPConnectionTest Purpose Maintains a connection channel to an ECU using the VW TP 2.0. Format long ndVWTPConnectionTest( TD1 *diagRef); Input diagRef Specifies the diagnostic session handle, obtained from and passed ndOpenDiagnostic to subsequent diagnostic functions.
  • Page 199: Ndvwtpdisconnect

    ECU. ndVWTPConnect There is no equivalent for the ISO TP (ISO 15765-2), as the ISO TP does not use a special communication link. © National Instruments Corporation 6-35 Automotive Diagnostic Command Set User Manual...
  • Page 200: Kwp2000 Services

    Chapter 6 Automotive Diagnostic Command Set API for C KWP2000 Services ndClearDiagnosticInformation Purpose Executes the ClearDiagnosticInformation service. Clears selected Diagnostic Trouble Codes (DTCs). Format long ndClearDiagnosticInformation( TD1 *diagRef, unsigned short groupOfDTC, LVBoolean *success); Input diagRef Specifies the diagnostic session handle, obtained from and passed ndOpenDiagnostic to subsequent diagnostic functions.
  • Page 201 This function clears the diagnostic information on the ECU memory. specifies groupOfDTC the type of diagnostic trouble codes to be cleared on the ECU memory. For further details about this service, refer to the ISO 14230-3 standard. © National Instruments Corporation 6-37 Automotive Diagnostic Command Set User Manual...
  • Page 202: Ndcontroldtcsetting

    Chapter 6 Automotive Diagnostic Command Set API for C ndControlDTCSetting Purpose Executes the ControlDTCSetting service. Modifies the generation behavior of selected Diagnostic Trouble Codes (DTCs). Format long ndControlDTCSetting( TD1 *diagRef, unsigned short groupOfDTC, unsigned char dataIn[], long len, LVBoolean *success); Input diagRef Specifies the diagnostic session handle, obtained from...
  • Page 203 A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-39 Automotive Diagnostic Command Set User Manual...
  • Page 204: Nddisablenormalmessagetransmission

    Chapter 6 Automotive Diagnostic Command Set API for C ndDisableNormalMessageTransmission Purpose Executes the DisableNormalMessageTransmission service. The ECU no longer transmits its regular communication messages (usually CAN messages). Format long ndDisableNormalMessageTransmission( TD1 *diagRef, LVBoolean *requireResponse, LVBoolean *success); Input diagRef Specifies the diagnostic session handle, obtained from and passed ndOpenDiagnostic to subsequent diagnostic functions.
  • Page 205: Ndecureset

    ECUs perform after the ignition OFF/ON cycle. When the ECU performs the reset, the server (ECU) maintains communication with the client (tester). 03–7F Reserved 80–FF ManufacturerSpecific This range of values is reserved for vehicle manufacturer-specific use. © National Instruments Corporation 6-41 Automotive Diagnostic Command Set User Manual...
  • Page 206 Chapter 6 Automotive Diagnostic Command Set API for C Output success Indicates successful receipt of a positive response message for this diagnostic service. Return Value The return value indicates the function call status as a signed 32-bit integer. Zero means the function executed successfully.
  • Page 207: Ndenablenormalmessagetransmission

    A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-43 Automotive Diagnostic Command Set User Manual...
  • Page 208: Ndinputoutputcontrolbylocalidentifier

    Chapter 6 Automotive Diagnostic Command Set API for C ndInputOutputControlByLocalIdentifier Purpose Executes the InputOutputControlByLocalIdentifier service. Modifies the ECU I/O port behavior. Format long ndInputOutputControlByLocalIdentifier( TD1 *diagRef, unsigned char localID, unsigned char mode, unsigned char dataIn[], long len, unsigned char dataOut[], long *len2, LVBoolean *success);...
  • Page 209 This function substitutes a value for an input signal or internal ECU function. It also controls an output (actuator) of an electronic system referenced by localID For further details about this service, refer to the ISO 14230-3 standard. © National Instruments Corporation 6-45 Automotive Diagnostic Command Set User Manual...
  • Page 210: Ndreaddatabylocalidentifier

    Chapter 6 Automotive Diagnostic Command Set API for C ndReadDataByLocalIdentifier Purpose Executes the ReadDataByLocalIdentifier service. Reads an ECU data record. Format long ndReadDataByLocalIdentifier( TD1 *diagRef, unsigned char localID, unsigned char dataOut[], long *len, LVBoolean *success); Input diagRef Specifies the diagnostic session handle, obtained from and passed ndOpenDiagnostic to subsequent diagnostic functions.
  • Page 211 Automotive Diagnostic Command Set API for C Description This function requests data record values from the ECU identified by the parameter. localID For further details about this service, refer to the ISO 14230-3 standard. © National Instruments Corporation 6-47 Automotive Diagnostic Command Set User Manual...
  • Page 212: Ndreaddtcbystatus

    Chapter 6 Automotive Diagnostic Command Set API for C ndReadDTCByStatus Purpose Executes the ReadDiagnosticTroubleCodesByStatus service. Reads selected Diagnostic Trouble Codes (DTCs). Format long ndReadDTCByStatus( TD1 *diagRef, unsigned char mode, unsigned short groupOfDTC, TD3 *DTCDescriptor, TD4 DTCs[], long *len, LVBoolean *success); Input diagRef Specifies the diagnostic session handle, obtained from...
  • Page 213 SAE J2012. ndDTCToString is the DTC status. Usually, this is a bit field with following meaning: Status Meaning testFailed testFailedThisMonitoringCycle pendingDTC confirmedDTC testNotCompletedSinceLastClear testFailedSinceLastClear © National Instruments Corporation 6-49 Automotive Diagnostic Command Set User Manual...
  • Page 214 Chapter 6 Automotive Diagnostic Command Set API for C testNotCompletedThisMonitoringCycle warningIndicatorRequested contains optional additional data for this DTC. Usually, this does not AddData contain valid information (refer to DTCDescriptor On input, must contain the array length in elements. On return, it contains the DTCs number of valid elements in the array.
  • Page 215: Ndreadecuidentification

    A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-51 Automotive Diagnostic Command Set User Manual...
  • Page 216 Chapter 6 Automotive Diagnostic Command Set API for C Description This function requests identification data from the ECU. identifies the type of mode identification data requested. The ECU returns identification data that can access. dataOut format and definition are vehicle manufacturer specific. dataOut For further details about this service, refer to the ISO 14230-3 standard.
  • Page 217: Ndreadmemorybyaddress

    On return, it contains the number dataOut of valid data bytes in the array. dataOut success Indicates successful receipt of a positive response message for this diagnostic service. © National Instruments Corporation 6-53 Automotive Diagnostic Command Set User Manual...
  • Page 218 Chapter 6 Automotive Diagnostic Command Set API for C Return Value The return value indicates the function call status as a signed 32-bit integer. Zero means the function executed successfully. A negative value specifies an error, which means the function did not perform the expected behavior.
  • Page 219: Ndreadstatusofdtc

    { long DTCByteLength; long StatusByteLength; long AddDataByteLength; unsigned short ByteOrder; } TD3; indicates the number of bytes the ECU sends for each DTC. The DTCByteLength default is 2. © National Instruments Corporation 6-55 Automotive Diagnostic Command Set User Manual...
  • Page 220 Chapter 6 Automotive Diagnostic Command Set API for C indicates the number of bytes the ECU sends for each DTC’s StatusByteLength status. The default is 1. indicates the number of bytes the ECU sends for each DTC’s AddDataByteLength additional data. Usually, there are no additional data, so the default is 0. indicates the byte ordering for multibyte items: ByteOrder 0: MSB_FIRST (Motorola), default...
  • Page 221 This function reads diagnostic trouble codes from the ECU memory. If you specify , the ECU reports DTCs based only on the functional group selected by groupOfDTC groupOfDTC For further details about this service, refer to the ISO 14230-3 standard. © National Instruments Corporation 6-57 Automotive Diagnostic Command Set User Manual...
  • Page 222: Ndrequestroutineresultsbylocalidentifier

    Chapter 6 Automotive Diagnostic Command Set API for C ndRequestRoutineResultsByLocalIdentifier Purpose Executes the RequestRoutineResultsByLocalIdentifier service. Returns results from an ECU routine. Format long ndRequestRoutineResultsByLocalIdentifier( TD1 *diagRef, unsigned char localID, unsigned char dataOut[], long *len, LVBoolean *success); Input diagRef Specifies the diagnostic session handle, obtained from and passed ndOpenDiagnostic to subsequent diagnostic functions.
  • Page 223 This function requests results (for example, exit status information) referenced by localID and generated by the routine executed in the ECU memory. For further details about this service, refer to the ISO 14230-3 standard. © National Instruments Corporation 6-59 Automotive Diagnostic Command Set User Manual...
  • Page 224: Ndrequestseed

    Chapter 6 Automotive Diagnostic Command Set API for C ndRequestSeed Purpose Executes the SecurityAccess service to retrieve a seed from the ECU. Format long ndRequestSeed( TD1 *diagRef, unsigned char accessMode, unsigned char seedOut[], long *len, LVBoolean *success); Input diagRef Specifies the diagnostic session handle, obtained from and passed ndOpenDiagnostic to subsequent diagnostic functions.
  • Page 225 Send the key to the ECU using with access mode = n + 1. ndSendKey The security access is granted if the ECU validates the key sent. Otherwise, an error is returned. © National Instruments Corporation 6-61 Automotive Diagnostic Command Set User Manual...
  • Page 226: Ndsendkey

    Chapter 6 Automotive Diagnostic Command Set API for C ndSendKey Purpose Executes the SecurityAccess service to send a key to the ECU. Format long ndSendKey( TD1 *diagRef, unsigned char accessMode, unsigned char keyIn[], long len, LVBoolean *success); Input diagRef Specifies the diagnostic session handle, obtained from and passed ndOpenDiagnostic to subsequent diagnostic functions.
  • Page 227 Send the key to the ECU using with access mode = n + 1. ndSendKey The security access is granted if the ECU validates the key sent. Otherwise, an error is returned. © National Instruments Corporation 6-63 Automotive Diagnostic Command Set User Manual...
  • Page 228: Ndstartdiagnosticsession

    Chapter 6 Automotive Diagnostic Command Set API for C ndStartDiagnosticSession Purpose Executes the StartDiagnosticSession service. The ECU is set up in a specific diagnostic mode. Format long ndStartDiagnosticSession( TD1 *diagRef, unsigned char mode, LVBoolean *success); Input diagRef Specifies the diagnostic session handle, obtained from and passed ndOpenDiagnostic to subsequent diagnostic functions.
  • Page 229 ECU. The default session supports at least the following services: • The StopCommunication service (refer to and the ISO 14230-2 ndCloseDiagnostic standard). • The TesterPresent service (refer to and the ISO 14230-3 standard). ndTesterPresent © National Instruments Corporation 6-65 Automotive Diagnostic Command Set User Manual...
  • Page 230: Ndstartroutinebylocalidentifier

    Chapter 6 Automotive Diagnostic Command Set API for C ndStartRoutineByLocalIdentifier Purpose Executes the StartRoutineByLocalIdentifier service. Executes a routine on the ECU. Format long ndStartRoutineByLocalIdentifier( TD1 *diagRef, unsigned char localID, unsigned char dataIn[], long len, unsigned char dataOut[], long *len2, LVBoolean *success); Input diagRef Specifies the diagnostic session handle, obtained from...
  • Page 231 In the first case, you may need to switch the ECU to a specific diagnostic mode using or unlock the ECU using the SecurityAccess service prior to ndOpenDiagnostic using ndStartRoutineByLocalIdentifier For further details about this service, refer to the ISO 14230-3 standard. © National Instruments Corporation 6-67 Automotive Diagnostic Command Set User Manual...
  • Page 232: Ndstopdiagnosticsession

    Chapter 6 Automotive Diagnostic Command Set API for C ndStopDiagnosticSession Purpose Executes the StopDiagnosticSession service. Returns the ECU to normal mode. Format long ndStopDiagnosticSession( TD1 *diagRef, LVBoolean *success); Input diagRef Specifies the diagnostic session handle, obtained from and passed ndOpenDiagnostic to subsequent diagnostic functions.
  • Page 233: Ndstoproutinebylocalidentifier

    On return, it contains the number len2 dataOut of valid data bytes in the array. dataOut success Indicates successful receipt of a positive response message for this diagnostic service. © National Instruments Corporation 6-69 Automotive Diagnostic Command Set User Manual...
  • Page 234 Chapter 6 Automotive Diagnostic Command Set API for C Return Value The return value indicates the function call status as a signed 32-bit integer. Zero means the function executed successfully. A negative value specifies an error, which means the function did not perform the expected behavior.
  • Page 235: Ndtesterpresent

    If you do not send this information (for example, because the communication is broken), the ECU returns to normal mode from diagnostic mode after a while. © National Instruments Corporation 6-71 Automotive Diagnostic Command Set User Manual...
  • Page 236 Chapter 6 Automotive Diagnostic Command Set API for C The TesterPresent service is this “keep alive” signal. It does not affect any other ECU operation. Keep calling within the ECU timeout period if no other service is ndTesterPresent executed. Automotive Diagnostic Command Set User Manual 6-72 ni.com...
  • Page 237: Ndwritedatabylocalidentifier

    A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-73 Automotive Diagnostic Command Set User Manual...
  • Page 238 Chapter 6 Automotive Diagnostic Command Set API for C Description This function performs the WriteDataByLocalIdentifier service and writes RecordValues (data values) to the ECU. identifies the data values to be transmitted. The vehicle dataIn 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.
  • Page 239: Ndwritememorybyaddress

    The return value indicates the function call status as a signed 32-bit integer. Zero means the function executed successfully. A negative value specifies an error, which means the function © National Instruments Corporation 6-75 Automotive Diagnostic Command Set User Manual...
  • Page 240 Chapter 6 Automotive Diagnostic Command Set API for C did not perform the expected behavior. A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString Description This VI performs the KWP2000 WriteDataByAddress service and writes RecordValues (data...
  • Page 241: Uds (Diagoncan) Services

    A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-77 Automotive Diagnostic Command Set User Manual...
  • Page 242 Chapter 6 Automotive Diagnostic Command Set API for C Description This function clears the diagnostic information on the ECU memory. Depending on the value , the ECU is requested to clear the corresponding DTCs. The groupOfDTC groupOfDTC values are application specific. For further details about this service, refer to the ISO 15765-3 standard.
  • Page 243: Ndudscommunicationcontrol

    The return value indicates the function call status as a signed 32-bit integer. Zero means the function executed successfully. A negative value specifies an error, which means the function © National Instruments Corporation 6-79 Automotive Diagnostic Command Set User Manual...
  • Page 244 Chapter 6 Automotive Diagnostic Command Set API for C did not perform the expected behavior. A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString Description This function executes the UDS CommunicationControl service and switches transmission...
  • Page 245: Ndudscontroldtcsetting

    A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-81 Automotive Diagnostic Command Set User Manual...
  • Page 246: Ndudsdiagnosticsessioncontrol

    Chapter 6 Automotive Diagnostic Command Set API for C ndUDSDiagnosticSessionControl Purpose Executes the UDS DiagnosticSessionControl service. The ECU is set up in a specific diagnostic mode. Format long ndUDSDiagnosticSessionControl( TD1 *diagRef, unsigned char mode, LVBoolean *success); Input diagRef Specifies the diagnostic session handle, obtained from and passed ndOpenDiagnostic to subsequent diagnostic functions.
  • Page 247: Ndudsecureset

    A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-83 Automotive Diagnostic Command Set User Manual...
  • Page 248 Chapter 6 Automotive Diagnostic Command Set API for C Description This function requests the ECU to perform an ECU reset effectively based on the mode parameter value content. The vehicle manufacturer determines when the positive response message is sent. Depending the value of , the corresponding ECU reset event is executed mode as a hard reset, key off/on reset, soft reset, or other reset.
  • Page 249: Ndudsinputoutputcontrolbyidentifier

    Defines the I/O control type. The values are application specific. The usual values are: 0: ReturnControlToECU 1: ResetToDefault 2: FreezeCurrentState 3: ShortTermAdjustment dataIn Defines application-specific data for this service. Must contain the number of valid data bytes in dataIn © National Instruments Corporation 6-85 Automotive Diagnostic Command Set User Manual...
  • Page 250 Chapter 6 Automotive Diagnostic Command Set API for C Output dataOut Returns application-specific data for this service. len2 On input, must contain the array length. On return, it contains the number len2 dataOut of valid data bytes in the array. dataOut success Indicates successful receipt of a positive response message for this diagnostic service.
  • Page 251: Ndudsreaddatabyidentifier

    A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-87 Automotive Diagnostic Command Set User Manual...
  • Page 252 Chapter 6 Automotive Diagnostic Command Set API for C Description This function requests data record values from the ECU identified by the parameter. For further details about this service, refer to the ISO 15765-3 standard. Automotive Diagnostic Command Set User Manual 6-88 ni.com...
  • Page 253: Ndudsreadmemorybyaddress

    On return, it contains the number dataOut of valid data bytes in the array. dataOut success Indicates successful receipt of a positive response message for this diagnostic service. © National Instruments Corporation 6-89 Automotive Diagnostic Command Set User Manual...
  • Page 254 Chapter 6 Automotive Diagnostic Command Set API for C Return Value The return value indicates the function call status as a signed 32-bit integer. Zero means the function executed successfully. A negative value specifies an error, which means the function did not perform the expected behavior.
  • Page 255: Ndudsreportdtcbyseveritymaskrecord

    ECU sends for each DTC. The DTCByteLength default is 3 for UDS. indicates the number of bytes the ECU sends for each DTC’s StatusByteLength status. The default is 1. © National Instruments Corporation 6-91 Automotive Diagnostic Command Set User Manual...
  • Page 256 Chapter 6 Automotive Diagnostic Command Set API for C indicates the number of bytes the ECU sends for each DTC’s AddDataByteLength additional data. For this subfunction, the default is 2. indicates the byte ordering for multibyte items: ByteOrder 0: MSB_FIRST (Motorola), default 1: LSB_FIRST (Intel) This function interprets the response byte stream according to this description and returns the resulting DTC records in the...
  • Page 257 Description This function executes the ReportDTCBySeverityMaskRecord subfunction of the UDS ReadDiagnosticTroubleCodeInformation service and reads the selected DTCs. For further details about this service, refer to the ISO 15765-3 standard. © National Instruments Corporation 6-93 Automotive Diagnostic Command Set User Manual...
  • Page 258: Ndudsreportdtcbystatusmask

    Chapter 6 Automotive Diagnostic Command Set API for C ndUDSReportDTCByStatusMask Purpose Executes the ReportDTCByStatusMask subfunction of the UDS ReadDiagnosticTroubleCodeInformation service. Reads selected Diagnostic Trouble Codes (DTCs). Format long ndUDSReportDTCByStatusMask( TD1 *diagRef, unsigned char statusMask, TD3 *DTCDescriptor, unsigned char *statusAvailMask, TD4 DTCs[], long *len, LVBoolean *success);...
  • Page 259 On return, it contains the DTCs number of valid elements in the array. DTCs success Indicates successful receipt of a positive response message for this diagnostic service. © National Instruments Corporation 6-95 Automotive Diagnostic Command Set User Manual...
  • Page 260 Chapter 6 Automotive Diagnostic Command Set API for C Return Value The return value indicates the function call status as a signed 32-bit integer. Zero means the function executed successfully. A negative value specifies an error, which means the function did not perform the expected behavior.
  • Page 261: Ndudsreportseverityinformationofdtc

    ECU sends for each DTC’s StatusByteLength status. The default is 1. indicates the number of bytes the ECU sends for each DTC’s AddDataByteLength additional data. For this subfunction, the default is 2. © National Instruments Corporation 6-97 Automotive Diagnostic Command Set User Manual...
  • Page 262 Chapter 6 Automotive Diagnostic Command Set API for C indicates the byte ordering for multibyte items: ByteOrder 0: MSB_FIRST (Motorola), default 1: LSB_FIRST (Intel) This function interprets the response byte stream according to this description and returns the resulting DTC records in the struct array.
  • Page 263 This function executes the ReportSeverityInformationOfDTC subfunction of the UDS ReadDiagnosticTroubleCodeInformation service and reads the selected DTCs from the ECU memory. For further details about this service, refer to the ISO 15765-3 standard. © National Instruments Corporation 6-99 Automotive Diagnostic Command Set User Manual...
  • Page 264: Ndudsreportsupporteddtcs

    Chapter 6 Automotive Diagnostic Command Set API for C ndUDSReportSupportedDTCs Purpose Executes the ReportSupportedDTCs subfunction of the UDS ReadDiagnosticTroubleCodeInformation service. Reads all supported Diagnostic Trouble Codes (DTCs). Format long ndUDSReportSupportedDTCs( TD1 *diagRef, TD3 *DTCDescriptor, unsigned char *statusAvailMask, TD4 DTCs[], long *len, LVBoolean *success);...
  • Page 265 On return, it contains the DTCs number of valid elements in the array. DTCs success Indicates successful receipt of a positive response message for this diagnostic service. © National Instruments Corporation 6-101 Automotive Diagnostic Command Set User Manual...
  • Page 266 Chapter 6 Automotive Diagnostic Command Set API for C Return Value The return value indicates the function call status as a signed 32-bit integer. Zero means the function executed successfully. A negative value specifies an error, which means the function did not perform the expected behavior.
  • Page 267: Ndudsrequestseed

    A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-103 Automotive Diagnostic Command Set User Manual...
  • Page 268 Chapter 6 Automotive Diagnostic Command Set API for C Description The usual procedure for getting a security access to the ECU is as follows: Request a seed from the ECU using with access mode = n. ndUDSRequestSeed From the seed, compute a key for the ECU on the host. Send the key to the ECU using with access mode = n + 1.
  • Page 269: Ndudsroutinecontrol

    2: Stop Routine 3: Request Routine Results Other values are application specific. dataIn Defines application-specific input parameters for the routine. Must contain the number of valid data bytes in dataIn © National Instruments Corporation 6-105 Automotive Diagnostic Command Set User Manual...
  • Page 270 Chapter 6 Automotive Diagnostic Command Set API for C Output dataOut Returns application-specific output parameters from the routine. len2 On input, must contain the array length. On return, it contains the number len2 dataOut of valid data bytes in the array.
  • Page 271: Ndudssendkey

    A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-107 Automotive Diagnostic Command Set User Manual...
  • Page 272 Chapter 6 Automotive Diagnostic Command Set API for C Description The usual procedure for getting a security access to the ECU is as follows: Request a seed from the ECU using with access mode = n. ndUDSRequestSeed From the seed, compute a key for the ECU on the host. Send the key to the ECU using with access mode = n + 1.
  • Page 273: Ndudstesterpresent

    If you do not send this information (for example, because the communication is broken), the ECU returns to normal mode from diagnostic mode after a while. © National Instruments Corporation 6-109 Automotive Diagnostic Command Set User Manual...
  • Page 274 Chapter 6 Automotive Diagnostic Command Set API for C The TesterPresent service is this “keep alive” signal. It does not affect any other ECU operation. Keep calling within the ECU timeout period if no other service is ndUDSTesterPresent executed. Automotive Diagnostic Command Set User Manual 6-110 ni.com...
  • Page 275: Ndudswritedatabyidentifier

    A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-111 Automotive Diagnostic Command Set User Manual...
  • Page 276 Chapter 6 Automotive Diagnostic Command Set API for C Description This function performs the UDS service WriteDataByIdentifier and writes RecordValues (data values) into the ECU. identifies the data. The vehicle manufacturer must ensure dataIn 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.
  • Page 277: Ndudswritememorybyaddress

    The return value indicates the function call status as a signed 32-bit integer. Zero means the function executed successfully. A negative value specifies an error, which means the function © National Instruments Corporation 6-113 Automotive Diagnostic Command Set User Manual...
  • Page 278 Chapter 6 Automotive Diagnostic Command Set API for C did not perform the expected behavior. A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString Description This function performs the UDS service WriteMemoryByAddress and writes RecordValues...
  • Page 279: Obd (On-Board Diagnostics) Services

    A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-115 Automotive Diagnostic Command Set User Manual...
  • Page 280: Ndobdrequestcontrolofonboarddevice

    Chapter 6 Automotive Diagnostic Command Set API for C ndOBDRequestControlOfOnBoardDevice Purpose Executes the OBD Request Control Of On-Board Device service. Modifies ECU I/O port behavior. Format long ndOBDRequestControlOfOnBoardDevice( TD1 *diagRef, unsigned char TID, unsigned char dataIn[], long len, unsigned char dataOut[], long *len2, LVBoolean *success);...
  • Page 281 A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-117 Automotive Diagnostic Command Set User Manual...
  • Page 282: Ndobdrequestcurrentpowertraindiagnosticdata

    Chapter 6 Automotive Diagnostic Command Set API for C ndOBDRequestCurrentPowertrainDiagnosticData Purpose Executes the OBD Request Current Powertrain Diagnostic Data service. Reads an ECU data record. Format long ndOBDRequestCurrentPowertrainDiagnosticData( TD1 *diagRef, unsigned char PID, unsigned char dataOut[], long *len, LVBoolean *success); Input diagRef Specifies the diagnostic session handle, obtained from...
  • Page 283 A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-119 Automotive Diagnostic Command Set User Manual...
  • Page 284: Ndobdrequestemissionrelateddtcs

    Chapter 6 Automotive Diagnostic Command Set API for C ndOBDRequestEmissionRelatedDTCs Purpose Executes the OBD Request Emission Related DTCs service. Reads all emission-related Diagnostic Trouble Codes (DTCs). Format long ndOBDRequestEmissionRelatedDTCs( TD1 *diagRef, TD3 *DTCDescriptor, TD4 DTCs[], long *len, LVBoolean *success); Input diagRef Specifies the diagnostic session handle, obtained from and passed...
  • Page 285 A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-121 Automotive Diagnostic Command Set User Manual...
  • Page 286: Ndobdrequestemissionrelateddtcsduringcurrentdrivecycle

    Chapter 6 Automotive Diagnostic Command Set API for C ndOBDRequestEmissionRelatedDTCsDuringCurrentDriveCycle Purpose Executes the OBD Request Emission Related DTCs During Current Drive Cycle service. Reads the emission-related Diagnostic Trouble Codes (DTCs) that occurred during the current (or last completed) drive cycle. Format long ndOBDRequestEmissionRelatedDTCsDuringCurrentDriveCycle( TD1 *diagRef,...
  • Page 287 A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-123 Automotive Diagnostic Command Set User Manual...
  • Page 288: Ndobdrequestonboardmonitoringtestresults

    Chapter 6 Automotive Diagnostic Command Set API for C ndOBDRequestOnBoardMonitoringTestResults Purpose Executes the OBD Request On-Board Monitoring Test Results service. Reads an ECU test data record. Format long ndOBDRequestOnBoardMonitoringTestResults( TD1 *diagRef, unsigned char OBDMID, unsigned char dataOut[], long *len, LVBoolean *success); Input diagRef Specifies the diagnostic session handle, obtained from...
  • Page 289 A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-125 Automotive Diagnostic Command Set User Manual...
  • Page 290: Ndobdrequestpowertrainfreezeframedata

    Chapter 6 Automotive Diagnostic Command Set API for C ndOBDRequestPowertrainFreezeFrameData Purpose Executes the OBD Request Powertrain Freeze Frame Data service. Reads an ECU data record stored while a diagnostic trouble code occurred. Format long ndOBDRequestPowertrainFreezeFrameData( TD1 *diagRef, unsigned char PID, unsigned char nFrame, unsigned char dataOut[], long *len,...
  • Page 291 A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-127 Automotive Diagnostic Command Set User Manual...
  • Page 292: Ndobdrequestvehicleinformation

    Chapter 6 Automotive Diagnostic Command Set API for C ndOBDRequestVehicleInformation Purpose Executes the OBD Request Vehicle Information service. Reads a set of information data from the ECU. Format long ndOBDRequestVehicleInformation( TD1 *diagRef, unsigned char infoType, unsigned char *nItems, unsigned char dataOut[], long *len, LVBoolean *success);...
  • Page 293 A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention. Use the function to obtain a descriptive string for the return value. ndStatusToString © National Instruments Corporation 6-129 Automotive Diagnostic Command Set User Manual...
  • Page 294: Technical Support And Professional Services

    Technical Support and Professional Services Visit the following sections of the National Instruments Web site at for technical support and professional services: ni.com • Support—Online technical support resources at ni.com/support include the following: – Self-Help Resources—For answers and solutions, visit the...
  • Page 295: Index

    6-41 LabVIEW RT configuration, 2-2 ndEnableNormalMessageTransmission, OBD, 1-6 6-43 software requirements, 2-2 ndGetProperty, 6-22 structure (figure), 4-1 ndInputOutputControlByLocalIdentifier, tweaking the transport protocol, 4-4 6-44 ndOBDClearEmissionRelatedDiagnostic Information, 6-115 ndOBDOpen, 6-24 © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 296 Index ndOBDRequestControlOfOnBoard ndUDSReportDTCBySeverityMask Device, 6-116 Record, 6-91 ndOBDRequestCurrentPowertrain ndUDSReportDTCByStatusMask, 6-94 DiagnosticData, 6-118 ndUDSReportSeverityInformationOf ndOBDRequestEmissionRelatedDTCs, DTC, 6-97 6-120 ndUDSReportSupportedDTCs, 6-100 ndOBDRequestEmissionRelatedDTCs ndUDSRequestSeed, 6-103 DuringCurrentDriveCycle, 6-122 ndUDSRoutineControl, 6-105 ndOBDRequestOnBoardMonitoringTest ndUDSSendKey, 6-107 Results, 6-124 ndUDSTesterPresent, 6-109 ndOBDRequestPowertrainFreezeFrame ndUDSWriteDataByIdentifier, 6-111 Data, 6-126 ndUDSWriteMemoryByAddress, 6-113 ndOBDRequestVehicleInformation, ndVWTPConnect, 6-32 6-128...
  • Page 297 Convert from Phys.vi, 5-10 help, technical support, A-1 Convert to Phys.vi, 5-12 Create Extended CAN IDs.vi, 5-14 Diag Get Property.vi, 5-15 Diag Set Property.vi, 5-17 input/output control, 1-4 Diagnostic Service.vi, 5-19 InputOutputControlByLocalIdentifier.vi, 5-44 © National Instruments Corporation Automotive Diagnostic Command Set User Manual...
  • Page 298 Index DisableNormalMessageTransmission.vi, StopDiagnosticSession.vi, 5-68 5-38 StopRoutineByLocalIdentifier.vi, 5-70 DTC to String.vi, 5-21 TesterPresent.vi, 5-72 ECUReset.vi, 5-40 UDS (DiagOnCAN) services, 5-78 EnableNormalMessageTransmission.vi, UDS ClearDiagnosticInformation.vi, 5-42 5-78 general functions, 5-8 UDS CommunicationControl.vi, 5-81 InputOutputControlByLocalIdentifier.vi, UDS ControlDTCSetting.vi, 5-83 5-44 UDS DiagnosticSessionControl.vi, 5-85 KWP2000 services, 5-32 UDS ECUReset.vi, 5-87 list of VIs, 5-2 UDS InputOutputControlByIdentifier.vi,...
  • Page 299 Index ndSetProperty, 6-28 ndStartDiagnosticSession, 6-64 National Instruments support and ndStartRoutineByLocalIdentifier, 6-66 services, A-1 ndStatusToString, 6-30 ndClearDiagnosticInformation, 6-36 ndStopDiagnosticSession, 6-68 ndCloseDiagnostic, 6-12 ndStopRoutineByLocalIdentifier, 6-69 ndControlDTCSetting, 6-38 ndTesterPresent, 6-71 ndConvertFromPhys, 6-13 ndUDSClearDiagnosticInformation, 6-77 ndConvertToPhys, 6-15 ndUDSCommunicationControl, 6-79 ndCreateExtendedCANIds, 6-17 ndUDSControlDTCSetting, 6-81 ndDiagnosticService, 6-19...
  • Page 300 Index OBD Clear Emission Related Diagnostic Information.vi, 5-119 SendKey.vi, 5-62 OBD Open.vi, 5-22 software (NI resources), A-1 OBD Request Control Of On-Board software requirements, 2-2 Device.vi, 5-121 StartDiagnosticSession.vi, 5-64 OBD Request Current Powertrain Diagnostic StartRoutineByLocalIdentifier.vi, 5-66 Data.vi, 5-123 StopDiagnosticSession.vi, 5-68 OBD Request Emission Related DTCs During StopRoutineByLocalIdentifier.vi, 5-70 Current Drive Cycle.vi, 5-128...
  • Page 301 VWTP Disconnect.vi, 5-30 UDS RequestSeed.vi, 5-107 UDS RoutineControl.vi, 5-109 UDS SendKey.vi, 5-111 UDS TesterPresent.vi, 5-113 Web resources, A-1 UDS WriteDataByIdentifier.vi, 5-115 WriteDataByLocalIdentifier.vi, 5-74 UDS WriteMemoryByAddress.vi, 5-117 WriteMemoryByAddress.vi, 5-76 Unified Diagnostic Services, 1-5 © National Instruments Corporation Automotive Diagnostic Command Set User Manual...

Table of Contents