<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>レダース | じじぃの引出し</title>
	<atom:link href="https://www.kazuban.com/blog/tag/roeders_/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.kazuban.com/blog</link>
	<description>なにかしら、皆さんの参考になれば幸いです！</description>
	<lastBuildDate>Fri, 14 Apr 2023 09:07:21 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://www.kazuban.com/blog/wp-content/uploads/2020/05/cropped-ICON-1-32x32.png</url>
	<title>レダース | じじぃの引出し</title>
	<link>https://www.kazuban.com/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>NCプログラム／Gコード　工具経路指令</title>
		<link>https://www.kazuban.com/blog/nc-gcode-02/</link>
					<comments>https://www.kazuban.com/blog/nc-gcode-02/#comments</comments>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Sat, 07 Dec 2019 08:42:23 +0000</pubDate>
				<category><![CDATA[NC]]></category>
		<category><![CDATA[G-Code]]></category>
		<category><![CDATA[NCプログラム]]></category>
		<category><![CDATA[ハイデンハイン]]></category>
		<category><![CDATA[ファナック]]></category>
		<category><![CDATA[レダース]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=1323</guid>

					<description><![CDATA[前回は、NCプログラムの概要を説明しました。今回は工具経路の図形を定義する指令に使用されるＧコードについて説明します。ここまで理解できれば、二次元の図形をＧコードで定義できるようになります。 目次 絶対座標系と相対座標系 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><a aria-label="前回は、NCプログラムの概要を説明しました (新しいタブで開く)" href="https://www.kazuban.com/blog/nc-gcode-01/" target="_blank">前回は、NCプログラムの概要を説明しました</a>。<br>今回は工具経路の図形を定義する指令に使用されるＧコードについて説明します。<br>ここまで理解できれば、二次元の図形をＧコードで定義できるようになります。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0"> 絶対座標系と相対座標系 </a><ol><li><a href="#toc2" tabindex="0"> 絶対座標系／アブソリュート：Ｇ９０ </a></li><li><a href="#toc3" tabindex="0"> 相対座標系／インクリメンタル：Ｇ９1 </a></li></ol></li><li><a href="#toc4" tabindex="0">Ｇコードグループ</a><ol><li><a href="#toc5" tabindex="0"> モーダルとワンショット </a></li></ol></li><li><a href="#toc6" tabindex="0">移動量指令の単位と小数点</a></li><li><a href="#toc7" tabindex="0">移動指令</a><ol><li><a href="#toc8" tabindex="0">Ｇ００　／　位置決め（早送り）</a></li><li><a href="#toc9" tabindex="0"> Ｇ０１　／　直線補間 （切削送り）</a></li><li><a href="#toc10" tabindex="0">Ｇ０２・Ｇ０３　／円弧補間</a></li></ol></li><li><a href="#toc11" tabindex="0">まとめ</a><ol><ol><li><a href="#toc12" tabindex="0">ＮＣプログラムの記事</a></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1"> 絶対座標系と相対座標系 </span></h2>



<p class="wp-block-paragraph">経路指令なので、「どこへ行け！」が基本になりますが<br>「どこへ」の指令に２種類の指令方法があります。 <br>「絶対座標系：G90」と「相対座標系：G91」です。<br>ちょっと面倒くさそうな言葉ですが、重要な指令なので、一番最初に書くことにしました。<br>指令座標 位置 が同じでも、どちらの座標系かを把握していないとまったく違う位置への移動になります。<br>非常に重要な指令です。</p>



<h3 class="wp-block-heading"><span id="toc2"> <strong>絶対座標系／アブソリュート：Ｇ９０</strong> </span></h3>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="478" height="456" src="https://www.kazuban.com/blog/wp-content/uploads/2019/12/G90.png" alt="" class="wp-image-1384" srcset="https://www.kazuban.com/blog/wp-content/uploads/2019/12/G90.png 478w, https://www.kazuban.com/blog/wp-content/uploads/2019/12/G90-300x286.png 300w" sizes="(max-width: 478px) 100vw, 478px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p> 工作機械のある位置を原点と決めた場合、<span class="markerPink">その原点からの距離</span>を位置座標として指令するモードです。</p><p>（例）</p><p><strong>G90</strong> X10.123 Y-50.630</p><p>事前に決められた、原点（X0,Y0)位置から、指令位置へ移動させます </p></blockquote>



<h3 class="wp-block-heading"><span id="toc3"> <strong>相対座標系／インクリメンタル：Ｇ９1</strong> </span></h3>



<figure class="wp-block-image size-large"><img decoding="async" width="506" height="494" src="https://www.kazuban.com/blog/wp-content/uploads/2019/12/G91.png" alt="" class="wp-image-1385" srcset="https://www.kazuban.com/blog/wp-content/uploads/2019/12/G91.png 506w, https://www.kazuban.com/blog/wp-content/uploads/2019/12/G91-300x293.png 300w" sizes="(max-width: 506px) 100vw, 506px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>工具（主軸）の現在地からの距離を指定するモードです。</p><p>（例）</p><p><strong>G91</strong> X10.123 Y-50.630</p><p><span class="markerPink">現在位置からの相対的な位置を指定します。</span><br>原点は関係ありません。</p></blockquote>



<p class="wp-block-paragraph">「G90」と「G91」が違うだけで、座標位置の数値は全く同じですが、ぜんぜん違う位置への指令となりますから、非常に重要なコードです。</p>



<h2 class="wp-block-heading"><span id="toc4">Ｇコードグループ</span></h2>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<figure class="wp-block-image size-large"><img decoding="async" width="397" height="515" src="https://www.kazuban.com/blog/wp-content/uploads/2019/12/GGroup.png" alt="" class="wp-image-1396" srcset="https://www.kazuban.com/blog/wp-content/uploads/2019/12/GGroup.png 397w, https://www.kazuban.com/blog/wp-content/uploads/2019/12/GGroup-231x300.png 231w" sizes="(max-width: 397px) 100vw, 397px" /></figure>



<p class="wp-block-paragraph"> この表は、ファナックの資料なので、それ以外の制御機では互換性のないコードもありますのでご承知くだ い。<br>Ｇコードはいくつかのグループに分類されていて、一つのブロック（行）に同じグループのコードは一緒に使用できません。<br>逆に、違うグループであれば、同じブロック（一行）で指令する事ができます、</p>



<h3 class="wp-block-heading"><span id="toc5"> モーダルとワンショット </span></h3>



<p class="wp-block-paragraph"><span class="markerBlue">「００グループ」<strong>以外</strong></span>は、一度指令されると、同じグループのコードが指令されるまで有効にまります。<br>例えば「G90」のコードは一度指令すると、「G91」のコードが指令されるまで有効になります。<br>このようなコードを<span class="markerPink">「モーダル」</span>なコードと呼ばれています<br>対して、 <strong>「００クループ」</strong> は、そのブロック（行）のみ有効なコードで<span class="markerPink">「ワンショット」</span>なコードと呼ばれます。<br>ここで説明する予定の基本的なＧコードは、「モーダル」なコードがほとんどなので、「モーダル」のみの説明とします。</p>
</div></div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>「Ｇコード　グループ０３」<br>・G90　：　アブソリュート<br>・G91　：　インクリメンタル</p></blockquote>



<h2 class="wp-block-heading"><span id="toc6">移動量指令の単位と小数点</span></h2>



<p class="wp-block-paragraph">移動量を数値で指令する場合、単位は何でしょうか？<br> インチ? 　m ?　cm  ?　mm  ?   <br>まず、インチかメトリックかについては、デフォルトではメトリックが一般的です。明示的に指令するには、Ｇコード（G20:インチ　G21:メトリック）が用意されています。<br>ただし、特にインチで指令する<span class="markerYellow"> 必要がない場合</span>には、<span class="markerPink">省略可能</span>です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p> 「Ｇコード　グループ０６」<br>・G20　：　インチ<br>・G21 　：　メトリック</p></blockquote>



<p class="wp-block-paragraph">では、メトリック指令だとして、「X100」と指令した場合、実際の移動量はどれくらいでしょうか？<br>単位は機械系の場合「mm」が一般的なので、「100mm」と考えがちですが、これは特に、<strong>ファナックの場合</strong>には<span class="markerPink">注意</span>が必要です。<br>私に知ってる限りでは、「OSP」「ハイデンハイン」「レダース」などは「100」は期待通り「100mm」と認識しました。<br>対して私が触ったファナックの中には、「100mm」「0.1mm」「0.01mm」と認識する制御機がありました。<br>この違いは、制御機のパラメータの設定の違いです。<br>パラメータ設定のある項目に数値一桁目の単位が設定されています。<br>機械納入時この値は、「0.001」に設定されている場合が多いです。<br>高精度な機械の場合には、「0.0001」の場合もあります。<br>したがって、数値一桁目が「0.001」が設定されている場合には「100」の指令では「0.1mm」しか移動しない事になります。<br>この混乱をなくすため、<strong>「小数点」</strong>をつけるようにします。<br>「X100」を「X100.」や「X100.0」と書くようにします。<br>数種類の機械や制御機を使用する場合には、<span class="markerPink"><strong>「小数点」</strong>は必ず付けるように徹底</span>する事をお勧めします。</p>



<h2 class="wp-block-heading"><span id="toc7">移動指令</span></h2>



<p class="wp-block-paragraph">「０１グループ」に属しています。<br>・早送り移動（位置決め）<br>・直線移動（直線補間）<br>・円弧移動（円弧補間）<br>があります。</p>



<h3 class="wp-block-heading"><span id="toc8">Ｇ００　／　位置決め（早送り）</span></h3>



<p class="wp-block-paragraph">「指定位置に、最高速度で移動しろ！」の指令ですが、<strong>ファナック系</strong>では<span class="markerYellow"> 「指定軸の最高速度」</span>の指令となる場合もあるので注意が必要です。<br>例えば、「G00 X200.0 Y80.0」と指令した場合、指令座標へ最短距離で移動するように思いますが、ファナックの多く（古い機種）は<span class="markerPink">最短距離になりません。</span><br>「各軸の最高速度」の指令なので、とりあえず、Ｘ軸、Ｙ軸の最速で移動した後残った軸が移動する動作となります。<br>もし、Ｘ軸・Ｙ軸の最高速度が同じ場合、まずは、４５°方向へ移動し、その後まだ移動が残っている軸が移動します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="881" height="582" src="https://www.kazuban.com/blog/wp-content/uploads/2019/12/G00-2.png" alt="" class="wp-image-1443" srcset="https://www.kazuban.com/blog/wp-content/uploads/2019/12/G00-2.png 881w, https://www.kazuban.com/blog/wp-content/uploads/2019/12/G00-2-300x198.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2019/12/G00-2-768x507.png 768w" sizes="(max-width: 881px) 100vw, 881px" /></figure>



<p class="wp-block-paragraph">最短距離方向を期待していると、<strong>思わぬ方向へ移動し干渉</strong>する場合もあるので注意が必要です。<br>また加工物の上面よりも、<span class="markerPink">深い位置では「G00」は使用しない</span>ほうが無難です。<br>最短距離のみで干渉を回避するCAMの場合、ぶつかる事になりかねません。<br>ハイデンハインやレダースの場合には、最短距離での移動が<strong>保証</strong>されています。<br>さらに最高速度は、オーバーライドダイアルで調整可能ですが、レダースの場合には<br>「SetFMax=20000」のように、コマンドで最高速度を設定できますし<br>ハイデンハインの場合もコントローラダイアログで設定できて便利です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="685" height="468" src="https://www.kazuban.com/blog/wp-content/uploads/2019/12/FMAX.png" alt="" class="wp-image-1446" srcset="https://www.kazuban.com/blog/wp-content/uploads/2019/12/FMAX.png 685w, https://www.kazuban.com/blog/wp-content/uploads/2019/12/FMAX-300x205.png 300w" sizes="(max-width: 685px) 100vw, 685px" /></figure>



<h3 class="wp-block-heading"><span id="toc9"> Ｇ０１　／　直線補間 （切削送り）</span></h3>



<p class="wp-block-paragraph">「指定位置へ、最短（直線）で指定速度で移動しろ！」です、<br>「G00」との違いは、「指定速度／F(mm/min)」を付加する必要があります。<br>例えば「G01 X50.230 Y-5.423 F1300」のような指令となります。<br>３軸同時動作可能な機械は、ＸＹＺなど同時指令可能です。<br> 「指定速度／F」 は<strong>「モーダル」</strong>なので、以前に指令した値が適応されますが一度も指令されていない状態での「G01」は、エラーがでる場合もあります。<br>また、<span class="markerYellow"> ファナックの場合でも「G00」とは違い、最短距離で移動</span>します。<br>前述のように、「G00」で干渉が懸念される場合には、高速な速度指令で「G01」を使う事で回避できます。</p>



<h3 class="wp-block-heading"><span id="toc10">Ｇ０２・Ｇ０３　／円弧補間</span></h3>



<p class="wp-block-paragraph">円弧補間は、指令平面に対して定義するので、事前に平面の定義が必要です。<br>ただし、平面定義がない場合には、「X-Y平面」と認識されます。<br>またヘリカル補間というオプションがあります。<br>これは、平面指定軸で円弧を描きながら、別の一軸へも同時に移動します。<br>イメージ的に、螺旋のような奇跡を定義できます。<br>平面指定は「G17 : X-Y」「G18 : Z-X」「G19 : Y-Z」のＧコードで指令します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p> 「Ｇコード　グループ０２」<br>・G17　：　ＸＹ平面<br>・G18 　：　ＺＸ平面<br>・G19 　：　ＹＺ平面 </p></blockquote>



<p class="wp-block-paragraph">円弧の場合も、「指定位置に、移動しろ！」の座標値指令は「直線補間」と同じですが、「円弧<strong>中心の座標</strong>」と「円弧の<strong>半径</strong>」も指示しないと円弧形状は定義できません。<br>その指令方法は、「ＩＪＫ」方式と「Ｒ」方式があります。 <br>ここでは、 一般的な「G17 : X-Y」 で「ＩＪＫ」方式で説明します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="737" height="664" src="https://www.kazuban.com/blog/wp-content/uploads/2019/12/G02G03-1.png" alt="" class="wp-image-1419" srcset="https://www.kazuban.com/blog/wp-content/uploads/2019/12/G02G03-1.png 737w, https://www.kazuban.com/blog/wp-content/uploads/2019/12/G02G03-1-300x270.png 300w" sizes="(max-width: 737px) 100vw, 737px" /></figure>



<p class="wp-block-paragraph">「Ｇ１７：ＸＹ平面」の場合、移動先位置は「Ｘ、Ｙ」で指定します。<br>次にどのように行くのか？ですが、<strong>「Ｇ０２」</strong>で<strong>「時計回り」</strong>方向。<br><strong>「Ｇ０３」</strong>は<strong>「反時計回り</strong>」方向で定義できます。<br>また、円弧の中心位置を「Ｉ」で中心のＸ座標。「Ｊ」で中心のＹ座標を定義します。<br>ファナックの場合「Ｉ」「Ｊ」の値は、始点（現在位置）からの円弧中心への<span class="markerPink">インクリメンタル値（相対値）</span>で定義します。<br>絶対座標で考えると、I = 中心のＸ 座標  &#8211; 始点のＸ座標　となります。<br>ただし、<strong>「ハイデンハインのISOコード」</strong>や<strong>「レダース」</strong>の場合、「Ｉ」「Ｊ」の場合も<strong>「相対値」</strong>でなく<span class="markerYellow"><strong>「絶対値」</strong>で定義する場合</span>があります。<br><strong>国産の場合</strong>はほとんど<strong>「相対値」</strong>ですが、<strong>海外の制御機</strong>の場合<strong>「絶対値」</strong>がデフォルトな場合もあるので注意が必要です。<br>ここでは、相対値で考えてみますが、「ＩＪ」定義の場合、円弧半径を知りたい場合、簡単に確認できません。<br>次の計算方法を覚えておくと便利です。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2019/12/半径.png" alt="" class="wp-image-1432" width="119" height="47" srcset="https://www.kazuban.com/blog/wp-content/uploads/2019/12/半径.png 587w, https://www.kazuban.com/blog/wp-content/uploads/2019/12/半径-300x119.png 300w" sizes="(max-width: 119px) 100vw, 119px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p> 「Ｇコード　グループ０１」<br>・G00　：　位置決め（早送り）<br>・G01 　：　直線補間（切削送り）<br>・G02 　：　円弧補間（時計回り）<br>・G03 　：　円弧補間（反時計回り）</p></blockquote>



<h2 class="wp-block-heading"><span id="toc11">まとめ</span></h2>



<p class="wp-block-paragraph">Ｇ９０、Ｇ９１　絶対／相対　座標系<br>Ｇ１７　　　　　ＸＹ平面指定<br>Ｇ００、Ｇ０１　直線補間<br>Ｇ０２、Ｇ０３　円弧補間<br>ここまで理解できれば、二次元図形をＮＣコード化できると思います<br>そのＮＣコードを、機械制御機に入力すれば、ＸＹ平面上で、図形通りに動作させる事ができるはずです。</p>



<h4 class="wp-block-heading"><span id="toc12">ＮＣプログラムの記事</span></h4>



<div class="pager">
  <a class="prev page-numbers" href="https://www.kazuban.com/blog/nc-gcode-01/">PREV</a>

  <a class="page-numbers" href="https://www.kazuban.com/blog/nc-gcode-01/">1</a>
  <!-- <a class="page-numbers" href="https://www.kazuban.com/blog/nc-gcode-02/">2</a> -->
  <span aria-current="page" class="page-numbers current">2</span>
  <a class="page-numbers" href="https://www.kazuban.com/blog/dia-compensation/">3</a>
  <a class="page-numbers" href="https://www.kazuban.com/blog/lenrth-compensation/">4</a>
  <a class="page-numbers" href="https://www.kazuban.com/blog/main-sub-pro/">5</a>
  <a class="page-numbers" href="https://www.kazuban.com/blog/sub-to-package/">6</a>
  <a class="page-numbers" href="https://www.kazuban.com/blog/nc-program-g91/">7</a>

  <a class="next page-numbers" href="https://www.kazuban.com/blog/dia-compensation/">NEXT</a>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.kazuban.com/blog/nc-gcode-02/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>NCプログラム／プログラム構造</title>
		<link>https://www.kazuban.com/blog/nc-gcode-01/</link>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Sat, 30 Nov 2019 09:30:55 +0000</pubDate>
				<category><![CDATA[NC]]></category>
		<category><![CDATA[CAM]]></category>
		<category><![CDATA[Fanuc]]></category>
		<category><![CDATA[G-Code]]></category>
		<category><![CDATA[NCプログラム]]></category>
		<category><![CDATA[Roeders]]></category>
		<category><![CDATA[レダース]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=1289</guid>

					<description><![CDATA[最近の投稿は、覚書きとしても残しておきたかったので、素人ながらLinux系の投稿が連続していましたが、今回は気分を変えて、今まで携わってきたＮＣ関連の記事を書こうと思います。 目次 ＮＣプログラムとは？ プログラムの構成 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">最近の投稿は、覚書きとしても残しておきたかったので、素人ながらLinux系の投稿が連続していましたが、今回は気分を変えて、今まで携わってきたＮＣ関連の記事を書こうと思います。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ＮＣプログラムとは？</a></li><li><a href="#toc2" tabindex="0"> プログラムの構成 </a><ol><li><a href="#toc3" tabindex="0">コメント文</a></li><li><a href="#toc4" tabindex="0">「%」ファナックの特殊文字</a></li><li><a href="#toc5" tabindex="0">Ｎアドレス＋数字　／　シーケンス番号</a></li><li><a href="#toc6" tabindex="0"> Ｇアドレス＋数字　／　Ｇコード </a></li><li><a href="#toc7" tabindex="0">軸＋数値　／　Ｘ，Ｙ，Ｚ、Ａ，Ｂ，Ｃ，・・</a></li><li><a href="#toc8" tabindex="0">  Mアドレス＋数字　／　Mコード  </a></li><li><a href="#toc9" tabindex="0">  Fアドレス＋数値　／　送り速度</a></li><li><a href="#toc10" tabindex="0">   Sアドレス＋数値　／　主軸回転数 </a></li><li><a href="#toc11" tabindex="0"> Ｔアドレス＋数値　／ 　工具指定</a></li></ol></li><li><a href="#toc12" tabindex="0">まとめ</a><ol><ol><li><a href="#toc13" tabindex="0">ＮＣプログラムの記事</a></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ＮＣプログラムとは？</span></h2>



<p class="wp-block-paragraph">ＮＣ工作機械のコントローラへの指令の集まりです。<br>プログラムとありますが、ファナック系は基本的には命令コードの羅列ですね。 通常のプログラミング言語とはちょっと違います。<br>オプションでカスタムマクロという言語もありますが、分岐や条件判断機能はありますが、変数に制限が多くて一般的なプログラミング言語とは程遠いです。<br> 主要なコントローラは、「Fanuc系」「Heidenhain」「Siemens」「Roeders」などが上げられますが、 構文は全く違います。<br>　　参照（　<a href="https://www.kazuban.com/blog/fanuc-heidenhain-roeders/">ファナック vs ハイデンハイン vs レダース</a>　）<br>各コントローラの言語構文はぜんぜん違いますが、主なコントローラは基本的な工具経路を指令するGコード構文は理解できるようにはなっています。<br>ただし、まったく同一ではないので、その違いの知識は必要です。<br>日本製の工作機械の場合ほとんど「Fanuc系」ですが、その中でも工作機械メーカーによって、「Fanuc」「Meldas」「OSP」「Tosnuc」「Sodick」など、微妙な違いがあり完全な互換性はありません。<br> さらに、 <span class="markerPink">「 同じFanuc製」</span>で <span class="markerPink">「 同じ機械メーカー製」</span>であっても、コントローラの仕様やバージョンによっても一部違いがあり、同じＮＣプログラムが使用できない場合も多いのでやっかいです。<br> 数種類の機械メーカー製の工作機械を扱う場合、ユーザー側からみるとかなり面倒な仕様ですね。<br> ただし、補助機能と呼ばれる「工具交換」「冷却装置制御」「コンベア」「吸引器作動」など加工そのものではなく、加工に必要な<span class="markerYellow">補助的な部分</span>は機械に依存するので互換性は少ないです。<br> <span class="markerYellow">対して機械に依存しない加工経路を指令する基本的なＧコード部分は大きな違いはありません。</span><br> まずは、基本的で一番重要な、工具の動きを制御する部分のＧコードを理解しましょう。<br> 海外機も含めFanuc以外のコントローラでも動作させられる可能性が増えます。 </p>



<h2 class="wp-block-heading"><span id="toc2"> プログラムの構成 </span></h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="262" src="https://www.kazuban.com/blog/wp-content/uploads/2019/11/図1-1024x262.png" alt="" class="wp-image-1338" srcset="https://www.kazuban.com/blog/wp-content/uploads/2019/11/図1-1024x262.png 1024w, https://www.kazuban.com/blog/wp-content/uploads/2019/11/図1-300x77.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2019/11/図1-768x197.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2019/11/図1.png 1385w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">通常コントローラはＮＣプログラムを１行づつ実行していきます。<br>その一行を<strong>「ブロック」</strong>と呼びます。<br><strong>「ブロック」</strong>は<strong>「ワード」</strong>と呼ばれる、コントローラが理解できる単語が集まったものです。<br>さらに<strong>「ワード」</strong>は、「半角英大文字」と「数字または数値」が合体したもので、「 半角英大文字 」は<strong>「アドレス」</strong>と呼ばれます。<br>「<strong>アドレス</strong>」によって「数字／数値」の部分は、どちらになるか決まります<br>移動の動作方法を指令する<strong>「ワード」</strong>は「G」アドレスが主です。<br>「補助機能」である「M」アドレスなども含めて、基本動作指令を総称してGコード（GCode）と呼ぶ場合もあります。<br> <span class="markerYellow">「数字」と「数値」の違いはなんでしょうか？</span></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p> 「数値」は量を表す値ですが「数字」は「０～９」までの単なる文字です。<br>ＮＣ的には、動作指令の一つで各<strong>「ワード」</strong>を識別するための文字といえます。<br>「<strong>ワード</strong>」の中でも、「<strong>Gアドレス</strong>」のワードは「<strong>Gコード／準備機能</strong>」と呼ばれ、この指令により次の動作方法を決める一番重要な<strong>「ワード」</strong>です。<br>「数値」の場合は、次に変化する量を指令します。<br>「数値」は、移動する先の座標（X,Y,Zなど）であったり、送り速度（F）だったり、主軸の回転数（S）だったりします。</p></blockquote>



<pre class="wp-block-preformatted">N0001     G01           　　  X10.123   Y23.567    F2000    &lt;----- ブロック
------------------------------------------------------------
整理番号  直線で移動     Ｘ軸座標    Ｙ軸座標    送り速度
</pre>



<p class="wp-block-paragraph">この例では、「N」「G」「X」「Y」「F」が「アドレス」です。<br>「G01」や「X10.123」が「ワード」。<br>全体の一行が「ブロック」となります。<br>また、「N0001」や「G01」のような、「アドレス」＋<strong>「数字」</strong>の場合<br>「数字」は値ではなく、動作の指令を識別するための<strong>文字</strong>です<br>また「01」の「0」は主なコントローラからは無意味です。<br>「G01」と「G1」は同等です。（3ＤプリンタのGCodeでは文字数が一定でないと、エラーになる場合がありました）<br>「X」「Y」「F」などは、 「アドレス」＋<strong>「数値」</strong>となります。<br>「数値」は<strong>数</strong>としての意味を持ちます。「X」「Y」は各軸の位置情報、「F」はスピード値を指令しています。 </p>



<p class="wp-block-paragraph">ファナックの資料ですが、一部資料を添付します</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="927" height="475" src="https://www.kazuban.com/blog/wp-content/uploads/2019/12/アドレス.png" alt="" class="wp-image-1399" srcset="https://www.kazuban.com/blog/wp-content/uploads/2019/12/アドレス.png 927w, https://www.kazuban.com/blog/wp-content/uploads/2019/12/アドレス-300x154.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2019/12/アドレス-768x394.png 768w" sizes="(max-width: 927px) 100vw, 927px" /></figure>



<p class="wp-block-paragraph"> アドレスはこの他にもいろいろありますが、必要あれば今後追加説明しますがファナック系であればネット上にもたくさん情報はあるので検索してみてください。<br>基本的にコントローラは、この一行「ブロック」単位で、機械に指令を送り機械を動作させます。</p>



<h3 class="wp-block-heading"><span id="toc3">コメント文</span></h3>



<p class="wp-block-paragraph">コントローラ的には無意味ですが、オペレータへの情報用として、コメント文が用意されています。<br>コメント文は、コントローラにより違いがあります。<br>・ファナック系<br>　　「(」から「)」までをコメントとする。<br>　　ただし、FanucとOSPは若干違いがあり、OSPは行を跨がない<br>　　したがって、OSPでは、「(」から行末までをコメントとするが、<br>　　ファナックでは、「)」で閉じるまでコメントとして扱われる。<br>　　また、ソディックの場合には漢字が使用できて便利。<br>・ハイデンハイン<br>　「;」文字から行末までをコメントして扱う。<br>　「*」文字もコメントと扱うが、見出しの意味も持つ<br>・レダース<br>　「//」の２文字から行末までコメントとして扱う<br>　「/*」から「*/」で挟まれた文はすべてコメントとなる<br>コメント文は必須ではありませんが、うまく使用すると、プログラムが見やすくなります。</p>



<h3 class="wp-block-heading"><span id="toc4">「%」ファナックの特殊文字</span></h3>



<p class="wp-block-paragraph">ファナックの場合、ＮＣ指令の始まりと終わりを示す文字として「%」が必要になります。<br>海外製やＯＳＰの場合には、必要ありません。<br>紙テープ時代には実際の指令コードの前に、人間が読める文字をパンチする花文字と呼ばれる部分がありましたが花文字と分離するための処理だったのかもしれませんね。</p>



<h3 class="wp-block-heading"><span id="toc5">Ｎアドレス＋数字　／　シーケンス番号</span></h3>



<p class="wp-block-paragraph">「N0102」のような「ワード」となります。<br>動作的には意味を持ちませんが、プログラムを途中から始めたい場合のジャンプキーに使用したり、カスタムマクロという複雑なプログラムでジャンプ先に指定したりします。<br>番号の桁数や順番、混同も問題ありませんが、ジャンプする場合、上の行から検索されます。<br>全ての「ブロック」に連番で使用する場合もありますが、あまり意味がないので必要な箇所のみに、付加する場合が多いです。</p>



<h3 class="wp-block-heading"><span id="toc6"> Ｇアドレス＋数字　／　Ｇコード </span></h3>



<p class="wp-block-paragraph">マニュアルには「準備機能」とありますが、実際の工具移動位置を指令する前か同じ行で指令し、主に動作方法を指令します。<br>移動位置指令と共に一番基本的なコードです。<br>基本的に位置指令は、「この座標値へ行け」と指令しますが、その位置へ行くのにどのように行くのか？例えば、直線でとか右回り円弧で・・とかのイメージで指令します。<br>上にも少し触れましたが、移動指令のコードは他の制御機でも互換性を持たせている場合が多いので、基本的なコードを理解しておくと、ファナック以外の機械も動作させる事は可能です。<br>Ｇコードについては、また別のページでまとめたいと思います</p>



<h3 class="wp-block-heading"><span id="toc7">軸＋数値　／　Ｘ，Ｙ，Ｚ、Ａ，Ｂ，Ｃ，・・</span></h3>



<p class="wp-block-paragraph">「アドレス」で移動させる軸を指令し、その後に座標値を繋げます<br>軸は機械によりさまざまですが、３軸の機械の場合にはＸ，Ｙ、Ｚ軸が一般的です。５軸機械の場合、さらにＡ，Ｂ，Ｃのうちどれか２軸が回転軸として追加されます。<br>さらにワイヤカット放電加工機の場合、Ｕ，Ｖ軸でワイヤーの傾きが追加される場合もあります。<br>治具研削盤の場合、Ｕ軸を切込み軸として使う場合もあります。</p>



<h3 class="wp-block-heading"><span id="toc8">  Mアドレス＋数字　／　Mコード  </span></h3>



<p class="wp-block-paragraph">「補助機能」と呼ばれています。<br>工具を移動させる指令の前後で、機械へ補助的な動作をさせる指令です。<br>たとえは、「回転しろ」とか「冷却水を出せ」とか「コンベア起動」などを指令します。<br>このＭコードも加工に必須の指令はファナック以外の制御機でも互換性が高いコードが多いです。</p>



<h3 class="wp-block-heading"><span id="toc9">  Fアドレス＋数値　／　送り速度</span></h3>



<p class="wp-block-paragraph">機械の構成によって、テーブルが動く場合と工具（主軸）が動く場合がありますが、ＮＣプログラム的には、工具が動いた方向で考え、その時の送り速度を指示します。(Tool Motion)<br> 単位はmm/minで指定し、１分間に工具が動く距離になります。<br>「F2000」 の指令では、「一分間で2000mmで動け」の指令になります<br>ただし、実際のスピードが指令値と同じ速さで動くとは限りません。<br>機械は、動作の始まりと終わりで加減速の影響で指令値よりも遅くなります。<br>機械によって、同じＮＣデータで指令しても、加工スピードは変化します。<br>また、「F3」のように数値が一桁の場合には、  制御機によっては、一桁の数字がパラメータとして理解され、別に設定された数値で動作する場合もあります。<br>Ｆ一桁指令と呼ばれています。</p>



<h3 class="wp-block-heading"><span id="toc10">   Sアドレス＋数値　／　主軸回転数 </span></h3>



<p class="wp-block-paragraph">主軸の回転数です。<br>一分間の回転数を指令します。<br>通常、この指令は回転数を設定するのみで、「Mコード」で回転を制御します。<br>具体的には、M03で正回転（時計回り）、M04で反回転（反時計回り）で回転を実施し、M05で回転を停止します。</p>



<h3 class="wp-block-heading"><span id="toc11"> Ｔアドレス＋数値　／ 　工具指定</span></h3>



<p class="wp-block-paragraph">マシニングセンターの場合、自動で工具交換ができます。<br>「どの工具を使用するか」を「Ｔコード」で指定します。<br>ただし、この指令はファナック系と他の制御機（ハイデンハインやレダース）では若干違います。<br>ファナックでは、工具番号の指定のみですが、工具交換まで行う制御機もあります。<br>ファナック系の場合は、「T03」の指令の場合、「工具番号３の工具を準備しろ！」の指令で、実際の工具交換は行われません。<br>実際に工具交換させるには、「M06」の指令を実行させます。<br>ハイデンハインの場合は、「TOOL CALL」というコマンドを使用します。<br>「TOOL CALL 3」のみで「工具番号３」の工具を主軸に持ってきます。<br>レダースの場合には、「T3」の指令だけで「工具番号３」と交換します<br>さらに、「TT=（工具の名前）」の指令では、事前に工具に名前をつけておくと、工具番号ではなく、工具名で交換させる事もできます<br>工具交換した後の状態もファナック系とは違うのですが、詳細は後日紹介しようと思います。</p>



<h2 class="wp-block-heading"><span id="toc12">まとめ</span></h2>



<p class="wp-block-paragraph">ＮＣプログラムは、コントローラの種類によって全く違う構文となりますが工具径路を指令するＧコードは、他の制御機でもある程度互換性を持たせています。<br>「ワード」が集まった「ブロック」を一行づつ機械へ送り、動作（加工）させるための命令の集まりです。<br>次回はこの「工具経路」を指令するコード部分（Gコード）の説明しようと思います</p>



<h4 class="wp-block-heading"><span id="toc13">ＮＣプログラムの記事</span></h4>



<div class="pager">
  <!-- <a class="prev page-numbers" href="https://www.kazuban.com/blog/nc-gcode-01/">PREV</a> -->

  <!-- <a class="page-numbers" href="https://www.kazuban.com/blog/nc-gcode-01/">1</a> -->
  <span aria-current="page" class="page-numbers current">1</span>
  <a class="page-numbers" href="https://www.kazuban.com/blog/nc-gcode-02/">2</a>
  <a class="page-numbers" href="https://www.kazuban.com/blog/dia-compensation/">3</a>
  <a class="page-numbers" href="https://www.kazuban.com/blog/lenrth-compensation/">4</a>
  <a class="page-numbers" href="https://www.kazuban.com/blog/main-sub-pro/">5</a>
  <a class="page-numbers" href="https://www.kazuban.com/blog/sub-to-package/">6</a>
  <a class="page-numbers" href="https://www.kazuban.com/blog/nc-program-g91/">7</a>

  <a class="next page-numbers" href="https://www.kazuban.com/blog/nc-gcode-02/">NEXT</a>
</div>



<hr class="wp-block-separator"/>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
