Archived
318 lines
18 KiB
HTML
318 lines
18 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Namespace Hi.NcParsers.Keywords.Siemens | HiAPI-C# 2025 </title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="title" content="Namespace Hi.NcParsers.Keywords.Siemens | HiAPI-C# 2025 ">
|
|
|
|
|
|
<link rel="icon" href="../img/HiAPI.favicon.ico">
|
|
<link rel="stylesheet" href="../public/docfx.min.css">
|
|
<link rel="stylesheet" href="../public/main.css">
|
|
<meta name="docfx:navrel" content="../toc.html">
|
|
<meta name="docfx:tocrel" content="toc.html">
|
|
|
|
<meta name="docfx:rel" content="../">
|
|
|
|
|
|
|
|
<meta name="loc:inThisArticle" content="In this article">
|
|
<meta name="loc:searchResultsCount" content="{count} results for "{query}"">
|
|
<meta name="loc:searchNoResults" content="No results for "{query}"">
|
|
<meta name="loc:tocFilter" content="Filter by title">
|
|
<meta name="loc:nextArticle" content="Next">
|
|
<meta name="loc:prevArticle" content="Previous">
|
|
<meta name="loc:themeLight" content="Light">
|
|
<meta name="loc:themeDark" content="Dark">
|
|
<meta name="loc:themeAuto" content="Auto">
|
|
<meta name="loc:changeTheme" content="Change theme">
|
|
<meta name="loc:copy" content="Copy">
|
|
<meta name="loc:downloadPdf" content="Download PDF">
|
|
|
|
<script type="module" src="./../public/docfx.min.js"></script>
|
|
|
|
<script>
|
|
const theme = localStorage.getItem('theme') || 'auto'
|
|
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
|
|
</script>
|
|
|
|
</head>
|
|
|
|
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
|
|
<header class="bg-body border-bottom">
|
|
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
|
|
<div class="container-xxl flex-nowrap">
|
|
<a class="navbar-brand" href="../index.html">
|
|
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
|
|
|
|
</a>
|
|
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
|
|
<i class="bi bi-three-dots"></i>
|
|
</button>
|
|
<div class="collapse navbar-collapse" id="navpanel">
|
|
<div id="navbar">
|
|
<form class="search" role="search" id="search">
|
|
<i class="bi bi-search"></i>
|
|
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
</header>
|
|
|
|
<main class="container-xxl">
|
|
<div class="toc-offcanvas">
|
|
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
|
|
<div class="offcanvas-header">
|
|
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
|
|
</div>
|
|
<div class="offcanvas-body">
|
|
<nav class="toc" id="toc"></nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="content">
|
|
<div class="actionbar">
|
|
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
|
|
<i class="bi bi-list"></i>
|
|
</button>
|
|
|
|
<nav id="breadcrumb"></nav>
|
|
</div>
|
|
|
|
<article data-uid="Hi.NcParsers.Keywords.Siemens">
|
|
|
|
<h1 id="Hi_NcParsers_Keywords_Siemens" data-uid="Hi.NcParsers.Keywords.Siemens" class="text-break">Namespace Hi.NcParsers.Keywords.Siemens</h1>
|
|
<div class="markdown level0 summary"></div>
|
|
<div class="markdown level0 conceptual"></div>
|
|
<div class="markdown level0 remarks"></div>
|
|
|
|
<h3 id="classes">
|
|
Classes
|
|
</h3>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.NcParsers.Keywords.Siemens.Msg.html">Msg</a></dt>
|
|
<dd><p>Block-root section recording a Siemens <code>MSG("...")</code> operator
|
|
display message, written by
|
|
<a class="xref" href="Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensMsgSyntax.html">SiemensMsgSyntax</a>. A section
|
|
without <a class="xref" href="Hi.NcParsers.Keywords.Siemens.Msg.html#Hi_NcParsers_Keywords_Siemens_Msg_Text">Text</a> records the bare <code>MSG()</code> clear form.
|
|
Record-only: simulation ignores it; the section exists for
|
|
bidirectional NC-text reconstruction and UI display.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensCall.html">SiemensCall</a></dt>
|
|
<dd><p>Siemens subprogram-call record. Two lifetimes share the shape:</p>
|
|
<ul><li><code>Parsing.SiemensCall</code> — written by
|
|
<a class="xref" href="Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensCallStatementSyntax.html">SiemensCallStatementSyntax</a> when a
|
|
whole-line call statement is captured (<code>L9810</code>, <code>L123 P3</code>,
|
|
<code>HQ_FC(1,2)</code>). Carries <a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensCall.html#Hi_NcParsers_Keywords_Siemens_SiemensCall_Name">Name</a>, optional verbatim
|
|
<a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensCall.html#Hi_NcParsers_Keywords_Siemens_SiemensCall_Args">Args</a>, optional <a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensCall.html#Hi_NcParsers_Keywords_Siemens_SiemensCall_P">P</a>.</li><li>block-root <code>SiemensCall</code> — written by
|
|
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensSubProgramCallSyntax.html">SiemensSubProgramCallSyntax</a> on
|
|
the host block and on every inlined body block once the call is
|
|
consumed. <a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensCall.html#Hi_NcParsers_Keywords_Siemens_SiemensCall_FileName">FileName</a> records the resolved subprogram file;
|
|
<a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensCall.html#Hi_NcParsers_Keywords_Siemens_SiemensCall_Skipped">Skipped</a> marks the safe-skip outcome (no file found —
|
|
OEM / measuring cycles like <code>HQ_FC</code>, Renishaw <code>L9810</code>) where
|
|
the call is consumed with zero motion effect and a structured
|
|
warning replaces the raw unparsed-text noise.</li></ul>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensFor.html">SiemensFor</a></dt>
|
|
<dd><p>Siemens <code>FOR <var> = <start> TO <end> ... ENDFOR</code>
|
|
counting-loop record. The Parsing capture stores the start expression
|
|
as a single-entry <code>Init</code> map (<code>{ “R1”: 0 }</code>) — the variable
|
|
name is a JSON <em>key</em>, which the evaluator's pass-2 tree walk
|
|
never rewrites (values only), so a loop variable whose name matches a
|
|
set named variable is not clobbered; the start/end <em>values</em> are
|
|
substituted normally. The block-root stamp records the loop variable
|
|
and its per-iteration <a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensFor.html#Hi_NcParsers_Keywords_Siemens_SiemensFor_Value">Value</a>.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensGoto.html">SiemensGoto</a></dt>
|
|
<dd><p>Siemens <code>GOTOF</code>/<code>GOTOB</code> jump record. Two lifetimes share the
|
|
shape:</p>
|
|
<ul><li><code>Parsing.SiemensGoto</code> — written by
|
|
<a class="xref" href="Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensGotoParsingSyntax.html">SiemensGotoParsingSyntax</a> for both
|
|
the bare jump (<code>GOTOF LBL1</code>) and the single-line conditional
|
|
(<code>IF R1==1 GOTOF LBL1</code>).</li><li>block-root <code>SiemensGoto</code> — stamped by
|
|
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensGotoSyntax.html">SiemensGotoSyntax</a> after the
|
|
control-flow decision, with <a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensGoto.html#Hi_NcParsers_Keywords_Siemens_SiemensGoto_Fired">Fired</a> flipped true on a
|
|
successful redirect.</li></ul>
|
|
<p>
|
|
Unlike Fanuc's numbered <code>GOTO n</code>, the target is a named label
|
|
(<code>LBL1:</code> line) or an <code>N<num></code> block number; direction
|
|
is explicit in the mnemonic — <code>GOTOF</code> scans forward from the host
|
|
line, <code>GOTOB</code> scans backward to the nearest label above.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensIf.html">SiemensIf</a></dt>
|
|
<dd><p>Siemens <code>IF</code>/<code>ELSE</code>/<code>ENDIF</code> block-conditional record.
|
|
<code>Parsing.SiemensIf</code> carries the captured phrase; the block-root
|
|
stamp written by <a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensIfSyntax.html">SiemensIfSyntax</a>
|
|
adds the gate outcome. Unlike the loop family there is no frame stack:
|
|
an <code>ELSE</code> reached in the normal stream always means the true
|
|
branch just finished (a false condition jumps past the <code>ELSE</code>
|
|
line directly), so <code>ELSE</code> unconditionally skips to its matching
|
|
<code>ENDIF</code> and <code>ENDIF</code> itself is a consumed no-op.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensKeywords.html">SiemensKeywords</a></dt>
|
|
<dd><p>Siemens Sinumerik G-code and M-code constants.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensLabel.html">SiemensLabel</a></dt>
|
|
<dd><p>Block-root record for a Siemens label line (<code>LBL1:</code>), written by
|
|
<a class="xref" href="Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensLabelSyntax.html">SiemensLabelSyntax</a>. Labels are
|
|
passive jump targets — the record only makes the consumed token
|
|
visible to cache dumps and lets
|
|
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensRepeatSyntax.html">SiemensRepeatSyntax</a>'s scan
|
|
probe match candidates.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensLoop.html">SiemensLoop</a></dt>
|
|
<dd><p>Siemens <code>LOOP ... ENDLOOP</code> endless-loop record. The construct has
|
|
no exit condition — real programs leave it via <code>GOTOF</code>/<code>GOTOB</code>
|
|
or a subprogram return; offline replay is bounded by
|
|
<a class="xref" href="Hi.NcParsers.Dependencys.Siemens.SiemensLoopIterationDependency.html">SiemensLoopIterationDependency</a>,
|
|
which is therefore a hard requirement for the <code>ENDLOOP</code> back-jump
|
|
(a missing watchdog suppresses the jump instead of hanging the
|
|
pipeline).</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensLoopFrame.html">SiemensLoopFrame</a></dt>
|
|
<dd><p>One entry on the <a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensLoopFrames.html">SiemensLoopFrames</a> stack. Identity is
|
|
<code>(Kind, FilePath, BeginLineNo)</code> — the file path disambiguates a
|
|
loop line in the main program from the same line number inside an
|
|
inlined subprogram, and lets the terminator refuse a cross-file
|
|
mismatch.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensLoopFrames.html">SiemensLoopFrames</a></dt>
|
|
<dd><p>Block-root carrier for the active Siemens loop-construct stack,
|
|
mutated by <a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensLoopSyntax.html">SiemensLoopSyntax</a> at
|
|
the Evaluation stage and carried block-to-block by
|
|
<a class="xref" href="Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html">ModalCarrySyntax</a>'s Logic tracked-key
|
|
list (plus an eager previous-block clone inside the loop syntax
|
|
itself, mirroring the Fanuc <code>WhileFrames</code> pattern). Wrapped in a
|
|
JSON object (<code>{ “Frames”: [ ... ] }</code>) rather than a bare array so
|
|
the ModalCarry deep-clone JsonObject carry applies — the same reason
|
|
<a class="xref" href="Hi.NcParsers.Keywords.CallStack.html">CallStack</a> wraps its frame list.</p>
|
|
<p>
|
|
A single shared stack (rather than one per construct kind) is what
|
|
makes mixed-construct nesting work: a <code>FOR</code> inside a
|
|
<code>WHILE</code> pushes on top of the WHILE frame, and each terminator
|
|
validates that the innermost (last) frame carries its own
|
|
<a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensLoopFrame.html#Hi_NcParsers_Keywords_Siemens_SiemensLoopFrame_Kind">Kind</a>.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensPathSmoothing.html">SiemensPathSmoothing</a></dt>
|
|
<dd><p>Section data holder for <a class="xref" href="Hi.NcParsers.Keywords.Siemens.ISiemensPathSmoothingDef.html">ISiemensPathSmoothingDef</a>.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensProc.html">SiemensProc</a></dt>
|
|
<dd><p>Block-root record for a Siemens <code>PROC</code> declaration header,
|
|
written by <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.Siemens.SiemensProcSyntax.html">SiemensProcSyntax</a>.
|
|
The declaration is consumed whole (parameter binding is a later work
|
|
item); <a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensProc.html#Hi_NcParsers_Keywords_Siemens_SiemensProc_Statement">Statement</a> keeps the verbatim remainder visible.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensRepeat.html">SiemensRepeat</a></dt>
|
|
<dd><p>Siemens <code>REPEAT</code> record. <code>Parsing.SiemensRepeat</code> carries the
|
|
captured label pair; the block-root section written by
|
|
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensRepeatSyntax.html">SiemensRepeatSyntax</a> adds the
|
|
firing outcome, and every inlined repetition block is stamped with a
|
|
clone carrying <a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensRepeat.html#Hi_NcParsers_Keywords_Siemens_SiemensRepeat_Iteration">Iteration</a> so cache-dump readers can see
|
|
which pass a block belongs to.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensRepeatUntil.html">SiemensRepeatUntil</a></dt>
|
|
<dd><p>Siemens <code>REPEAT ... UNTIL <cond></code> post-test loop record.
|
|
The bare <code>REPEAT</code> line (no label — the labelled forms belong to
|
|
<a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensRepeat.html">SiemensRepeat</a>) opens the loop; <code>UNTIL</code> evaluates
|
|
the exit condition after each pass.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensWhile.html">SiemensWhile</a></dt>
|
|
<dd><p>Siemens <code>WHILE ... ENDWHILE</code> pre-test loop record.
|
|
<code>Parsing.SiemensWhile</code> carries the captured phrase; the block-root
|
|
stamp adds the per-arrival gate outcome. Loop state lives on the
|
|
shared <a class="xref" href="Hi.NcParsers.Keywords.Siemens.SiemensLoopFrames.html">SiemensLoopFrames</a> stack managed by
|
|
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensLoopSyntax.html">SiemensLoopSyntax</a>.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.NcParsers.Keywords.Siemens.Stopre.html">Stopre</a></dt>
|
|
<dd><p>Block-root section recording a consumed Siemens <code>STOPRE</code>
|
|
(stop preprocessing / block-search buffer sync), written by
|
|
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.Siemens.SiemensStopreSyntax.html">SiemensStopreSyntax</a>. STOPRE has no
|
|
effect in offline simulation — the section exists solely so the token
|
|
survives for bidirectional NC-text reconstruction.</p>
|
|
</dd>
|
|
</dl>
|
|
<h3 id="interfaces">
|
|
Interfaces
|
|
</h3>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.NcParsers.Keywords.Siemens.ISiemensPathSmoothingDef.html">ISiemensPathSmoothingDef</a></dt>
|
|
<dd><p>Siemens path-control / smoothing modal registers recorded by
|
|
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.Siemens.SiemensPathSmoothingSyntax.html">SiemensPathSmoothingSyntax</a> under the
|
|
brand-invariant <a class="xref" href="Hi.NcParsers.Keywords.PathSmoothing.html">PathSmoothing</a> section key. Record-only —
|
|
simulation does not alter the tool path; the registers exist for
|
|
bidirectional NC-text reconstruction and UI display.</p>
|
|
<p>
|
|
Each property mirrors one orthogonal Sinumerik modal group; a property
|
|
is absent from the JSON section until its group is first programmed.
|
|
<a class="xref" href="Hi.NcParsers.Keywords.IPathSmoothingDef.html#Hi_NcParsers_Keywords_IPathSmoothingDef_IsEnabled">IsEnabled</a> is derived: true while a
|
|
CYCLE832 high-speed setting is armed (<a class="xref" href="Hi.NcParsers.Keywords.Siemens.ISiemensPathSmoothingDef.html#Hi_NcParsers_Keywords_Siemens_ISiemensPathSmoothingDef_Tolerance">Tolerance</a> present)
|
|
or a continuous-path mode (G64/G641/G642) is active.
|
|
<a class="xref" href="Hi.NcParsers.Keywords.IPathSmoothingDef.html#Hi_NcParsers_Keywords_IPathSmoothingDef_Term">Term</a> records the token that last
|
|
changed the path-control state (a G code or <code>CYCLE832</code>).
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
|
|
|
|
</article>
|
|
|
|
<div class="contribution d-print-none">
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
<div class="affix">
|
|
<nav id="affix"></nav>
|
|
</div>
|
|
</main>
|
|
|
|
<div class="container-xxl search-results" id="search-results"></div>
|
|
|
|
<footer class="border-top text-secondary">
|
|
<div class="container-xxl">
|
|
<div class="flex-fill">
|
|
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
</body>
|
|
</html>
|