Back to CNC Alarms Guide

Fanuc PS110/PS111/PS112 alarm: Overflow or division by zero in calculus

The control has tried to perform a mathematical operation that is impossible, or whose result does not fit in its internal representation: a division by zero, an overflow, the root of a negative number. It nearly always comes from a macro or a cycle with a variable that does not hold what whoever wrote it assumed.

For reference only: alarms change with the manufacturer, the control and the machine PLC. Check the full code in the official manual before doing anything. Legal notice.

Control
Fanuc
Machine
Milling, Turning, Mill-turn
Area
Program
Severity
Stop

Symptoms

  • Fails in a macro or a cycle.
  • May appear with variables, radii or compensations.
  • The error is repeated in the same condition.

Common causes

  • Division by zero.
  • Uninitialised variable.
  • Impossible radius/geometry.
  • Value out of range.

First safe checks

  1. 01Check macro variables.
  2. 02Check denominators and limits.
  3. 03Simulate with real values.

What not to do

  • Do not bypass safety devices.
  • Do not manipulate energized electrical cabinet.
  • Do not continue producing if the alarm reappears.

When to call maintenance:

Normally it is programmatic; call if it comes from undocumented OEM macro.

Reset/rearm:

Reset after fixing the macro/cycle and checking the toolpath.

Official documentation

Choose the manual matching your control series, software version and machine builder. A support portal is a starting point; it does not establish applicability to every model.

What happens on the machine

Macros and cycles work with variables the control stores in a format with a defined range and precision. Every arithmetic operation is checked: whether the divisor is zero, whether the result falls outside the representable range, whether a function's argument is inside its domain. When any of that happens, the control does not invent a result or carry on with a nonsense value, because a nonsense value in a macro ends up as a nonsense coordinate and a crash. It aborts and raises the calculation alarm. The usual shop-floor cause is not a mathematical error: it is a variable arriving empty or holding an unexpected value. A local variable that was not passed as an argument in the macro call is left undefined, and doing arithmetic with it gives exactly this result. A variable that holds a probe measurement stays at zero if the measuring cycle never ran. A common variable used as a counter keeps the previous part's value if nobody initialises it at the start. There is also a classic trap in conditionals: comparing decimal variables expecting exact equality fails, because the internal representation is not exact, so a branch of the program that was supposed to initialise something never runs and the later calculation blows up. That is why the diagnosis is done by looking at the variable values at the moment of the failure, not by re-reading the formula.

Step-by-step diagnosis

In order, from the fastest and cheapest check to the most expensive.

  1. 01Look at the variable values on screen

    The control has a macro variable screen showing the common variables and, during execution, the local ones of the active level. Right after the alarm, look at what the variables involved in the failed calculation hold. One at zero or empty when it should have a value is the answer in nine cases out of ten.

  2. 02Check the macro call and its arguments

    Go over the line that calls the macro and compare it against the arguments the macro expects. A forgotten argument leaves its local variable undefined. An argument written with the wrong letter fills a different variable from the one the macro reads. Both give the same symptom.

  3. 03Look for divisors that could be zero

    Walk through the divisions in the code and ask yourself whether the divisor could be zero in some situation: a calculated number of passes, a diameter that arrives empty, a step that works out as nil. The same goes for roots whose argument could come out negative from a subtraction of measurements. That is where a prior check belongs.

  4. 04Check whether it depends on the part or on the moment

    If it only fails on certain parts, or only on the first part of the shift, there is a variable that is not initialised and is carrying values over. If it always fails, it is a structural error in the macro. The difference tells you whether to add initialisation or to fix the logic.

  5. 05If probe measurements are involved, check the measurement actually happened

    Variables that receive probing results are left at zero or undefined if the measuring cycle never ran or never touched. There the problem is not the arithmetic: it is that the probe did not measure. Check the measuring cycle before touching the calculations.

  6. 06If the macro belongs to the builder, do not edit it

    Many machines carry the builder's own macros, often protected, implementing machine cycles. If the failure happens inside one of them, the useful information is the values being passed to it from your program. Modifying builder macros without documentation is how you break machine functions.

Typical cases

It only fails on certain parts or certain sizes, and runs fine on the rest.

A calculation that with those values divides by zero or goes out of range, typically a number of passes or a step that works out as nil. Confirm it by looking at the variables with that specific part. Fix it by protecting the calculation with a prior check.

It fails on the first part of the shift and then never again.

An uninitialised common variable carrying over the previous run's value, or left blank after the machine was switched off. It is confirmed because the pattern follows the start of the day. Fix it by explicitly initialising those variables at the start of the program.

It started failing after the macro was edited to add a new option.

The edit introduced a path where some variable is not defined or a divisor can be zero. Confirm it by comparing against the previous version of the macro. Fix it by reviewing the new paths and adding checks.

How to stop it coming back

Explicitly initialise, at the start of the program, every common variable you are going to use, without assuming anything about what was left over. Protect divisions and roots with a prior check on the value, and make the macro stop with a clear message if an argument does not arrive. Avoid exact equality comparisons between decimals and use ranges instead. Keep a versioned copy of every in-house macro, with who changed it and why. And test macros with the extreme cases, not just with the usual part.

Frequently Asked Questions (FAQ)

What does alarm PS110/PS111/PS112 mean on Fanuc?

Fanuc detects invalid mathematical result in macro, compensation or internal calculation of the program. It is an alarm from the Program area, and in the catalog it is listed as “Overflow or division by zero in calculus”. On the machine you notice it like this: Fails in a macro or a cycle, May appear with variables, radii or compensations, The error is repeated in the same condition.

Why does alarm PS110/PS111/PS112 come up?

On the shop floor it almost always comes from one of these causes: Division by zero, Uninitialised variable, Impossible radius/geometry, Value out of range. Rule out the most likely one on your machine first, before touching parameters or swapping anything.

How do you clear alarm PS110/PS111/PS112?

Reset after fixing the macro/cycle and checking the toolpath. Resetting without fixing the cause first only hides the problem: PS110/PS111/PS112 trips again and, in the meantime, you keep working with the machine in bad shape.

What should I check first with alarm PS110/PS111/PS112?

With the machine stopped and in a safe state, start with these checks: Check macro variables, Check denominators and limits, Simulate with real values. That alone will tell you whether it is the program or whether you need to raise a maintenance job.

What should I NOT do with alarm PS110/PS111/PS112?

With PS110/PS111/PS112 active, avoid this: Do not bypass safety devices, Do not manipulate energized electrical cabinet, Do not continue producing if the alarm reappears. Skipping any of these points is what turns a minor stop into an expensive breakdown.

When do I have to call maintenance for alarm PS110/PS111/PS112?

Normally it is programmatic; call if it comes from undocumented OEM macro. If you are not sure how far it goes, stop the machine and report it: a repeat alarm always works out cheaper than a crash.

How serious is alarm PS110/PS111/PS112?

It is a stop alarm: the cycle will not continue until you fix the cause. It does not always mean serious damage, but it leaves the machine where it is and you have to check it before running again. Guidance reference. Always confirm the full text in the exact machine/control manual.

More alarms for Fanuc

See all alarms for this brand

Related tools