SINUMERIK 828D User Alarm Bits: DB1600 Sequential Mapping and Extended 701000-701999

A 7000xx alarm pops up on the screen, you open the PLC program to find that one bit, and you cannot find it anywhere in DB2 — because you are looking in the wrong data block. On a SINUMERIK 828D the user alarm trigger bits live in DB1600; on an 840D they live in DB2. Worse, the two systems do not use the same arithmetic: the 828D maps alarms sequentially (248 alarms in a row), while the 840D maps them in groups (8 bytes per group = 64 alarms). Take the same 700xxx number, apply the wrong formula, and the address comes out tens of bytes off.

This article covers the 828D side end to end: the address formula, the extended alarm range, where the alarm text files actually live, and how to get PLC user alarms into the alarm log. Every figure comes from the Siemens commissioning manuals and the Siemens China CNC4YOU application notes. Where the manuals are ambiguous — MD14516 bit 5, for one — both versions of the story are laid out and flagged as needing verification on your own machine, rather than guessed at.

Related reading: for the 840D DB2 grouped algorithm and custom alarm texts, see SINUMERIK 840D PLC user alarms: 700000 range to DB2 bit addresses; for the overall 828D alarm number segmentation, see SINUMERIK 828D alarm number segmentation.

1. Two different algorithms: the 828D is sequential, the 840D is grouped

This is the most valuable point in the article. Both families start at 700000, but the alarm-number-to-address mapping is completely different. Mix them up and the address is guaranteed to be wrong.

Table 1 — 828D versus 840D user alarm address arithmetic

ItemSINUMERIK 828D (sequential)SINUMERIK 840D (grouped)
Data block holding the trigger bitDB1600DB2
Starting point700000 = DB1600.DBX0.0700000 = DB2.DBX180.0
AlgorithmSequential: byte = index / 8 (integer), bit = index mod 8Grouped: 180 + (middle two digits × 8) + (last two digits / 8, quotient . remainder)
Example 700247247 / 8 = 30 remainder 7 → DB1600.DBX30.7By the grouped formula: 180 + 02×8 + 47/8 (quotient 5, remainder 7) = DB2.DBX201.7
Example 700352On the 828D the standard range ends at 700247, so this falls in the extended range180 + 03×8 + 52/8 (quotient 6, remainder 4) = DB2.DBX210.4
Example 701661On the 828D this falls in the extended range (701000–701999)180 + 16×8 + 61/8 (quotient 7, remainder 5) = DB2.DBX315.5
Standard alarm count248 (700000–700247)Grouped, continuous

The 828D sequential rule is three lines:

index N = alarm number - 700000
byte    = N / 8        (integer division)
bit     = N % 8        (remainder)
address = DB1600.DBX<byte>.<bit>

Check it with 700247: N = 247, so 247 / 8 = 30 and 247 % 8 = 7 → DB1600.DBX30.7, which matches the last row of the manual table.

The 840D grouped rule has to be worked out in three pieces: split the last four digits of 700000 into “middle two” and “last two”, multiply the middle two by 8 for the group offset, and divide the last two by 8 for the position inside the group. None of that has any meaning on an 828D — there, alarms simply march down the block one after another.

828D sequential mapping versus 840D grouped mapping: 700247 is DB1600.DBX30.7 on the 828D and DB2.DBX201.7 on the 840D

2. 828D standard user alarms: 248 alarms mapped to DB1600.DBX0.0 through DBX30.7

The manual states it directly: SINUMERIK 828D provides 248 user alarms (700000 – 700247), whose interface signals are DB1600.DBX0.0 – DB1600.DBX30.7. Besides the trigger bit, each alarm has a variable interface (used to feed values into the alarm text) and an alarm response byte.

Table 2 — 828D standard user alarm address lookup (extract from the official table)

Alarm numberTrigger bit (PLC signal)Variable interfaceAlarm response
700000DB1600.DBX0.0DB1600.DBD1000MD14516[0] (or DB4500.DBB3000)
700001DB1600.DBX0.1DB1600.DBD1004MD14516[1] (or DB4500.DBB3001)
700002DB1600.DBX0.2DB1600.DBD1008MD14516[2] (or DB4500.DBB3002)
700003DB1600.DBX0.3DB1600.DBD1012MD14516[3] (or DB4500.DBB3003)
700004DB1600.DBX0.4DB1600.DBD1016MD14516[4] (or DB4500.DBB3004)
700005DB1600.DBX0.5DB1600.DBD1020MD14516[5] (or DB4500.DBB3005)
700006DB1600.DBX0.6DB1600.DBD1024MD14516[6] (or DB4500.DBB3006)
700007DB1600.DBX0.7DB1600.DBD1028MD14516[7] (or DB4500.DBB3007)
700008DB1600.DBX1.0DB1600.DBD1032MD14516[8] (or DB4500.DBB3008)
…………
700246DB1600.DBX30.6DB1600.DBD1984MD14516[246] (or DB4500.DBB3246)
700247DB1600.DBX30.7DB1600.DBD1988MD14516[247] (or DB4500.DBB3247)

The variable interface follows one rule: start at 1000, add 4 bytes per alarm. Because the step really is 4 bytes, DBD (double word) is the correct typing — some manual printings say DBW, which is almost certainly a leftover from an earlier wording.

The alarm response is documented two ways. The commissioning manual (10/2015 edition) says DB4500.DBB3000 – DBB3247; other manual printings and virtually all Chinese material say MD14516 $MN_USER_DATA_PLC_ALARM. Both refer to the same thing (alarm reaction and clearing criteria); which one your control accepts is a matter for your own machine. This article uses MD14516 throughout.

3. 828D extended user alarms: 1000 alarms mapped to DB1600.DBX4000.0 through DBX4124.7

When 248 alarms are not enough, the 828D can activate extended PLC alarms: an extra 1000 alarms, numbered 701000 – 701999, whose trigger bits are DB1600.DBX4000.0 – DB1600.DBX4124.7 (1000 alarms = 125 bytes).

广告

Table 3 — 828D extended user alarm reference

ItemValue
Alarm number range701000 – 701999 (1000 alarms)
Trigger bitsDB1600.DBX4000.0 – DB1600.DBX4124.7
Variable interfacefrom DB1600.DBD5000, plus 4 per alarm → 701247 = DB1600.DBD5988
Alarms that support a numeric variableonly 701000 – 701247; 701248 – 701999 have no variable
Alarm responseDB9913.DBB0 – DB9913.DBB999 (one byte per alarm number)
Software requirement828D V4.7.4 or higher; PLC Programming Tool V3.3 or higher
Prerequisitethe PLC program must additionally contain DB9913 (when more than 248 alarms are used)
Access levelManufacturer access level with the matching password
Display colourred = alarm (shown in the alarm list); black = message (shown under Messages)

The extended range uses the same sequential rule, only starting at 4000:

index M = alarm number - 701000
byte    = 4000 + M / 8
bit     = M % 8
address = DB1600.DBX<byte>.<bit>

Example: 701000 → M = 0 → DB1600.DBX4000.0; 701999 → M = 999, so 4000 + 124 = 4124 and 999 % 8 = 7 → DB1600.DBX4124.7.

701000 – 701247 is the “extended alarms with variables” band: one alarm number can display different text depending on the variable value (for example “Axis 3 overtravel” and “Axis 5 overtravel” from the same number). From 701248 upwards there is no variable — do not go looking for a DBD interface in that band.

828D extended user alarms 701000 to 701999: trigger bits DB1600.DBX4000.0 to DBX4124.7, variable area DBD5000 to DBD5988, response area DB9913.DBB0 to DBB999

4. Where the alarm text files live: oem_alarms_plc_xxx.ts, not alpu.txt

Discussions of “Siemens user alarm texts” in Chinese often open with alpu.txt — that is 840D / 810D kit. The 828D uses a different file and a different set of placeholders, so copying the 840D procedure gets you nowhere.

Table 4 — Alarm text files: the 828D and the 840D are not the same system

ItemSINUMERIK 828DSINUMERIK 840D / 810D
File nameoem_alarms_plc_xxx.ts (xxx = chs / eng / deu, i.e. the language)alpu.txt (or alpu_xxx.txt)
Directoryoem/sinumerik/hmi/lng on the CF cardtypically …\dh\mb.dir\
File naturetext source file built on an XML structureplain text, alarm number plus text
Placeholders in the text%b %d %f %i %o %u %x%1 – %4
How it takes effectloaded only during startup → a restart is mandatoryreload / restart required
File name casingmust be lower case, otherwise the system does not recognise it—
Sibling files in the same directoryoem_alarms_cycles (cycle alarms), oem_partprogram_messages (part program messages)—

Placeholder meanings on the 828D (official table):

PlaceholderMeaning
%bbinary representation of a 32-bit value
%dinteger, decimal
%f4-byte floating point number
%iinteger, decimal, with sign
%ointeger, octal
%uunsigned decimal number
%xinteger, hexadecimal

Two traps that catch almost everyone:

  1. Not restarting after editing. The manual says the alarm text file is converted during system startup and the system must be restarted to activate the alarms. Edit the file without restarting and the screen keeps showing the old text.
  2. Altering the file structure. The manual requires that the structure not be changed — edit text content and alarm numbers only, never the tags or hierarchy. Note also that third-party write-ups often quote /oem/cfg/oem_alarms_plc_eng.ts, which does not match the manual’s oem/sinumerik/hmi/lng; follow the directory that actually exists on your CF card.

On encoding: the manual gives no hard rule about BOM or ANSI, only that the structure must not change. When Chinese text comes out garbled, first confirm your editor did not rewrite the encoding (re-save with the same encoding as the original), then restart the HMI to verify; do not change the encoding and skip the restart — the restart is what makes it take effect.

828D alarm text file oem_alarms_plc_xxx.ts: path, lower-case requirement, restart to take effect, and the %d %f %x placeholders, contrasted with the 840D alpu.txt and %1-%4

5. Getting PLC user alarms into the alarm log: MD14516[xx] bit 5 = 1

By default the 828D alarm log records system alarms but not PLC user alarms. Getting 7xxxxx user alarms into the log means setting one specific bit — a detail the official documentation scatters across several places and that is barely covered on the Chinese side.

Table 5 — Two procedures for getting PLC user alarms into the alarm log

Alarm typeWhat to setHow it takes effect
Standard user alarms (700000–700247)set bit 5 of MD14516[xx] for the corresponding alarmrestart the HMI
Extended user alarms (701000–701999)set bit 5 in the configuration data of the corresponding alarm number inside DB9913download to the PLC → restart the NCK

The Siemens China CNC4YOU application note (Bi Zhi Chao, July 2020) puts it plainly: set 14516[xx]_Bit5 = 1 and, after restarting the HMI, the user alarm appears in the alarm log. Extended alarms work the same way, except the setting lives in DB9913 and requires a PLC download plus an NCK restart.

Software requirement: V4.8 or higher.

Setting bit 5 of MD14516 to 1 puts 828D PLC user alarms into the alarm log: restart the HMI for the standard range, edit DB9913 then download to the PLC and restart the NCK for the extended range

6. What each bit of MD14516 means: alarm reaction versus alarm or message

MD14516 ($MN_USER_DATA_PLC_ALARM) is an array whose index maps one to one onto the alarm number: MD14516[0] corresponds to 700000 and MD14516[247] to 700247. Each bit governs one behaviour.

Table 6 — MD14516[xx] bit definitions (both versions of the story, side by side)

BitEnglish commissioning manualChinese material / concise commissioning manual
Bit 0NC start disabledNC start disabled
Bit 1read-in disableread-in disable
Bit 2feed hold for all axesfeed hold
Bit 3EMERGENCY STOPEMERGENCY STOP
Bit 4PLC in stopPLC in stop
Bit 5Reserved= 1 puts the alarm into the alarm log
Bit 6alarm or message definition: 1 = alarm, 0 = messagecleared by resetting DB1600.DBX3000.0
Bit 7POWER ON (cleared by power off)cleared by power off

Bit 5 and bit 6 conflict between the two versions and must be confirmed on the machine: the English commissioning manual marks bit 5 as Reserved and uses bit 6 to choose alarm versus message, while the Chinese side (including the Siemens China CNC4YOU note) says bit 5 = 1 puts the alarm in the log and bit 6 corresponds to the DB1600.DBX3000.0 reset. Both come out of the Siemens world but point in different directions — record the original value of MD14516 first and change one alarm at a time.

Alarm versus message is a simple distinction, but it changes how you troubleshoot:

  • Alarm: red, shown in the alarm list, generally requires a stop or an acknowledgement (for example “motor overload”); per the Chinese description it must be cleared by programming a reset of DB1600.DBX3000.0 in the PLC.
  • Message: black, shown under Messages, disappears automatically once the condition clears (for example “hydraulics not started”), with no operator acknowledgement.

As for “the alarm display only shows the latest one” — that is not a fault. The manual states that when more than one alarm is present, only the most recent is shown in the alarm display area, with a down arrow indicating that more exist in the alarm list. To make several alarms scroll, set MD9056 (range 500 – 10000, in ms; below 500 there is no scrolling) — the application note recommends 3000. The concise commissioning manual prints “300”, which contradicts its own “no scrolling below 500”; use 3000.

7. Configuring DB9913 for extended alarms: one block of data per alarm number

Extended alarms (701000–701999) do not use MD14516 for their alarm response; they use DB9913: one block of configuration data per alarm number, DB9913.DBB0 for 701000 through DB9913.DBB999 for 701999.

广告

Configuration procedure (per the application note):

  1. Change the PLC type → press OK → press OK again to confirm;
  2. Double-click DB9913 in the program block library and confirm → one block of configuration data is generated per alarm number;
  3. Edit the configuration data for the alarm number you need, setting bit 5 = 1;
  4. Download to the PLC;
  5. Restart the NCK → extended user alarms start appearing in the alarm log.

DB9913 also has a second job: on a multi-channel control, which channel an alarm belongs to is defined either in DB9913 or through MD14518 $MN_USER_DATA_PLC_ALARM_ASSIGN. Single-channel machines can ignore this.

Do not forget the prerequisites: DB9913 is only needed above 248 alarms, and the software must be V4.7.4 or higher with PLC Programming Tool V3.3 or higher. On an older control you can search the block library all day and never find it.

8. Capacity differences across 808D, 828D and 840D

Same number range, three mappings — easy to confuse in the field.

Table 7 — User alarm capacity and addresses on the 808D, 828D and 840D

ControlStandard user alarmsTrigger bit rangeExtended range
808D128 (700000 – 700127)DB1600.DBX0.0 – DB1600.DBX15.7—
828D248 (700000 – 700247)DB1600.DBX0.0 – DB1600.DBX30.71000 (701000 – 701999) → DBX4000.0 – DBX4124.7
840Dgrouped, continuousfrom DB2.DBX180.0 (grouped algorithm)—

The 808D figures (128 alarms / DBX15.7) come from third-party compilations, not from a Siemens manual we could verify; check them on the machine with the formula before relying on them (127 / 8 = 15 remainder 7, which is at least self-consistent with DBX15.7). The 828D and 840D figures come from the official manuals and Siemens China CNC4YOU.

9. Troubleshooting: triggered but no text, garbled text, permission denied

Table 8 — 828D user alarm fault lookup

SymptomMost likely causeWhat to do
Bit is set, the alarm number appears but there is no textno text configured for that alarm number; or the text was changed without a restartper the manual, an alarm without configured text shows only the alarm number; a restart is mandatory afterwards
Garbled Chinese textthe editor rewrote the file encoding or its structurethe manual requires that the structure not be changed; re-save with the original encoding and restart to verify
Permission denied when editing the fileaccess level too low; or the file is in use / read-onlythe Manufacturer access level and password are required; when pulling files with Access MyMachine /P2P or WinSCP, watch for system services holding the file, and put it back in the original directory
Alarm triggers but the reaction is wrong (does not stop / goes straight to emergency stop)bits 0 – 4 of MD14516[xx]check the reaction bits one by one: bit 0 start disable, bit 3 emergency stop
Alarm display shows only the latest alarmdefault behaviour when several alarms are activeset MD9056 (500 – 10000 ms) to scroll; 3000 is the recommended value
Alarm does not appear in the alarm logPLC user alarms are not logged by defaultstandard range: MD14516[xx] bit 5 = 1 then restart the HMI; extended range: DB9913 bit 5 = 1, download to the PLC, restart the NCK
The computed address does not exist in the PLCthe 840D DB2 grouped algorithm was applied to an 828Dthe 828D always uses the DB1600 sequential rule; the extended range starts again at 4000
No DB9913 for extended alarmssoftware version too old828D V4.7.4 and PLC Programming Tool V3.3 or higher are required

10. How to read this together with the 840D article

The two articles are halves of the same number range and do not replace each other:

  • Control is an 828D or 808D → use this article: trigger bits are always in DB1600, sequential arithmetic, and the extended range is computed separately;
  • Control is an 840D or 840D sl → use the 840D article: trigger bits are in DB2, grouped arithmetic (180 + middle two digits × 8 + last two digits / 8);
  • Not sure which → look at the alarm number first: on the 828D the standard range ends at 700247, so anything from 7003xx upwards can only be in the extended range (701000 and up), whereas on the 840D the grouped mapping simply continues.

Related reading: the 840D DB2 grouped algorithm and custom alarm text creation are covered in SINUMERIK 840D PLC user alarms explained; the 828D alarm number segmentation and the “who handles this alarm” decision table are in SINUMERIK 828D alarm number segmentation.

Frequently Asked Questions

Which DB holds the 828D user alarm trigger bits, and is it the same as on the 840D?

No, they differ. The 828D uses DB1600 and the 840D uses DB2, and the arithmetic differs too. The 828D provides 248 standard user alarms (700000 – 700247) mapped to DB1600.DBX0.0 – DB1600.DBX30.7, sequentially: index N = alarm number minus 700000, byte = N divided by 8 (integer), bit = N mod 8, so 700247 = DB1600.DBX30.7. The 840D is grouped, starting at DB2.DBX180.0 and computed as 180 plus the middle two digits times 8 plus the quotient and remainder of the last two digits divided by 8. Both start at 700000, but the two algorithms must never be mixed. If the 828D uses extended alarms (701000 – 701999), the trigger bits start over in a separate band at DB1600.DBX4000.0 – DB1600.DBX4124.7.

How do I get PLC user alarms to show up in the alarm log on an 828D?

The alarm log records system alarms by default but not PLC user alarms, so one bit has to be set deliberately. For standard user alarms (700000 – 700247), set bit 5 of MD14516[xx] for the alarm in question and then restart the HMI. For extended user alarms (701000 – 701999), set bit 5 in the configuration data of the corresponding alarm number inside DB9913, download to the PLC, and restart the NCK. Software version V4.8 or higher is required. Note that the English commissioning manual marks bit 5 of MD14516 as Reserved and uses bit 6 for the alarm-versus-message choice, which conflicts with the Chinese description; record the original values and verify one alarm at a time.

Which interface bit corresponds to alarm number 700247, and why does applying the 840D formula to an 828D give the wrong answer?

On an 828D, 700247 maps to DB1600.DBX30.7: N = 247, so 247 / 8 = 30 with a remainder of 7. The 840D formula gives the wrong answer because the two controls use fundamentally different mappings — the 828D is sequential, laying 248 alarms out across 31 consecutive bytes of DB1600, while the 840D is grouped, with each 8-byte group covering 64 alarms and the last four digits of the alarm number split into a middle pair and a last pair, starting from DB2.DBX180.0. The same 700247 works out to DB2.DBX201.7 under the grouped rule: different data block and different byte. So the first step is always to confirm whether the control is an 828D/808D or an 840D, then pick the matching algorithm.

Last updated: 2026-10-25

Further reading: SINUMERIK 828D Extended User Alarms 701000-701999: DB9913 Configuration and High DB1600 Bits

Also available in Chinese: 828D 用户报警位地址速查:DB1600 顺序算法(700000–700247 / 701000–701999 扩展)
The original Chinese version — same procedure, with the full field notes.
© 版权声明
THE END
喜欢就支持一下吧
点赞7赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容

广告