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

<root>
    <func>


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



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



        <!-- 解説 -->
        <doc>
            <cmn>
                <p>
                    CNC側がアラーム状態になっている時、その内容を読み出します。
                    本関数は Series 150i, 300iのアラームステータスが全て読めるように<a href="misc/cnc_alarm.htm" target="_parent">cnc_alarm</a>を改良したものです。
                </p>
                <p>
                    アプリケーションプログラムでCNC側のアラーム状態を監視し、保守情報の表示や解除の手順のガイダンスの表示などに使用します。
                </p>
                <p>
                    CNCがシステムアラームの場合は、通信は一切不可能なため、アラームステータスの獲得は行えません。
                </p>
                <p>
                    CNC がシステムアラームの場合は、MMC-CNC間のデータのやり取りは一切不可能なため、アラームステータスの獲得は行えません。
                </p>
            </cmn>
            <!-- 300is -->
            <is>
                <cmn>
                    <p>
                        CNC側がアラーム状態になっている時、その内容を読み出します。
                        本関数は アラームステータスが全て読めるように<a href="misc/cnc_alarm.htm" target="_parent">cnc_alarm</a>を改良したものです。
                    </p>
                    <p>
                        アプリケーションプログラムでCNC側のアラーム状態を監視し、保守情報の表示や解除の手順のガイダンスの表示などに使用します。
                    </p>
                    <p>
                        CNC がシステムアラームの場合は、MMC-CNC間のデータのやり取りは一切不可能なため、アラームステータスの獲得は行えません。
                    </p>
                </cmn>
            </is>
        </doc>



        <!-- 引数 -->
        <argument>
            <common>
                <cmn>
                    <item>
                        <name>FlibHndl</name>
                        <type>in</type>
                        <content>
                            <p>
                                ライブラリハンドルです。詳細は、「<a href="handle.htm" target="_parent">ライブラリハンドル</a>」を参照して下さい。
                            </p>
                        </content>
                    </item>
                    <item>
                        <name>alarm</name>
                        <type>out</type>
                        <content>
                            <p>
                                アラームステータス情報を取得する変数のアドレスを指定します。
                            </p>
                            <dd><br/>
                                <ul>   
                                    <li>Series 150i</li>
                                        <table class="dd">
                                                <tr><td>#00</td> <td>:</td> <td>バックグラウンド用P/S</td>               <td>(BG)</td></tr>
                                                <tr><td>#01</td> <td>:</td> <td>フォアグラウンド用P/S</td>               <td>(PS)</td></tr>
                                                <tr><td>#02</td> <td>:</td> <td>オーバーヒート</td>                      <td>(OH)</td></tr>
                                                <tr><td>#03</td> <td>:</td> <td>サブCPUエラー</td>                       <td>(SB)</td></tr>
                                                <tr><td>#04</td> <td>:</td> <td>同期誤差過大エラー</td>                  <td>(SN)</td></tr>
                                                <tr><td>#05</td> <td>:</td> <td>パラメータ書込みスイッチオン</td>        <td>(SW)</td></tr>
                                                <tr><td>#06</td> <td>:</td> <td>オーバトラベル/外部データ入力エラー</td> <td>(OT)</td></tr>
                                                <tr><td>#07</td> <td>:</td> <td>PMCエラー</td>                           <td>(PC)</td></tr>
                                                <tr><td>#08</td> <td>:</td> <td>外部アラームメッセージ (1)</td>          <td>(EX)</td></tr>
                                                <tr><td>#09</td> <td>:</td> <td>(未使用) </td>                           <td>    </td></tr>
                                                <tr><td>#10</td> <td>:</td> <td>重症のP/S</td>                           <td>(SR)</td></tr>
                                                <tr><td>#11</td> <td>:</td> <td>(未使用)</td>                            <td>    </td></tr>
                                                <tr><td>#12</td> <td>:</td> <td>サーボアラーム</td>                      <td>(SV)</td></tr>
                                                <tr><td>#13</td> <td>:</td> <td>I/Oエラー</td>                           <td>(IO)</td></tr>
                                                <tr><td>#14</td> <td>:</td> <td>電源断が必要なパラメータの入力</td>      <td>(PW)</td></tr>
                                                <tr><td>#15</td> <td>:</td> <td>システムアラーム</td>                    <td>(SY)</td></tr>
                                                <tr><td>#16</td> <td>:</td> <td>外部アラームメッセージ (2)</td>          <td>(EX)</td></tr>
                                                <tr><td>#17</td> <td>:</td> <td>外部アラームメッセージ (3)</td>          <td>(EX)</td></tr>
                                                <tr><td>#18</td> <td>:</td> <td>外部アラームメッセージ (4)</td>          <td>(EX)</td></tr>
                                                <tr><td>#19</td> <td>:</td> <td>マクロアラーム</td>                      <td>(MC)</td></tr>
                                                <tr><td>#20</td> <td>:</td> <td>スピンドルアラーム</td>                  <td>(SP)</td></tr>
                                        </table>
                                        <table class="dd">
                                                <tr><td>#21〜31</td> <td>:</td> <td>(未使用)</td>                        <td></td>    </tr>
                                        </table>
                                    <li>Series 160i/180i/210i, 0i, Power Mate i (Ethernetのみ)</li>
                                        <table class="dd">
                                                <tr><td>#00</td> <td>:</td> <td>P/S100</td>                            </tr>
                                                <tr><td>#01</td> <td>:</td> <td>P/S000</td>                            </tr>
                                                <tr><td>#02</td> <td>:</td> <td>P/S101</td>                            </tr>
                                                <tr><td>#03</td> <td>:</td> <td>P/Sその他</td>                         </tr>
                                                <tr><td>#04</td> <td>:</td> <td>オーバトラベルアラーム</td>            </tr>
                                                <tr><td>#05</td> <td>:</td> <td>オーバヒートアラーム</td>              </tr>
                                                <tr><td>#06</td> <td>:</td> <td>サーボアラーム</td>                    </tr>
                                                <tr><td>#07</td> <td>:</td> <td>システムアラーム</td>                  </tr>
                                                <tr><td>#08</td> <td>:</td> <td>APCアラーム</td>                       </tr>
                                                <tr><td>#09</td> <td>:</td> <td>スピンドルアラーム</td>                </tr>
                                                <tr><td>#10</td> <td>:</td> <td>P/S5000番台、パンチプレスアラーム</td> </tr>
                                                <tr><td>#11</td> <td>:</td> <td>レーザアラーム</td>                    </tr>
                                                <tr><td>#12</td> <td>:</td> <td>(未使用) </td>                         </tr>
                                                <tr><td>#13</td> <td>:</td> <td>リジッドタップアラーム</td>            </tr>
                                                <tr><td>#14</td> <td>:</td> <td>(未使用)</td>                          </tr>
                                                <tr><td>#15</td> <td>:</td> <td>外部アラームメッセージ</td>            </tr>
                                        </table>
                                        <table class="dd">
                                                <tr><td>#16〜31</td> <td>:</td> <td>(未使用)</td> </tr>
                                        </table>
                                    <li>Series 300i</li>
                                        <table class="dd">
                                                <tr><td>#00</td> <td>:</td> <td>パラメータ書込みスイッチオン</td>        <td>(SW)</td></tr>
                                                <tr><td>#01</td> <td>:</td> <td>電源断が必要なパラメータの入力</td>      <td>(PW)</td></tr>
                                                <tr><td>#02</td> <td>:</td> <td>I/Oエラー</td>                           <td>(IO)</td></tr>
                                                <tr><td>#03</td> <td>:</td> <td>フォアグラウンド用P/S</td>               <td>(PS)</td></tr>
                                                <tr><td>#04</td> <td>:</td> <td>オーバトラベル/外部データ入力エラー</td> <td>(OT)</td></tr>
                                                <tr><td>#05</td> <td>:</td> <td>オーバーヒート</td>                      <td>(OH)</td></tr>
                                                <tr><td>#06</td> <td>:</td> <td>サーボアラーム</td>                      <td>(SV)</td></tr>
                                                <tr><td>#07</td> <td>:</td> <td>データ入出力のエラー</td>                <td>(SR)</td></tr>
                                                <tr><td>#08</td> <td>:</td> <td>マクロアラーム</td>                      <td>(MC)</td></tr>
                                                <tr><td>#09</td> <td>:</td> <td>スピンドルアラーム</td>                  <td>(SP)</td></tr>
                                                <tr><td>#10</td> <td>:</td> <td>その他のアラーム</td>                    <td>(DS)</td></tr>
                                                <tr><td>#11</td> <td>:</td> <td>誤動作防止機能に関するアラーム</td>      <td>(IE)</td></tr>
                                                <tr><td>#12</td> <td>:</td> <td>バックグラウンド用P/S</td>               <td>(BG)</td></tr>
                                                <tr><td>#13</td> <td>:</td> <td>同期誤差過大エラー</td>                  <td>(SN)</td></tr>
                                                <tr><td>#14</td> <td>:</td> <td>予約</td>                                <td>    </td></tr>
                                                <tr><td>#15</td> <td>:</td> <td>外部アラームメッセージ</td>              <td>(EX)</td></tr>
                                                <tr><td>#16</td> <td>:</td> <td>予約</td>                                <td>    </td></tr>
                                                <tr><td>#17</td> <td>:</td> <td>予約</td>                                <td>    </td></tr>
                                                <tr><td>#18</td> <td>:</td> <td>予約</td>                                <td>    </td></tr>
                                                <tr><td>#19</td> <td>:</td> <td>PMCエラー</td>                           <td>(PC)</td></tr>
                                        </table>
                                        <table class="dd">
                                                <tr><td>#20〜31</td> <td>:</td> <td>(未使用)</td> </tr>
                                        </table>
                                </ul>
                            </dd>
                        </content>
                    </item>
                </cmn>
            </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>alarm</name>
                            <type>out</type>
                            <content>
                                <p>アラームステータス情報を取得する変数のアドレスを指定します。</p>
                                <p>各ビットの意味は次の通りです。</p>
                                <table class="dd">
                                    <tr><td>#00</td> <td>:</td> <td>パラメータ書込みスイッチオン</td>        <td>(SW)</td> </tr>
                                    <tr><td>#01</td> <td>:</td> <td>電源断が必要なパラメータの入力</td>      <td>(PW)</td> </tr>
                                    <tr><td>#02</td> <td>:</td> <td>I/Oエラー</td>                           <td>(IO)</td> </tr>
                                    <tr><td>#03</td> <td>:</td> <td>フォアグラウンド用P/S</td>               <td>(PS)</td> </tr>
                                    <tr><td>#04</td> <td>:</td> <td>オーバトラベル/外部データ入力エラー</td> <td>(OT)</td> </tr>
                                    <tr><td>#05</td> <td>:</td> <td>オーバーヒート</td>                      <td>(OH)</td> </tr>
                                    <tr><td>#06</td> <td>:</td> <td>サーボアラーム</td>                      <td>(SV)</td> </tr>
                                    <tr><td>#07</td> <td>:</td> <td>データ入出力のエラー</td>                <td>(SR)</td> </tr>
                                    <tr><td>#08</td> <td>:</td> <td>マクロアラーム</td>                      <td>(MC)</td> </tr>
                                    <tr><td>#09</td> <td>:</td> <td>スピンドルアラーム</td>                  <td>(SP)</td> </tr>
                                    <tr><td>#10</td> <td>:</td> <td>PSアラームにならないOTアラーム</td>      <td>(DS)</td> </tr>
                                    <tr><td>#11</td> <td>:</td> <td>誤動作防止機能に関するアラーム</td>      <td>(IE)</td> </tr>
                                    <tr><td>#12</td> <td>:</td> <td>バックグラウンド用P/S</td>               <td>(BG)</td> </tr>
                                    <tr><td>#13</td> <td>:</td> <td>同期誤差過大エラー</td>                  <td>(SN)</td> </tr>
                                    <tr><td>#14</td> <td>:</td> <td>予約</td>                                <td>    </td> </tr>
                                    <tr><td>#15</td> <td>:</td> <td>外部アラームメッセージ</td>              <td>(EX)</td> </tr>
                                    <tr><td>#16</td> <td>:</td> <td>予約</td>                                <td>    </td> </tr>
                                    <tr><td>#17</td> <td>:</td> <td>予約</td>                                <td>    </td> </tr>
                                    <tr><td>#18</td> <td>:</td> <td>予約</td>                                <td>    </td> </tr>
                                    <tr><td>#19</td> <td>:</td> <td>PMCエラー</td>                           <td>(PC)</td> </tr>
                                </table>
                                <table class="dd">
                                    <tr><td>#20〜31</td> <td>:</td> <td>(未使用)</td> </tr>
                                </table>
                            </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>
                  <dd>上記２つの機能は必要ありません。</dd>
                  <p>イーサネットボードを使用のとき、</p>
                  <dd>イーサネット機能のみ必要です。</dd>
            </ethr>
        </option>



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



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



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



        <!-- 参照 -->
        <reference>
            <item>
                <name>cnc_alarm</name>
                <file>misc/cnc_alarm.htm</file>
            </item>
            <item>
                <name>cnc_rdalminfo</name>
                <file>misc/cnc_rdalminfo.htm</file>
            </item>
            <item>
                <name>cnc_rdalmmsg</name>
                <file>misc/cnc_rdalmmsg.htm</file>
            </item>
            <!-- 300is -->
            <is>
                <item>
                    <name>cnc_alarm</name>
                    <file>misc/cnc_alarm.htm</file>
                </item>
                <item>
                    <name>cnc_rdalminfo</name>
                    <file>misc/cnc_rdalminfo.htm</file>
                </item>
            <!--  isには無し
                <item>
                    <name>cnc_rdalmmsg</name>
                    <file>misc/cnc_rdalmmsg.htm</file>
                </item>
            -->
            </is>
        </reference>



        <!-- プログラム例 -->
        <example>
<vc><![CDATA[
以下のプログラムは発生中のアラームの種類を表示します。
(Series 160i/180i/210i、0i、Power Mate i用)

#include "fwlib32.h"

void example( void )
{
        char *almmsg[] = {
                "P/S 100 ALARM","P/S 000 ALARM",
                "P/S 101 ALARM","P/S ALARM (1-255)",
                "OT ALARM",     "OH ALARM",
                "SERVO ALARM",  "SYSTEM ALARM",
                "APC ALARM",    "SPINDLE ALARM",
                "P/S ALARM (5000-)"
        } ;
        long alm ;
        unsigned short idx ;
        cnc_alarm2( h, &alm ) ;
        if ( alm == 0 )
                printf( "NO ALARM\n" ) ;
        else
                for ( idx = 0 ; idx < 11 ; idx++ ) {
                        if ( alm & 0x0001 )
                                printf( "%s\n", almmsg[idx] ) ;
                        alm >>= 1 ;
                }
}]]></vc>
        <!-- 300is -->
        <is></is>
        </example>



    </func>
</root>
