CNC machine down? Speak directly to Keith
Squidex Solutions Ltd · Co. No. 10695481
Programming & Macro
517 Mill & Lathe

HAAS® Alarm 517 — EXPRESSION NOT ALLOWED WITH N OR O

What it means

You've used a macro expression where the control expects only a literal block number (N) or program number (O).

Common causes

  • Macro tried to compute an N or O value — these must be hard-coded numbers

What to check first

  • Edit the program: replace the expression with a literal number

Prevention

Programming alarms are best prevented at the post-processor and verification stages. Always verify a new program in single-block mode with rapid override at 5–10% before committing to a full run. Keep a small library of tested macros rather than rewriting logic each job — and comment your variables clearly so the next person (or future-you) can read them.

If you’re still stuck

If you’ve worked through the checks above and the alarm hasn’t cleared — or if it cleared and came back — that’s the point to call. Persistent alarms after a reset usually mean a real component fault, and pushing through them risks turning a simple repair into a bigger one. Keith covers HAAS® breakdowns across the UK with same-day phone diagnosis.

A note on this guide. Alarm wording and numbering can vary by HAAS® machine model and software revision. The descriptions here are written in plain English to help you understand what the machine is reporting and what to check first — they’re not a substitute for the official HAAS® operator manual or for a qualified service engineer’s diagnosis. Always confirm the exact alarm message on your screen and consult your machine’s documentation before attempting any repair.