FANUC PMC External Alarm Reverse Lookup: Alarm Number → A Address → Ladder → I/O Point

External (peripheral) alarms are the ones that stop a shop with no obvious way forward: the screen shows EX1118 or AL2022, the builder’s manual is long gone, and nobody answers the phone. There is a fixed reverse path though — alarm number → A address → ladder → I/O point — that takes you from “no idea what this means” to “which terminal do I measure”.

This guide walks that path down to the level of which soft key to press, and adds the two traps that actually cost people days: a ladder missing the DISPB function instruction (A address is on, but nothing is displayed) and what to do when the message only carries a number, with no I/O point.

1. First, Sort the Three Alarm Classes: System / Servo / Builder-Defined

Table 1 — Boundaries of the three alarm classes

ClassRangeWho wrote itIn the FANUC manual?Typical examples
System alarms900–976FANUC (CNC control-side hardware)✅ Yes900 ROM PARITY, 950 PMC, 974 F-BUS
Servo / spindle alarms4xx / 7xxFANUC✅ Yes401 VRDY OFF, 749 serial spindle
Builder-defined (external)1000–2999The machine tool builder, written into the PMC❌ No — only in the machine's own documentationEX1010, No1018, AL2022

What distinguishes external alarms:

  • Numbered 1000–1999 or 2000–2999, usually prefixed EX, No, AL or ALM
  • Mechanically they are alarms the builder built on the PMC’s A address: set an A bit, match it with a message in the message screen, and it appears on the display
  • What they monitor is always peripheral hardware: level switches, pressure switches, temperature switches, limit switches, magazine/turret position switches

One-line test: if you can look it up in a FANUC manual it is a system or servo alarm; if you cannot and it only exists in the machine’s documentation, it is a builder-defined external alarm. The distinction matters because the two take completely different routes — hardware diagnosis for the former, ladder reverse-lookup for the latter. System alarms (900–976) are covered in Fanuc System Alarm 900–976: Meaning and Board-Level Diagnosis.

The three classes of FANUC alarms: 900-976 system, 4xx/7xx servo and spindle, 1000-2999 builder-defined external alarms

2. Alarm Number ↔ A Address ↔ Message Text: Reading the Message Screen

Start with what the A address actually is. FANUC PMC addresses are X Y R K D T C A, and A is the alarm message address:

  • A0 to A249 — 250 bytes, 8 bits each — 2000 message bits in total (which is where the “2000” in DISPB comes from, see Section 7)
  • Each bit corresponds to one message. The builder sets an A bit in the ladder, and the system looks up the text registered for that address and displays it

⚠️ One common misconception has to be corrected here: the alarm number and the A address are not related by a fixed formula — the builder assigns them in the message screen. Seen in the field on identical logic: one machine has A0.0 → alarm 1000, another has A0.0 → alarm 2000; and there are assignments as irregular as A0.5 → 1036 and A1.0 → 1039. So do not try to compute “1000 + byte×8 + bit” — go to the message screen and read the actual correspondence.

Navigation:

  1. Put the machine in 【MDI】
  2. Press 【SYSTEM】
  3. Press the 【▶】 extension key 3 times
  4. Select 【PMC 配置】 → 【信息】(PMC configuration → Message)

Here you get the full alarm number → A address → symbol table, which is the index for everything that follows. A well-built machine writes the I/O point straight into the text (for example “EX1118 coolant tank low level (X14.0)”), so you can locate the fault at a glance. A poorly built one only carries the number — that is when you go to the four steps in Section 3.

The FANUC message screen path and the alarm-number / A-address / symbol table: the mapping is assigned by the builder, not computed

3. Step 1 — PMC Maintenance → Signal Status: Which A Bit Is On?

First establish *which bit* is alarming.

广告

Path: 【MDI】→【SYSTEM】→ 【▶】 ×3 →【PMC 维护】(PMC maintenance)→【信号状态】(Signal status)→ A address page

  • The page lists the A addresses (e.g. A0.0) together with the symbol number in blue
  • A bit showing 1 is the alarm currently being triggered (A0.0 = 1 is typically the emergency stop alarm)
  • Several bits may be on at once — cross-check against the alarm number on screen and the message-screen table to find the primary cause, and do not get dragged along by consequential alarms

Tip: if the alarm flashes and clears before you can read it, sit on the signal-status page and trigger the action again. Very often this bit is only the *result* — the real condition is further back in the ladder.

4. Step 2 — Find the Coil in the Ladder and Work Backwards Through the Contacts

Once you have the A address (or the alarm number), go to the ladder and locate its coil.

Path: 【SYSTEM】→ 【▶】 ×3 →【PMC 梯图】(PMC ladder)

  1. Enter the search term: you can type the A address (e.g. A0.0), or the alarm number (e.g. #1000)
  2. Press the 【W-搜索】(W-search) soft key — the cursor jumps straight to the coil for that alarm
  3. Work backwards: look at the contacts in series *before* the coil — usually an input-signal contact (e.g. the normally-closed contact of X8.4)

The emergency-stop example is the classic one: normally the external E-stop switch is a normally-closed contact; once powered, PMC contact X8.4 (normally closed) opens and the A0.0 coil stays off. When you press E-stop or a wire breaks, X8.4 (normally closed) closes, A0.0 turns on → alarm. So for this one you check two things specifically: is the E-stop switch stuck, and is the wire broken or poorly connected.

Core rule for reverse lookup: the coil is the *result*; the contacts in series before it are the *cause*. Walk upward step by step until you reach the outermost physical input (an X point) or internal condition (R relay, timer, counter).

For ladder basics and live monitoring, see FANUC PMC Ladder: From Signal Addresses to Live Monitoring.

5. Step 3 — Map the X Bit Back to the Electrical Drawing and Terminal Strip

Finding the X point only gives you a *logical address*; you still have to land it on physical wiring.

  1. X point → I/O module: first see which I/O Link module that X address belongs to (open the PMC I/O module allocation screen to confirm group/rack/slot and the start address)
  2. Module → terminal strip: using the module’s wiring/address table, map Xm.n to the actual terminal number
  3. On-site measurement: at the terminal strip, measure continuity / voltage on that point — decide whether the switch is bad, the wire is broken, or the contact is oxidized

⚠️ The bit-drift trap: the X point written in the alarm text was hard-coded against the I/O Link allocation at the time. Once that allocation changes — add/remove a module, change the byte count (e.g. OC01I → OC02I), or reorder groups — every X address on the later modules shifts as a block. You then get the mismatch “the alarm says X14.0, but the real signal is at X20.0”. So always trust the current I/O allocation plus the ladder, not the point number frozen into old text.

6. Step 4 — Reverse Verification: Force the Input Manually, Does the Alarm Reproduce?

The first three steps *infer*; step 4 *verifies*. The only purpose: confirm the chain you found is really the cause, not a parallel branch beside it.

Method: under safe mechanical conditions (stop what you can, lock the axes you can), artificially create a state change on that input:

  • Physical side: short / open the corresponding terminal, or manually toggle the switch / press the button
  • PMC side: use PMC’s FORCE function to force that X bit to 1 / 0 (always release the force when done!)

Reading the result:

  • Alarm appears / disappears as expected → chain confirmed, the fault is in that switch or that wire
  • Alarm does not react → you looked in the wrong place: go back to step 2 and re-trace, watching for parallel conditions, a self-holding loop, or a double coil (when the same A address is driven in two places, it may not actually conduct)
  • Alarm comes and goes → most likely poor contact, oxidized contact or a loose terminal — chase the connector, not the spare parts

Iron rule: always release the force when you are done. Forget, and the machine runs with a “fake” signal — the most dangerous kind of man-made hazard.

The four-step FANUC external alarm reverse lookup: signal status → W-search the coil → trace back the contacts to the X point → force-verify

7. Trap 1 — A Address Is Already On, but Nothing Is Displayed? Probably Missing DISPB

This is the most maddening case: in PMC status monitoring you see A0.5 and A1.0 clearly triggered (=1), and their message text is filled in on the message screen (e.g. A0.5 → 1036), yet the screen shows no alarm at all.

Cause: the ladder is missing the message-display function instruction DISPB (SUB 41) — deleted or skipped by mistake while editing the program.

The full display chain is:

The ladder sets the A bit → DISPB tells the system → the system reads the message text for that A address → it is shown on the screen

Without DISPB in the chain, an on A address has nobody to notify the system, so naturally nothing is displayed.

How to set “info count” in DISPB: on a 0i-D, the A range is A0~A249 = 250 bytes × 8 bits = 2000 message bits, so you enter 2000 in the instruction. The A range differs between models — follow your machine’s PMC specification.

Two more reasons that also cause “triggered but not displayed” (check them together):

  1. Double coil: the same A address driven in two places, may not actually conduct
  2. Incomplete PMC program in a simulator / test environment (most common on a simulator)
广告

8. Trap 2 — The Message Carries Only a Number, No I/O Point

Many machines’ messages are written bare — just a number like EX2022, no address, no symbol, no I/O point. Find it in this order:

① Search by A address first; if it is not found, search by the symbol name

Some builders do not use the A address directly, but implement it with an internal relay R plus a data-transfer instruction. Type A0.0 and you get “address/symbol not found”, because the coil is actually R0700.0 or similar, and the symbol name *is* that alarm number (maybe with a prefix: 2000 / EX2000 / AL2000 / No.2000). So type the alarm number itself (e.g. 2000) and press W-search — the cursor lands on that R coil.

② If the R coil has no symbol name either, search the data-transfer instructions

If the R coil has no symbol name, search the function instructions. Common transfer instructions:

Table 2 — Common PMC data-transfer function instructions

InstructionMeaning
SUB43 / MOVB1-byte data transfer
SUB44 / MOVW2-byte data transfer
SUB47 / MOVD4-byte data transfer
SUB45 / MOVNarbitrary-byte data transfer
SUB8 / MOVElogical-AND then transfer
SUB28 / MOVORlogical-OR then transfer

Search each of these in the PMC; the one whose source is R and destination is A is your target.

③ Compute back by byte correspondence

For example a SUB45/MOVN: byte count 30, source R0700~R0729, destination A000~A0029 — R and A correspond byte by byte. A5.0 is the 5th byte, so it maps to R0705.0 (R0700 is the start). Once you have the R, trace upward to its driving condition.

④ Whole-byte usage

Some builders use the A address by the whole byte: e.g. each bit of R580 turning on triggers A0.0~A0.7 respectively. Find that A byte, then find its R relationship.

The rule never changes: whether the builder writes A directly or wraps a layer of R plus transfer instruction, it ultimately lands on “which physical input drives it”. The detour only adds one more instruction search.

The two traps in FANUC external alarms: missing DISPB (A on but no display) and number-only messages (symbol-name / transfer-instruction reverse lookup)

Frequently Asked Questions

My FANUC ladder shows the A address already energized — why no alarm?

The most common reason is the ladder is missing the message-display function instruction DISPB (SUB 41) — the display chain is “ladder sets A address → DISPB notifies the system → system reads the message text → display”; without DISPB nobody notifies the system, so an on A address still shows nothing. Add DISPB back (set “info count” to your machine’s total A-bit count; on 0i-D it is commonly 2000 = A0~A249, 250 bytes × 8 bits). Two secondary reasons: a double coil on the same A address (actually not conducting), and testing on a simulator (the PMC program itself is incomplete).

How do I tell a PMC alarm from a system alarm? Which class is number 1000?

Number 1000 is a builder-defined external (PMC) alarm, not a system alarm. System alarms are 900–976 (CNC control-side hardware faults, in the FANUC manual, and cannot be cleared with the reset key); servo/spindle are 4xx / 7xx; and the 1000–2999 range is alarms the builder wrote into the PMC, triggered via the A address — not in the FANUC manual, only in the machine’s documentation. The distinction matters for the route: system alarms go to hardware diagnosis, external alarms go to the reverse lookup “alarm number → A address → ladder → I/O point”.

How do I find the cause when the builder’s alarm manual is missing?

Run the four-step reverse lookup: ① 【MDI】→【SYSTEM】→ 【▶】 ×3 →【PMC 维护】→【信号状态】, find the A bit showing 1; ② in 【PMC 梯图】 type that A address (or alarm number) and press 【W-搜索】 to locate the coil, then trace back the contacts in series before it; ③ map the X point back to the module and terminal strip per the I/O Link allocation, watching for bit drift when the allocation has changed; ④ manually force or short that input to reverse-verify the alarm appears/disappears. If the message screen (【PMC 配置】→【信息】) shows the alarm-number → A-address → symbol table, use it as your index first.


Last updated: 2026-10-21

© 版权声明
THE END
喜欢就支持一下吧
点赞5赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容

广告