FANUC Robot codes
FANUC RobotSystemIntermediate15-60 minutes

SYST-013

Fanuc Robot SYST-013 - Invalid program number

Invalid program number

An invalid program number was specified for a PNS (Program Number Select) or RSR (Robot Service Request) operation. The program number does not match any available program.

Root Cause Summary

SYST-013 Invalid Program Number occurs when the robot controller receives a Program Number Select (PNS) request or Robot Service Request (RSR) for a program number that does not exist in controller memory. This typically happens during automated production when a PLC attempts to call a robot program using binary I/O signals or when the program numbering scheme between the PLC and robot controller becomes mismatched.

Safety

  • Always verify robot is in a safe stopped state before entering the work envelope
  • Use T1 mode when testing after clearing servo or motion alarms

Causes and Fixes

  1. 1

    Check current PNS input values

    Navigate to MENU > I/O > Digital > Input. Monitor the PNS input signals (typically DI[17] through DI[24] for 8-bit PNS). Note the binary pattern when the alarm occurs. Record which specific inputs are ON/OFF.

    Press F1 [TYPE] and select 'Rack' view to see all inputs organized by rack. Use F4 [DETAIL] to see signal comments and assignments.

  2. 2

    Verify PNS bit configuration in I/O settings

    Go to MENU > I/O > PNS/UOP > PNS Config. Check System Variables $PNS_GRP[x].$PNS_STRT (starting DI number) and $PNS_GRP[x].$PNS_LEN (number of bits, typically 8 or 16). Verify these match your wiring documentation.

    Changing PNS configuration requires controlled start. Save work and perform a cold start after modifications.

  3. 3

    Manually calculate the binary to decimal conversion

    Using the observed input states, manually calculate the program number: DI[17]=1, DI[18]=2, DI[19]=4, DI[20]=8, DI[21]=16, DI[22]=32, DI[23]=64, DI[24]=128. Add the values of active (ON) inputs. Compare the result to the program number the PLC intended to call.

    Create a simple test program with a WAIT FOR statement to hold the inputs steady while you verify the calculation. Use 'WAIT FOR DI[25]=ON' where DI[25] is a dedicated test signal.

  4. 4

    Test with known program numbers

    From the PLC or HMI, manually command a simple program number you know exists (like program 1 or 2). Set PNS inputs to binary 00000001 or 00000010. Verify the correct program is selected and starts without alarm. This isolates whether the issue is encoding vs. program existence.

    Use the Force function (MENU > I/O > Digital > [F5] FORCE) to simulate PLC inputs and test PNS selection without involving the PLC. Remember to unforce after testing.

Service Recommended confidence

Seeing Multiple Alarms?

Seeing another alarm with this one? Enter the code.

Get machine-aware diagnosis

AxisMD logs alarms against your actual machines, tracks patterns, and gives AI context your manual doesn't have.

Start free

Was this guide helpful?

Always verify with your machine manual or a certified technician before performing service procedures.