- Home
- Modbus register maps
- Datakom
- D-300 / D-500 / D-700 genset controllers
Generator controller · Modbus register map
Datakom D-300 / D-500 / D-700 genset controllers Modbus register map
Updated 28 October 2026
Datakom's D-series units control a single genset (D-300, D-500) or a synchronising genset (D-700) and expose Modbus RTU on RS-485/RS-232 and Modbus TCP on Ethernet or GPRS. Everything sits in holding registers read with function 3. This map covers the 16-bit live values (frequencies, battery and charge voltages, oil pressure, fuel level, rpm), the operating status and mode, the shutdown and warning alarm bits, the function flags and the pushbutton-simulation register used for remote start/stop; all 32-bit values are left out (see notes).
This page lists 29 Modbus registers for the Datakom D-300 / D-500 / D-700 genset controllers — 1 writable — with the table, 0-based wire address, data type, word order, scale, units and access of each, re-typed from Datakom’s own free documentation (linked below) and checked against it.
- Manufacturer
- Datakom
- Model
- D-300 / D-500 / D-700 genset controllers
- Equipment type
- Generator controller
- Registers
- 29 (1 writable)
- Transport
- Modbus RTU, Modbus TCP
- Default unit ID
- 1
- Default serial
- 8N1
- TCP port
- 502
- Documented addressing
- 0-based (the number printed is the address on the wire)
- Firmware
- Manual revision 03 (10.09.2015) updated for firmware 5.6
- Also known as
- D-300, D-500, D-700, D300, D500, D700
Integration notes: Datakom D-300 / D-500 / D-700 genset controllers
Read 10604 (operation status), 10605 (mode) and the summary flags at 11558 with function 3, then 10338-10341 for frequencies and battery voltage. Remote control is done by writing a single bit to 8193 to simulate a panel key (Stop, Run/Manual, Auto, Test).
Minimum registers to map
Addresses are 0-based wire addresses. Enough to monitor and run the unit; map more as the job needs.
| Register | Name | Type | Why | Access |
|---|---|---|---|---|
| HR 10604 | Unit operation status | UINT16 | Genset sequence state | Read |
| HR 10605 | Unit mode | UINT16 | STOP / RUN / AUTO / TEST mode | Read |
| HR 11558 | Function flags 48-63 | BITMAP16 | Shutdown, loaddump and warning summary flags | Read |
| HR 11557 | Function flags 32-47 | BITMAP16 | Mains fail and engine running flags | Read |
| HR 10339 | Genset frequency | UINT16 | Genset frequency | Read |
| HR 10341 | Battery voltage | UINT16 | Battery voltage | Read |
| HR 10376 | Engine rpm | UINT16 | Engine speed | Read |
| HR 8193 | Pushbutton simulation | BITMAP16 | Remote key presses | Write |
Enable Modbus control & writes
Set a Modbus slave address (1-240). For RS-485 set 'RS-485 Enable' to 1 and pick a baud rate; for Ethernet set 'Ethernet Enable' to 1, the Modbus TCP port (usually 502) and the IP, gateway and subnet; the first User IP Mask should be 255.255.255.0.
Byte order & addressing
- Only functions 3, 6 and 16 are supported; status bits are read from holding registers.
- A read returns at most 16 registers; asking for more silently returns only the first 16.
- Writing a read-only register returns exception code 10 (write protection).
- Addresses are decimal and used as-is; do not add 40001 or subtract 1.
Network setup
- Serial: 8 data bits, no parity, 1 stop bit, RTU mode, baud 2400-115200 selectable.
- Every unit on one RS-485 line needs its own slave address; over TCP keep the default address 1 unless the gateway needs otherwise.
- For GPRS the manual says to use Modbus TCP port 80.
Watch out for
- These controllers start a real engine and operate the mains and genset breakers. Make sure the set and switchgear are safe before simulating Run, Test, GCB or MCB key presses.
- The pushbutton register mimics a key press; check 10605 afterwards and press Auto again if the set must stay ready for a mains failure.
Datakom D-300 / D-500 / D-700 genset controllers Modbus registers
Address = 0-based wire address (the documented number is shown under it when it differs) · Order: ABCD = high word first, CDAB = low word first · Scale: engineering value = raw × scale.
| Table | Address | Name | Description | Type | Order | Scale | Units | Access | Values / bits |
|---|---|---|---|---|---|---|---|---|---|
| HR | 8193 | Pushbutton simulation | Write a bit to press the matching front-panel key remotely. | BITMAP16 | Write | bit 0 = Stop button; bit 1 = Run button (D-500) / Manual button (D-700); bit 2 = Auto button; bit 3 = Test button; bit 4 = Run button (D-700); bit 5 = GCB button; bit 6 = MCB button; bit 7 = Menu+ button; bit 8 = Menu- button; bit 9 = Up button; bit 10 = Down button; bit 14 = Button long pressed; bit 15 = Button very long pressed | |||
| HR | 10338 | Mains frequency | UINT16 | × 0.01 | Hz | Read | |||
| HR | 10339 | Genset frequency | UINT16 | × 0.01 | Hz | Read | |||
| HR | 10340 | Charge input voltage | Charge alternator (D+) input voltage. | UINT16 | × 0.01 | V | Read | ||
| HR | 10341 | Battery voltage | Starter battery voltage. | UINT16 | × 0.01 | V | Read | ||
| HR | 10343 | Charge input 2 voltage | Second charge input voltage. | UINT16 | × 0.01 | V | Read | ||
| HR | 10344 | Battery 2 voltage | Second battery voltage. | UINT16 | × 0.01 | V | Read | ||
| HR | 10361 | Oil pressure | Engine oil pressure in bar. | UINT16 | × 0.1 | bar | Read | ||
| HR | 10363 | Fuel level | UINT16 | × 0.1 | % | Read | |||
| HR | 10375 | Magnetic pickup reading | Speed measured on the magnetic pickup input. | UINT16 | rpm | Read | |||
| HR | 10376 | Engine rpm | UINT16 | rpm | Read | ||||
| HR | 10385 | Minimum cranking battery voltage | Lowest battery voltage seen during the last crank. | UINT16 | × 0.01 | V | Read | ||
| HR | 10507doc 10507 (in 10504-10519) | Shutdown alarm bits 48-63 | Word 4 of the shutdown alarm bit array; bit 0 = alarm 48. | BITMAP16 | Read | bit 0 = Genset low frequency; bit 1 = Genset high frequency; bit 2 = Genset low RPM; bit 3 = Genset high RPM; bit 4 = Genset low voltage; bit 5 = Genset high voltage; bit 6 = Low oil pressure; bit 7 = High oil pressure; bit 8 = Low engine temperature; bit 9 = High engine temperature; bit 10 = Low fuel level; bit 11 = High fuel level; bit 12 = Low oil temperature; bit 13 = High oil temperature; bit 14 = Low canopy temperature; bit 15 = High canopy temperature | |||
| HR | 10510doc 10510 (in 10504-10519) | Shutdown alarm bits 96-111 | Word 7 of the shutdown alarm bit array; bit 0 = alarm 96. | BITMAP16 | Read | bit 0 = Low battery voltage; bit 1 = High battery voltage; bit 2 = Fail to start; bit 3 = Fail to stop; bit 4 = Low charge voltage; bit 5 = J1939 ECU error; bit 6 = High air inlet temperature; bit 7 = Low coolant level; bit 8 = Voltage unbalance; bit 9 = Current unbalance; bit 10 = Over current; bit 11 = Over load; bit 12 = Reverse power; bit 13 = Genset phase order fail; bit 14 = Mains phase order fail; bit 15 = Genset CB fail to close | |||
| HR | 10511doc 10511 (in 10504-10519) | Shutdown alarm bits 112-127 | Word 8 of the shutdown alarm bit array; bit 0 = alarm 112. | BITMAP16 | Read | bit 0 = Genset CB fail to open; bit 1 = Mains CB fail to close; bit 2 = Mains CB fail to open; bit 3 = Device address fail; bit 4 = Comm. bus error; bit 5 = Excitation lost; bit 6 = Service 1 request; bit 7 = Service 2 request; bit 8 = Service 3 request; bit 9 = G59: no mains frequency; bit 10 = G59: mains frequency fail; bit 11 = G59: mains reverse power; bit 12 = G59: ROCOF df/dt; bit 13 = G59: vector shift; bit 14 = NVM function failure; bit 15 = Communication lost | |||
| HR | 10539doc 10539 (in 10536-10551) | Warning alarm bits 48-63 | Word 4 of the warning alarm bit array; bit 0 = alarm 48. | BITMAP16 | Read | bit 0 = Genset low frequency; bit 1 = Genset high frequency; bit 2 = Genset low RPM; bit 3 = Genset high RPM; bit 4 = Genset low voltage; bit 5 = Genset high voltage; bit 6 = Low oil pressure; bit 7 = High oil pressure; bit 8 = Low engine temperature; bit 9 = High engine temperature; bit 10 = Low fuel level; bit 11 = High fuel level; bit 12 = Low oil temperature; bit 13 = High oil temperature; bit 14 = Low canopy temperature; bit 15 = High canopy temperature | |||
| HR | 10542doc 10542 (in 10536-10551) | Warning alarm bits 96-111 | Word 7 of the warning alarm bit array; bit 0 = alarm 96. | BITMAP16 | Read | bit 0 = Low battery voltage; bit 1 = High battery voltage; bit 2 = Fail to start; bit 3 = Fail to stop; bit 4 = Low charge voltage; bit 5 = J1939 ECU error; bit 6 = High air inlet temperature; bit 7 = Low coolant level; bit 8 = Voltage unbalance; bit 9 = Current unbalance; bit 10 = Over current; bit 11 = Over load; bit 12 = Reverse power; bit 13 = Genset phase order fail; bit 14 = Mains phase order fail; bit 15 = Genset CB fail to close | |||
| HR | 10543doc 10543 (in 10536-10551) | Warning alarm bits 112-127 | Word 8 of the warning alarm bit array; bit 0 = alarm 112. | BITMAP16 | Read | bit 0 = Genset CB fail to open; bit 1 = Mains CB fail to close; bit 2 = Mains CB fail to open; bit 3 = Device address fail; bit 4 = Comm. bus error; bit 5 = Excitation lost; bit 6 = Service 1 request; bit 7 = Service 2 request; bit 8 = Service 3 request; bit 9 = G59: no mains frequency; bit 10 = G59: mains frequency fail; bit 11 = G59: mains reverse power; bit 12 = G59: ROCOF df/dt; bit 13 = G59: vector shift; bit 14 = NVM function failure; bit 15 = Communication lost | |||
| HR | 10604 | Unit operation status | Current step of the genset control sequence. | UINT16 | Read | 0 = Genset at rest; 1 = Wait before fuel; 2 = Engine preheat; 3 = Wait oil flash off; 4 = Crank rest; 5 = Cranking; 6 = Engine run idle speed; 7 = Engine heating; 8 = Running off load; 9 = Synchronizing to mains; 10 = Load transfer to genset; 11 = Gen CB activation; 12 = Genset CB timer; 13 = Master genset on load; 14 = Peak lopping; 15 = Power exporting; 16 = Slave genset on load; 17 = Synchronizing back to mains; 18 = Load transfer to mains; 19 = Mains CB activation; 20 = Mains CB timer; 21 = Stop with cooldown; 22 = Cooling down; 23 = Engine stop idle speed; 24 = Immediate stop; 25 = Engine stopping | |||
| HR | 10605 | Unit mode | Selected operating mode. | UINT16 | Read | 1 = STOP; 2 = RUN (D-500) / MANUAL (D-700); 4 = AUTO; 8 = TEST | |||
| HR | 10607 | GOV control output | Governor (speed) control output level. | UINT16 | × 0.1 | % | Read | ||
| HR | 10608 | AVR control output | Voltage regulator control output level. | UINT16 | × 0.1 | % | Read | ||
| HR | 10609 | Device identity | Model code, e.g. 0xD500 for a D-500. | UINT16 | Read | ||||
| HR | 10610 | Hardware version | UINT16 | Read | |||||
| HR | 10611 | Software version | UINT16 | Read | |||||
| HR | 11173 | Battery charge current | UINT16 | × 0.1 | A | Read | |||
| HR | 11555doc 11555 (in 11555-11568) | Function flags 0-15 | Output functions currently active (fuel, crank, contactors). | BITMAP16 | Read | bit 0 = Fuel; bit 1 = Horn; bit 2 = Crank; bit 3 = Stop solenoid; bit 4 = Genset contactor; bit 5 = Mains contactor; bit 6 = Idle speed; bit 7 = Preheat; bit 8 = Alternate crank; bit 9 = Fuel main winding; bit 10 = Genset close pulse; bit 11 = Genset open pulse; bit 12 = Genset UV coil; bit 13 = Mains close pulse; bit 14 = Mains open pulse; bit 15 = Mains UV coil | |||
| HR | 11557doc 11557 (in 11555-11568) | Function flags 32-47 | Readiness, mains-fail and engine-running flags. | BITMAP16 | Read | bit 0 = Bus bar UV coil; bit 1 = Load shedding; bit 2 = Load add; bit 3 = Load subtract; bit 4 = Service 1 request; bit 5 = Service 2 request; bit 6 = Service 3 request; bit 7 = Mains phase order fail; bit 8 = Genset phase order fail; bit 9 = Auto ready; bit 10 = Weekly schedule on; bit 11 = Exerciser on; bit 12 = Mains fail; bit 13 = Program mode active; bit 14 = Engine running; bit 15 = Genset voltage OK | |||
| HR | 11558doc 11558 (in 11555-11568) | Function flags 48-63 | Summary alarm flags and the active mode. | BITMAP16 | Read | bit 0 = Alarm check enable; bit 1 = Oil pressure OK; bit 2 = Shutdown alarm; bit 3 = Loaddump alarm; bit 4 = Warning alarm; bit 5 = Shutdown or loaddump; bit 6 = Shutdown or loaddump or warning; bit 7 = Test mode; bit 8 = Auto mode; bit 9 = Manual mode; bit 10 = Off mode; bit 11 = Not in auto; bit 12 = Genset at rest; bit 13 = Waiting before fuel; bit 14 = Preheating; bit 15 = Waiting oil flash off |
Notes on this map
- Left out: every 32-bit value (all phase voltages, currents and powers at 10240-10327, average voltage and current at 10377-10384, the run/crank/hour/energy counters at 10616-10647 and 11569-11581, GPS position and the multi-genset totals). The manual contradicts itself on word order: one paragraph says the least significant register comes first, the next says the high-order 16 bits are in the first register. Until Datakom settles it, those registers are not listed.
- Left out: the power factor registers (10328-10335 and 11376). The table prints a x10 coefficient for them, which would give power factor in steps of 0.1 and looks doubtful; they are omitted rather than published with a possibly wrong scale.
- COEFF. in the manual is how many times larger the raw value is than the real one: x10 means divide by 10 (scale 0.1), x100 means divide by 100 (scale 0.01).
- Left out: the engine, oil, canopy and ambient temperature registers (10362, 10364-10366 and the _2 copies at 10368 and 10370-10372). The manual gives them only as '16bit' in tenths of a degree C and never says whether they are signed, so readings below zero cannot be decoded with certainty.
- Alarm and flag arrays are packed with alarm/flag 0 in bit 0 of the first register. The shutdown array is 10504-10519, loaddump 10520-10535 and warning 10536-10551; only the words holding the named engine and genset alarms are listed (words 1-3 are digital-input and expansion-input alarms, words 5-6 ambient-temperature and sender alarms). The loaddump array uses the same bit layout as the other two.
- The function-flag array is 224 bits at 11555-11568. Page 15 of the manual repeats a corrupted copy of the counter table that wrongly reuses address 11555; the first table on the page (flags at 11555, counters from 11569) is the consistent one.
- 8193 lists a x10 coefficient but is a bit field; the coefficient is ignored. Writing 14536 to 8210 forces a hard reset of the unit and is deliberately not listed.
- Also not listed: the harmonic-analysis and scope-meter block (8194, 10386-10503), analog input ohm values, the LCD buffer and LED, output and expansion status bits.
Check it against the live device. A register map tells you what the controller can expose; the unit in front of you may differ by firmware or options. Read a few registers and compare them with the unit’s own display; for a 32-bit value the float and byte-order decoder shows all four word orders at once, so a wrong word order or scale is obvious. New to this? Read what a register map is and why addresses are off by one.
Questions about the Datakom D-300 / D-500 / D-700 genset controllers
What Modbus registers does the Datakom D-300 / D-500 / D-700 genset controllers have?
This map lists 29 registers: 29 holding registers. 1 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.
Are the Datakom D-300 / D-500 / D-700 genset controllers Modbus addresses 0-based or 1-based?
The manufacturer's document numbers registers 0-based (the number printed is the address on the wire). Every address on this page is the 0-based wire address you put in the request; the documented number is shown under it where it differs. The register tables print decimal addresses and they go on the wire unchanged. The manual's read example asks for 16 registers 'starting from address 20h (32 decimal)' with the frame 01 03 00 20 00 10, and its write example puts register 40h in the frame as 00 40. So 10338 (mains frequency) is requested as 10338, with no 40001 offset and no minus 1.
What are the minimum Modbus registers to integrate the Datakom D-300 / D-500 / D-700 genset controllers?
Start with HR 10604 Unit operation status (Genset sequence state); HR 10605 Unit mode (STOP / RUN / AUTO / TEST mode); HR 11558 Function flags 48-63 (Shutdown, loaddump and warning summary flags); HR 11557 Function flags 32-47 (Mains fail and engine running flags); HR 10339 Genset frequency (Genset frequency); HR 10341 Battery voltage (Battery voltage); HR 10376 Engine rpm (Engine speed); HR 8193 Pushbutton simulation (Remote key presses).
How do I enable Modbus control of the Datakom D-300 / D-500 / D-700 genset controllers?
Set a Modbus slave address (1-240). For RS-485 set 'RS-485 Enable' to 1 and pick a baud rate; for Ethernet set 'Ethernet Enable' to 1, the Modbus TCP port (usually 502) and the IP, gateway and subnet; the first User IP Mask should be 255.255.255.0.
Where is the official Datakom D-300 / D-500 / D-700 genset controllers Modbus documentation?
The source is D-300 / 500 / 700 Modbus Application Manual (500-MODBUS V5.6), revision 2016-04-25, published free by Datakom at https://www.datakom.com.tr/upload/Files/500_MODBUS.pdf.
Source: D-300 / 500 / 700 Modbus Application Manual · 500-MODBUS V5.6 · rev. 2016-04-25. Register numbers, types, scaling and units are reproduced as published; descriptions are our own.