<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="../Fmethod_xsl/fmethod_he_c.xsl"?>

<root>
  <func>


    <!-- 関数名 -->
    <title>cnc_regtool</title>



    <!-- 関数宣言 -->
    <declare>
      <!-- Visual C++の宣言 -->
      <vc>
        <include>#include "fwlib32.h"</include>
        <prottype>FWLIBAPI short WINAPI cnc_regtool(unsigned short FlibHndl,short s_number, short *data_num,IODBTLMNG *tool); </prottype>
      </vc>
    </declare>



    <!-- 解説 -->
    <doc>
        <cmn><p>工具管理データテーブルへ、開始データ番号と個数で指定された範囲の工具管
                理データを登録します。
             </p>
             <p>登録は１つ１つの工具管理データを順に行い、もしエラーが発生すると以後の
                登録は行われません。
             </p>
             <p class="xis">注)　工具管理機能は、組み込みイーサネットとファストイーサネットボード用の機能です。イーサネットボードでは使用できません。 
             </p>
        </cmn>
    </doc>





    <!-- 引数 -->
    <argument>
        <common>
            <vc>
                <item>
                    <name>FlibHndl</name>
                    <type>in</type>
                    <content>
                        <p>
                            ライブラリハンドルです。詳細は、「<a href="handle.htm" target="_parent">ライブラリハンドル</a>」を参照して下さい。
                        </p>
                    </content>
                </item>
                <item>
                    <name>s_number</name>
                    <type>in</type>
                    <content>
                        <p>
                           工具管理データテーブルへ登録を行う際の、開始データ番号を指定します。
                        </p>
                    </content>
                </item>
                <item>
                    <name>data_num</name>
                    <type>in/out</type>
                    <content>
                        <p>
                           工具管理データテーブルへ登録を行う際の、登録データ数へのポイン
                           タを指定します。ポインタで指されるデータへは予め、登録データ数
                           (１以上)を設定して下さい。
                        </p>
                        <p>
                           s_numberで始まる工具管理データを先頭に，*data_num個の登録を行
                           います。関数実行終了時には、*data_numに実際に登録されたデータ
                           数が返されます。
                        </p>
                    </content>
                </item>
                <item>
                    <name>tool</name>
                    <type>in</type>
                    <content>
                        <p>
                            登録する工具管理データを指定するIODBTLMNG構造体へのポインタです。
                            IODBTLMNG構造体は次の通りです。<br/>
<pre>
typedef struct  iodbtlmng {
    long T_code;               /* 工具種類番号(T) */
    long life_count;           /* 工具寿命カウンタ */
    long max_life;             /* 最大工具寿命値 */
    long rest_life;            /* 工具予告寿命値 */
    unsigned char  life_stat;  /* 工具寿命状態 */
    unsigned char  cust_bits;  /* カスタマイズ(ビット) */
    unsigned short tool_info;  /* 工具情報 */
    short H_code;              /* 工具長補正番号(H) */
    short D_code;              /* 工具径補正番号(D) */
    long spindle_speed;        /* 主軸回転速度(S) */
    long feedrate;             /* 切削送り速度(F) */
    short magazine;            /* マガジン番号(読み取り専用) */
    short pot;                 /* ポット番号(読み取り専用) */
    short G_code;              /* 工具形状補正番号(G) */
    short W_code;              /* 工具摩耗補正番号(W) */
    short gno;                 /* 工具形状番号 */
    short grp;                 /* エッジグループ番号(300i/310i/320iのみ) */
    short edge;                /* エッジ番号(300i/310i/320iのみ) */
    short reserve_s;           /* 予約領域 */
    long reserved[3];          /* 予約領域 */
    long custom1;              /* カスタマイズ1  */
    long custom2;              /* カスタマイズ2  */
    long custom3;              /* カスタマイズ3  */
    long custom4;              /* カスタマイズ4  */
    long custom5;              /* カスタマイズ5  */
    long custom6;              /* カスタマイズ6  */
    long custom7;              /* カスタマイズ7  */
    long custom8;              /* カスタマイズ8  */
    long custom9;              /* カスタマイズ9  */
    long custom10;             /* カスタマイズ10 */
    long custom11;             /* カスタマイズ11 */
    long custom12;             /* カスタマイズ12 */
    long custom13;             /* カスタマイズ13 */
    long custom14;             /* カスタマイズ14 */
    long custom15;             /* カスタマイズ15 */
    long custom16;             /* カスタマイズ16 */
    long custom17;             /* カスタマイズ17 */
    long custom18;             /* カスタマイズ18 */
    long custom19;             /* カスタマイズ19 */
    long custom20;             /* カスタマイズ20 */
} IODBTLMNG;
</pre>
                          <dl>
                              <dt>T_code</dt>
                              <dd>工具種類番号(Tコード)を指定します。</dd>
                              <dd>(入力範囲：0〜99999999)</dd>
                              <dt>life_count</dt>
                              <dd>工具寿命カウンタを指定します。</dd>
                              <dd>(入力範囲：0〜99999999，設定単位：回)</dd>
                              <dd>(入力範囲：0〜 3599999，設定単位：秒)</dd>
                              <dt>max_life</dt>
                              <dd>最大工具寿命値を指定します。</dd>
                              <dd>(入力範囲：0〜99999999，設定単位：回)</dd>
                              <dd>(入力範囲：0〜 3599999，設定単位：秒)</dd>
                              <dt>rest_life</dt>
                              <dd>工具予告寿命値を指定します。</dd>
                              <dd>(入力範囲：0〜99999999，設定単位：回)</dd>
                              <dd>(入力範囲：0〜 3599999，設定単位：秒)</dd>
                              <dt>life_stat</dt>
                              <dd>工具寿命状態を指定します。</dd>
                              <dd><table border="0" class="dd">
                                  <tr><td>0</td><td>：</td><td>寿命管理しない</td></tr>
                                  <tr><td>1</td><td>：</td><td>未使用工具</td></tr>
                                  <tr><td>2</td><td>：</td><td>寿命がある</td></tr>
                                  <tr><td>3</td><td>：</td><td>寿命がつきた</td></tr>
                                  <tr><td>4</td><td>：</td><td>工具折損(スキップ) </td></tr>
                              </table></dd>
                              <dt>cust_bits</dt>
                              <dd>カスタマイズ(ビット)を指定します。</dd>
                              <dt>tool_info</dt>
                              <dd>工具情報を指定します。</dd>
                              <dd><table border="0" class="dd">

                                  <tr> <td>bit 0</td><td>：</td><td>RGS</td> <td>　</td> </tr>
                                  <tr> <td> </td><td> </td><td> </td><td>0</td><td>：</td><td>工具管理データ無効</td></tr>
                                  <tr> <td> </td><td> </td><td> </td><td>1</td><td>：</td><td>工具管理データ有効</td></tr>

                                  <tr> <td>bit 1</td><td>：</td><td>TIM</td></tr>
                                  <tr> <td> </td><td> </td><td> </td><td>0</td><td>：</td><td>寿命カウントタイプは回数カウント</td></tr>
                                  <tr> <td> </td><td> </td><td> </td><td>1</td><td>：</td><td>寿命カウントタイプは時間カウント</td></tr>

                                  <tr><td>bit 2</td><td>：</td><td>BDT</td><td>　</td></tr>
                                  <tr> <td> </td><td> </td><td> </td><td>0</td><td>：</td><td>通常工具</td></tr>
                                  <tr> <td> </td><td> </td><td> </td><td>1</td><td>：</td><td>大径工具</td></tr>

                                  <tr><td>bit 3</td><td>：</td><td>LOC</td><td>　</td></tr>
                                  <tr> <td> </td><td> </td><td> </td><td>0</td><td>：</td><td>データアクセス可</td></tr>
                                  <tr> <td> </td><td> </td><td> </td><td>1</td><td>：</td><td>データアクセス不可</td></tr>

                                  <tr><td>bit 4〜15</td><td>：</td><td>リザーブ</td><td>　</td></tr>
                              </table></dd>
                              <dt>H_code</dt>
                              <dd>工具長補正番号(H)を指定します。</dd>
                              <dd>(入力範囲：0〜999)</dd>
                              <dt>D_code</dt>
                              <dd>工具径補正番号(D)を指定します。</dd>
                              <dd>(入力範囲：0〜999)</dd>
                              <dt>spindle_speed</dt>
                              <dd>主軸回転速度(S)を指定します。</dd>
                              <dd>(入力範囲：0〜99999，設定単位：/min) </dd>
                              <dt>feedrate</dt>
                              <dd>復帰周波数を指定します。</dd>
                              <dd>(入力範囲：0〜99999999，設定単位：mm/min, inch/min, deg/min, mm/rev, inch/rev) </dd>
                              <dt>magazine</dt>
                              <dd>マガジン番号がセットされます。</dd>
                              <dd>(読み取り専用のデータとなっておりますのですので書き込みはできません) </dd>
                              <dt>pot</dt>
                              <dd>ポット番号がセットされます。</dd>
                              <dd>(読み取り専用のデータとなっておりますのですので書き込みはできません) </dd>
                              <dt>G_code</dt>
                              <dd>工具形状補正番号(G)を指定します。</dd>
                              <dd>(旋盤系のみ有効なデータです) </dd>
                              <dt>W_code</dt>
                              <dd>工具摩耗補正番号(W)を指定します。</dd>
                              <dd>(旋盤系のみ有効なデータです) </dd>
                              <dt>gno</dt>
                              <dd>工具形状番号を指定します。</dd>
                              <dt>grp</dt>
                              <dd>エッジグループ番号です。(300i/310i/320iのみ) </dd>
                              <dt>edge</dt>
                              <dd>エッジ番号です。(300i/310i/320iのみ) </dd>
                              <dt>reserve_s</dt>
                              <dd>リザーブです。 </dd>
                              <dt>reserved[3]</dt>
                              <dd>リザーブです。 </dd>
                              <dt>custom1〜custom4</dt>
                              <dd>カスタマイズデータ1〜4を指定します。</dd>
                              <dd>(入力範囲：-99999999〜99999999) </dd>
                              <dt>custom5〜custom20</dt>
                              <dd>カスタマイズデータ5〜20を指定します。</dd>
                              <dd>(入力範囲：-99999999〜99999999)</dd>
                              <dd>(工具管理機能カスタマイズデータ拡張オプションがある場合のみ登録、読み書き可能です) </dd>
                          </dl>
                            <table border="0">
                                <tr><td valign="top">(注)</td>
                                    <td>マガジン番号、ポット番号は、読み取り専用のデータとなっておりますのですので書き込みはできません。</td>
                                </tr>
                                <tr><td valign="top">(注)</td>
                                    <td>上記カスタマイズ5〜カスタマイズ20のデータは、工具管理機能カスタマイズデータ拡張の場合に有効です。</td>
                                </tr>
                                <tr><td valign="top">(注)</td>
                                    <td>工具形状補正番号(G)、工具摩耗補正番号(W)は旋盤系のみ有効なデータです。</td>
                                </tr>
                            </table>
                        </p>
                    </content>
                </item>
            </vc>
        </common>
    </argument>



    <!-- 戻り値 -->
    <errcode>
        <item>
           <name>EW_BUSY</name>
            <content>
                他のユーザ(PMC等)が同じデータウィンドウをアクセスしています。
                再度実行してください。
            </content>
        </item>
        <item>
           <name>EW_NUMBER</name>
            <content>
                工具管理データテーブルの開始データ番号(s_number)の指定が不適切です。または、工具管理
                データテーブルのデータ有効数を超えようとしました。
            </content>
        </item>
        <item>
           <name>EW_DATA</name>
            <content>
                IODBTLMNG構造体内のメンバに誤りがあります。<br/>
                この戻り値に対して、より詳細な情報を得るには<a href="Misc/cnc_getdtailerr.htm" target="_parent">cnc_getdtailerr</a>関数を実行して下さい。
                ODBERR構造体のメンバ err_no に下記詳細ステータスがセットされます。
                <table border="0">
                    <tr><td>0</td><td>：</td><td>EW_DATA 以外のエラー</td></tr>
                    <tr><td>1</td><td>：</td><td>工具種類番号の誤り</td></tr>
                    <tr><td>2</td><td>：</td><td>工具寿命カウンタの誤り</td></tr>
                    <tr><td>3</td><td>：</td><td>最大工具寿命値の誤り</td></tr>
                    <tr><td>4</td><td>：</td><td>工具予告寿命値の誤り</td></tr>
                    <tr><td>5</td><td>：</td><td>工具寿命状態の誤り</td></tr>
                    <tr><td>6</td><td>：</td><td>カスタマイズ0の誤り</td></tr>
                    <tr><td>7</td><td>：</td><td>工具情報の誤り</td></tr>
                    <tr><td>8</td><td>：</td><td>工具長補正番号(H)の誤り</td></tr>
                    <tr><td>9</td><td>：</td><td>工具径補正番号(D)の誤り</td></tr>
                    <tr><td>10</td><td>：</td><td>主軸回転速度(S)の誤り</td></tr>
                    <tr><td>11</td><td>：</td><td>切削送り速度(F)の誤り</td></tr>
                    <tr><td>12</td><td>：</td><td>工具形状補正番号(G)の誤り</td></tr>
                    <tr><td>13</td><td>：</td><td>工具摩耗補正番号(W)の誤り</td></tr>
                    <tr><td>14</td><td>：</td><td>工具形状番号の誤り</td></tr>
                    <tr><td>15</td><td>：</td><td>エッジグループ番号の誤り(300i/310i/320iのみ)</td></tr>
                    <tr><td>16</td><td>：</td><td>エッジ番号の誤り(300i/310i/320iのみ)</td></tr>
                    <tr><td>31〜50</td><td>：</td><td>カスタマイズ１〜20の誤り</td></tr>
                </table>
            </content>
        </item>
        <item>
            <name>EW_NOOPT</name>
            <content>
                オプションなし<br/>
                工具管理機能(64組、240組、1000組)が必要です。
            </content>
        </item>
        <item>
            <name>EW_PROT</name>
            <content>
                ライトプロテクト<br/>
                工具管理データテーブルが書込み禁止状態です。
            </content>
        </item>
        <item>
            <name>EW_REJECT</name>
            <content>
                CNC側の処理実行拒否<br/>
                既に存在する工具管理データテーブルエントリに対して登録を行おうとしました。または他の工具に干渉しています。
            </content>
        </item>
        <item>
            <name>EW_OVRFLOW</name>
            <content>
                工具管理機能マルチエッジ工具対応関連データに不整合な部分があります。(300i/310i/320iのみ)
            </content>
        </item>
    </errcode>



    <!-- CNCオプション -->
    <option>
        <hssb><p>拡張ドライバ/ライブラリ機能が必要です。</p>
        </hssb>

        <ethr>
              <p>イーサネット機能と拡張ドライバ/ライブラリ機能が必要です。</p>
              <p>但し、FS160i/180i/210i/0i MODEL B, 300i/310i/320i に関しては次のようになります。</p>
              <p>組込みイーサネットを使用のとき、</p>
                  <p class="dd">上記２つの機能は必要ありません。</p>
              <p>イーサネットボードを使用のとき、</p>
                  <p class="dd">イーサネット機能のみ必要です。</p>
        </ethr>
        <need>
            <p>
            工具管理機能、工具管理機能組数240組、工具管理機能組数1000組のいずれかが必要です。
            </p>
        </need>
        <type>
            <p>
            工具管理機能カスタマイズデータ拡張(5〜20)の影響を受けます。<br/>
            </p>
        </type>

        <is>
            <hssb><p>拡張ドライバ/ライブラリ機能が必要です。</p>
            </hssb>
            <need>
                <p>
                工具管理機能、工具管理機能組数240組、工具管理機能組数1000組のいずれかが必要です。
                </p>
            </need>
            <type>
                <p>
                工具管理機能カスタマイズデータ拡張(5〜20)の影響を受けます。<br/>
                </p>
            </type>
        </is>
    </option>



    <!-- CNCパラメータ -->
    <parameter>
        <type>
            <ul type="disc">
                <li>Series 160i/180i/210i<br/>
                    13220(工具管理データ有効本数)<br/>
                </li>
                <li>Series 300i/310i/320i<br/>
                    13220(工具管理データ有効本数)<br/>
                    工具管理機能マルチエッジ工具対応を使用する場合には、パラメータ番号13201#3の設定が必要です。<br/>
                </li>
            </ul>
        </type>s
    </parameter>
    <is_parameter>
        <type>
            <ul type="disc">
                    13220(工具管理データ有効本数)<br/>
                    工具管理機能マルチエッジ工具対応を使用する場合には、パラメータ番号13201#3の設定が必要です。<br/>
            </ul>
        </type>
    </is_parameter>



    <!-- CNCモード -->
    <mode>
    </mode>



    <!-- 対応機種 -->
    <support>
        <!-- M（ミリング） -->
        <m>
            <fs0ia>X</fs0ia>
            <fs0ib>X</fs0ib>
            <fs15>X</fs15>
            <fs15i>X</fs15i>
            <fs16>X</fs16>
            <fs18>X</fs18>
            <fs21>X</fs21>
            <fs16ia>O</fs16ia>
            <fs18ia>O</fs18ia>
            <fs21ia>O</fs21ia>
            <fs16ib>O</fs16ib>
            <fs18ib>O</fs18ib>
            <fs21ib>O</fs21ib>
            <fs30i>O</fs30i>
        </m>
        <!-- T（旋盤） -->
        <t>
            <fs0ia>X</fs0ia>
            <fs0ib>X</fs0ib>
            <fs15>X</fs15>
            <fs15i>X</fs15i>
            <fs16>X</fs16>
            <fs18>X</fs18>
            <fs21>X</fs21>
            <fs16ia>X</fs16ia>
            <fs18ia>X</fs18ia>
            <fs21ia>X</fs21ia>
            <fs16ib>O</fs16ib>
            <fs18ib>O</fs18ib>
            <fs21ib>O</fs21ib>
            <fs30i>O</fs30i>
        </t>
        <!-- LC（ローダ制御） -->
        <lc>
            <fs0ia>X</fs0ia>
            <fs0ib>X</fs0ib>
            <fs15>X</fs15>
            <fs15i>X</fs15i>
            <fs16>X</fs16>
            <fs18>X</fs18>
            <fs21>X</fs21>
            <fs16ia>X</fs16ia>
            <fs18ia>X</fs18ia>
            <fs21ia>X</fs21ia>
            <fs16ib>X</fs16ib>
            <fs18ib>X</fs18ib>
            <fs21ib>X</fs21ib>
            <fs30i>X</fs30i>
        </lc>
        <!-- P（パンチプレス） -->
        <p>
            <fs16i>X</fs16i>
            <fs18i>X</fs18i>
        </p>
        <!-- L（レーザ） -->
        <l>
            <fs16i>X</fs16i>
            <fs18i>X</fs18i>
        </l>
        <!-- W（ワイヤカット） -->
        <w>
            <fs16i>X</fs16i>
            <fs18i>X</fs18i>
        </w>
        <!-- PM（パワーメート） -->
        <pw>
            <d>X</d>
            <h>X</h>
        </pw>
        <!-- is -->
        <is>
            <m>
                <fs30is>O</fs30is>
            </m>
            <t>
                <fs30is>O</fs30is>
            </t>
        </is>
    </support>



    <!-- 参照 -->
    <reference>
<!--
        <item>
            <name>cnc_regtool</name>
            <file>ToolMng/cnc_regtool.htm</file>
        </item>
-->
        <item>
            <name>cnc_regtool_f2</name>
            <file>ToolMng/cnc_regtool_f2.htm</file>
        </item>
        <item>
            <name>cnc_deltool</name>
            <file>ToolMng/cnc_deltool.htm</file>
        </item>
        <item>
            <name>cnc_rdtool</name>
            <file>ToolMng/cnc_rdtool.htm</file>
        </item>
        <item>
            <name>cnc_rdtool_f2</name>
            <file>ToolMng/cnc_rdtool_f2.htm</file>
        </item>
        <item>
            <name>cnc_wrtool</name>
            <file>ToolMng/cnc_wrtool.htm</file>
        </item>
        <item>
            <name>cnc_wrtool_f2</name>
            <file>ToolMng/cnc_wrtool_f2.htm</file>
        </item>
        <item>
            <name>cnc_wrtool2</name>
            <file>ToolMng/cnc_wrtool2.htm</file>
        </item>
    </reference>



    <!-- プログラム例 -->
    <example>
    </example>



  </func>
</root>
