CPKSoft Engineering

XCATM5X.tlk Driver Reference

Caterpillar CCM/M5X Protocol Driver

This driver requires that you have TAS-HMITalk 8.04 installed.

Driver Overview

The XCATM5X driver allows you to connect to the Caterpillar's Customer

Communication Modules (CCM) which uses the M5X protocol to transfer

parameter's data via a standard RS-232C serial data link. The CCM

provides the communication link between the host PC and the engine or

the generator set.

 

COM port factory default settings for the CCM unit are 9600, N, 8, 1.

 

This driver does not support broadcast lists. Stable parameters should

be requested less frequently in order to optimize data transfer. This

will minimize communication loading. Some examples of stable parameters

include the following items: hourmeters, atmospheric pressure, temperatures

and diagnostics. Parameters that are more dynamic such as engine speed and

oil pressure can be requested more frequently. Use good judgment to

determine the number of individual HMITalk objects and the corresponding

ScanInterval that you use in your applications.

 

Do not attempt to read or write parameters until you are sure that

the appropriate security level (Log In) has been established.

 

It might be necessary to set the CommT3Delay argument to 1000 ms to

separate each command sent to the same CCM unit. According to the

Caterpillar Operation and Maintenance Manual, Customer Communication

Module (CCM) for Diesel Engines, a parameter cannot be read or sent

until one second has elapsed and/or a reply from CCM has been received

from previous request. Use the CommT3Delay argument in case you see

that you are getting a response to the first request and the next

request does not get a response from the CCM.

 

Also check setting extra carriage return charactes at the beginning of each

message transmitted if you cannot get any reply from your units. We have found

that in might be necessary to add up to two 0x0D characters in order to

gain the device's attention.

Supported Equipment Type

Engine Controllers

Supported Devices List

CATERPILLAR CCM Units

CATERPILLAR 3400 Engine Units

CATERPILLAR 3500B Marine Engine Units

CATERPILLAR 3500B Generator Set Units

CATERPILLAR EMCP II Generator Set Units

Supported Commands List

Log In to the CCM

Read Multiple Numeric Parameters

Write Single Numeric Parameter

Log In to the CCM

COMMAND DESCRIPTION:

The password protection for the CCM is initially enabled since

password protection may be necessary for some applications.

Changing the password protection can be done with the PC

software of the CCM.

If the password protection is enabled for the CCM, then

before any parameters can be read from the CCM or from

the electronic engine controller with this driver, the appropriate

security level must be established. This process is called Log In.

This command allows you to Log In using an existing password.

The factory default password is blank for all security levels.

This command returns the security level that corresponds to

the password supplied.

 

PROPERTY SETTINGS REQUIRED:

HMITalk1.DriverDataType = Analog Input

HMITalk1.DriverNumPoints = 1

HMITalk1.DriverP0 = Unit Data Number

For 3500B Marine Engine Units:

33 = Electronic engine controller (Port)

34 = Electronic engine controller (Starboard)

36 = Electronic engine controller (Single of Center)

For 3500B Generator Set Units:

33 to 38 = Electronic engine controller

40 to 41 = Number 1-8

For EMCP II Generator Set Units:

88 to 95 = GSC Number (1-8)

For Customer Communication Modules Units:

97 = CCM

HMITalk1.DriverP1 = 0

HMITalk1.DriverP4 = Number of 'Carriage Return' characters that are

added at the beginning of each message.

HMITalk1.DriverP6 = Log In Password (leave empty for factory default)

Example: 11112222 (Do not use quotes)

 

RETURNS:

- HMITalk1.PointValue(0) = Security level for password supplied (0-3)

Read Multiple Numeric Parameters

COMMAND DESCRIPTION:

This command requests data from a set of parameters (PID)

and then uses the CCM reply to build a numeric value for each

parameter data received. Selected parameters should be of

numeric type (1, 2 and 4 bytes only). Values will be always

returned as unsigned values. Your application should have

the intelligence to transform the returned unsigned valued

into the final scaled data or individual bit data.

If values returned are longer than 4 bytes, they will be

assumed as text and thus should be retrieved using PointName

instead of PointValue. This condition will be indicated for each

PointValue by returning a value of -2.0 in it. This will mean that

you will have to look for the PointName contents.

The CCM communication protocol originally does not support

multiple parameters requests. This driver implements a multiple

parameter request by automatically making several single

parameter requests until all the selected parameter values

have been retrieved. The number of parameters to be requested

by a multiple request is defined in the DriverNumPoints

argument. The particular PIDs to be requested are defined

as a comma-separated string in the DriverP6 argument. Each

parameter identification (PID) must be a 4-chars hexa number.

This command does not show any parameter value until all

the selected parameter values have been read from the CCM.

If one single parameter request fails, the command will

return an error and it will not show any parameter value.

The driver permits that you specify a delay between each single

parameter request in order to avoid saturating the CCM unit.

This parameter is only applied between consecutive readings

of PIDs in the same request, and is not applied after the last

PID in the group was read. If you want to indicate a delay

after the last PID was read, use the CommT3Delay property.

According to the CCM protocol specification, each parameter

can be requested one time per second (this might not be

true for your particular working conditions). This delay is

assumed as 0 by default but it could be necessary that you set

it to a minimum of 1000 ms. The suggestion is that you try

with 0 ms and then increase this delay in 250 ms intervals

until the CCM responds to all parameters correctly.

You can also specify a number of retries to be used when

a single request which is part of a multiple request fails.

Use retries > 0 in DriverP3 to be tolerant to sporadic timeout errors

that could invalidate the whole multiple request.

 

PROPERTY SETTINGS REQUIRED:

HMITalk1.DriverDataType = Analog Input

HMITalk1.DriverNumPoints = 1-100

HMITalk1.DriverP0 = Unit Data Number

For 3500B Marine Engine Units:

33 = Electronic engine controller (Port)

34 = Electronic engine controller (Starboard)

36 = Electronic engine controller (Single of Center)

For 3500B Generator Set Units:

33 to 38 = Electronic engine controller

40 to 41 = Number 1-8

For EMCP II Generator Set Units:

88 to 95 = GSC Number (1-8)

For Customer Communication Modules Units:

97 = CCM

HMITalk1.DriverP1 = 1

HMITalk1.DriverP2 = Delay in milliseconds between single requests (0-3000).

HMITalk1.DriverP3 = Indicates the number of retries when a single

request fails before abandoning the whole multiple request (0-25).

HMITalk1.DriverP4 = Number of 'Carriage Return' characters that are

added at the beginning of each message.

HMITalk1.DriverP6 = List of parameter IDs (PID) to be requested as a series

of 4-chars hexadecimal numbers separated by commas and with no spaces

between numbers and commas. Example: F44B,F460,F462

 

NOTE:

Refer to the Caterpillar Operation and Maintenance Manual,

Customer Communication Module (CCM) for Diesel Engines for

the list of possible parameter identifiers and their valid

ranges/scaling information.

- Parameter Identifiers for EMCP II = page 43

- Parameter Identifiers for 3400 Engines = page 59

- Parameter Identifiers for 3500B Engines = page 69

 

RETURNS:

- HMITalk1.PointValue(0) = Value of first parameter in list indicated in DriverP6

- HMITalk1.PointValue(1) = Value of second parameter in list indicated in DriverP6

...

- HMITalk1.PointValue(n-1) = Value of last parameter in list indicated in DriverP6

 

NOTE:

When PointValue is -2.0, it means that the PID could not be

converted to a number and that it is returned as a text in

the associated PointName property.

Write Single Numeric Parameter

COMMAND DESCRIPTION:

This command is used to write data for an individual parameter.

The particular PID to be written is defined in the DriverP6

property. The PID must be a 4-chars hexa number. The value to

be sent must be previously loaded in the PointValue(0) value and

should always be an unsigned value. The value in PointValue(0) will be

transmitted as a 1, 2, 3 or 4 unsigned hexa number depending on how

the DriverP3 parameter is set. Your application should provide the

intelligence to build a proper value to be loaded in the PointValue(0)

value in order to produce the desired results in the CCM module.

If you need to write several values, the data should be sent at a rate

of one time per second. Another Write Single Numeric Parameter cannot

be sent until one second has elapsed and/or until a reply has been

received for the previous writting request. It is recommended that

you use the CommT3Delay argument to assure a minimum interval of

1000 ms between two consecutive write operations.

 

PROPERTY SETTINGS REQUIRED:

HMITalk1.DriverDataType = Analog Output

HMITalk1.DriverNumPoints = 1

HMITalk1.DriverP0 = Unit Data Number

For 3500B Marine Engine Units:

33 = Electronic engine controller (Port)

34 = Electronic engine controller (Starboard)

36 = Electronic engine controller (Single of Center)

For 3500B Generator Set Units:

33 to 38 = Electronic engine controller

40 to 41 = Number 1-8

For EMCP II Generator Set Units:

88 to 95 = GSC Number (1-8)

For Customer Communication Modules Units:

97 = CCM

HMITalk1.DriverP1 = 0

HMITalk1.DriverP2 = Indicates what is the format of the PID value to be transmitted:

1 = Transmit as 1-byte value between 0 and 255 ($00-$FF)

2 = Transmit as 2-bytes value between 0 and 65535 ($0000-$FFFF)

3 = Transmit as 3-bytes value between 0 and 16777215 ($000000-$FFFFFF)

4 = Transmit as 4-bytes value between 0 and 4294967295 ($00000000-$FFFFFFFF)

HMITalk1.DriverP4 = Number of 'Carriage Return' characters that are

added at the beginning of each message.

HMITalk1.DriverP6 = Writtable parameter ID (PID) as a 4-chars hexadecimal number.

Example: FC0D

 

NOTE:

Refer to the Caterpillar Operation and Maintenance Manual,

Customer Communication Module (CCM) for Diesel Engines for

the list of possible parameter identifiers and their valid

ranges/scaling information.

- Parameter Identifiers for EMCP II = page 43

- Parameter Identifiers for 3400 Engines = page 59

- Parameter Identifiers for 3500B Engines = page 69

 

WHERE:

- HMITalk1.PointValue(0) = New value for the indicated parameter,

according to range limits indicated in the DriverP2 property.

Returned Errors List

[1005] DRIVER (Internal): Invalid driver stage

[1300] PROTOCOL (Timeout): No answer

[1416] PROTOCOL (Format): Invalid unit code received

[1423] PROTOCOL (Format): No data in response

[1427] PROTOCOL (Format): Unexpected response

[1433] PROTOCOL (Format): Validation error in device response

[1441] PROTOCOL (Format): Returned PID is other than sent

[2002] CONFIG (DataType): Digital inputs are not supported by this driver

[2003] CONFIG (DataType): Digital outputs are not supported by this driver

[2143] CONFIG (NumValues): Only one PID can be written at a time

[2148] CONFIG (NumValues): Only one value can be requested

[2166] CONFIG (NumValues): Too many PIDs requested (max=100)

[3509] CONFIG (P1): Invalid command (0 only)

[3510] CONFIG (P1): Invalid command (0 or 1 only)

[4054] CONFIG (P2): Invalid delay between requests (0-3000)

[4143] CONFIG (P2): Invalid data format (1 to 4 only)

[4550] CONFIG (P3): Invalid number of retries (0-25)

[5042] CONFIG (P4): Invalid number of carriage returns (0-9)

[6023] CONFIG (P6): Invalid PID or PID not supplied

[6033] CONFIG (P6): Not enough PIDs are supplied for indicated number of values

About the XCATM5X.tlk driver

This driver requires that you have TAS-HMITalk 8.04 installed.

Driver Source Code Last Update: 04/03/2007 16:30:07

Driver Reference Last Update: 10/30/2008 17:34:09

© 1990-2008, CPKSoft Engineering. All rights reserved.

http://www.cpksoft.com - support@cpksoft.com

http://www.cpksoft.com.ar - soporte@cpksoft.com.ar>