• No results found

MODBUS ® EXCEPTION RESPONSES

In document Waukesha APG1k ESM Manual (Page 85-91)

MODBUS ® (RS-485) COMMUNICATIONS

MODBUS ® EXCEPTION RESPONSES

The ECU will respond with exception responses wher-ever applicable and possible.

When a master device sends a signal to a slave device, it expects a normal response. Four possible responses can occur from a master’s signal:

• If the slave device receives the signal error-free and can handle the signal normally, a normal response is returned.

• If the slave device does not receive an error-free signal, no response is returned. The master pro-gram will eventually process a time-out condition for the signal.

• If the slave device receives the signal but detects an error, no response is returned. The master program will eventually process a time-out condition for the signal.

• If the slave device receives the signal error-free but cannot handle it, the slave will return an exception response informing the master of the nature of the error. See Table 2.35-3 for exception responses.

Table 2.35-2 MODBUS® Function Codes FUNCTION

01 Read Coil Status 0XXXX

02 Read Input Status 1XXXX

03 Read Holding Registers 4XXXX

04 Read Input Registers 3XXXX

Table 2.35-3 MODBUS® Exception Responses

CODE NAME MEANING

01 ILLEGAL

FUNCTION

The function code received in the signal is not an allowable action for the slave device.

02 ILLEGAL DATA ADDRESS

The data address received in the signal is not an allowable address for the slave device.

Table 2.35-4 Function Code 01 (0XXXX Messages)

MODBUS® ADDRESS NAME DESCRIPTION ENGINEERING UNITS

00001 Main Fuel Valve Status of the main fuel valve 1 = ON

0 = OFF 00003 Engine Running Whether the engine is running or not running 1 = RUNNING

0 = OFF 00004 Starter Motor Whether the starter motor is engaged or not 1 = ENGAGED

0 = OFF 00005 Pre/Post Lube Whether the pre/post lube pump is running 1 = RUNNING

0 = OFF

00006 Engine Alarm Whether a validated alarm is active 1 = ON

0 = OFF

00007 Engine Shutdown Whether the shutdown is active 1 = OK

0 = SHUTDOWN 00008 Engine Knocking Whether the engine is in uncontrollable knock 1 = ON

0 = OFF 00009 No Spark Whether the engine is experiencing a

no-spark situation

1 = NO SPARK 0 = OK 00010 Ignition Power Level Whether the ignition power level is high or low 1 = HIGH

0 = LOW 00011 Ignition Enabled Whether the ignition is enabled or not 1 = ON

0 = OFF

ESM SYSTEM COMMUNICATIONS

Table 2.35-5 Function Code 02 (1XXXX Messages)

MODBUS® ADDRESS NAME DESCRIPTION ENGINEERING UNITS

10001 Start Engine Signal Whether the start engine signal is active 1 = Start Engine Signal High 0 = Start Engine Signal Low 10002 Normal Shutdown Whether the normal shutdown signal is

active

1 = Normal Shutdown 0 = OK To Run 10003 Emergency Shutdown Whether the emergency shutdown signal

is active

1 = Emergency Shutdown 0 = OK To Run

10004 Remote rpm Select Whether the remote rpm analog input is active or inactive

1 = Remote rpm Select Active 0 = Remote rpm Select Inactive 10005 Run High Idle Whether the run high-idle digital input is

active

1 = Run Engine At High Idle 0 = Run Engine At Low Idle 10006 Load Coming Whether the load-coming digital input is

active

1 = Load Coming Digital Input Active 0 = Load Coming Digital Input Inactive

10007 Alternate Dynamics/

Synchronizer Mode

Whether the alternate governor dynamics is active

1 = Alternate Gov Dynamics Is Active 0 = Alternate Gov Dynamics Is Inactive

10008 Lockout Button/Ignition Module

Whether either the lockout button has been depressed or the IPM-D has failed, or is not powered

1 = Lockout Active 0 = Lockout Inactive 10009 User Digital Input 1 Whether user digital input 1 is high 1 = User DIP 1 High

0 = User DIP 1 Inactive 10010 User Digital Input 2 Whether user digital input 2 is high 1 = User DIP 2 High

0 = User DIP 2 Inactive 10011 User Digital Input 3 Whether user digital input 3 is high 1 = User DIP 3 High

0 = User DIP 3 Inactive 10012 User Digital Input 4 Whether user digital input 4 is high 1 = User DIP 4 High

0 = User DIP 4 Inactive 10013 Alternator Whether the engine-driven alternator is

operating correctly

1 = Alternator OK 0 = Alternator Not OK 10014 AFR Manual/Automatic

Status (Left Bank)

Whether the air/fuel ratio control is in manual or automatic mode

1 = Automatic Mode 0 = Manual Mode

10015 Reserved For Future Use

10016 Reserved For Future Use

10017 Reserved For Future Use

Table 2.35-6 Function Code 03 (4XXXX Messages) (Part 1 of 2)

MODBUS® ADDRESS NAME ENGINEERING UNITS

40001 Number of ESD fault codes 16-bit unsigned integer that goes from 0 to 5 40002 First ESD fault code to occur*

16-bit unsigned integer that goes from 111 to 555, excluding any values that contain zeros (see Table 4.00-3 for ESD Fault Codes)

40003 Second ESD fault code to occur*

16-bit unsigned integer that goes from 111 to 555, excluding any values that contain zeros (see Table 4.00-3 for ESD Fault Codes)

40004 Third ESD fault code to occur*

16-bit unsigned integer that goes from 111 to 555, excluding any values that contain zeros (see Table 4.00-3 for ESD Fault Codes)

40005 Fourth ESD fault code to occur*

16-bit unsigned integer that goes from 111 to 555, excluding any values that contain zeros (see Table 4.00-3 for ESD Fault Codes)

40006 Fifth ESD fault code to occur*

16-bit unsigned integer that goes from 111 to 555, excluding any values that contain zeros (see Table 4.00-3 for ESD Fault Codes)

40007 Number of ALM fault codes 16-bit unsigned integer that goes from 0 to 5 40008 First ALM fault code to occur*

16-bit unsigned integer that goes from 111 to 555, excluding any values that contain zeros (see Table 4.00-2 for ALM Fault Codes)

40009 Second ALM fault code to occur*

16-bit unsigned integer that goes from 111 to 555, excluding any values that contain zeros (see Table 4.00-2 for ALM Fault Codes)

40010 Third ALM fault code to occur*

16-bit unsigned integer that goes from 111 to 555, excluding any values that contain zeros (see Table 4.00-2 for ALM Fault Codes)

ESM SYSTEM COMMUNICATIONS

40011 Fourth ALM fault code to occur*

16-bit unsigned integer that goes from 111 to 555, excluding any values that contain zeros (see Table 4.00-2 for ALM Fault Codes)

40012 Fifth ALM fault code to occur*

16-bit unsigned integer that goes from 111 to 555, excluding any values that contain zeros (see Table 4.00-2 for ALM Fault Codes)

40013 40014

Engine operating hours (in seconds) of most recent ESD

fault code 32-bit unsigned integer – full range

40015 40016

Engine operating hours (in seconds) of second most recent

ESD fault code 32-bit unsigned integer – full range

40017 40018

Engine operating hours (in seconds) of third most recent

ESD fault code 32-bit unsigned integer – full range

40019 40020

Engine operating hours (in seconds) of fourth most recent

ESD fault code 32-bit unsigned integer – full range

40021 40022

Engine operating hours (in seconds) of fifth most recent

ESD fault code 32-bit unsigned integer – full range

40023 40024

Engine operating hours (in seconds) of most recent ALM

fault code 32-bit unsigned integer – full range

40025 40026

Engine operating hours (in seconds) of second most recent

ALM fault code 32-bit unsigned integer – full range

40027 40028

Engine operating hours (in seconds) of third most recent

ALM fault code 32-bit unsigned integer – full range

40029 40030

Engine operating hours (in seconds) of fourth most recent

ALM fault code 32-bit unsigned integer – full range

40031 40032

Engine operating hours (in seconds) of fifth most recent

ALM fault code 32-bit unsigned integer – full range

40033 Desired engine load 16-bit unsigned integer that goes from 0 to 2304

(0 to 112%)

40034 Actual engine load 16-bit unsigned integer that goes from 0 to 2560

(0 to 125%)

40035 Position of stepper motor 1 16-bit unsigned integer that goes from 0 to 20,000

40036 Reserved For Future Use

40037 Reserved For Future Use

40038 Reserved For Future Use

40039 Reserved For Future Use

40040 Reserved For Future Use

40041

40042 Current engine operating hours (in seconds) 32-bit unsigned integer – full range

40043 Rich stepper maximum motor limit of active fuel (left bank) 16-bit unsigned integer that goes from 0 to 20,000 40044 Lean stepper minimum motor limit of active fuel (left bank) 16-bit unsigned integer that goes from 0 to 20,000

40045 Reserved For Future Use

40046 Reserved For Future Use

40047 Reserved For Future Use

40048 Reserved For Future Use

40049 Reserved For Future Use

40050 Reserved For Future Use

40051 Countdown in seconds until engine starts once starter

pressed 16-bit unsigned integer that goes from 0 to 20,000

Table 2.35-6 Function Code 03 (4XXXX Messages) (Continued), (Part 2 of 2)

MODBUS® ADDRESS NAME ENGINEERING UNITS

ESM SYSTEM COMMUNICATIONS

Table 2.35-7 Function Code 04 (3XXXX Messages) (Part 1 of 3)

MODBUS® ADDRESS NAME SCALING ENGINEERING UNITS

30001 Average rpm Average engine rpm * 4 16-bit unsigned integer that goes from

0 to 8800 (0 to 2200 rpm)

30002 Oil pressure Oil pressure * 2 in units of kPa gauge 16-bit unsigned integer that goes from 0 to 2204 (0 to 1102 kPa)

30003 Intake manifold absolute pressure

Intake manifold pressure * 4 in units of kPa absolute

16-bit unsigned integer that goes from 0 to 2304 (0 to 576 kPa)

30004 Reserved For Future Use

30005 Throttle position Throttle position in units of percent open * 20.48

16-bit unsigned integer that goes from 0 to 2048 (0 to 100%)

30006 Fuel Control Valve Fuel Control Valve position * 20.48 in units of percent open.

16-bit unsigned integer that goes from 0 to 2048 (0 to 100%)

30007 Bypass Position Bypass position * 20.48 in units of percent open

16-bit unsigned integer that goes from 0 to 2048 (0 to 100%)

30008 Coolant outlet temperature (Coolant outlet temperature in C + 40) * 8 16-bit unsigned integer that goes from 0 to 1520 (-40 to 150° C)

30009 Spark timing 1 (Spark timing + 15) * 16 of 1st cylinder in the firing order

16-bit unsigned integer that goes from 0 to 960 (-15 to 45° BTDC)

30010 Spark timing 2 (Spark timing +15) * 16 of 2nd cylinder in the firing order

16-bit unsigned integer that goes from 0 to 960 (-15 to 45° BTDC)

30011 Spark timing 3 (Spark timing + 15) * 16 of 3rd cylinder in the firing order

16-bit unsigned integer that goes from 0 to 960 (-15 to 45° BTDC)

30012 Spark timing 4 (Spark timing + 15) * 16 of 4th cylinder in the firing order

16-bit unsigned integer that goes from 0 to 960 (-15 to 45° BTDC)

30013 Spark timing 5 (Spark timing + 15) * 16 of 5th cylinder in the firing order

16-bit unsigned integer that goes from 0 to 960 (-15 to 45° BTDC)

30014 Spark timing 6 (Spark timing + 15) * 16 of 6th cylinder in the firing order

16-bit unsigned integer that goes from 0 to 960 (-15 to 45° BTDC)

30015 Spark timing 7 (Spark timing + 15) * 16 of 7th cylinder in the firing order

16-bit unsigned integer that goes from 0 to 960 (-15 to 45° BTDC)

30016 Spark timing 8 (Spark timing + 15) * 16 of 8th cylinder in the firing order

16-bit unsigned integer that goes from 0 to 960 (-15 to 45° BTDC)

30017 Spark timing 9 (Spark timing + 15) * 16 of 9th cylinder in the firing order

16-bit unsigned integer that goes from 0 to 960 (-15 to 45° BTDC)

30018 Spark timing 10 (Spark timing + 15) * 16 of 10th cylinder in the firing order

16-bit unsigned integer that goes from 0 to 960 (-15 to 45° BTDC)

30019 Spark timing 11 (Spark timing + 15) * 16 of 11th cylinder in the firing order

16-bit unsigned integer that goes from 0 to 960 (-15 to 45° BTDC)

30020 Spark timing 12 (Spark timing + 15) * 16 of 12th cylinder in the firing order

16-bit unsigned integer that goes from 0 to 960 (-15 to 45° BTDC)

30021 Spark timing 13 (Spark timing + 15) * 16 of 13th cylinder in the firing order

16-bit unsigned integer that goes from 0 to 960 (-15 to 45° BTDC)

30022 Spark timing 14 (Spark timing + 15) * 16 of 14th cylinder in the firing order

16-bit unsigned integer that goes from 0 to 960 (-15 to 45° BTDC)

30023 Spark timing 15 (Spark timing + 15) * 16 of 15th cylinder in the firing order

16-bit unsigned integer that goes from 0 to 960 (-15 to 45° BTDC)

30024 Spark timing 16 (Spark timing + 15) * 16 of 16th cylinder in the firing order

16-bit unsigned integer that goes from 0 to 960 (-15 to 45° BTDC)

30025 Desired spark timing (Spark timing + 15) * 16 16-bit unsigned integer that goes from 0 to 960 (-15 to 45° BTDC)

30026 Battery voltage Battery voltage * 16 16-bit unsigned integer that goes from 0 to 640 (0 to 40 VDC)

30027 Intake manifold air

temperature (left bank) (Intake manifold air temperature in C + 40) * 816-bit unsigned integer that goes from 0 to 1520 (-40 to 150° C)

30028 Oil temperature (Oil temperature in C + 40) * 8 16-bit unsigned integer that goes from 0 to 2048 (-40 to 216° C)

30029 Reserved For Future Use

30030 Reserved For Future Use

30031 Reserved For Future Use

30032 Reserved For Future Use

ESM SYSTEM COMMUNICATIONS

30033 Setpoint rpm

Setpoint rpm * 4

Example: If register 30033 = 4000, then 4000/4 = 1000 rpm

16-bit unsigned integer that goes from 0 to 8800 (0 to 2200 rpm)

30034 IMAP left bank/rear Intake manifold pressure * 4 in units of kPa

absolute 16-bit unsigned integer that goes from

0 to 2304 (0 to 576 kPa) 30035 IMAP right bank/front Intake manifold pressure * 4 in units of kPa

absolute

16-bit unsigned integer that goes from 0 to 2304 (0 to 576 kPa)

30036 Reserved For Future Use

30037 Ambient temperature (Ambient temp. in Centigrade + 40) * 8 16-bit unsigned integer that goes from 0 to 1120 (-40 to 100° C)

30038

30039 Digital input values

A 32-bit number representing the status of all of the 1XXXX messages

NOTE: For more information on addresses 30038–30039, see “Additional Information on MODBUS® Addresses 30038 – 30041” on page 2.35-12.

32-bit unsigned integer – full range

30040

30041 Digital output values

A 32-bit number representing the status of all of the 0XXXX messages

NOTE: For more information on addresses 30040–30041, see “Additional Information on MODBUS® Addresses 30038 – 30041” on page 2.35-12.

32-bit unsigned integer – full range

30042 Reserved For Future Use

30043 Reserved For Future Use

30044 Reserved For Future Use

30045 Reserved For Future Use

30046 Reserved For Future Use

30047 Engine power output Power * 2 in kW 16-bit unsigned integer that goes from 0 to 23704 (0 to 11852 kW)

30048 WKI value (WKI -16) *16 16-bit unsigned integer that goes from

0 to 2048 (16 to 144 WKI)

30049 Reserved For Future Use

30050 Reserved For Future Use

30051 Reserved For Future Use

30052 Reserved For Future Use

30053 Reserved For Future Use

30054 Reserved For Future Use

30055 Reserved For Future Use

30056 Reserved For Future Use

30057 Reserved For Future Use

30058 The ECU temperature (Temperature in Centigrade + 40) * 8 16-bit unsigned integer that goes from 0 to 1120 (-40 to 100° C)

30059 Reserved For Future Use

30060 Reserved For Future Use

30061

The rpm modification value from a Woodward™

Generator control

(rpm + 250) * 4 16-bit unsigned integer that goes from 0 to 2000 (-250 to 250 rpm)

30062 Engine torque % * 20.48 16-bit unsigned integer that goes from

0 to 2560 (0 to 125%)

30063 Rated torque % * 20.48 16-bit unsigned integer that goes from

0 to 2560 (0 to 125%) 30064 Spark reference number

cyl. #1 in firing order Value * 1 16-bit unsigned integer that goes from 0 to 255

30065 Spark reference number

cyl. #2 in firing order Value * 1 16-bit unsigned integer that goes from 0 to 255

30066 Spark reference number

cyl. #3 in firing order Value * 1 16-bit unsigned integer that goes from 0 to 255

30067 Spark reference number

cyl. #4 in firing order Value * 1 16-bit unsigned integer that goes from 0 to 255

Table 2.35-7 Function Code 04 (3XXXX Messages) (Continued), (Part 2 of 3)

MODBUS® ADDRESS NAME SCALING ENGINEERING UNITS

ESM SYSTEM COMMUNICATIONS

30068 Spark reference number

cyl. #5 in firing order Value * 1 16-bit unsigned integer that goes from 0 to 255

30069 Spark reference number

cyl. #6 in firing order Value * 1 16-bit unsigned integer that goes from 0 to 255

30070 Spark reference number

cyl. #7 in firing order Value * 1 16-bit unsigned integer that goes from 0 to 255

30071 Spark reference number

cyl. #8 in firing order Value * 1 16-bit unsigned integer that goes from 0 to 255

30072 Spark reference number

cyl. #9 in firing order Value * 1 16-bit unsigned integer that goes from 0 to 255

30073 Spark reference number

cyl. #10 in firing order Value * 1 16-bit unsigned integer that goes from 0 to 255

30074 Spark reference number

cyl. #11 in firing order Value * 1 16-bit unsigned integer that goes from 0 to 255

30075 Spark reference number

cyl. #12 in firing order Value * 1 16-bit unsigned integer that goes from 0 to 255

30076 Spark reference number

cyl. #13 in firing order Value * 1 16-bit unsigned integer that goes from 0 to 255

30077 Spark reference number

cyl. #14 in firing order Value * 1 16-bit unsigned integer that goes from 0 to 255

30078 Spark reference number

cyl. #15 in firing order Value * 1 16-bit unsigned integer that goes from 0 to 255

30079 Spark reference number

cyl. #16 in firing order Value * 1 16-bit unsigned integer that goes from 0 to 255

30080 Reserved For Future Use

30081 AFR kW power output observed

power * 8 in kW 16-bit unsigned integer that goes from 0 to 57142 (0 to 7142.75 kW)

30082

AFR kW power output desired (1st exhaust) Note: There will be only one exhaust (AFR_LEFT_BANK) when kW sensing is used.

power * 8 in kW 16-bit unsigned integer that goes from 0 to 40000 (0 to 5000 kW)

30083 Reserved For Future Use

30084 Oil Temperature Alarm Limit (Oil temperature in C + 40) * 8 16-bit unsigned integer that goes from 0 to 2048 (-40 to 216 C)

30085 Oil Temperature Shutdown

Limit (Oil temperature in C + 40) * 8 16-bit unsigned integer that goes from 0 to 2048 (-40 to 216 C)

30086 IMAT Alarm Limit (Intake manifold air temperature in C + 40) * 816-bit unsigned integer that goes from 0 to 1520 (-40 to 150 C)

30087 IMAT Shutdown Limit (Intake manifold air temperature in C + 40) * 816-bit unsigned integer that goes from 0 to 1520 (-40 to 150 C)

30088 Coolant Temperature

Alarm Limit (Coolant temperature in C + 40) * 8 16-bit unsigned integer that goes from 0 to 1520 (-40 to 150 C)

30089 Coolant Temperature

Shutdown Limit (Coolant temperature in C + 40) * 8 16-bit unsigned integer that goes from 0 to 1520 (-40 to 150 C)

30090 Gauge Oil Pressure

Alarm Limit Oil pressure * 2 in units of kPa gauge 16-bit unsigned integer that goes from 0 to 2204 (0 to 1102 kPa)

30091 Gauge Oil Pressure

Shutdown Limit Oil pressure * 2 in units of kPa gauge 16-bit unsigned integer that goes from 0 to 2204 (0 to 1102 kPa)

30092 Reserved For Future Use

30093 Reserved For Future Use

30094 Normalized generator power

output Normalized power * 1024 (no units) 16-bit unsigned integer that goes from 0 to 1024 (0 to 1, no units)

30095 Reserved For Future Use

Table 2.35-7 Function Code 04 (3XXXX Messages) (Continued), (Part 3 of 3)

MODBUS® ADDRESS NAME SCALING ENGINEERING UNITS

ESM SYSTEM COMMUNICATIONS

Table 2.35-8 Optional I/O Junction Box Data Table – Function Code 02 (1XXXX Messages) SixNet

I/O Address

MODBUS®

Address NAME DESCRIPTION ENGINEERING

UNITS

OPTION

CODES COMMENTS

In document Waukesha APG1k ESM Manual (Page 85-91)