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


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



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



        <!-- 解説 -->
        <doc>
            <cmn>
                <p>
                    CNCの種類、マシニングセンタ系あるいは旋盤系などの区別、CNCのシステムソフトウェアの系列、
                    及び版数、制御軸数などのCNC固有のシステム情報を読み出します。
                </p>
                <p>
                    CNC側のシステムソフトウェアとPMC側との適合性の確認、CNC側の絶対位置座標値、
                    機械位置座標値などの座標値データを読み出す時の軸数の取得などに使用します。
                </p>
                <p>
                    各文字列の終端には NULL文字('\0')は付加されません。
                </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>sysinfo</name>
                        <type>out</type>
                        <content>
                            <p/>CNCシステム情報を返すODBSYS構造体へのポインタです。 
                            <br/>Series 150, Series 150i/160/180/210/160i/180i/210i/300i/310i/320i/0i/Power Mate iで構造体が異なります。
                            <p/>ODBSYS構造体は次の通りです。
<pre>
<li>Series 150</li>
typedef struct odbsys {
        short   dummy ;         /* 未使用 */
        char    max_axis[2]     /* 最大制御軸数 */
        char    cnc_type[2] ;   /* CNCの種類 (ASCII) */
        char    mt_type[2] ;    /* M/T/TTの種類 (ASCII) */
        char    series[4] ;     /* 系列番号 (ASCII) */
        char    version[4] ;    /* 版数 (ASCII) */
        char    axes[2] ;       /* 制御軸数 (ASCII) */
} ODBSYS ;
</pre>

<pre>
<li>Series 150i, 160/180/210, 160i/180i/210i, 0i, 300i/310i/320i, Power Mate i</li>
typedef struct odbsys {
        short   addinfo ;       /* CNC 付加情報 */
        short   max_axis ;      /* 最大制御軸数 */
        char    cnc_type[2] ;   /* CNCの種類 (ASCII) */
        char    mt_type[2] ;    /* M/T/TTの種類 (ASCII) */
        char    series[4] ;     /* 系列番号 (ASCII) */
        char    version[4] ;    /* 版数 (ASCII) */
        char    axes[2] ;       /* 制御軸数 (ASCII) */
} ODBSYS ;
</pre>
                            <dl>
                                <dt>dummy</dt>
                                    <dd>未使用</dd>
                                <dt>addinfo</dt>
                                    <dd>CNC付加情報</dd>
                                    <dd>Series 150i, 160/180/210, 160i/180i/210i, 0i, 300i/310i/320i, Power Mate iの場合に有効です。</dd>
                                        <dl>
                                            <dt>bit 0</dt>
                                            <dd><table>
                                                <tr> <td>0</td> <td>:</td> <td>ローダ制御機能なし</td> </tr>
                                                <tr> <td>1</td> <td>:</td> <td>ローダ制御機能あり</td> </tr>
                                            </table></dd>
                                            <dt>bit 1</dt>
                                            <dd><table>
                                                <tr> <td>0</td> <td>:</td> <td>CNC がｉシリーズ以外</td> </tr>
                                                <tr> <td>1</td> <td>:</td> <td>CNC がｉシリーズ</td> </tr>
                                            </table></dd>
                                            <dt>bit 2</dt>
                                            <dd>リザーブ</dd>
                                            <dt>bit 3</dt>
                                            <dd><table>
                                                <tr> <td>0</td> <td>:</td> <td>複合加工機能なし</td> </tr>
                                                <tr> <td>1</td> <td>:</td> <td>複合加工機能あり</td> </tr>
                                            </table></dd>
                                            <dt>Bit4〜Bit15</dt>
                                            <dd>リザーブ</dd>
                                        </dl>
                                <dt>max_axis</dt>
                                    <dd>最大制御軸数<br/>CNCシステムにて制御可能な最大軸数がバイナリで格納されます。</dd>
                                    <ul>
                                        <ul>
                                        <li type="disc">Series 150</li>
                                            <dd>max_axis[0], max_axis[1]</dd>
                                            <ul><dd>共に NULL('\0') の場合 : 10軸</dd></ul>
                                            <dd>上記以外の場合 : その値(ASCII:'15'等)</dd>
                                        <li type="disc">Series 150i, 160/180/210, 160i/180i/210i, 0i, 300i/310i/320i, Power Mate i</li>
                                            <dd>その値(BINARY)</dd>
                                        </ul>
                                    </ul>
                                <dt>cnc_type</dt>
                                    <dd>CNCの種類(ASCII)</dd>
                                        <dd>
                                            <table>
                                                <tr><td>'15'</td><td>:</td><td>Series 150/150i</td></tr>
                                                <tr><td>'16'</td><td>:</td><td>Series 160/160i</td></tr>
                                                <tr><td>'18'</td><td>:</td><td>Series 180/180i</td></tr>
                                                <tr><td>'21'</td><td>:</td><td>Series 210/210i</td></tr>
                                                <tr><td>'30'</td><td>:</td><td>Series 300i</td></tr>
                                                <tr><td>'31'</td><td>:</td><td>Series 310i</td></tr>
                                                <tr><td>'32'</td><td>:</td><td>Series 320i</td></tr>
                                                <tr><td>' 0'</td><td>:</td><td>Series 0i</td></tr>
                                                <tr><td>'PD'</td><td>:</td><td>Power Mate i-D</td></tr>
                                                <tr><td>'PH'</td><td>:</td><td>Power Mate i-H</td></tr>
                                            </table>
                                        </dd>
                                <dt>mt_type</dt>
                                    <dd>M/Tの種類(ASCII)</dd>
                                    <dd>
                                        <table>
                                            <tr>
                                                <td>' M'</td>
                                                <td>:</td>
                                                <td>マシニングセンタ</td>
                                            </tr>
                                            <tr>
                                                <td>' T'</td>
                                                <td>:</td>
                                                <td>旋盤</td>
                                            </tr>
                                            <tr>
                                                <td>'MM'</td>
                                                <td>:</td>
                                                <td>M系2系統制御</td>
                                            </tr>
                                            <tr>
                                                <td>'TT'</td>
                                                <td>:</td>
                                                <td>T系2/3系統制御</td>
                                            </tr>
                                            <tr>
                                                <td>'MT'</td>
                                                <td>:</td>
                                                <td>T系複合加工機能</td>
                                            </tr>
                                            <tr>
                                                <td>' P'</td>
                                                <td>:</td>
                                                <td>パンチプレス</td>
                                            </tr>
                                            <tr>
                                                <td>' L'</td>
                                                <td>:</td>
                                                <td>レーザ</td>
                                            </tr>
                                            <tr>
                                                <td>' W'</td>
                                                <td>:</td>
                                                <td>ワイヤカット</td>
                                            </tr>
                                        </table>
                                    </dd>
                                <dt>series</dt>
                                    <dd>CNCソフトの系列番号(ASCII)</dd>
                                    <dd>4桁の文字列を渡します。</dd>
                                <dt>version</dt>
                                    <dd>CNCソフトの版数(ASCII)</dd>
                                    <dd>4桁の文字列を渡します。</dd>
                                <dt>axes</dt>
                                    <dd>制御軸数(ASCII)</dd>
                                    <dd>2桁の文字列を渡します。</dd>
                                    <dd>4軸の場合、' 4'となります。</dd>
                            </dl>
                            <img src="misc/ODBSYS.gif"></img>
                            <p/>
                            たとえば、"Series 160i(B0F1-0001)のM系3軸システム/ローダ制御無し"において本関数を実行すると、以下の情報が得られます。
<pre>
sysinfo.addinfo  = 2
sysinfo.max_axis = 8
sysinfo.cnc_type = "16"
sysinfo.mt_type  = " M"
sysinfo.series   = "B0F1"
sysinfo.version  = "0001"
sysinfo.axes     = " 3"
</pre>

                        </content>
                    </item>
                </vc>
            </common>

            <!-- 300is -->
            <is>
                <hssb>
                    <vc>
                        <item>
                            <name>FlibHndl</name>
                            <type>in</type>
                            <content>
                                <p>
                                    ライブラリハンドルです。
                                    詳細は、「<a href="handle.htm" target="_parent">ライブラリハンドル</a>」を参照して下さい。
                                </p>
                            </content>
                        </item>
                        <item>
                            <name>sysinfo</name>
                            <type>out</type>
                            <content>
                                <p/>CNCシステム情報を返すODBSYS構造体へのポインタです。 
<pre>
typedef struct odbsys {
        short   addinfo ;       /* CNC 付加情報 */
        short   max_axis ;      /* 最大制御軸数 */
        char    cnc_type[2] ;   /* CNCの種類 (ASCII) */
        char    mt_type[2] ;    /* M/T/TTの種類 (ASCII) */
        char    series[4] ;     /* 系列番号 (ASCII) */
        char    version[4] ;    /* 版数 (ASCII) */
        char    axes[2] ;       /* 制御軸数 (ASCII) */
} ODBSYS ;
</pre>
                                <dl>
                                    <dt>dummy</dt>
                                        <dd>未使用</dd>
                                    <dt>addinfo</dt>
                                        <dd>CNC付加情報</dd>
                                            <dl>
                                                <dt>bit 0</dt>
                                                    <dd><table>
                                                        <tr> <td>0</td> <td>:</td> <td>ローダの系統無効</td> </tr>
                                                        <tr> <td>1</td> <td>:</td> <td>ローダの系統有効</td> </tr>
                                                    </table></dd>
                                                <dt>bit 1</dt>
                                                    <dd><table>
                                                        <tr> <td>0</td> <td>:</td> <td>CNC がｉシリーズ以外</td> </tr>
                                                        <tr> <td>1</td> <td>:</td> <td>CNC がｉシリーズ</td> </tr>
                                                    </table></dd>
                                                <dt>bit 2</dt>
                                                    <dd>リザーブ</dd>
                                                <dt>bit 3</dt>
                                                    <dd><table>
                                                        <tr> <td>0</td> <td>:</td> <td>複合加工機能無効</td> </tr>
                                                        <tr> <td>1</td> <td>:</td> <td>複合加工機能有効</td> </tr>
                                                    </table></dd>
                                                <dt>Bit4〜Bit15</dt>
                                                    <dd>リザーブ</dd>
                                            </dl>
                                    <dt>max_axis</dt>
                                        <dd>最大制御軸数<br/>CNCシステムにて制御可能な最大軸数がバイナリで格納されます。</dd>
                                    <dt>cnc_type</dt>
                                        <dd>CNCの種類(ASCII)</dd>
                                        <dd><table>
                                            <tr><td>'30'</td><td>:</td><td>Series 300is</td></tr>
                                            <tr><td>'31'</td><td>:</td><td>Series 310is</td></tr>
                                            <tr><td>'32'</td><td>:</td><td>Series 320is</td></tr>
                                        </table></dd>
                                    <dt>mt_type</dt>
                                        <dd>M/Tの種類(ASCII)</dd>
                                        <dd><table>
                                            <tr>
                                                <td>' M'</td>
                                                <td>:</td>
                                                <td>マシニングセンタ</td>
                                            </tr>
                                            <tr>
                                                <td>' T'</td>
                                                <td>:</td>
                                                <td>旋盤</td>
                                            </tr>
                                            <tr>
                                                <td>'MM'</td>
                                                <td>:</td>
                                                <td>M系多系統制御</td>
                                            </tr>
                                            <tr>
                                                <td>'TT'</td>
                                                <td>:</td>
                                                <td>T系多系統制御</td>
                                            </tr>
                                            <tr>
                                                <td>'MT'</td>
                                                <td>:</td>
                                                <td>T系複合加工機能</td>
                                            </tr>
                                        </table></dd>
                                    <dt>series</dt>
                                        <dd>CNCソフトの系列番号(ASCII)</dd>
                                        <dd>4桁の文字列を渡します。</dd>
                                    <dt>version</dt>
                                        <dd>CNCソフトの版数(ASCII)</dd>
                                        <dd>4桁の文字列を渡します。</dd>
                                    <dt>axes</dt>
                                        <dd>制御軸数(ASCII)</dd>
                                        <dd>2桁の文字列を渡します。</dd>
                                        <dd>4軸の場合、' 4'となります。</dd>
                                </dl>
                                <p/>
                                たとえば、Series 300is(G001-0001)のM系3軸システムにおいて本関数を実行すると、以下の情報が得られます。
<pre>
sysinfo.addinfo  = 2
sysinfo.max_axis = 32
sysinfo.cnc_type = "30"
sysinfo.mt_type  = " M"
sysinfo.series   = "G001"
sysinfo.version  = "0001"
sysinfo.axes     = " 3"
</pre>
                            </content>
                        </item>
                    </vc>
                </hssb>
            </is>
        </argument>



        <!-- 戻り値 -->
        <errcode>
            <add></add>
        </errcode>



        <!-- CNCオプション -->
        <option>
            <hssb>この機能にオプションは必要ありません。</hssb>
            <ethr><p>イーサネット機能と拡張ドライバ/ライブラリ機能が必要です。</p>
                  <p>但し、Series 160i/180i/210i/0i MODEL B, 300i に関しては次のようになります。</p>
                  <p>組込みイーサネットを使用のとき、</p>
                     <p class="dd">上記２つの機能は必要ありません。</p>
                  <p>イーサネットボードを使用のとき、</p>
                      <p class="dd">イーサネット機能のみ必要です。</p>
            </ethr>
        </option>



        <!-- CNCパラメータ -->
        <parameter>
        </parameter>



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



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



        <!-- 参照 -->
        <reference>
            <item>
                <name>cnc_sysinfo_ex</name>
                <file>misc/cnc_sysinfo_ex.htm</file>
            </item>
        </reference>



    </func>
</root>
