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


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



    <!-- 関数宣言 -->
    <declare>
      <!-- Visual C++の宣言 -->
      <vc>
        <include>#include "fwlib32.h"</include>
        <prottype>
            FWLIBAPI short WINAPI cnc_rdwavedata(unsigned short FlibHndl, short channel, short axis, long rd_pntr, long *number, ODBWVDT *wvdt); 
        </prottype>
      </vc>
    </declare>



    <!-- 解説 -->
    <doc>
        <cmn>
            <p>波形診断データを読み出します。</p>
            <p>本関数を使用する場合は、CNCの波形診断画面を使用しないで下さい。  CNCの波形診断画面を使用した場合は、本関数の動作は保証されません。</p>
               波形診断パラメータを変更した場合は、<a href="Wave/cnc_wavestart.htm" target="_parent">cnc_wavestart</a>関数を実行しないと正しいデータがリードされません。
        </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>channel</name>
                    <type>in</type>
                    <content>
                        <p>
                           リードするチャネル番号を指定します。設定できる番号の範囲は機種により以下のようになります。
                        </p>
                        <table class="dd">
                            <tr>
                                <td>Series 150</td>
                                <td>:</td>
                                <td>0〜3, 6〜11</td>
                            </tr>
                            <tr>
                                <td>Series 150i</td>
                                <td>:</td>
                                <td>0〜3, 8〜11</td>
                            </tr>
                            <tr>
                                <td>Series 160/180, 160i/180i/210i, 0i</td>
                                <td>:</td>
                                <td>0〜7</td>
                            </tr>
                            <tr>
                                <td>Series 160i/180i-W</td>
                                <td>:</td>
                                <td>6, 7</td>
                            </tr>
                        </table>
                    </content>
                </item>
                <item>
                    <name>axis</name>
                    <type>in</type>
                    <content>
                        <p>リードするデータの軸番号(1〜制御軸数)を指定します。Series 160/180, 160i/180i/210i, 0i の場合、チャネル番号0〜5以外は無効です。
Series 150, 150i, 160i/180i-W では未使用です。</p>
                    </content>
                </item>
                <item>
                    <name>rd_pntr</name>
                    <type>in</type>
                    <content>
                        <p>リード開始ポインタ(データのリード開始位置)を指定します。 </p>
                        <blockquote>
                        例)<br>
                        リード開始位置を先頭からにする場合は0を指定します。</br><br>
                        リード開始位置を先頭から10番目にする場合は9を指定します。</br>
                        </blockquote>
                    </content>
                </item>
                <item>
                    <name>number</name>
                    <type>in/out</type>
                    <content>
                        <p>波形診断データのデータ個数を指定する変数の先頭アドレスを指定します。
                        この変数(*number) に対して一回でリードするデータの個数を設定して下さい。
                        関数実行後、この変数(*number) に実際に読み取ったデータの個数が再設定されます。</p><p>
                        採取可能な最大データ個数は機種、及び<a href="Wave/cnc_wrwaveprm.htm" target="_parent">cnc_wrwaveprm</a>関数にて設定した条件により以下の表のようになります。</p>

                    <table class="dd" border="1">
                        <thead>
                        <tr>
                            <th>機種</th>
                            <th colspan="2">Series 160/180, 160i/180i/210i, 0i</th>
                            <th colspan="2">Series 150</th>
                            <th>Series 150i</th>
                        </tr>
                        </thead>
                        <tbody>
                        <tr>
                            <td>条件</td>
                            <td>0/1/2</td>
                            <td>100/101/102</td>
                            <td>0/1/2</td>
                            <td>100/101/102</td>
                        </tr>
                        <tr>
                            <td>最大個数(n)</td>
                            <td>4096</td>
                            <td>8192</td>
                            <td>prm.15#6=<br/>0:1000<br/>1:5000</td>
                            <td>2000</td>
                            <td>5001</td>
                        </tr>
                        </tbody>
                    </table>
                    </content>
                </item>
                <item>
                    <name>wvdt</name>
                    <type>out</type>
                    <content>
                    <div class="dd">
                        <p>波形診断データを返すODBWVDT構造体へのポインタです。ODBWVDT構造体は次の通りです。</p>
<pre>
typedef struct odbwvdt {
    short   channel ;   /* チャネル番号 */
    short   kind ;      /* 波形データの種類 */
    union {
        short   axis ;  /* 波形データの軸番号 */
        struct {
            char    adr ; /* 機械信号のPMCアドレスの種類 */
            char    bit ; /* 機械信号のビット番号 */
            short   no ;  /* 機械信号のPMCアドレスの番号 */
        } io ;
    } u ;
    char    year ;              /* 年 (0〜99) */
    char    month ;             /* 月 (1〜12) */
    char    day ;               /* 日 (1〜31) */
    char    hour ;              /* 時 (0〜23) */
    char    minute ;            /* 分 (0〜59) */
    char    second ;            /* 秒 (0〜59) */
    short   t_cycle ;           /* サンプリング周期 (msec) */
    short   data[8192] ;        /* 波形診断データ */
} ODBWVDT ;
</pre>

<dl>
    <dt>channel</dt>
    <dd>チャネル番号</dd>
    <dd>実際にリードしたチャネル番号が格納されます。</dd>
    <br/>

    <dt>kind</dt>
    <dd>波形データの種類</dd>
    <dd><a href="Wave/cnc_rdwaveprm.htm" target="_parent">cnc_rdwaveprm</a>関数の波形データの種類参照
    <ul>
        <li>kindが13(機械信号)以外の時</li>
            <dl>
                <dt>axis</dt>
                <dd>波形データの軸番号( Series 150, 150i )
                    <table border="1">
                        <tr><th>波形データの種類</th><th></th></tr>
                        <tr><td>0〜7    </td><td>1〜制御軸数 : 軸番号</td></tr>
                        <tr><td>9       </td><td>1〜系統数 : 系統番号</td></tr>
                        <tr><td>10〜11  </td><td>1〜主軸数 : 主軸番号</td></tr>
                    </table>
                </dd>
                <dd>波形データの軸番号( Series 160/180, 160i/180i/210i, 0i )
                    <table border="1">
                        <tr><th>チャネル番号</th><th>波形データの種類</th><th/></tr>
                        <tr><td>0〜5</td><td/><td>1〜制御軸数 : 軸番号</td></tr>
                        <tr><td>6, 7</td><td>0〜3, 5〜7</td><td>1〜制御軸数 : 軸番号</td></tr>
                        <tr><td>6, 7</td><td>10, 11</td><td>1〜主軸数 : 主軸番号</td></tr>
                    </table>
                </dd>
            </dl>
            <br/>
        <li>kindが13(機械信号)の時</li>
            <dl>
                <dt>adr</dt>

                <dd>機械信号のPMCアドレスの種類</dd>
                <dd>トレースされた機械信号にあたるPMCアドレスの種類がASCIIコードで格納されます。</dd>
                <dd>格納されるPMCアドレスの種類 : 「G」「F」「Y」「X」</dd>
                <dt>bit</dt>
                <dd>機械信号のビット番号</dd>
                <dd>トレースされた機械信号にあたるPMCアドレスのビット番号が格納されます。</dd>
                <dd>格納されるビット番号の範囲 : 0〜7</dd>
                <dt>no</dt>
                <dd>機械信号のPMCアドレスの番号</dd>
                <dd>トレースされた機械信号にあたるPMCアドレスの番号が格納されます。</dd>
                <dd>格納される番号の範囲は、<a href="Pmc/pmc_rdpmcrng.htm" target="_parent">pmc_rdpmcrng</a>関数を参照下さい。</dd>
            </dl>
    </ul>
    </dd>
    <br/>

    <dt>year, month, day, hour, minute, second</dt>
    <dd>条件が0〜20の場合、サンプリング開始日時</dd>
    <dd>条件が100〜120の場合、サンプリング終了日時
        <table class="dd">
            <tr><td>year    </td><td>年 (0〜99)</td></tr>
            <tr><td>month   </td><td>月 (1〜12)</td></tr>
            <tr><td>day     </td><td>日 (1〜31)</td></tr>
            <tr><td>hour    </td><td>時 (0〜23)</td></tr>
            <tr><td>minute  </td><td>分 (0〜59)</td></tr>
            <tr><td>second  </td><td>秒 (0〜59)</td></tr>
        </table>
    </dd>
    <br/>

    <dt>t_cycle</dt>
    <dd>サンプリング周期 (msec)
    <table class="dd" border="1">
        <thead>
        <tr>
            <th>機種</th>
            <th colspan="2">Series 160/180, 160i/180i/210i, 0i</th>
            <th colspan="2">Series 150</th>
            <th colspan="2">Series 150i</th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>条件</td>
            <td>0/1/2</td>
            <td>100/101/102</td>
            <td>0/1/2</td>
            <td>100/101/102</td>
            <td>kindが13以外</td>
            <td>kindが13</td>
        </tr>
        <tr>
            <td>周期</td>
            <td>2</td>
            <td>8</td>
            <td>2/4/8/16</td>
            <td>8</td>
            <td>2/4/8/16</td>
            <td>8/16</td>
        </tr>
        </tbody>
    </table>
    </dd>
    <br/>

    <dt>data</dt>
    <dd>波形診断データ</dd>
    <dd>kind にて指定されている種類のデータが格納されます。(kind=13の場合は 0/1 となり、それ以外はバイナリです)</dd>
    <dd>単位等については<a href="Wave/cnc_rdwaveprm.htm" target="_parent">cnc_rdwaveprm</a>関数の波形データの種類の表を参照して下さい。</dd>
</dl>
</div>

<p class="label">読み取りデータのまとめ
<ul>
    <li>kindが13(機械信号)以外の時</li>
        <table border="1" frame="hsides" rules="groups">
            <thead>
            <tr><th>構造体名</th><th>サイズ</th><th>種別</th><th>有効範囲(バイナリ)</th></tr>
            </thead>
            <tbody>
            <tr><td>channel </td><td>2  </td><td>チャネル番号       </td><td>0〜        </td></tr>
            <tr><td>kind    </td><td>2  </td><td>波形データの種類   </td><td>0〜12  </td></tr>
            <tr><td>axis    </td><td>2  </td><td>波形データの軸番号 </td><td>1〜制御軸数</td></tr>
            <tr><td>(dummy) </td><td>2  </td><td>                   </td><td>       </td></tr>
            <tr><td>year    </td><td>1  </td><td>年                 </td><td>0〜99  </td></tr>
            <tr><td>month   </td><td>1  </td><td>月                 </td><td>1〜12  </td></tr>
            <tr><td>day     </td><td>1  </td><td>日                 </td><td>1〜31  </td></tr>
            <tr><td>hour    </td><td>1  </td><td>時                 </td><td>0〜23  </td></tr>
            <tr><td>minute  </td><td>1  </td><td>分                 </td><td>0〜59  </td></tr>
            <tr><td>second  </td><td>1  </td><td>秒                 </td><td>0〜59  </td></tr>
            <tr><td>t_cycle </td><td>2  </td><td>サンプリング周期   </td><td>2/4/8/16(ms)</td></tr>
            <tr><td>data[0] </td><td>2  </td><td>波形診断データ     </td><td>       </td></tr>
            <tr><td>data[1] </td><td>2  </td><td>波形診断データ     </td><td>       </td></tr>
            <tr><td>&#160;&#160;:</td><td>&#160;&#160;:</td><td>&#160;&#160;:</td><td>  </td></tr>
            <tr><td>data[n-1]</td><td>2 </td><td>波形診断データ     </td><td>       </td></tr>
            </tbody>
        </table>
    <li>kindが13(機械信号)の時</li>
        <table border="1" frame="hsides" rules="groups">
            <thead>
            <tr><th>構造体名</th><th>サイズ</th><th>種別</th><th>有効範囲(バイナリ)</th></tr>
            </thead>
            <tbody>
            <tr><td>channel </td><td>2  </td><td>チャネル番号       </td><td>6〜        </td></tr>
            <tr><td>kind    </td><td>2  </td><td>波形データの種類   </td><td>13     </td></tr>
            <tr><td>adr     </td><td>1  </td><td>機械信号のPMCアドレスの種類</td><td>ASCIIコード(G,F,Y,X)   </td></tr>
            <tr><td>bit     </td><td>1  </td><td>機械信号のビット番号</td><td>0〜7  </td></tr>
            <tr><td>no      </td><td>2  </td><td>機械信号のPMCアドレスの番号</td><td>0〜 </td></tr>
            <tr><td>year    </td><td>1  </td><td>年                 </td><td>0〜99  </td></tr>
            <tr><td>month   </td><td>1  </td><td>月                 </td><td>1〜12  </td></tr>
            <tr><td>day     </td><td>1  </td><td>日                 </td><td>1〜31  </td></tr>
            <tr><td>hour    </td><td>1  </td><td>時                 </td><td>0〜23  </td></tr>
            <tr><td>minute  </td><td>1  </td><td>分                 </td><td>0〜59  </td></tr>
            <tr><td>second  </td><td>1  </td><td>秒                 </td><td>0〜59  </td></tr>
            <tr><td>t_cycle </td><td>2  </td><td>サンプリング周期   </td><td>2/4/8/16(ms)</td></tr>
            <tr><td>data[0] </td><td>2  </td><td>波形診断データ     </td><td>0または1</td></tr>
            <tr><td>data[1] </td><td>2  </td><td>波形診断データ     </td><td>0または1</td></tr>
            <tr><td>&#160;&#160;:</td><td>&#160;&#160;:</td><td>&#160;&#160;:</td><td>&#160;&#160;:</td></tr>
            <tr><td>data[n-1]</td><td>2 </td><td>波形診断データ     </td><td>0または1</td></tr>
            </tbody>
        </table>
</ul>
</p>
                    </content>
                </item>
            </vc>
        </common>
    </argument>



    <!-- 戻り値 -->
    <errcode>
        <item>
            <name>EW_FUNC</name>
            <content>関数未実行<br/>
            <a href="Wave/cnc_wavestop.htm" target="_parent">cnc_wavestop</a>関数が実行されていません。</content>
        </item>
        <item>
            <name>EW_LENGTH</name>
            <content>データ個数の誤り<br/>データ個数(*number)に１より小さい値がセットされています。 </content>
        </item>
        <item>
            <name>EW_NUMBER</name>
            <content>データ番号の誤り<br/>
            チャネル番号(channel)が範囲外です。 </content>
        </item>
        <item>
            <name>EW_ATTRIB</name>
            <content> データ属性の誤り <br/>軸番号(axis)が範囲外です </content>
        </item>
        <item>
            <name>EW_DATA</name>
            <content>データの誤り<br/>
            リード開始ポインタ(rd_pntr)が範囲外です。 </content>
        </item>
        <item>
            <name>EW_NOOPT</name>
            <content>オプションなし<br/>拡張ドライバ/ライブラリ機能が必要です。  </content>
        </item>
        <item>
            <name>EW_PARAM</name>
            <content>CNCパラメータの誤り( Series 160/180, 160i/180i/210i, 0i )<br/>
            電源投入時に3112#0=0になっていました。3112#0=1に設定して立上げ直して下さい。 </content>
        </item>
        <item>
            <name>EW_BUFFER</name>
            <content> バッファ空 
            <br/>指定された波形診断データがありません。(波形診断の条件と指定したチャネル番号が合わない場合を含む) </content>
        </item>
    </errcode>



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



    <!-- CNCパラメータ -->
    <parameter>
        <type>
            <ul>
                <li>Series 160/180, 160i/180i/210i, 0i</li>
                    3112#0=1 (必ず設定して下さい)
            </ul>
        </type>
    </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>X</fs21>
            <fs16ia>O</fs16ia>
            <fs18ia>O</fs18ia>
            <fs21ia>O</fs21ia>
            <fs16ib>O</fs16ib>
            <fs18ib>O</fs18ib>
            <fs21ib>O</fs21ib>
            <fs30i>X</fs30i>
        </m>
        <!-- T（旋盤） -->
        <t>
            <fs0ia>H</fs0ia>
            <fs0ib>O</fs0ib>
            <fs15>H</fs15>
            <fs15i>X</fs15i>
            <fs16>H</fs16>
            <fs18>H</fs18>
            <fs21>X</fs21>
            <fs16ia>O</fs16ia>
            <fs18ia>O</fs18ia>
            <fs21ia>O</fs21ia>
            <fs16ib>O</fs16ib>
            <fs18ib>O</fs18ib>
            <fs21ib>O</fs21ib>
            <fs30i>X</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>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>X</d>
            <h>X</h>
        </pw>
    </support>



    <!-- 参照 -->
    <reference>
        <item>
            <name>cnc_rdwaveprm</name>
            <file>Wave/cnc_rdwaveprm.htm</file>
        </item>
        <item>
            <name>cnc_rdwaveprm2</name>
            <file>Wave/cnc_rdwaveprm2.htm</file>
        </item>
        <item>
            <name>cnc_wrwaveprm</name>
            <file>Wave/cnc_wrwaveprm.htm</file>
        </item>
        <item>
            <name>cnc_wrwaveprm2</name>
            <file>Wave/cnc_wrwaveprm2.htm</file>
        </item>
        <item>
            <name>cnc_wavestart</name>
            <file>Wave/cnc_wavestart.htm</file>
        </item>
        <item>
            <name>cnc_wavestop</name>
            <file>Wave/cnc_wavestop.htm</file>
        </item>
        <item>
            <name>cnc_wavestat</name>
            <file>Wave/cnc_wavestat.htm</file>
        </item>
    </reference>



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



  </func>
</root>
