JDGMILL講座 その7
プログラムの先頭 ( 前編 ) 

まずはプログラムの先頭について見ていきましょう。
JDGMILL を設定モードにし、ツリー画面の中の「CNC Command」の中の「Start of program」を選択してください。

 

右側の画面が下図のようになります。

( 画像クリックで拡大図を表示 )

Start of Program 1 の部分を見てください。

ここには「FPSTA1」と「Output parameter」の2個のボタンがあります。このボタンを押すとそれぞれについての詳細な設定が
できます。

FPSTA1

FPSTA1 とはプログラムの先頭部分をNCデータに出力させるための JDGMILL 内の命令コードです。
NC データへの変換が行われる時にはプログラムの先頭部分で FPSTA1 が実行され、Start of Program 1 に設定されている内容に従って NC データが出力されます。
サンプルでは FPSTA1 ボタンの右横の欄が空欄になっています。これは何も出力しないということを表しています。
ということはプログラムの先頭部分には何も出力されない NCデータを作るのでしょうか?
いいえ、そうではありません。
プログラムの先頭部分に出力する内容は次の Output parameter とセットで設定しています。
今回使用しているサンプルでは FPSTA1 は空白にして次の Output parameter ですべての出力内容を設定しています。

PX01 := NOSATZ;
NOSATZ := 0;
PRINT("%");
PRINT(PID,"(",PARTXT,")");
PRINT("(", DMNAM, ")" );
PRINT("(", DPPNA, DVERS, ")" );
PRINT("(", DNCF, ")" );
PRINT("(", DATE, DTIM, ")" );
NOSATZ := PX01;

PRINT("G00 G90 G17 G49 G40 G80");
PRINT("G28 G91 Z0");

プログラムの中で PRINT と書かれている部分が実際にNCデータに出力している部分です。
ではPRINTの部分だけを抜粋して見てみましょう。

PRINT("%");
PRINT(PID,"(",PARTXT,")");
PRINT("(", DMNAM, ")" );
PRINT("(", DPPNA, DVERS, ")" );
PRINT("(", DNCF, ")" );
PRINT("(", DATE, DTIM, ")" );
PRINT("G00 G90 G17 G49 G40 G80");
PRINT("G28 G91 Z0");

PRINTは括弧の中の値が表示されるというものですので、今度は値だけを抜粋してみましょう。

"%"
PID, "(", PARTXT, ")"
"(", DMNAM, ")"
"(", DPPNA, DVERS, ")"
"(", DNCF, ")" );
"(", DATE, DTIM, ")"
"G00 G90 G17 G49 G40 G80"
"G28 G91 Z0"

このようになります。
それでは各行を順番に見ていきましょう。

まずは1行目です。
1行目の値はダブルコーテーションで囲まれた % です。ダブルコーテーションで囲まれた値はストリング ( 文字列 ) と呼ばれ、
その内容がそのまま出力されるというものでしたので、1行目ではNCデータに%がそのまま書き込まれることになります。
このように、決まった文字列をダブルコーテーションで囲ってPRINTコマンドで出力すれば、NCデータに任意の命令を書き出す事が
できるわけです。

次は2行目を見てみましょう。
2行目は PID, "(", PARTXT, ")" となっています。この行はカンマで区切って4つの値を1行に出力するようにしています。
では4つの値を詳しく見てみましょう。

PID
"("
PARTXT
")"

2番目と4番目の値はダブルコーテーションで囲まれています。
従ってストリングとなりますのでこの値はそのまま NC データに出力されます。
それではダブルコーテーションに囲まれていない1番目と3番目の値は何でしょう?
ダブルコーテーションに囲まれていないということは、この値は変数であることを示しています。
しかし JDGMILL の中でこんな名前の変数を定義した覚えはありません。これはどういう事なのでしょう。

JDGMILL では予め決められた変数があります。PID と PARTXT もその内の1つです。
これらの変数は読み込んだ CLT ファイルの内容に応じて値が自動的に代入されるようになっており、この変数の内容を 
PRINT コマンドで出力すれば CLT ファイル内の情報をNCデータに出力することができます。

では PID と PARTXT は何の情報が代入された変数なのでしょうか?
それぞれ次の情報が代入されています。

PID −−→ PROGID (プログラム番号)
PARTXT −−→  PARTNO (パートNo.)

PROGID と PARTNO はオイクリッドの加工計算時に入力した情報です。
例えば、オイクリッドでの加工計算時に PROGID に 9001、PARTNO に TEST と入力していたとすると、PID には 9001、
PARTXT にはTEST が代入されていることになります。その内容を PRINT コマンドで並べて出力しますので、
出力される内容は次のようになります。

O9001 ( TEST )

これがそのまま NC データに書き込まれる事になります。

しかし何か変です。
PID には PROGID の値が代入されている筈です。オイクリッドの加工計算の中で PROGID には数字しか入れていなかった筈なのに
出力結果は O9001 となっています。先頭の O は何処から出力されているのでしょう?

JDGMILL で使われている変数は単純な値の保存だけでなく、その値をどのように NC データ中に出力するかを決める設定が
できるようになっています。
PID では値の出力時に O を付加して出力するように設定されていたために出力結果が O9001 となったのです。

では、PID に関する設定をしている部分を見てみましょう。
ツリー画面の中の「NC-Parameter list」を選択してください。

右側の画面が下図のようになります。

( 画像クリックで拡大図を表示 )

この画面内の Active NC-Parameter list の部分を見てください。
このリストの中に PID がありますのでそれを選択します。

PID を選択するとActive NC-Parameter list の下部分にある Address text "O" と表示されます。
これが NC データ中に出てきた O の正体です。
この文字を変えれば O 以外の文字で出力することもできますし、文字を消してしまえば PROGID の数字のみを出力することもできます。

前編はここまでです。続きは次回説明します。

その6 目次 その8