Resolving the Siemens 840D sl "Part Origin Missing" Alarm on Morara OD/ID Grinders
1. Problem Overview
On Morara OD/ID cylindrical grinding machines controlled by Siemens SINUMERIK 840D sl, the HMI raises a Part Origin Missing alarm at cycle start after the operator completes the dresser and part origin (datum) take-up sequence. The alarm appears immediately on CYCLE START, blocks the grinding cycle, and persists even after repeated attempts to re-take the part origin. Loading a new NC program (the "NC file") clears the alarm without operator intervention, but the condition returns within 20 to 30 days of production.
2. Machine and Control Context
| Item | Value / Reference |
|---|---|
| Machine type | Morara OD/ID cylindrical grinder (multi-axis, dresser + workpiece spindles) |
| CNC | Siemens SINUMERIK 840D sl (NCU 7x0.3 or higher typical) |
| HMI | SinuTrain / Operate / Morara customized HMI |
| Programming | ShopMill / ShopTurn grinding cycles or Morara-specific cycle screenforms |
| Persistent data | Setpoints, origins, dressing data, tool/work offsets stored in NV RAM or backed up to CF card |
| PLC | S7-300 / S7-1500 (via PLC program of 840D sl integrated PLC) |
The "part origin" on a grinder is the machine coordinate where the workpiece reference face, diameter, or shoulder is declared as zero. It is conceptually the same as a G54..G599 work offset on a milling CNC, but on Morara grinding HMIs it is stored as a named setpoint (_SET_, dressing table, or part-program coupled datum). See the Siemens SINUMERIK 840D sl Programming Manual for the underlying work-offset mechanics.
3. What "Part Origin Missing" Actually Means on 840D sl
The alarm is generated by the grinding-cycle screenform (typically a custom Morara cycle based on CYCLE410, CYCLE411, dressing cycles, or shopmill grinding cycles). The cycle evaluates one of the following flags before allowing CYCLE START:
-
SETPartOriginValid/ equivalent global NCK bit (cycle-private GUD) - An HMI-side marker set when the operator presses Take Part Origin
- A non-zero entry in the active work-offset (
$AA_IM[X]or$P_UIFRframe) at the part-coordinate axis - A non-empty entry in the part-program-coupled setpoint table (
_N_SETP)
If any of those flags is cleared, zeroed, or uninitialized when the cycle executes its pre-check, the alarm fires. The cycle does not distinguish between "operator never took an origin" and "origin was taken but is now invalid"; it only checks the validity latch.
4. Root Cause Analysis
4.1 Why Loading an NC File Clears the Alarm
Selecting a new NC program in the 840D sl HMI triggers PROGRAM_RESET and a sequence of initialization steps defined in the Morara PLC program and any NC initialization files (_N_INITIAL_INI, _N_USER_DATA_INI, _N_SGUD_DEF). Several of these steps reinitialize cycle-private GUDs and re-validate origin flags. This is why the operator sees the alarm disappear without re-taking the part origin: the alarm-latching bit is in a GUD/UDT that is re-armed by program load, but the underlying part origin coordinate is still present in the persistent frame. The alarm returns later because the underlying root cause was never corrected.
4.2 Why the Alarm Returns Every 20-30 Days
The 20-30 day recurrence is the most diagnostic clue. Common root causes ordered by likelihood:
-
NV-RAM / SRAM battery degradation. The NCU 7x0.3 uses a lithium backup cell for persistent SRAM (battery type: e.g.,
6FC5247-0AA03-0AA0or successor). When the cell voltage drops below ~2.7 V, persistent GUDs, settable frames, and cycle-private markers lose state on NCK stop/restart or warm restart. See the NCU 7x0 backup battery service note. -
CF card / commissioning archive not being written back. If the operator runs an NCK reset or the system performs an automatic boot with
NCK startup with default datainstead ofwith saved data, persistent GUDs revert to defaults. -
PLC-side marker cleared by a Morara cycle transition. The Morara PLC program uses retentive flags (Merker
Mareas) for cycle-phase tracking. If the PLC logic inadvertently clears the "part-origin-taken" bit on a specific transition (e.g., end-of-program reset, M30 handler, dressing cycle completion), the next part origin becomes "missing" until something else reinitializes it. -
Work-offset G54..G599 number mismatch. Operator takes origin in
G54, but the active part program callsG55; G55 has never been initialized, and the cycle validates the currently active offset. -
GUD definition mismatch after an HMI software update. After a SinuOperate or Morara HMI update, GUD definitions in
_N_SGUD_DEF,_N_MGUD_DEF,_N_UGUD_DEFcan be overwritten, changing the structure of cycle-private variables and zeroing them. -
Power-loss during
SAVE. If the machine was powered down during aSAVEoperation to compact NV-RAM, the persistent area can become inconsistent; subsequent boots show a "Reset part origin" prompt that the operator may dismiss.
4.3 Symptom-to-Cause Mapping
| Symptom observed | Likely root cause |
|---|---|
| Alarm clears on NC file load, returns in 20-30 days | SRAM cell near end of life, or weekly/monthly power cycle clears uncommitted GUDs |
| Alarm clears on NC file load only after NCK reset | Persistent area marked invalid; PLC clears cycle-ready bit on reset |
| Alarm returns after specific cycle event (e.g., dressing) | PLC bit cleared by Morara dressing cycle transition logic |
| Alarm returns immediately after HMI/NCK software upgrade | GUD structure change; definition file overwrite |
| Origin coordinates lost on every power-down | Battery dead, or NV-RAM disabled in commissioning |
5. Diagnostic Procedure
Run the following checks in order. Each step confirms or eliminates one root cause.
5.1 Battery / SRAM Health
- On the HMI navigate to Diagnostics > Service > NCK Battery / Voltage. Compare against the threshold shown in the Siemens service plan.
- Via service access, read:
$AC_BATTERY_STATE ; NCU backup battery state $NC_USER_DATA_RAM_SIZE_STATUS $ON_BLOCK_SEARCH_RUN_MODE - Power down the NCU for 60 seconds, then power back up. Re-check whether the part origin and dressing data are still present.
5.2 GUD / Cycle-Private Variable State
- Open the Define GUD screen (
MENU SELECT > Parameters > User Variables). - Inspect the cycle-private variables used by the grinding cycle. On Morara machines these are typically prefixed
_MOR_,_DRS_, or_PRT_. - Look for variables such as:
DEF NCK INT _MOR_PART_ORIG_VALID = 0 DEF NCK REAL _MOR_PART_ORIG_X = 0.0 DEF NCK REAL _MOR_PART_ORIG_Z = 0.0 DEF NCK INT _MOR_DRESSER_VALID = 0 - Confirm
_MOR_PART_ORIG_VALIDis reset to 0 after NC file load + PLC reset, then check whether it is set again by the part-origin take-up routine.
5.3 PLC Marker Audit
- Connect to the integrated PLC via TIA Portal or the classic Step 7 (whichever the Morara commissioning uses).
- Cross-reference search for the flag name used by the alarm message (e.g.,
DBxxx.DBXy.z "PartOriginTaken"). - Watch the flag in online mode. Trigger each phase transition in order: part origin → dressing → cycle start → cycle end (M30). Identify which transition clears the bit.
- Cross-check whether the flag is declared in a retentive area. Morara PLC code often uses
MB100..MB199or named DBs marked retentive. If the bit is non-retentive, it will not survive a warm restart and the alarm will reappear.
5.4 Work-Offset Mapping
- On the HMI open Work Offsets / Frames (
G54..G599list). - Identify which work offset the active grinding cycle uses.
- Confirm that the same work offset was used during the original part-origin take-up. If the part program switched offsets (a common cause after an NC program edit), the "active" offset will be empty.
5.5 Archive Comparison
- Save the current commissioning archive to CF card (commissioning → create archive).
- Compare against the last known-good archive (date when alarm behavior changed).
- Diff the
_N_INITIAL_INI, GUD definition files, and PLC program blocks. Any structural change in GUDs is a strong suspect.
6. Resolution Procedures
6.1 Procedure A — Restore and Verify Persistent Data (battery/GUD case)
- Replace the NCU backup cell if voltage is below threshold (follow ESD procedures and Siemens NCU replacement guide).
- Power up, allow NCK to reach
Ready. - Load the most recent commissioning archive: Commissioning → Read Archive → NCK + PLC + Drives.
- Verify all GUDs initialized, all settable frames populated, dressing data present.
- Manually take part origin in
G54for the current OD grinding program. - Run a dry cycle (no spark-in) to confirm the alarm does not appear.
- Run a production part, confirm alarm cleared.
6.2 Procedure B — Make the Part-Origin-Taken Bit Retentive (PLC case)
If the PLC marker clearing on phase transition is the cause:
- In the PLC program (Step 7 classic or TIA), locate the network that resets
PartOriginTaken. - Move the bit to a retentive area, or condition the reset on a specific event (e.g.,
M30+ "program restart requested") rather than every cycle end. - Example LADDER change (logical intent, edit in the actual network):
| M30_flag PartOriginTaken (clear) |---| |----------|/|------------------( )--| | | | Reset_req PartOriginTaken (clear) |---| |------------|/|------------------( )--| ; Retentive flag declaration in DB: DATA_BLOCK "Morara_PartData" STRUCT PartOriginTaken : BOOL; // RETAIN PartOriginX : REAL; // RETAIN PartOriginZ : REAL; // RETAIN END_STRUCT; END_DATA_BLOCK - Re-check the marker after a controlled warm restart.
MB200..MB255).6.3 Procedure C — Re-anchor GUD Definitions (post-update case)
- After an HMI/NCK software update, navigate to Commissioning > GUD Definitions.
- Reload the Morara-specific GUD definitions from backup.
- Reinitialize cycle-private variables with default values.
- Take part origin again.
- Confirm via HMI:
$NC_USER_DATA_RAM_SIZE_STATUSreports OK.
6.4 Procedure D — Work-Offset Correction (operator-side)
- Open the active part program.
- Confirm the
G5x(or Morara equivalent) command matches the offset used during origin take-up. - Edit if necessary, save, and reload the NC file.
7. Verification Checklist
| Check | Method | Pass criterion |
|---|---|---|
| Alarm not raised on CYCLE START | Dry cycle run | Cycle executes, no alarm in HMI alarm bar |
| Origin survives power-cycle | Power-down NCU 60 s, restart | Part origin coordinates identical to pre-power-down |
| Origin survives warm restart | NCK reset via HMI | Origin retained, alarm does not appear |
| Origin survives program change | Load alternate NC file, return | Origin still valid |
| PLC marker retentive | Online watch in Step 7 / TIA | Bit retains value across NCK restart |
| GUDs present after restart | Define GUD screen | All Morara-prefixed GUDs populated |
8. Preventive Maintenance
- Battery replacement schedule: Replace the NCU backup cell every 5 years or per Siemens service plan. Log the date in the maintenance record.
- Weekly: Export a commissioning archive to the CF card. Use the date-stamped file to roll back after any failure.
- Monthly: Power-cycle the NCU under controlled conditions and verify the part origin is retained. If it is not, escalate to battery/GUD investigation before the next production shift.
- After any software update: Re-validate the GUD definitions and PLC retentive areas; document in the change log.
- Operator training: Document the part-origin take-up sequence as a controlled operation in the standard operating procedure. Require a checklist sign-off before cycle start.
9. Edge Cases and Field Notes
-
Multi-channel machines: If the Morara grinder is configured as a multi-channel 840D sl, the part-origin flag is per-channel. Confirm the operator is starting the cycle on the correct channel (
$AC_CHANNEL/ HMI channel selector). - ID vs OD mode: Some Morara OD/ID machines use different cycle screenforms for internal vs external grinding; the part-origin latch may be mode-specific. Confirm the correct screenform is active.
- After dressing: If the alarm appears immediately after a dressing cycle, the dressing-cycle PLC logic may be overwriting the part-origin bit. Look for shared Merker areas between the dressing and grinding cycles.
- Encrypted archives: If the commissioning archive is password-encrypted, a forgotten password will force a default-data startup and the alarm will reappear. Document the password in the controlled maintenance file.
- NCK cold restart: A cold restart (NCK general reset) wipes all persistent GUDs and frames. Reserve this for commissioning only, not for production troubleshooting.
10. Quick Reference: Alarm Family and Related Signals
| Alarm / signal | Typical cause | First action |
|---|---|---|
| Part Origin Missing | GUD flag cleared, work offset uninitialized, or PLC marker reset | Verify GUD _MOR_PART_ORIG_VALID, active G5x, PLC retentive flag |
| Dresser Origin Missing | Same logic for dresser datum | Verify _MOR_DRESSER_VALID and dressing offset |
| Tool Data Missing | Tool list / magazine list reset | Reload tool list, verify magazine assignment |
| NCK Battery Warning | Battery voltage low | Schedule NCU battery replacement |
| Persistent data invalid | Power loss during SAVE or cold restart | Reload commissioning archive |
11. Cross-References to Official Documentation
- SINUMERIK 840D sl Programming Manual (Basics)
- SINUMERIK 840D sl Setup Manual NCK / PLC / Drives
- NCU 7x0 Backup Battery Service Note
- SINUMERIK Operate Commissioning Manual
- GUD (Global User Data) Programming Guide
Why does loading a new NC file clear the Part Origin Missing alarm on a Siemens 840D sl grinder?
Program selection triggers NC initialization that re-validates cycle-private GUD flags and resets PLC cycle-phase markers. The alarm-latching bit is re-initialized as a side effect, not because the underlying origin data was restored. The root cause (typically SRAM battery, non-retentive PLC flag, or GUD definition mismatch) remains and the alarm returns.
How do I check the NCU backup battery state on an 840D sl?
Open the HMI Diagnostics screen and inspect $AC_BATTERY_STATE, or use Diagnostics > Service > Battery Voltage. Voltage below ~2.7 V indicates the cell must be replaced. Refer to the NCU 7x0 service note for the approved replacement procedure.
What is the difference between a work offset (G54..G599) and the part origin on a Morara grinder?
On 840D sl the work offset is the standard NC concept for shifting the part coordinate system. The Morara HMI exposes it as a named "part origin" entry. The grinding cycle pre-check reads the active work-offset entry; if it has never been written or has been zeroed, the cycle raises Part Origin Missing even if the operator believes an origin exists in another offset.
How can I make the part-origin-taken PLC bit retentive on 840D sl?
In the integrated PLC program (Step 7 or TIA Portal), declare the flag inside a data block and mark the block or the specific tag as Retain. In classic Step 7, place the bit in a retentive Merker area (for example MB200..MB255) and ensure the DB is configured as non-volatile. Verify by performing a warm restart and confirming the bit value is preserved.
After an HMI software update the alarm reappears every shift. What should I check first?
Compare the GUD definition files (_N_SGUD_DEF, _N_MGUD_DEF, _N_UGUD_DEF) against the pre-update archive. A structural change to cycle-private variables (renamed, retyped, or removed) will zero their values and break the part-origin validity latch. Reload the original GUD definitions and reinitialize the cycle variables.