読み取り可能なNCコード


 TRYCUT5000が認識するNCコードは以下です。特に 記述されていないコードは無視されます。

 GコードやMコードからなるNCデータの文法は、日本製のコントロー ラーFANUC,MELDAS,OSP,TOSNUCなどは、 OSPの仕様で一部違いはあるものの大きな差はありません。ただし独製 HEIDENHAINやSIEMENSに関しましては、根本的に異なる部分があります。 HEIDENHAINに関しましては、別途こちらで、 その違いを説明させておいていただきます。
★ ()で囲まれたブロックはコメント行として無視されます。

認識するGコード
G00:位置決め指令(※HEIDENHAINモード時は、L/LPも認識)
G01:直線補間指令(※HEIDENHAINモード時は、L/LPも認識)
G02/G03:円弧補間指令(※HEIDENHAINモード時は、C/CC/CPも認識)
G04:ドウェル指令
G06.2:NURBS補間指令 (FANUC)
G07.1:円筒補間 (FANUC/Mazak系)
G09.1 X0 or X1:X値の半径指令 or 直径指令(MAZAKモードのみ)
G132:NURBS補間指令 (OKUMA/OSP)
G10:補正値と磨耗値のプログラマブルデータ入力
     (詳細はコントローラー定義ファイルで指定するG10MODEを参照)
G12.1/G13.1:極座標補間 (FANUC/Mazak系)
G15:ワーク座標選択(OSPモードのときのみ有効)
G17/G18/G19:平面指定 (初期状態はG17が指定されています)
G28/G29/G30:レファレンス点復帰関連指令
G39:コーナー円弧補間
G40:工具径補正キャンセル
G41/G42:工具径補正指令(補正値の指定はコントローラー定義 ファイルのMEMORY指定を参照)
注意:本バージョンでは、過剰なオフセット量により、2つ以上先の移動情報と 干渉する場合も、アラ-ムは発生させません。参考という観点から切削を強引に行う 仕様にしています。なお、現在普及している一般的なNC制御装置は、ほぼ対応して いると思われますが、ひとつ先の移動情報との干渉は、自動的に除去されます。

注意:一般的に最近のCNC装置において、径補正時干渉除去するための先読み 処理は、その数を指定することが可能になってきています。ただし、その数をあまり 多くすると本来の経路(8の字経路など)が勝手に削除されたりすることもあり、 先読み数は2又は1ぐらいに設定しているのが普通です。
 現行のTRYCUTでは、この値は1固定になっていて、CNCの シミュレーターの仕様としては不足しています。が、逆に言いますと安全サイドの 結果(TRYCUTで食い込んでも実機では食い込まないケースがある)が得られるこ とになります。

G43/G44/G49:工具長補正/キャンセル指令(補正値の指定は コントローラー定義ファイルのMEMORY指定を参照)
OSPモードのときは、G56,G53を 工具長補正ならびにキャンセルコードとみなします。
G43.4/G43.5/G49:工具先端点制御指令
G50/G51:スケール
G50.1/G51.1:ミラー
G52,G53,G54~G59:ワーク座標系選択( FANUCモードのときのみ有効。実際の座標系の指定はコントローラー定義ファイルの MEMORY指定 を参照)
G68/G69:座標回転指令
G68.2/G69/G53.1:傾斜面加工指令
G68.5/G69.5:3次元座標変換(Mazak)
G71:戻り点指定(OSPモードのときのみ有効)
G73/G74/G76/G80~G89:固定サイクル指令
注意:G73とG83を実加工モードでシミュレーションする場合、一回の切り込み 量(Qコード値)が小さいことによりZ値の移動が90回を超える場合は、効率化の 観点から、最後に一気に最終穴底位置まで切削を行います。
G90/G91:絶対座標値/相対座標値切り換え指令
G92:座標系設定指令
G98/G99:復帰点レベル切り換え指令
G119:側面創成加工指令(OSPモード
G122.1/G123.1:X軸半径指令/直径指令(MAZAKモードのときのみ有効)
G127/G126:傾斜加工指令(OSPモードのときのみ有効)
G137/G136:座標変換(極座標)指令(OSPモードのときのみ有効)
G138/G136:Y軸モード入り/切り(OSPモードのときのみ有効)
G169/G170:工具先端点制御指令(OSPモードのときのみ有効)
G274/G284:固定サイクル指令(OSPモードのときのみ有効)
G469P1Q313(≒FANUC G68.2)/G468:傾斜面座標変換指令[1段のみ](OSPモードのときのみ有効)

認識する他のコード
/,/1~9:オプショナルスキップブロック指令
Dxxx/Hxxx:xxxは1~999の整数
F:送り速度(直接指令、間接指令)
T:待機工具指定又は工具交換 機械設定ファイルのATC TYPE参照
M00:停止
M01:オプショナルストップ
M06:待機工具に工具交換
註:TコードやM06コードによる工具交換は、Tコードで指定されている工具が 工具設定ファイルで定義されていない場合は無視され ます。
M52:上限レベル復帰モード(OSPモードのときのみ有効)
M53:G71による指定点レベル復帰モード(OSPモードのときのみ有効)
M54:R点レベル復帰モード(OSPモードのときのみ有効)
M91:機械座標系指令(HEIDENHAINモードのときのみ有効)
M92:REF-PT定義座標系指令(HEIDENHAINモードのときのみ有効)
M109:側面創成加工(G119)解除(OSPモードのときのみ有効)
M98<...>外部サブプログラム呼び出し
M198P... 又は<...>外部サブプログラム呼び出し
M99:サブプログラムからの復帰
CALL O...外部サブプログラム呼び出し(OSPモードのときのみ有効)
CALL OO88:フィクスチャオフセット(OSPモードのときのみ単独ブロックとして処理)
RTS:サブプログラムからの復帰(OSPモードのときのみ有効)
NCYL:固定サイクル サイクル軸動作なし(OSPモードのときのみ有効)
TRAORI/TRAOFOOF:工具先端点制御指令(SIEMENSモードのときのみ有効)
CYCLE800:傾斜面加工制御(SIEMENSモードのときのみ有効)
TOOL CALL:工具選択指令(HEIDENHAINモードのときのみ有効)
M126/M127:回転軸の近回り設定のON/OFF(HEIDENHAINモードのときのみ有効)
M128/M129:工具先端点制御指令(HEIDENHAINモードのときのみ有効)
PLANE SPATIAL...:傾斜面加工指令(HEIDENHAINモードのときのみ有効)
CYCL DEF...:ワーク座標系指令(HEIDENHAINモードのときのみ有効)


外部サブプログラムの設置

 サブプログラムの呼び出しは、実機と同等仕様ではありませんが以下の制約を満たす場合には外部ファイルからの読み込みが可能です。

・引数なし
・呼び出し回数指令省略(1回)
・内部でカスタムマクロ文を使用していない

上記3条件を満たす場合、サブプログラム部分を記述した拡張子なしのテキストファイル(例:"O112")を、 NCデータと同一フォルダに設置して下さい。ただし、M98/M198の<...>指定の場合と、 HEIDENHAINのCALL PGMは、パス指定が可能ですので設置フォルダは自由です。
 ファイルが存在する場合にのみ、サブプログラム内のNCデータを参照します。 存在しない場合にはサブプログラム呼び出しブロック自体が無視されます。

[外部サブプログラムのファイル名]
呼び出し指令外部サブプログラムのファイル名備考
M98<...><>内で指定したファイル名
M198<...><>内で指定したファイル名
M198P20"O20" 又は"O0020" (前者優先)
M198P0020"O20" 又は"O0020" (前者優先)
CALL O20"O20"OSPモード
CALL O0020"O0020"OSPモード
CALL PGM O0020.H"O0020.H"HEIDENHAINモード
※TRYCUT5000では、OSPモードの"CALL OO88"(フィクスチャオフセット指令/メーカーサブプログラム)時のみ、 引数を受け付けます。またサブプログラムを呼び出さず単独ブロックとして処理します。


HEIDENHAINモードのときのコード認識処理

 HEIDENHAINは独自のハイデンハイン言語と、FANUCのGコード体系の仕様に合わせたISO形式の2種類の NCデータ形式があります。現時点のTRYCUT5000では、いずれも"PRODUCT=HEIDENHAIN"の指定で認識 できるようになっています。(※今後、処理に限界が出てくるようであれば、形式選択のパラメータ を用意する可能性あり)

 前者は、直線補間がL、円弧補間ではC/CCで記述されるなど、FANUCのGコード系のNCデータとは 全く異なる記述になっています。一方、後者はGコード(G00,G01,G02,G03,G40,G41,G42など)の意味は 同じでも、モーダル値や補正値の考え方など色々と違いがあります。

 CTLファイル内で、"PRODUCT=HEIDENHAIN"を指定した場合のNCデータの認識処理は、 以下の点において異なります。

1.G02/G03時のIJK指定値をモーダル値として認識。
2.長補正は自動的に行われます。工具番号と同じ番号のDメモリに工具長と、 DL値は摩耗値側に自動セットされ、自動工具長補正が行われます。
注意:初期設定ファイル(Ctrl+F1)[Define]セクションの TOOL BASE POINT=ARBOR-TOP
が指定されていることが前提になります。
3.径補正値に関しては、Dコード指定がないため、 各マガジン(工具)番号に対応したD-CODEの値から参照。
ただし値がゼロの場合は、工具径の半分の値を補正値とみなす。
4.サイクル加工に関して現時点においてはG83,G84のみ対応。 M99指定部で実際のサイクル動作を行なう。
5.各行";"コード以降はコメントとみなす。
6.各行"*"コード以降はコメントとみなす。

※HEIDENHAINの対応は、あくまでも基本的な部分のみの対応となっています。 またHEIDENHAINの場合は、他の設定も強制的に変更していただく必要があるものもあります。 以下に今までのある実績例を列記しておきます。

CTLファイル内において
EOR行を削除 (←FANUCのように"%"に対応するものがないため)
DECIMAL POINT = NORMAL (←数値が小数点有り無し混在のため)

MTLファイル内において
ATC TYPE = DIRCET (←M06がない場合)


径補正中の垂直移動指令の扱いについて

 指定平面に直交する軸方向だけの移動は、いくら連続していてもかまいません。 (XY平面指定中はZ方向だけの移動)なお、垂直要素群の前後に存在する移動要素 どうしのオフセットが交点をもつ場合は、この交点位置で垂直移動を行ないます。 交点がない場合は、手前の要素の終点のオフセット位置で垂直動作を行ないます。


目次へ