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


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



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



        <!-- 解説 -->
        <doc>
            <cmn>
                <p>CNC装置に実装されているカレンダタイマの日付、及び時刻を設定します。 </p>
            </cmn>

            <!-- 300is -->
            <is>
                <cmn>
                    <p>CNC装置に実装されているカレンダタイマの日付、及び時刻を設定します。 </p>
                    <p>buf.typeには以下のいずれかを指定します(日付と時刻を同時に設定することはできません)。
                        <table class="dd" border="1" frame="hsides" rules="groups">
                            <thead>
                                <tr>
                                    <th>buf.type<br/>(buf.nType)</th>
                                    <th>設定するデータ</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>0</td>
                                    <td>日付の設定</td>
                                </tr>
                                <tr>
                                    <td>1</td>
                                    <td>時刻の設定</td>
                                </tr>
                            </tbody>
                        </table>
                    </p>
                    <p>
                        buf.data.date、またはbuf.data.timeの各メンバには、次のように日付、
                        または時刻データがバイナリ形式で格納で格納します。
                        <table class="dd" border="1" frame="hsides" rules="groups">
                            <thead>
                                <tr>
                                    <th>メンバ</th>
                                    <th>データ</th>
                                    <th>値の範囲</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td valign="top">buf.data.date.year</td>
                                    <td valign="top">年</td>
                                    <td>1997〜2096</td>
                                </tr>
                                <tr>
                                    <td>buf.data.date.month</td>
                                    <td>月</td>
                                    <td>1〜12</td>
                                </tr>
                                <tr>
                                    <td>buf.data.date.date</td>
                                    <td>日</td>
                                    <td>1〜31</td>
                                </tr>
                                <tr>
                                    <td>buf.data.time.hour</td>
                                    <td>時</td>
                                    <td>0〜23</td>
                                </tr>
                                <tr>
                                    <td>buf.data.time.minute</td>
                                    <td>分</td>
                                    <td>0〜59</td>
                                </tr>
                                <tr>
                                    <td>buf.data.time.second</td>
                                    <td>秒</td>
                                    <td>0〜59</td>
                                </tr>
                            </tbody>
                        </table>
                    </p>
                    <p>
                        4月31日、2月29日(うるう年でない場合)等の値を設定しようとすると、エラー(EW_DATA)になります。
                    </p>
                </cmn>
            </is>
        </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>buf</name>
                        <type>in</type>
                        <content>
                            <p>
                                CNCの日付、時刻を設定するIODBTIMER構造体へのポインタです。 IODBTIMER構造体は次の通りです。 
                            </p>
<pre>
typedef struct iodbtimer {
        short   type ;          /* 日付,時刻の指定 */
        short   dummy ;         /* 未使用 */
        union {
                struct {
                        short   year ;  /* 年 */
                        short   month ; /* 月 */
                        short   date ;  /* 日 */
                } date ;
                struct {
                        short   hour ;  /* 時 */
                        short   minute ;/* 分 */
                        short   second ;/* 秒 */
                } time ;
        } data ;
} IODBTIMER ;
</pre>

                <p>buf.typeには以下のいずれかを指定します(日付と時刻を同時に設定することはできません)。
                    <table class="dd" border="1" frame="hsides" rules="groups">
                        <thead>
                        <tr>
                            <th>buf.type<br/>(buf.nType)</th>
                            <th>設定するデータ</th>
                        </tr>
                        </thead>
                        <tbody>
                        <tr>
                            <td>0</td>
                            <td>日付の設定</td>
                        </tr>
                        <tr>
                            <td>1</td>
                            <td>時刻の設定</td>
                        </tr>
                        </tbody>
                    </table>
                </p>
                <p>
                    buf.data.date、またはbuf.data.timeの各メンバには、次のように日付、
                    または時刻データがバイナリ形式で格納で格納します。
                    <table class="dd" border="1" frame="hsides" rules="groups">
                        <thead>
                            <tr>
                                <th>メンバ</th>
                                <th>データ</th>
                                <th>値の範囲</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td valign="top">buf.data.date.year</td>
                                <td valign="top">年</td>
                                <td>
                                    1987〜2086(Series 160/180/210, 160i/180i/210i, 0i, Power Mate i)<br/>
                                    1986〜2086(Series 150)<br/>
                                    1995〜2094(Series 150i)<br/>
                                    1997〜2096(Series 300i/310i/320i)
                                </td>
                            </tr>
                            <tr>
                                <td>buf.data.date.month</td>
                                <td>月</td>
                                <td>1〜12</td>
                            </tr>
                            <tr>
                                <td>buf.data.date.date</td>
                                <td>日</td>
                                <td>1〜31</td>
                            </tr>
                            <tr>
                                <td>buf.data.time.hour</td>
                                <td>時</td>
                                <td>0〜23</td>
                            </tr>
                            <tr>
                                <td>buf.data.time.minute</td>
                                <td>分</td>
                                <td>0〜59</td>
                            </tr>
                            <tr>
                                <td>buf.data.time.second</td>
                                <td>秒</td>
                                <td>0〜59</td>
                            </tr>
                        </tbody>
                    </table>
                </p>
                <p>つまり、設定できるカレンダタイマの範囲は以下のようになります。
                    <dl class="dd">
                        <dt>Series 160/180/210, 160i/180i/210i, 0i, Power Mate i</dt>
                        <dd>1987年1月1日0時0分0秒 〜 2086年12月31日23時59分59秒</dd>
                        <dt>Series 150</dt>
                        <dd>1986年1月1日0時0分0秒 〜 2086年12月31日23時59分59秒</dd>
                        <dt>Series 150i</dt>
                        <dd>1995年1月1日0時0分0秒 〜 2094年12月31日23時59分59秒</dd>
                        <dt>Series 300i/310i/320i</dt>
                        <dd>1997年1月1日0時0分0秒 〜 2096年12月31日23時59分59秒</dd>
                    </dl>
                </p>
                <p>
                    Series 160i/180i/210i, 0i, Power Mate i の場合、「日(buf.data.date.*)」の設定値のチェックを厳密には行ないません。
                    たとえば、&quot;2月31日&quot;のような設定もできてしまいます。
                    この場合、<a href="Misc/cnc_gettimer.htm" target="_parent">cnc_gettimer</a>関数で日付を読み出しても&quot;2月31日&quot;と読み出されます。CNCのセッティング画面でも &quot;2月31日&quot;と表示されます。
                </p>
                <p>
                    Series 150/150i, 300i/310i/320iの場合、「日(buf.data.date.*)」の設定値のチェックを行います。
                    4月31日、2月29日(うるう年でない場合)等の値を設定しようとすると、エラー(EW_DATA)になります。
                </p>

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



        <!-- 戻り値 -->
        <errcode>
            <item>
                <name>EW_NUMBER</name>
                <content>日付,時刻の指定が正しくありません。</content>
            </item>
            <item>
                <name>EW_DATA</name>
                <content>日付,時刻データに不正な値が指定されました。</content>
            </item>
            <item>
                <name>EW_REJECT</name>
                <content>カレンダタイマにデータを設定することができませんでした。<br/>
                        ハードウエアが不良である可能性があります。 </content>
            </item>
        </errcode>



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



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



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



        <!-- 対応機種 -->
        <support>
            <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_gettimer</name>
                <file>Misc/cnc_gettimer.htm</file>
            </item>
        </reference>



    </func>
</root>
