トップページ


ライブラリ全般

    1. ファイル構成
    2. WIN32 API関数呼び出し規約
    3. マルチスレッド対応
    4. 開発言語
    5. 構造体メンバのアライメント
    6. ヘッダファイル
    7. Visual Basic 6.0でユーザ定義型の配列を使用する場合
    8. データウィンドウでのCNCの軸数
    9. プログラム番号8桁対応 (Series 15i, 16/18)
    10. 関数仕様の違い (Series 15iと他のCNC(Series 16/18/21/0, Power Mate))
    11. 関数仕様の違い (Series 15-B、Series 15i)
    12. 関数仕様の違い (FS30iと他のCNC)
    13. FS30i本来の仕様(32軸)とFS16i互換(8軸)仕様
    14. HSSB版とEthernet版の相違点
    15. FS30iのフォルダ名/ファイル名の指定方法について

  1. ファイル構成
    FWLIB32.DLL : CNC/PMCデータウィンドウ統轄ライブラリ
    FWLIBE1.DLL : Ethernet用ライブラリ (*1)
    FWLIB150.DLL : HSSB用機種別ライブラリ(15-B用)
    FWLIB15i.DLL : HSSB用機種別ライブラリ(15i用)
    FWLIB160.DLL : HSSB用機種別ライブラリ(16/18/21用)
    FWLIB16W.DLL : HSSB用機種別ライブラリ(16i/18i-W用)
    FWLIB0i.DLL : HSSB用機種別ライブラリ(0i-A用)
    FWLIB0iB.DLL : HSSB用機種別ライブラリ(0i-B用)
    FWLIBPM.DLL : HSSB用機種別ライブラリ(Power Mate-D/H用)
    FWLIBPMi.DLL : HSSB用機種別ライブラリ(Power Mate i-D/H用)
    FWLIB30i.DLL : HSSB用機種別ライブラリ(30i/31i/32i用)
    FWLIB32.LIB : インポートライブラリ
    FWLIB32.H : C/C++用関数のプロトタイプ宣言、構造体宣言、戻り値の定義用ヘッダファイル (*2)(*3)(*4)
    FWLIB32.BAS : Visual Basic用関数のプロトタイプ宣言、構造体宣言、戻り値の宣言用ヘッダファイル (*2)(*3)(*4)

    (*1)Ethernet用ライブラリは、0i-B/C, 160i/180i/210i, 150i, Power Mate i-D/H および、300i/310i/320i で共通に使用できます。

    (*2)ヘッダファイルは、機種ごとにその内容が異なります。

    (*3)機種ごとのヘッダファイルは、HSSB、Ethernet共通に使用できます。

    (*4)Ethernet用のヘッダファイルは機種毎に区別ありません(定数を定義することによって機種ごとに使用できます)。

  2. WIN32 API関数呼び出し規約

    ライブラリの各関数は、WIN32 API呼び出し規約に従っています。従って、32ビット開発環境を持つVisual C++ や Visual Basicからの呼び出しが可能です。

  3. マルチスレッド対応

    Win32ではマルチスレッドがサポートされています。本ライブラリ中の関数は、複数のスレッドから同時に使用する事が可能です。単一の資源(CNC/PMCの内部メモリ等)への同時アクセスは、本ライブラリ中で排他制御が行われます。

  4. 開発言語

    データウィンドウライブラリは以下の開発言語で動作確認を行いました。

    • Visual C++ 6.0
    • Visual Basic 6.0

    なお、データウィンドウライブラリは、Microsoft社の開発ツールを使って作成されています。その他のベンダから出ている開発ツールと共に使った場合の動作は保証されていません。

  5. 構造体メンバのアライメント

    本ライブラリは、WIN32対応のため、「4バイトアライメント」で設計されています。

    4バイトアライメントでは、4バイト以上の長さのデータが4の倍数のアドレスに配置されます。例えば、

        struct {
            short   a1;     /* 2バイト長 */
            long    a2;     /* 4バイト長 */
        };
    

    のような構造体では、a1とa2との間に2バイトの隙間が空く事になります。また、構造体のサイズは4の倍数に切り上げられます。

    4バイトアライメントに変更した結果、構造体のサイズやメンバのオフセットが変わりました。それゆえ、16ビット版データウィンドウライブラリの仕様説明(「MMC-IV取扱説明書」中の記述)に書いてある情報に従って、構造体のサイズや、メンバのオフセットを計算で求めているプログラムは正しく動作しません。構造体のサイズは"sizeof(構造体)"で求めて下さい。

    ヘッダファイル FWLIB32.Hでは、"#pragma pack(4)"を使用して、構造体のアライメントを強制的に4バイトに指定しています。アプリケーションで、データウィンドウライブラリとのインタフェースのため、構造体をソース中で再定義する場合は、"#pragma pack(4)"を指定するか、コンパイラオプション"/Zp4"で4バイトアライメントを指定して下さい。

  6. ヘッダファイル

    本ライブラリの各関数は"dllexport"を指定して作成してあります。C/C++言語からこれらの関数を使用するには"dllimport"を指定する必要があります。

    ヘッダファイル FWLIB32.Hで、この指定を行っています。従って、ヘッダファイルをインクルードしないでアプリケーションを作成しようとした場合、リンクエラーになります。ヘッダファイルは、必ず使用して下さい。

  7. Visual Basic 6.0でユーザ定義型の配列を使用する場合

    Visual Basic 6.0でユーザ定義型の配列を使用する場合、次のように新たなユーザ定義型を定義してそのユーザ定義型を指定して下さい。

    例) cnc_rdprogdir3関数

    Type MyPrgDir3
        DirBuf(0 To 9) As PRGDIR3
    End Type' 読み取り個数=10の場合
    
    プログラム例
            以下のプログラムは全てのNCプログラムの登録状況を読みだし、その内容をファイルに出力します。
    
            Type MyPrgDir3
                DirBuf(0 To 99) As PRGDIR3
            End Type'
    
    
            Dim ret As Integer
            Dim prg As MyPrgDir3
            Dim i As Integer
            Dim num As Integer
            Dim top As Long
            Dim dir3 As String
    
            Open "C:\\temp\\sample.dat" For Output As #1
    
            top = 0
            Do
                num = 100
                ret = cnc_rdprogdir3(h, 0, top, num, prg)
                If ret = EW_NUMBER Then
                    Exit Do
                ElseIf ret <> 0 Then
                    dir3 = "ERROR: " + Format(ret, "###0")
                    Print #1, dir3
                    Exit Do
                End If
    
                For i = 0 To num - 1
                    dir3 = "O" + Format(prg.DirBuf(i).lNumber, "######0")
                    Print #1, dir3
                Next
                top = prg.DirBuf(num - 1).lNumber + 1
            Loop While (num >= 100)
    
            Close #1
    

    次のような指定をした場合、正しく動作しません(データが取得できない。アプリケーションエラーが発生する。等の現象が発生する)ので注意して下さい。

    Dim prg(0 To 9) As PRGDIR3
    ret = cnc_rdprogdir3(h, 0, top, num, prg)
    
  8. データウィンドウでのCNCの軸数
    最大軸数
    データウィンドウ用インタフェースの最大軸数
    制御軸数
    CNCシステムで現在制御している軸数

    最大軸数はヘッダファイルにてMAX_AXISと定義されています。この定数の値は使用するシステムによって異なります。必要に応じて、C/C++言語の場合、コンパイル時に-Dオプションにて、以下の文字定数を定義して下さい。

    • Ethernet版用ヘッダファイルを使用する場合
      Ethernet用のヘッダファイルは、次の -Dオプションで、全ての機種(HSSB, Ethernet共)に対応できます。
      HSSB用に使用する場合は、"HSSB_LIB" も定義して下さい。
      機種 定数(-D)
      FS16/18/21, 0i-B, 0i-C, 16i/18i-W, Power Mate i(8軸) (なし)
      FS30i/31i/32i(32軸) FS30D
      FS15-B/15i多軸(24軸) M_AXIS2
      FS15-B多軸(15軸) M_AXIS1
      FS15-B(10軸) FS15BD
      FS15i(10軸) FS15D
      FS0i-A(4軸) FS0ID
      Power Mate(6軸) PMD

      * FS15の場合は、シリーズにより、"FS15BD"(FS15-Bの場合)、"FS15D"(FS15iの場合) も定義して下さい。

      #if defined (FS30D)
      #define MAX_AXIS        32
      #elif defined (M_AXIS2)
      #define MAX_AXIS        24
      #elif defined(M_AXIS1)
      #define MAX_AXIS        15
      #elif defined (FS15BD)
      #define MAX_AXIS        10
      #elif defined (FS15D)
      #define MAX_AXIS        10
      #elif defined (FS0ID)
      #define MAX_AXIS        4
      #elif defined (PMD)
      #define MAX_AXIS        6
      #else
      #define MAX_AXIS        8
      #endif
      

    • Series 30i/31i/32i用ヘッダファイルを使用する場合
      システム 定数(-D)
      標準(32軸) (なし)
      #define MAX_AXIS        32
      

    • Series 15-B用ヘッダファイルを使用する場合
      システム 定数(-D)
      標準(10軸) (なし)
      多軸(15軸) M_AXIS1
      多軸(24軸) M_AXIS2
      #if defined(M_AXIS2)
      #define MAX_AXIS        24
      #elif defined(M_AXIS1)
      #define MAX_AXIS        15
      #else
      #define MAX_AXIS        10
      #endif
      

    • Series 15i用ヘッダファイルを使用する場合
      システム 定数(-D)
      標準(10軸) (なし)
      多軸(24軸) M_AXIS2
      #if defined(M_AXIS2)
      #define MAX_AXIS        24
      #else
      #define MAX_AXIS        10
      #endif
      

    • Series 16/18/21, 0i-B, 16i/18i-W, Power Mate i用ヘッダファイルを使用する場合
      システム 定数(-D)
      標準(8軸) (なし)
      #define MAX_AXIS        8
      

    • HSSB用Series 0i-A用ヘッダファイルを使用する場合
      システム 定数(-D)
      標準(4軸) (なし)
      #define MAX_AXIS        4
      

    • HSSB用Power Mate用ヘッダファイルを使用する場合
      システム 定数(-D)
      標準(6軸) (なし)
      #define MAX_AXIS        6
      

    Visual Basicの場合、Visual Basicのメニュー[ツール]→[オプション]→[詳細設定]→[条件付きコンパイル引数]にて、指定して下さい。

    制御軸数は、CNCシステム情報のリード(cnc_sysinfo)で取得できます。

  9. プログラム番号8桁対応 (Series 15i, 16/18)

    プログラム番号8桁対応の場合には、後述のウインドウ関数のプログラム番号に関連する引き数、及び構造体のメンバがshortからlongに変更されます。

    C/C++言語の場合、コンパイル時に-Dオプションにて文字定数ONO8Dを定義することにより、プログラム番号8桁対応用に切り替わります。

    システム 定数(-D)
    プログラム番号4桁 (なし)
    プログラム番号8桁 ONO8D

    Visual Basicの場合、プログラム番号8桁にするときは、Visual Basicのメニュー[ツール]→[オプション]→[詳細設定]→[条件付きコンパイル引数]にてONO8D=1と、指定して下さい。変数定義がない場合と、ONO8D=0を指定した場合はプログラム番号4桁となります。

    プログラム番号8桁用としてコンパイルしたウインドウ関数は、CNC側がプログラム番号4桁の場合にも正常に動作します。逆にプログラム番号4桁用ウインドウ関数をCNC側がプログラム番号8桁の場合に使用するとエラー(EW_FUNC)となります。

  10. 関数仕様の違い (Series 15iと他のCNC(Series 16/18/21/0, Power Mate))

    Series 15i用のアプリケーションを作成する場合、コンパイルオプション(FS15D)を指定する必要があります。

    C/C++言語の場合、コンパイル時に-Dオプションにて文字定数FS15Dを定義してください。Visual Basicの場合、VBのメニュー[ツール] → [オプション] → [詳細設定] → [条件付きコンパイル引数]にてFS15D=1と、指定して下さい。

    また、Series 15iと他のCNC(Series 16/18/21/0, Power Mate)とでは、関数の仕様が異なります。主な相違点は次の通りです。

    • 全軸指定のデータサイズ

      関数によっては、全軸指定のリード/ライトを行う場合、確保するデータのサイズが以下のように異なることがあります。

      Series 16/18/21/0, Power Mate:制御軸数分のサイズ
      Series 15:最大制御軸数分のサイズ

      関係する関数は以下の通りです。
      機能 関数名
      制御軸の絶対位置のリード cnc_absolute, cnc_absolute2
      制御軸の機械位置のリード cnc_machine
      制御軸の相対位置のリード cnc_relative, cnc_relative2
      制御軸の残移動量のリード cnc_distance
      制御軸のスキップ位置のリード cnc_skip
      制御軸のサーボ遅れ量のリード cnc_srvdelay
      制御軸の加減速遅れ量のリード cnc_accdecdly
      制御軸の相対位置のオリジン/プリセット cnc_wrrelpos
      ワーク座標系のプリセット cnc_prstwkcd
      ワーク原点オフセット量のリード cnc_rdzofs
      ワーク原点オフセット量のライト cnc_wrzofs
      パラメータのリード cnc_rdparam
      パラメータのライト cnc_wrparam
      セッティングデータのリード cnc_rdset
      セッティングデータのライト cnc_wrset
      ダイアグノーズデータのリード cnc_diagnoss

    • プログラム番号桁数

      Series 15iでは、プログラム番号が必ず8桁となります。

      よってSeries 15iでは、必ずAPIを8桁対応に切り替える必要があります。ライブラリをプログラム番号8桁に対応させる方法については、「プログラム番号8桁対応」を参照して下さい。関係する関数は以下の通りです。
      機能 関数名
      ダイナミックデータの一括リード cnc_rddynamic
      指定プログラムのサーチ cnc_search
      指定プログラムの削除 cnc_delete
      プログラムディレクトリのリード(2) cnc_rdprogdir2
      実行中のプログラム番号のリード cnc_rdprgnum

    • 工具番号桁数

      Series 15iでは、工具番号が必ず8桁となります。

      Series 15iでは、以下の表の工具番号4桁用の関数はサポートされていません。工具番号8桁用の関数を使用するようにしてください。
      機能 工具番号4桁用 工具番号8桁用
      工具寿命管理データ(工具グループ番号)のリード cnc_rdgrpid cnc_rdgrpid2
      工具寿命管理データ(工具長補正番号1)のリード cnc_rd1length cnc_rd1tlifedat2
      工具寿命管理データ(工具径補正番号1)のリード cnc_rd1radius
      工具寿命管理データ(工具情報1)のリード cnc_t1info
      工具寿命管理データ(工具データ1)のリード cnc_rd1tlifedata
      工具寿命管理データ(工具データ1)のライト cnc_wr1tlifedata cnc_wr1tlifedat2

    • 実数型パラメータ/実数型ダイアグノーズデータ

      Series 15iでは、パラメータ/ダイアグノーズデータに、実数型データが追加されています。

      以下の関数において、実数型データをサポートするために、Series 15iと他のCNCとでは、仕様が異なる部分があります。詳しくは各関数の説明を参照して下さい。
      機能 関数名
      パラメータのリード cnc_rdparam, cnc_rdparar
      パラメータのライト cnc_wrparam, cnc_wrparas
      パラメータ情報のリード cnc_rdparainfo
      セッティングデータのリード cnc_rdset, cnc_rdsetr
      セッティングデータのライト cnc_wrset, cnc_wrsets
      セッティングデータ情報のリード cnc_rdsetinfo
      ダイアグノーズデータのリード cnc_diagnoss, cnc_diagnosr
      ダイアグノーズデータ情報のリード cnc_rddiaginfo

    • アラームステータス

      他のCNCと異なり、Series 15iではアラームステータスが、"short"ではなく"long"になっています。

      Series 15iでも、以下のshortステータス用の関数を使用することはできますが、全てのアラームステータスを読み出すことはできません。できるだけlongステータス用の関数を使用するようにしてください。
      機能 shortステータス用 longステータス用
      ダイナミックデータの一括リード cnc_rddynamic cnc_rddynamic2
      アラームステータスのリード cnc_alarm cnc_alarm2

      アラームステータスの内容も、Series 15iと他のCNCとでは異なります。以下の関数を使用する際は注意してください。
      機能 関数名
      ダイナミックデータの一括リード cnc_rddynamic, cnc_rddynamic2
      操作履歴データのリード cnc_rdophistry, cnc_rdophistry2
      アラーム履歴データのリード cnc_rdalmhistry, cnc_rdalmhistry2
      アラームステータスのリード cnc_alarm, cnc_alarm2
      アラーム情報のリード cnc_rdalminfo
      アラームメッセージの一括リード cnc_rdalmmsg

    • 構造体

      以下の関数では、Series 15iと他のCNCとで、関数内で使用する構造体の内容が異なります。
      機能 関数名
      CNCステータス情報のリード cnc_statinfo
      アラーム情報のリード(※注) cnc_rdalminfo
      オペレータメッセージのリード cnc_rdopmsg
      ソフトウェアオペレーターズパネルの出力信号イメージのリード cnc_rdopnlsgnl
      ソフトウェアオペレーターズパネルの信号のライト cnc_wropnlsgnl
      (※注) Series 15が多軸(最大制御軸数=24軸)の場合のみ異なる。

    • 使用可能な関数

      以下の機能において、Series 15iと他のCNCとでは、使用する関数が異なります。
      機能 Series 16/18/21, Power Mate Series 15
      操作履歴データのリード cnc_rdophistry cnc_rdophistry2
      アラーム履歴データのリード cnc_rdalmhistry cnc_rdalmhistry2
      波形診断パラメータのリード cnc_rdwaveprm cnc_rdwaveprm2
      波形診断パラメータのライト cnc_wrwaveprm cnc_wrwaveprm2
      モーダルデータのリード cnc_modal cnc_rdgcode, cnc_rdcommand

      以下の関数は、Series 15iでのみ使用可能です。

      • 3次元ハンドル送り関係
      • 高速高精度設定関係
      • フィクスチャオフセット関係
      • プログラム再開用シーケンス番号のサーチ(2)(cnc_rstrseqsrch2)
      • ブロック再開情報のリード(cnc_rdbrstrinfo)
      • 内部位置補正データ関係
      • CNCタイマデータのリード/ライト(cnc_rdtimer, cnc_wrtimer)

      以下の関数は、Series 15iではサポートされていません。

      • Pコードマクロ変数関係
      • Mコードグループデータ関係
      • 干渉チェックデータ関係
      • ワークシフト(T系)関係
      • B軸制御関係
      • 工具寿命管理(グループ任意番号、残量設定値)のリード/ライト
      • 外部オペレータメッセージ履歴データ関係
      • スピンドル調整(同期制御モード)用データのリード(cnc_rdposerrs2, cnc_rdsynerrsy)
      • パンチプレス/レーザ関係
  11. 関数仕様の違い (Series 15-Bと Series15i)

      Series 15-B と Series 15i では、ライブラリ関数の仕様が異なる部分がありますので、使用の際にはご注意下さい。主な相違点は次の通りです。

    • プログラム番号桁数

      プログラム番号桁数に関して、CNC側の仕様が異なります。

      Series 15-B :プログラム番号4桁
      Series 15i:プログラム番号8桁

      これにともない、Series 15iでは必ず APIを8桁対応に切り替える必要があります。ライブラリをプログラム番号8桁に対応させる方法について は、プログラム番号8桁対応 (Series 15i, 16/18)を参照して下さい。

      以下の関数が関係します。
      機能 関数名
      ダイナミックデータの一括リード cnc_rddynamic2
      NC指令データのリードの開始 cnc_upstart
      指定プログラムのサーチ cnc_search
      指定プログラムの削除 cnc_delete
      プログラムディレクトリのリード cnc_rdprogdir
      プログラムディレクトリのリード(2) cnc_rdprogdir2
      実行中のプログラム番号のリード cnc_rdprgnum

    • 工具番号桁数

      工具番号桁数に関して、CNC側の仕様が異なります。

      Series 15-B :工具番号4桁
      Series 15i:工具番号8桁

      これにともない、Series 15iでは以下の関数が使用できなくなりました。代用関数に関しては、後述します。
      機能 関数名
      工具寿命管理データ(工具グループ番号)のリード cnc_rdgrpid
      工具寿命管理データ(工具長補正番号1)のリード cnc_rd1length
      工具寿命管理データ(工具径補正番号1)のリード cnc_rd1radius
      工具寿命管理データ(工具情報1)のリード cnc_t1info
      工具寿命管理データ(工具データ1)のリード cnc_rd1tlifedata
      工具寿命管理データ(工具データ1)のライト cnc_wr1tlifedata

    • 実数形パラメータ/実数形ダイアグノーズデータ

      Series 15i では、実数形パラメータと実数形ダイアグノーズデータが新たに追加れました。これらのデータをリード/ライトするため、以下の関数のデータを格納する構造体に変更があります。
      機能 関数名
      パラメータのリード cnc_rdparam
      パラメータのライト cnc_wrparam
      パラメータのリード(範囲指定) cnc_rdparar
      パラメータのライト(複数個指定) cnc_wrparas
      パラメータ情報のリード cnc_rdparainfo
      セッティングデータのリード cnc_rdset
      セッティングデータのライト cnc_wrset
      セッティングデータのリード(範囲指定) cnc_rdsetr
      セッティングデータのライト(複数個指定) cnc_wrsets
      セッティングデータ情報のリード cnc_rdsetinfo
      ダイアグノーズデータのリード cnc_diagnoss
      ダイアグノーズデータのリード(範囲指定) cnc_diagnosr
      ダイアグノーズデータ情報のリード cnc_rddiaginfo

      Series 15-B で使用していた関数が Series 15i でも使用可能か、以下にまとめます。下記関数以外でも、Series 15-B と Series 15i とで仕様が異なる関数がありますので、詳しくは各関数の説明を参照して下さい。

    • CNC:制御軸/主軸関係
      関数名(15-B) 機能 Series 15i での対応
      cnc_rddynamic ダイナミックデータの一括リード プログラム番号8桁にアプリケーションで対応する必要があります。また、本関数を使用することはできますが、Series 15i の全てのアラームステータスを読み出すことはできません。なるべく cnc_rddynamic2を使用して下さい。

    • CNC:プログラム関係
      関数名(15-B) 機能 Series 15i での対応
      cnc_dncstart 運転用NC指令データの出力の開始 使用できません。
      cnc_dnc 運転用NC指令データの出力
      cnc_cdnc 運転用NC指令データの出力(条件付)
      cnc_dncend 運転用NC指令データの出力の終了
      cnc_rdmdipntr MDI運転用実行ポインタのリード
      cnc_wrmdipntr MDI運転用実行ポインタのライト
      cnc_upstart NC指令データのリードの開始 プログラム番号8桁にアプリケーションで対応する必要があります。
      cnc_search 指定プログラムのサーチ
      cnc_delete 指定プログラムの削除
      cnc_rdprogdir プログラムディレクトリのリード
      cnc_rdprogdir2 プログラムディレクトリのリード(2)
      cnc_rdprgnum 実行中のプログラム番号のリード

    • CNC:NC用ファイルデータ関係
      関数名(15-B) 機能 Series 15i での対応
      cnc_rdparam パラメータのリード 実数形パラメータを扱うためデータを格納する構造体に変更があります。
      cnc_wrparam パラメータのライト
      cnc_rdparar パラメータのリード(範囲指定)
      cnc_wrparas パラメータのライト(複数個指定)
      cnc_rdparainfo パラメータ情報のリード
      cnc_rdset セッティングデータのリード
      cnc_wrset セッティングデータのライト
      cnc_rdsetr セッティングデータのリード(範囲指定)
      cnc_wrsets セッティングデータのライト(複数個指定)
      cnc_rdsetinfo セッティングデータ情報のリード
      cnc_rdhpccset 高速高精度加工設定データのリード 使用できません。パラメータのリード/ライト(cnc_rdparam, cnc_wrparam, cnc_rdparar, cnc_wrparas)で代用可能です。
      cnc_wrhpccset 高速高精度加工設定データのライト
      cnc_rdhpcctupr 高速高精度加工調整データ(パラメータ入力)のリード
      cnc_wrhpcctupr 高速高精度加工調整データ(パラメータ入力)のライト
      cnc_rdhpcctuac 高速高精度加工調整データ(加速度入力)のリード
      cnc_wrhpcctuac 高速高精度加工調整データ(加速度入力)のライト

    • CNC:工具寿命管理データ関係
      関数名(15-B) 機能 Series 15i での対応
      cnc_rdgrpid 工具グループ番号のリード 使用できません。cnc_rdgrpid2 を使用して下さい。
      cnc_rd1length 工具長補正番号1のリード 使用できません。cnc_rd1tlifedat2 で代用できます。
      cnc_rd1radius 工具径補正番号1のリード 使用できません。cnc_rd1tlifedat2 で代用できます。
      cnc_t1info 工具情報1のリード 使用できません。cnc_rd1tlifedat2 で代用できます。
      cnc_rd1tlifedata 工具データ1のリード 使用できません。cnc_rd1tlifedat2 を使用して下さい。
      cnc_wr1tlifedata 工具データ1のライト 使用できません。cnc_wr1tlifedat2 を使用して下さい。

    • CNC:履歴データ関係
      関数名(15-B) 機能 Series 15i での対応
      cnc_rdophistry 操作履歴データのリード 使用できません。cnc_rdophistry2 を使用して下さい。
      cnc_rdalmhistry アラーム履歴データのリード 使用できません。cnc_rdalmhistry2 を使用して下さい。

    • CNC:サーボ/スピンドル関係
      関数名(15-B) 機能 Series 15i での対応
      cnc_rdwaveprm 波形診断パラメータのリード 使用できません。cnc_rdwaveprm2 を使用して下さい。
      cnc_wrwaveprm 波形診断パラメータのライト 使用できません。cnc_wrwaveprm2 を使用して下さい。

    • CNC:その他
      関数名(15-B) 機能 Series 15i での対応
      cnc_sysconfig CNCシステム構成情報のリード 使用できません。cnc_rdsyssoft を使用して下さい。
      cnc_rdmdlconfig CNCモジュール構成情報のリード 使用できません。cnc_rdmdlconfig2 を使用して下さい。
      cnc_alarm アラームステータスのリード 本関数を使用することはできますが、Series 150i の全てのアラームステータスを読み出すことはできません。なるべく cnc_alarm2 を使用して下さい。
      cnc_modal モーダルデータのリード 使用できません。nc_rdgcode, cnc_rdcommand を使用して下さい。
      cnc_diagnoss ダイアグノーズデータのリード 実数形ダイアグノーズデータを扱うため、データを格納する構造体に変更があります。
      cnc_diagnosr ダイアグノーズデータのリード(範囲指定)
      cnc_rddiaginfo ダイアグノーズデータ情報のリード

    • PMC関係
      関数名(15-B) 機能 Series 15i での対応
      pmc_rdmsg PMCからMMCへの通信−リード 使用できません。
      pmc_wrmsg MMCからPMCへの通信−ライト
      pmc_crdmsg PMCからMMCへの通信−条件付リード
      pmc_cwrmsg MMCからPMCへの通信−条件付ライト
  12. 関数仕様の違い (Series 30iと他のCNC)

      従来のライブラリ(Series 30i以外)とSeries 30i用のライブラリとでは、関数の仕様が異なる部分がありますので、使用の際にはご注意下さい。主な相違点は次の通りです。

    • 全軸指定のデータサイズ

      関数によっては、全軸指定のリード/ライトを行う場合、確保するデータのサイズが以下のように異なることがあります。

      従来のライブラリ :実制御軸数分のサイズ
      Series 30i用ライブラリ:インタフェースの最大軸数

      最大軸数はヘッダファイルにて MAX_AXIS(=32) と定義されています。

      関係する関数は以下の通りです。
      機能 関数名
      制御軸の絶対位置のリード cnc_absolute, cnc_absolute2
      制御軸の機械位置のリード cnc_machine
      制御軸の相対位置のリード cnc_relative, cnc_relative2
      制御軸の残移動量のリード cnc_distance
      制御軸のスキップ位置のリード cnc_skip
      制御軸のサーボ遅れ量のリード cnc_srvdelay
      制御軸の加減速遅れ量のリード cnc_accdecdly
      制御軸の相対位置のオリジン/プリセット cnc_wrrelpos
      ワーク座標系のプリセット cnc_prstwkcd
      ワーク原点オフセット量のリード cnc_rdzofs
      ワーク原点オフセット量のライト cnc_wrzofs
      パラメータのリード cnc_rdparam
      パラメータのライト cnc_wrparam
      セッティングデータのリード cnc_rdset
      セッティングデータのライト cnc_wrset
      ダイアグノーズデータのリード cnc_diagnoss

    • 主軸関連のデータサイズ

      Series 30i では、最大主軸数が4から8に拡張されるのに伴い、主軸関連の関数において、確保するデータのサイズが異る場合があります。

      最大主軸数はヘッダファイルにて MAX_SPINDLES(=8) と定義されています。

      関係する関数は以下の通りです。
      機能 関数名
      スピンドルの負荷情報のリード cnc_rdspload
      スピンドルの最高回転数比のリード cnc_rdspmaxrpm
      スピンドルのギヤ比のリード cnc_rdspgear
      実主軸回転数(S)のリード2 cnc_acts2
      スピンドル設定用運転モードのリード cnc_rdopmode
      スピンドル調整用位置偏差Sのリード cnc_rdposerrs
      スピンドルアラームのリード cnc_rdspdlalm
      スピンドルモニタ用制御入力信号 cnc_rdctrldi
      スピンドルモニタ用制御出力信号のリード cnc_rdctrldo

    • プログラム関連

      これまでのO番号による管理から、ファイル名/階層化ディレクトリによる管理となり、関数仕様が一新されました。

    • 実数型パラメータ/実数型ダイアグノーズデータ

      Series 30iでは、実数型パラメータと実数型ダイアグノーズデータが新たに追加されました。これらのデータをリード/ライトするため、以下の関数のデータを格納する構造体に変更があります。

      関係する関数は以下の通りです。
      機能 関数名
      パラメータのリード cnc_rdparam
      パラメータのライト cnc_wrparam
      パラメータのリード(範囲指定) cnc_rdparar
      パラメータのライト(複数個指定) cnc_wrparas
      パラメータ情報のリード cnc_rdparainfo
      セッティングデータのリード cnc_rdset
      セッティングデータのライト cnc_wrset
      セッティングデータのリード(範囲指定) cnc_rdsetr
      セッティングデータのライト(複数個指定) cnc_wrsets
      セッティングデータ情報のリード cnc_rdsetinfo
      ダイアグノーズデータのリード cnc_diagnoss
      ダイアグノーズデータのリード(範囲指定) cnc_diagnosr
      ダイアグノーズデータ情報のリード cnc_rddiaginfo

    • CNCアラーム

      Series 30iではアラームステータスは32ビットになります。cnc_alarm 関数はサポートされていますが、Series 30i の全てのアラームステータスを読み出すことはできません。なるべく cnc_alarm2 を使用して下さい。

      アラームステータスの内容も、FOCAS1とは異なります。

      また、cnc_rdalminfo 関数で使用する構造体内の軸情報を格納する領域が short から long に拡張されています。

    • モーダル/指令値

      cnc_modal 関数はサポートされていますが、Series 30i の拡張された全てのモーダル/指令値の情報を読み出すことはできません。なるべく cnc_rdgocde, cnc_rdcommand を使用して下さい。

      cnc_modal 関数の読み出し対象のブロックで、次の次のブロック(=2)は指定できません。

      指令値(主にI,J,K)の12桁化に伴い、4バイト整数変換でオーバフローするデータは丸められ、小数点以下桁数がセットされます。このため、Fコード以外でも小数点以下桁数がセットされる場合があります。

      小数点以下桁数が負になる場合もあり、これに伴い小数点以下桁数を従来の符号なし3ビットから8ビット符号付整数としています。

  13. FS30i本来の仕様(32軸)とFS16i互換(8軸)仕様

    FS30i本来の仕様とFS16i互換仕様を、内部でアドバンスド/トラディショナルというモードで切り替えます。(仕様の切り替えは、cnc_setlibopt関数を使用します。)デフォルトは、アドバンスドモードです。

    各モードの仕様は、以下の様になります。
    項目 アドバンスドモード トラディショナルモード
    最大制御軸数 32 8
    最大制御スピンドル数 8 4
    全軸指定のリード/ライト 確保するバッファのサイズは常に最大制御軸数分のサイズ FS16同様、範囲指定でなければ現在の制御軸数分のサイズ
    パラメータ/ダイアグノーズの実数型 小数点付き8バイト 4バイトの整数へ変換
    アラームステータス 32ビット 16ビット

    ここで言う軸数とは、軸関連データのアクセスに使用するバッファ数のことを示します。

    トラディショナルモードは、以下の場合には使用できません。

    • 系統内の制御軸数が8を超える場合
    • 系統内の制御スピンドル数が4を超える場合

    アドバンスドモードとトラディショナルモードでは、以下の様にデータ構造が異なります。

    • パラメータ/ダイアグノーズ

      トラディショナルモードでは、実数型パラメータ/ダイアグノーズは最小設定単位を1桁目とした2ワード整数型に擬似的に扱われます。

        例)1.230の場合 : データ=1230、小数点以下桁数=3
      

      アドバンスドモードでは、FS30iのパラメータ/ダイアグノーズのサポートに伴い、ライブラリ関数を一部拡張します(太線部)。トラディショナルモードでは、この拡張部分が入出力されることはありません。

      cnc_rdparar, cnc_wrparas「構造体IODBPSDのtype」の説明から
      type : リードしたパラメータの属性が格納されます。
      0 : ビット型
      1 : バイト型
      2 : ワード型
      3 : 2ワード型
      4:実数型
      cnc_diagnosr「構造体ODBDGNのtype」の説明から
      type : パラメータの属性が格納されます。
      0 : バイト型
      1 : ワード型
      2 : 2ワード型
      3 : ビット型(8 bit)
      4 : ビット型(1 bit)
      5:実数型
      cnc_rdparainfo「構造体ODBPARAIFのprm_type」の説明から
      info[N].prm_type : パラメータの属性、以下の属性が設定されます。
      bit 0,1 : 型属性
      0 : ビット型
      1 : バイト型
      2 : ワード型
      3 : 2ワード、または実数型
      :
      :
      bit 12 : 型属性3のとき
      0 : 実数型以外
      1 : 実数型
      cnc_rddiaginfo「構造体ODBDIAGIFのdiag_type」の説明から
      info[N].prm_type : パラメータの属性、以下の属性が設定されます。
      bit 0,1 : 型属性(bit 3 = 0 のとき、有効)
      0 : ビット型 (8 bit)
      1 : バイト型
      2 : ワード型
      3 : 2ワード、または実数型
      :
      :
      bit 12 : 型属性3のとき
      0 : 実数型以外
      1 : 実数型
    • アラームステータス

      16ビットアラームステータスで全てのアラーム情報を取得できるようにするために、トラディショナルモードでは、cnc_alarm2関数の32ビットアラームステータスの上位ワード(ビット16から31)のアラームが発生すると、cnc_alarm関数の16ビットアラームステータスのビット14が立ちます。アドバンスドモードでは、ビット14は予約です。

      #00 : パラメータ書込みスイッチオン (SW)
      #01 : 電源断が必要なパラメータの入力 (PW)
      :
      :
      #13 : 同期誤差過大エラー (SN)
      #14 : その他(#16〜#31が発生)
      #15 : 外部アラームメッセージ (EX)

      このとき、cnc_rdalminfo関数のアラーム種類に14を指定すれば、ビット16〜31のアラーム情報が取得できます。

  14. HSSB版とEthernet版の相違点
    • 関数の戻り値に、EW_SOCKET、EW_PROTOCOL、EW_ALARM、EW_STOPの4つが追加されています。
       
    • 以下の表のHSSBの関数はサポートされていません。表右の関数を使用するようにしてください。
      機能 HSSB Ethernet
      ライブラリハンドルの取得 cnc_allclibhndl、cnc_allclibhndl2 cnc_allclibhndl3
      登録用NC指令データの出力の開始 cnc_dwnstart cnc_dwnstart3
      登録用NC指令データの出力 cnc_download、cnc_cdownload cnc_download3
      登録用NC指令データの出力の終了 cnc_dwnend cnc_dwnend3
      運転用NC指令データの出力の開始 cnc_dncstart cnc_dncstart2
      運転用NC指令データの出力 cnc_dnc、cnc_cdnc cnc_dnc2
      運転用NC指令データの出力の終了 cnc_dncend cnc_dncend2
      NC指令データのリードの開始 cnc_upstart cnc_upstart3
      NC指令データのリード cnc_upload、cnc_cupload cnc_upload3
      NC指令データのリードの終了 cnc_upend cnc_upend3

       
    • 以下の関数は、Ethernet版ではサポートされていません。
      • データサーバ, DNC1, DNC2, OSI-Ethernet関係
      • サーボ学習データ関係
      • ラダーとのメッセージ転送(pmc_rdmsg、pmc_wrmsg)
      • PROFIBUS-DP関係

       
    • Ethernet版では、NCのBOOT/IPL機能(SRAMバックアップ/リストア、システムソフトの入れ替え等)はサポートされていません。
       
    • Ethernet版では、ローダ制御ボード(5系統目)はアクセスできません(FS30iは除く)。
       
    • 1つのCNCに対して、同時にアクセスできるアプリケーションの数には制限があります。詳しくは、「イーサネットボードとの通信」をご覧下さい。
  15. FS30iのフォルダ名/ファイル名の指定方法について

    FS30iでは、フォルダ名は "ドライブ名+フォルダ文字列" のように指定します。

    また、ファイル名は "ドライブ名+フォルダ文字列+ファイル名" のように指定します。


    フォルダ名の場合には、文字列の最後に"/"(スラッシュ)を置いてください。 "/"がない場合はファイル名とみなされます。

    形式は以下のようになります。

    • //ドライブ名/フォルダ文字列1/フォルダ文字列2/.../フォルダ文字列n/ファイル名

    例1) CNCメモリのフォルダ "USER/PATH1" の指定

    • //CNC_MEM/USER/PATH1/

    例2) データサーバのフォルダ "NCDATA/MACHINE1" にある "PART1.PRG" ファイルの指定

    • //DATA_SV/NCDATA/MACHINE1/PART1.PRG

    なお、ドライブ名称は、cnc_rdpdf_drive関数で取得できます。


トップページ