XCATM5X.tlk Driver Reference
Caterpillar CCM/M5X Protocol Driver
This driver requires that you have TAS-HMITalk 8.04 installed.
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.
Engine Controllers
CATERPILLAR CCM Units
CATERPILLAR 3400 Engine Units
CATERPILLAR 3500B Marine Engine Units
CATERPILLAR 3500B Generator Set Units
CATERPILLAR EMCP II Generator Set Units
Read Multiple Numeric Parameters
Write Single Numeric Parameter
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)
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.
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.
[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
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.