Alarm 12550 appears with the message “EXTCALL not defined or option not present” when a Hermle C800U using the Siemens MMC102 generation attempts to execute large machining programs from disk. The decisive fault in this installation was controller-generation support: the machine manufacturer confirmed that EXTCALL was introduced with the next control version. Changing quotation marks or file paths cannot add a command that the installed release does not implement.
Diagnostic model
The term EXTCALL here means an external program execution request. It is intended for a program that cannot be loaded completely into control memory and must be executed from another storage location. The installation required this mode because the machining programs were too large to load.
Three mechanisms can produce similar symptoms but require different corrections:
| Mechanism | Typical indication | Deciding check | Action |
|---|---|---|---|
| Command unavailable |
12550, command not defined, or option absent |
Installed control release versus the machine-specific function list | Use a supported alternative or upgrade the control environment |
| Command parsed but target unresolved | Program not present or not released for execution | Resolved directory, filename, file type, release state, and load state | Correct the program reference or target state |
| Wrong execution architecture | External execution is unnecessary or incompatible with the installed control | Program size, storage location, and required repetition pattern | Use REPEAT or a supported program-call mechanism |
The checks must be performed in that order. A path or file-state investigation has no resolving value until the installed software recognizes the instruction.
Check 1: Alarm classification
Check 1: Record the alarm number and the complete alarm text while the alarm is active. For the reported failure, expect 12550 and text stating that EXTCALL is not defined or that the option is not present.
This wording places the initial fault at the instruction or option gate, before normal target-program execution. It does not identify a missing file. A missing or unavailable target is a later-stage fault and produces a different message.
- Leave the alarm active and open the control’s information or help function.
- Read the installed diagnostic description for
12550, if that description is available on the machine. - Record whether the description classifies the token as unknown, the function as unavailable, or an option as absent.
- If the help system is unavailable, use the alarm number and control release when checking the machine documentation or contacting the machine manufacturer through its official support channel.
Expected reading: an instruction-level or option-level diagnostic leads to Check 2. A file-not-found or file-not-released diagnostic means the parser progressed farther; proceed to Check 3 and then Check 4.
Check 2: Installed-release support
Check 2: Read the installed Siemens control/MMC version from the machine information pages and compare it with the machine-specific function documentation. The machine in question was identified as an older MMC102 version.
The machine manufacturer ultimately confirmed that this generation was too old for EXTCALL and that the function began with the next control version. No parameter definition, program extension, directory change, or punctuation change can resolve that branch. A “standard option” on a later generation is not proof that the instruction exists in an earlier installed release.
| Version check result | Meaning | Next action |
|---|---|---|
The installed release explicitly lists EXTCALL
|
The parser and execution facility should exist | Continue with Check 3 |
| The installed release omits the function, or the manufacturer identifies the release as too old | The command is unavailable on that control generation | Skip syntax and path experiments; continue with Check 6 |
| The release supports the facility only through an installed option | Software capability and option state must both be present | Read the licensed-option display and use the manufacturer’s documented activation route |
| The displayed version cannot be mapped to a function list | Capability remains undecided | Provide the exact displayed release and alarm to the machine manufacturer |
Expected reading for this installation: MMC102 falls on the unsupported branch. The resolving route is a program structure based on REPEAT, not further EXTCALL editing.
Check 3: Parser syntax
Perform this check only when Check 2 confirms support. Syntax is release-sensitive, and every delimiter is significant. The examples associated with this fault contain several forms:
EXTCALL"DK1"
EXTCALL ("BLA")
EXTCALL ("/_N_WKS_DIR/_N_BLA_WPD/_N_BLA_SPF")
EXTCALL </_N_WKS_DIR/_N_WELLE_WPD/_N_DK1_SPF>
The examples disagree about quotation marks and enclosing characters. On the affected machine, the supplied machine documentation showed quotation marks, and machine-specific guidance stated that quotation marks were required to request an independent external program rather than a normal subprogram call. A separate trial without quotation marks moved execution to a different alarm, but alarm progression alone does not prove that the intended external-call semantics were selected.
Check 3: Copy the grammar from the documentation matching the installed release. Do not combine quotation rules from one example with path delimiters from another.
- Enter a minimal call using the documented short-name form when the target and caller occupy the same documented search location.
- Preserve spaces, parentheses, quotation marks, slashes, and name prefixes exactly as specified.
- Run the block and record the next alarm before changing anything else.
Expected reading: continued 12550 returns the investigation to Check 2 because the instruction or option is still unavailable. “Program not present or released for execution” means the parser accepted enough of the statement to attempt target resolution; continue with Check 4.
Check 4: Program and path resolution
An external call must resolve to one program object. A full example identifies a workpiece directory, a named workpiece folder, and a program file:
/_N_WKS_DIR/_N_WELLE_WPD/_N_DK1_SPF
| Token | Role in the supplied example |
|---|---|
/_N_WKS_DIR |
The workpiece directory area, described for the example as drive N
|
/_N_WELLE_WPD |
The workpiece folder named WELLE
|
/_N_DK1_SPF |
The target program DK1 stored with the SPF type |
A short name depends on the control’s search context. A full path removes that dependency, but it must match the actual directory object, workpiece folder, base name, and program type. Merely placing several files in a screen labeled “part programs” does not prove that a full reference using WKS_DIR and a WPD folder resolves to them.
Check 4: Compare the target’s displayed storage location and type with every token in the call.
- Confirm the caller and target are in the same directory before using a short name.
- If they are not, build the path from the directory and folder names shown by the control rather than from a remembered example.
- Match the suffix to the stored type. The evidence contains both
MPFmain programs andSPFsubprograms; changing the suffix without changing the stored object creates another mismatch. - Use one known target to validate resolution before adding calls for
DK2throughDK5.
Expected reading: a correctly resolved target changes the active program context or begins execution. The same “not present or released” alarm leads to Check 5.
Check 5: Program state and memory constraints
Target existence, execution release, load state, and available program memory are separate conditions. In the affected installation, the programs were reported as released, stored in the same directory as the main program, and too large to load. They therefore had to use the control’s “execute from hard disk” workflow.
One external-execution practice states that an EXTCALL target must not already be loaded and must be released. Another installation using a SINUMERIK 840 Di stored the main program and called programs in one folder, with the called programs saved as subprograms. A separate working CALL arrangement referenced both MPF and SPF files:
CALL "/_N_WKS_DIR/_N_123456_WPD/_N_12345601_MPF"
CALL "/_N_WKS_DIR/_N_123456_WPD/_N_12345602_MPF"
CALL "/_N_WKS_DIR/_N_AAAA_WPD/_N_AAAA02_SPF"
Those examples describe different controls and different call instructions. They must not be used to infer that MMC102 accepts the same combination.
Check 5: Inspect the target in the program manager and record four readings: stored type, storage directory, execution-release indication, and loaded/not-loaded state.
| Reading | Interpretation | Action |
|---|---|---|
| Target absent at the referenced location | The path resolves to no program object | Correct the path or move the program through the control’s supported file-management workflow |
| Target present but not released | The execution gate blocks it | Set the documented execution release |
| Target loaded when external execution requires an unloaded file | The selected execution mode conflicts with target state | Return it to the documented external-storage state |
| Target too large for program memory | A conventional loaded-program call cannot execute the complete file | Use supported disk execution, restructure the program, or divide it within documented limits |
All readings correct but 12550
|
File state is not the blocking layer | Return to installed-release support |
Check 6: Execution-method selection
Check 6: Select the call method from the installed capability and the required program architecture, not from superficial syntax similarity.
| Method | Appropriate use | Constraint exposed by this case |
|---|---|---|
EXTCALL |
Execute a program from external storage when the installed control implements the facility | Unavailable on the affected MMC102 generation |
CALL |
Invoke a program through the control’s supported program-call grammar | Working path examples came from another installation and do not establish support on this machine |
REPEAT |
Repeat a labeled program section already available to the active program | Avoids dependence on the unsupported external-call instruction, but the resulting active program must fit the usable program arrangement |
The job sequence requires one base operation followed by operations DK2 through DK5 at multiple coordinate positions. That requirement maps directly to labeled sections and repeated ranges. If combining the required content exceeds the active-program capacity, the program must be divided using a call mechanism that the installed release actually supports; EXTCALL remains unavailable.
REPEAT fallback design
The fallback places machining sections inside one program, marks their boundaries with labels and END:, changes the programmable coordinate shift, and repeats the required section. The supplied pattern used labels for DK1 through DK5 and allowed a repetition count such as P=3.
%_N_DK_MPF
; Base contour
LABEL1:
; DK1 machining content
END:
; First position
TRANS X30
LABEL2:
; DK2 machining content
END:
LABEL3:
; DK3 machining content
END:
LABEL4:
; DK4 machining content
END:
LABEL5:
; DK5 machining content
END:
; Next position
TRANS X30 Y30
REPEAT LABEL2 END
REPEAT LABEL3 END
REPEAT LABEL4 END
REPEAT LABEL5 END
; Example of an explicit repetition count
REPEAT LABEL2 END P=3
G53 G0 Z499.
D0 M5 M9 M10 M20
T0 M6
TRANS
G500
G0 Z498
G0 X800 Y600
M36
M30
Treat this as an architectural template. Preserve the exact label and REPEAT grammar accepted by the installed release. P=3 denotes three repetitions in the supplied guidance; if the labeled section also executes once as part of normal sequential flow, count that initial pass separately when calculating total machining passes.
A coordinate transformation changes where the repeated toolpath runs. The original sequence used TRANS X30 and later TRANS X30 Y30. A bare TRANS appeared in the shutdown sequence to clear the programmable transformation before subsequent positioning. Moving a repeat boundary across a transformation block can machine the correct geometry at the wrong location, so labels must surround machining content deliberately.
Resolution procedure and verification
- Record alarm
12550and its complete active text. - Read the installed release. For the affected Hermle C800U, identify the Siemens environment as
MMC102. - Confirm machine-specific command support. The resolving branch is “control too old;
EXTCALLbegins with the next control version.” - Stop changing quotation marks, file suffixes, or paths as a remedy for
12550. Those changes cannot install the missing command. - Move the required machining content into a program structure supported by the installed release.
- Mark the base operation and repeated operations with distinct labels and
END:boundaries. - Place each
TRANScommand immediately before the machining group that must run at that coordinate position. - Add
REPEATstatements for the required labeled ranges. UseP=3only when three repetitions are actually required, and account for any initial sequential execution. - Retain the transformation reset and the required end-of-program commands after the last repeated operation.
Verification check 1: Parse or start the revised program. Expect no 12550 because the program contains no unsupported EXTCALL request.
Verification check 2: Run in the machine’s controlled proving mode and observe the block sequence. Expect DK1 once as the base operation, followed by DK2 through DK5 in the programmed order for every intended position.
Verification check 3: At each TRANS block, compare the displayed active displacement with the programmed position. Expect the toolpath group following TRANS X30 to use that programmed shift and the group following TRANS X30 Y30 to use the second programmed shift.
Verification check 4: Count section entries. For a block specified with P=3, expect three repeat executions; add any normal sequential pass when determining the total number of executions.
Verification check 5: Observe the state after the bare TRANS command and before the final positioning sequence. Expect no residual programmable transformation from the repeated machining positions.
Frequently asked questions
Why does EXTCALL raise alarm 12550 on an MMC102?
The affected MMC102 generation does not implement EXTCALL; the machine manufacturer identified the next control version as the first one providing it. Use a supported structure such as REPEAT or another call method documented for the installed release.
Why does changing EXTCALL quotation marks produce a different alarm?
Quotation marks and delimiters change how the parser interprets the statement. A later “program not present or released” alarm means target resolution was attempted, but it does not prove that the desired external-execution behavior exists on the installed control.
Why does EXTCALL say the program is not present or released?
Check the resolved directory, workpiece folder, filename suffix, execution-release indication, and loaded state. A short name depends on the active search location; a full path such as /_N_WKS_DIR/_N_WELLE_WPD/_N_DK1_SPF must match the stored object exactly.
How do I verify the REPEAT workaround before machining?
Prove the program in the machine’s controlled test mode, count each labeled-section entry, compare every active displacement with its TRANS command, and inspect the state after the final bare TRANS. The final expected reading is no residual programmable transformation before the end-positioning blocks execute.