EXTCALL Alarm 12550: MMC102 Is Too Old, Not Misconfigured

David Krause11 min read
Other TopicSiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

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.

  1. Leave the alarm active and open the control’s information or help function.
  2. Read the installed diagnostic description for 12550, if that description is available on the machine.
  3. Record whether the description classifies the token as unknown, the function as unavailable, or an option as absent.
  4. 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.

  1. Enter a minimal call using the documented short-name form when the target and caller occupy the same documented search location.
  2. Preserve spaces, parentheses, quotation marks, slashes, and name prefixes exactly as specified.
  3. 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.

  1. Confirm the caller and target are in the same directory before using a short name.
  2. If they are not, build the path from the directory and folder names shown by the control rather than from a remembered example.
  3. Match the suffix to the stored type. The evidence contains both MPF main programs and SPF subprograms; changing the suffix without changing the stored object creates another mismatch.
  4. Use one known target to validate resolution before adding calls for DK2 through DK5.

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

  1. Record alarm 12550 and its complete active text.
  2. Read the installed release. For the affected Hermle C800U, identify the Siemens environment as MMC102.
  3. Confirm machine-specific command support. The resolving branch is “control too old; EXTCALL begins with the next control version.”
  4. Stop changing quotation marks, file suffixes, or paths as a remedy for 12550. Those changes cannot install the missing command.
  5. Move the required machining content into a program structure supported by the installed release.
  6. Mark the base operation and repeated operations with distinct labels and END: boundaries.
  7. Place each TRANS command immediately before the machining group that must run at that coordinate position.
  8. Add REPEAT statements for the required labeled ranges. Use P=3 only when three repetitions are actually required, and account for any initial sequential execution.
  9. 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.

Back to blog