Top Page


General Description

    1. Library files
    2. Calling convention of API
    3. Multi-thread
    4. Language for development
    5. Alignment of structure member
    6. Header file
    7. When you use the array of the 'user definition type' with Visual Basic 6.0
    8. Number of axes at Data window
    9. Program number 8 digits (Series 15i, 16/18)
    10. Difference of the function specifications (Series 15 and other CNCs (Series 16/18/21/0, Power Mate))
    11. Difference of the function specifications (Series 15-B, Series 15i)
    12. Difference of the function specifications (Series 30i, 0i-D/F, PMi-A and other CNCs)
    13. Difference of the function specifications (Series 30i-A, Series 30i-B)
    14. Advanced mode(32 axes) and traditional mode(8 axes) for FS30i
    15. Difference of the HSSB version and the Ethernet version
    16. Specifying the folder and file name for FS30i, 0i-D/F and PMi-A.
    17. Non-volatile memory for FS30i, 0i-D/F and PMi-A


  1. Library files
    FWLIB32.DLL : CNC/PMC Data window control library
    FWLIBE1.DLL : Processing library for TCP/IP (*1)
    FWLIB150.DLL : Processing library of HSSB for 15-B
    FWLIB15i.DLL : Processing library of HSSB for 15i
    FWLIB160.DLL : Processing library of HSSB for 16/18/21
    FWLIB16W.DLL : Processing library of HSSB for 16i/18i-W
    FWLIB0i.DLL : Processing library of HSSB for 0i-A
    FWLIB0iB.DLL : Processing library of HSSB for 0i-B
    FWLIB0iD.DLL : Processing library of HSSB for 0i-D
    FWLIBPM.DLL : Processing library of HSSB for Power Mate-D/H
    FWLIBPMi.DLL : Processing library of HSSB for Power Mate i-D/H
    FWLIB30i.DLL : Processing library of HSSB for 30i/31i/32i/35i,0i-F,PMi-A
    FWLIBNCG.DLL : Processing library of HSSB for NCGuide(31i/32i/35i,0i-F)
    FWLIB0DN.DLL : Processing library of HSSB for NCGuide(0i-D)
    FWLIB32.LIB : Import library
    FWLIB32.H : C/C++ header file for CNC/PMC data window functions and structures (*2)(*3)(*4)
    FWLIB32.BAS : Visual Basic header file for CNC/PMC data window functions and structures (*2)(*3)(*4)
    FWLIB64.DLL : CNC/PMC Data window control library
    FWLIBE64.DLL : Processing library for TCP/IP (*1)
    FWLIB0iD64.DLL : Processing library of HSSB for 0i-D
    FWLIB30i64.DLL : Processing library of HSSB for 30i/31i/32i/35i,0i-F,PMi-A
    FWLIBNCG64.DLL : Processing library of HSSB for NCGuide(31i/32i/35i,0i-F)
    FWLIB0DN64.DLL : Processing library of HSSB for NCGuide(0i-D)
    FWLIB64.LIB : Import library
    FWLIB64.H : C/C++ header file for CNC/PMC data window functions and structures (*2)(*3)(*4)

    (*1)Processing library for TCP/IP can be used with 0i-B/C/D/F, 16i/18i/21i, 15i, Power Mate i-D/H, Power Motion i-A, FS30i/31i/32i/35i and NCGuide.

    (*2)The header file is different in each CNC model.

    (*3)The header file for each CNC model can be used by both of HSSB and TCP/IP.

    (*4)The header file for TCP/IP is common for the HSSB and the Ethernet version. This file can be used to all CNC models by defining the constant.

  2. Calling convention of API

    This manual describes the interface of Data window library. Each function of 32 bit Data window library follows the calling convention of Win32 API. So, each function of this library can be called from 32 bit application development tools, such as Visual C++ or Visual Basic.

    This manual describes the interface of Data window library. Each function of 64 bit Data window library follows the calling convention of x64 API. So, each function of this library can be called from 64 bit application development tools, such as Visual C++.

  3. Multi-thread

    Win32/x64 supports multi-thread. Each function in this library can be called from the multiple threads at a time. The access to the single system resource, such as CNC/PMC's internal memory, at a time is exclusively controlled by this library.

  4. Language for development

    CNC/PMC Data window library is tested by using the following development language.

    • 32 bit version
      - Visual C++ 6.0
      - Visual Basic 6.0
    • 64 bit version
      - Visual Studio 2010

    Besides, Data window library is developed with using Microsoft's development tools. The validity of using this library with other vendor's development tools has not been confirmed.

  5. Alignment of structure member

    This library is designed to use the 4 byte structure member alignment.

    In 4 byte alignment, variables whose size are longer than 4 byte are aligned at the address of multiple of 4. For example, at the following structure,

        struct {
            short   a1;     /* 2 bytes */
            long    a2;     /* 4 bytes */
        };
    

    there is 2 byte gap between variable a1 and a2. And the size of structure is raised to multiple of 4.

    By introducing 4 byte alignment, the size of structures and offset of its members are different from those of 2 byte alignment. Therefore, the application program which uses the size of structures and offset of its members by calculating according to the information described on "FANUC MMC-IV OPERATOR'S MANUAL" will not work correctly. The size of structures should be obtained by using sizeof() operator.

    In the header file, FWLIB32.H or FWLIB64.H, the alignment at each structure is specified as 4 byte compulsorily by using "pragma pack(4)". In case that the structures which are required as the application interface with data window library have to be re-defined at user source program, specify "pragma pack(4)" or compiler option "/Zp4".

  6. Header file

    Data window library is configured by specifying "dllexport" to each function. To use the functions of this library at C or C++ language, "dllimport" must be specified to each function. The header file, FWLIB32.H or FWLIB64.H, provides this attribute.

    As the link error should occur while making the application unless it includes this header file, it is required that the header file is included in the application program.

  7. When you use the array of the 'user definition type' with Visual Basic 6.0

    When you use the array of the 'user definition type' with Visual Basic 6.0, you should be define the following new 'user definition type'.

    Ex) cnc_rdprogdir3 function

    Type MyPrgDir3
        DirBuf(0 To 9) As PRGDIR3
    End Type' In case that the number is 10.
    
    Example
            The following program reads all registration information of NC program, and outputs the program number list.
    
            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
    

    When you specified the following, the function do not work correctly(the acquired data was wrong or application error occurred etc.).

    Dim prg(0 To 9) As PRGDIR3
    ret = cnc_rdprogdir3(h, 0, top, num, prg)
    
  8. Number of axes at Data window
    Maximum controlled axes
    maximum number of axes for Data window interface
    Current controlled axes
    number of axes controlled by CNC system currently

    Maximum controlled axes is defined as 'MAX_AXIS' in the header file. It differs at each CNC system, so, define the following constant by using the '-D' option which is specified on compiling.

    • In case of header file for TCP/IP
      The header file for TCP/IP can be used to all CNC models(both of HSSB and TCP/IP) by the following -D option.
      Please define "HSSB_LIB" when you use this header file for HSSB.
      System Option(-D)
      FS16/18/21, 0i-B, 0i-C, 16i/18i-W, Power Mate i(8 axes)(none)
      FS0i-D(32 axes) FS0IDD
      FS30i/31i/32i/35i, 0i-F, PMi-A(32 axes) FS30D
      FS15-B/15i Multi axes(24 axes) M_AXIS2
      FS15-B Multi axes(15 axes) M_AXIS1
      FS15-B(10 axes) FS15BD
      FS15i(10 axes) FS15D
      FS0i-A(4 axes) FS0ID
      Power Mate(6 axes) PMD

      note) In case of FS15, please define "FS15BD"(For FS15-B) or "FS15D"(For FS15i) by the series.

      #if defined (FS30D) || defined (FS0IDD)
      #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
      

    • In case of header file for Series 30i/31i/32i/35i, Series 0i-D/F and PMi-A
      System Option(-D)
      Standard (32 axes) (node)
      #define MAX_AXIS        32
      

    • In case of header file for Series 15-B
      System Option(-D)
      Standard (10 axes) (none)
      Multi axes (15 axes) M_AXIS1
      Multi axes (24 axes) M_AXIS2
      #if defined(M_AXIS2)
      #define MAX_AXIS        24
      #elif defined(M_AXIS1)
      #define MAX_AXIS        15
      #else
      #define MAX_AXIS        10
      #endif
      

    • In case of header file for Series 15i
      System Option(-D)
      Standard (10 axes) (none)
      Multi axes (24 axes) M_AXIS2
      #if defined(M_AXIS2)
      #define MAX_AXIS        24
      #else
      #define MAX_AXIS        10
      #endif
      

    • In case of header file for Series 16/18/21, 0i-B, 16i/18i-W and Power Mate i
      System Option(-D)
      Standard (8 axes) (none)
      #define MAX_AXIS        8
      

    • In case of header file of HSSB for Series 0i-A
      System Option(-D)
      Standard (4 axes) (none)
      #define MAX_AXIS        4
      

    • In case of header file of HSSB for Power Mate
      System Option(-D)
      Standard (6 axes) (none)
      #define MAX_AXIS        6
      

    In case of Visual Basic, define that in VB menu "[Tool] -> [Option] -> [Detail Setting] -> [Conditional compile argument]".

    'Current controlled axis' can be got by 'Read CNC system information (cnc_sysinfo)' function.

  9. Program number 8 digits (Series 15i, 16/18)

    In case of program number 8 digits, the argument and the member of the structure which are related to program number of Data window function, is changed from "short" to "long".

    In case of C/C++ language, define character constant "ONO8D" at compiling by option "-D" to switch library for program number 8 digits.

    System Option(-D)
    Program number 4 digits (None)
    Program number 8 digits ONO8D

    In case of Visual Basic, define "ONO8D=1" in VB menu "[Tool] -> [Option] -> [Detail Setting] -> [Conditional compile argument]" to switch library for program number 8 digits. If "ONO8D" is not defined or "ONO8D=0" is defined, it becomes for program number 4 digits.

    The window function compiled for the program number 8 digits operates normally when CNC side is program number 4 digits. Conversely, if the window function for the program number 4 digits is used when CNC side is the program number 8 digits, it becomes an error(EW_FUNC).

  10. Difference of the function specifications (Series 15 and other CNCs (Series 16/18/21/0, Power Mate))

    If you make an application for Series 15i, you must specify the compiling option, which is "FS15D".

    In case of C/C++ language, define character constant "FS15D" at compiling by option. In case of Visual Basic, define "FS15D=1" in VB menu " [Tool] -> [Option] -> [Detail Setting] -> [Conditional compile argument] ".

    And, there are some differences of the specifications between Series 15i and others (Series 16/18/21/0, Power Mate) about library function. The major differences are as follows.

    • Data size for all axes

      In some function, when you read/write data for all axes, data size that must be allocated is different as follows.

      Series 16/18/21/0, Power Mate:Size for current controlled axes
      Series 15i:Size for maximum controlled axes

      The following functions are related to this subject.
      Brief description Function name
      Read absolute axis position cnc_absolute, cnc_absolute2
      Read machine axis position cnc_machine
      Read relative axis position cnc_relative, cnc_relative2
      Read distance to go cnc_distance
      Read skip position cnc_skip
      Read servo delay value cnc_srvdelay
      Read acceleration/deceleration delay value cnc_accdecdly
      Set origin/preset relative axis position cnc_wrrelpos
      Preset work coordinate cnc_prstwkcd
      Read work zero offset value cnc_rdzofs
      Write work zero offset value cnc_wrzofs
      Read parameter cnc_rdparam
      Write parameter cnc_wrparam
      Read setting data cnc_rdset
      Write setting data cnc_wrset
      Read diagnosis data cnc_diagnoss

    • Program number digits

      In case of Series 15i, the number of the program number digits is always 8.

      So, it is necessary to switch API to the one for the program number 8 digits in case of Series 15i. Refer to "Program number 8 digits" in order to know how to switch API. The following functions are related to this subject.
      Brief description Function name
      Read all dynamic data cnc_rddynamic
      Search specified program cnc_search
      Delete specified program cnc_delete
      Read program directory(2) cnc_rdprogdir2
      Read program number under execution cnc_rdprgnum

    • Tool number digits

      In case of Series 15i, the number of the tool number digits is always 8.

      In case of Series 15i, the functions for the tool number 4 digits are not supported in the following table. Use the functions for the tool number 8 digits.
      Brief description For tool number 4 digits For tool number 8 digits
      Read tool life management data (tool group number) cnc_rdgrpid cnc_rdgrpid2
      Read tool life management data (tool length number-1) cnc_rd1length cnc_rd1tlifedat2
      Read tool life management data (cutter compensation number-1) cnc_rd1radius
      Read tool life management data (tool information-1) cnc_t1info
      Read tool life management data (tool data1) cnc_rd1tlifedata
      Write tool life management data (tool data1) cnc_wr1tlifedata cnc_wr1tlifedat2

    • Real parameter / Real diagnosis

      Real parameter and real diagnosis data are added for Series 15i.

      To support the real data, the specifications of Series 15i are different from those of others about the following functions. See the specifications of each function for details.
      Brief description Function name
      Read parameter cnc_rdparam, cnc_rdparar
      Write parameter cnc_wrparam, cnc_wrparas
      Read parameter information cnc_rdparainfo
      Read setting data cnc_rdset, cnc_rdsetr
      Write setting data cnc_wrset, cnc_wrsets
      Read setting data information cnc_rdsetinfo
      Read diagnosis data cnc_diagnoss, cnc_diagnosr
      Read diagnosis data information cnc_rddiaginfo

    • Alarm status

      In case of Series 15i, unlike others, the alarm status is "long", not "short".

      In case of Series 15i, you can use the following functions for short status. However, you cannot read all of alarm status by using these functions. You use the functions for long status as far as you can.
      Brief description For short status For long status
      Read all dynamic data cnc_rddynamic cnc_rddynamic2
      Read alarm status cnc_alarm cnc_alarm2

      The meaning of alarm status of Series 15i is different from that of others. Be careful when you use the following functions.
      Brief description Function name
      Read all dynamic data cnc_rddynamic, cnc_rddynamic2
      Read operation history data cnc_rdophistry, cnc_rdophistry2
      Read alarm history data cnc_rdalmhistry, cnc_rdalmhistry2
      Read alarm status cnc_alarm, cnc_alarm2
      Read alarm information cnc_rdalminfo
      Read alarm message cnc_rdalmmsg

    • Structure

      In the following functions, the structures, which are passed to the functions, are different between Series 15i and others.
      Brief description Function name
      Read CNC status information cnc_statinfo
      Read alarm information (*Note) cnc_rdalminfo
      Read operator's message cnc_rdopmsg
      Read output signal image of software operator's panel cnc_rdopnlsgnl
      Write output signal of software operator's panel cnc_wropnlsgnl
      (*Note) In case that Series 15i has multi axes function (maximum controlled axes = 24) only

    • Available functions

      The functions that you can use for the following propose are different between Series 15i and others.
      Propose Series 16/18/21, Power Mate Series 15
      Read operation history data cnc_rdophistry cnc_rdophistry2
      Read number of alarm history data cnc_rdalmhistry cnc_rdalmhistry2
      Read waveform diagnosis parameter cnc_rdwaveprm cnc_rdwaveprm2
      Write waveform diagnosis parameter cnc_wrwaveprm cnc_wrwaveprm2
      Read modal data cnc_modal cnc_rdgcode, cnc_rdcommand

      The following functions are available for Series 15i only.

      • Function related to 3-dimensional handle feed
      • Function related to high-speed and high-precision machining
      • Function related to fixture offset
      • Search sequence number for program restart (2) (cnc_rstrseqsrch2)
      • Read block restart information (cnc_rdbrstrinfo)
      • Function related to internal position compensation data
      • Read/Write CNC timer data (cnc_rdtimer, cnc_wrtimer)

      The following functions are not supported for Series 15i.

      • Function related to P code macro variable
      • Function related to M code group data
      • Function related to interference check data
      • Function related to work coordinate shift value (T series)
      • Function related to B axis control
      • Read/Write tool life management data (group optional number, rest counter)
      • Function related to external operator's message history data
      • Read data for spindle adjustment (synchronous control mode) (cnc_rdposerrs2, cnc_rdsynerrsy)
      • Function related to PUNCH PRESS/LASER
  11. Difference of the function specifications (Series 15-B, Series 15i)

      Please note that there are some differences of the specifications between Series 15-B and Series 15i about library function. The major differences are as follows.

    • Program number 8 digits

      The specification of program number is different between Series 15-B and Series 15i.

      Series 15-B :program number 4 digits
      Series 15i :program number 8 digits

      So, it is necessary to switch API to the one for the program number 8 digits in case of Series 15i. Refer to Program number 8 digits (for Series 15i, 16/18) in order to know how to switch API.

      The following functions are related to this subject.
      Brief description Function name
      Read all dynamic data cnc_rddynamic2
      Start uploading NC program cnc_upstart
      Search specified program cnc_search
      Delete specified program cnc_delete
      Read program directory cnc_rdprogdir
      Read program directory(2) cnc_rdprogdir2
      Read program number under execution cnc_rdprgnum

    • Tool number 8 digits

      The specification of tool number is different between Series 15-B and Series 15i.

      Series 15-B :tool number 4 digits
      Series 15i :tool number 8 digits

      The follwing functions cannot be used at Series 15i. The functions which are substituted for these functions are mentioned later.
      Brief description Function name
      Read tool life management data(tool group number) cnc_rdgrpid
      Read tool life management data(tool length number-1) cnc_rd1length
      Read tool life management data(cutter compensation num.-1) cnc_rd1radius
      Read tool life management data(tool information-1) cnc_t1info
      Read tool life management data(tool data1) cnc_rd1tlifedata
      Write tool life management data(tool data1) cnc_wr1tlifedata

    • Real parameter/ Real diagnosis

      Real parameter and real diagnosis data are added for Series 15i. The structures including these data are changed in order to read and write them.
      Brief description Function name
      Read parameter cnc_rdparam
      Write parameter cnc_wrparam
      Read parameter(area specified) cnc_rdparar
      Write parameter(area specified) cnc_wrparas
      Read parameter information cnc_rdparainfo
      Read setting data cnc_rdset
      Write setting data cnc_wrset
      Read setting data(area specified) cnc_rdsetr
      Write setting data(area specified) cnc_wrsets
      Read setting data information cnc_rdsetinfo
      Read diagnosis data cnc_diagnoss
      Read diagnosis data(area specified) cnc_diagnosr
      Read diagnosis data information cnc_rddiaginfo

      The following list shows whether the function for Series 15-B can be used for Series 15i, or not. Some functions except in this list have the difference of the specifications between Series 15-B and the Series 15i. See the specifications of each function for details.

    • CNC: Function related to controlled axis/spindle
      Function name(15-B) Brief description in case of Series 15i
      cnc_rddynamic Read all dynamic data It is necessary for the application program to switch API to the one which can deal with the program number 8 digits. This function cannot read all alarm status of Series 15i. So, you should better use cnc_rddynamic2.

    • CNC: Function related to CNC program
      Function name(15-B) Brief description in case of Series 15i
      cnc_dncstart Start downloading DNC program These functions are not supported on Series 15i.
      cnc_dnc Download DNC program
      cnc_cdnc Download DNC program(conditional)
      cnc_dncend End of downloading DNC program
      cnc_rdmdipntr Read execution pointer for MDI operation
      cnc_wrmdipntr Write execution pointer for MDI operation
      cnc_upstart Start uploading NC program It is necessary for the application program to switch API to the one which can deal with the program number 8 digits.
      cnc_search Search specified program
      cnc_delete Delete specified program
      cnc_rdprogdir Read program directory
      cnc_rdprogdir2 Read program directory(2)
      cnc_rdprgnum Read program number under execution

    • CNC: Function related to CNC file data
      Function name(15-B) Brief description in case of Series 15i
      cnc_rdparam Read parameter The structures including the data are changed in order to read and write the real parameter.
      cnc_wrparam Write parameter
      cnc_rdparar Read parameter(area specified)
      cnc_wrparas Write parameter(area specified)
      cnc_rdparainfo Read parameter information
      cnc_rdset Read setting data
      cnc_wrset Write setting data
      cnc_rdsetr Read setting data(area specified)
      cnc_wrsets Write setting data(area specified)
      cnc_rdsetinfo Read setting data information
      cnc_rdhpccset Read setting data for HPCC These functions are not supported on Series 15i. Read/write parameter function (cnc_rdparam, cnc_wrparam, cnc_rdparar, and cnc_wrparas) can be substituted for these functions.
      cnc_wrhpccset Write setting data for HPCC
      cnc_rdhpcctupr Read tuning data(parameter input) for HPCC
      cnc_wrhpcctupr Write tuning data(parameter input) for HPCC
      cnc_rdhpcctuac Read tuning data(acc./dec. input) for HPCC
      cnc_wrhpcctuac Write tuning data(acc./dec. input) for HPCC

    • CNC: Function related to tool life management data
      Function name(15-B) Brief description in case of Series 15i
      cnc_rdgrpid Read tool group number This function is not supported on Series 15i. Use "cnc_rdgrpid2".
      cnc_rd1length Read tool length number-1 These functions are not supported on Series 15i. Use "cnc_rd1tlifedat2" instead of these function.
      cnc_rd1radius Read cutter compensation number-1
      cnc_t1info Read tool information-1
      cnc_rd1tlifedata Read tool data1 This function is not supported on Series 15i. Use "cnc_rd1tlifedat2".
      cnc_wr1tlifedata Write tool data1 This function is not supported on Series 15i. Use "cnc_wr1tlifedat2".

    • CNC: Function related to history data
      Function name(15-B) Brief description in case of Series 15i
      cnc_rdophistry Read operation history data This function is not supported on Series 15i. Use "cnc_rdophistry2".
      cnc_rdalmhistry Read alarm history data This function is not supported on Series 15i. Use "cnc_rdalmhistry2".

    • CNC: Function related to Servo/spindle
      Function name(15-B) Brief description in case of Series 15i
      cnc_rdwaveprm Read waveform diagnosis parameter This function is not supported on Series 15i. Use "cnc_rdwaveprm2".
      cnc_wrwaveprm Write waveform diagnosis parameter This function is not supported on Series 15i. Use "cnc_wrwaveprm2".

    • CNC: Function related to Others
      Function name(15-B) Brief description in case of Series 15i
      cnc_sysconfig Read CNC configuration information This function is not supported on Series 15i. Use "cnc_rdsyssoft".
      cnc_rdmdlconfig Read module configuration of CNC system This function is not supported on Series 15i. Use "cnc_rdmdlconfig2".
      cnc_alarm Read alarm status This function cannot read all alarm status of Series 15i. So, you should better use "cnc_alarm2".
      cnc_modal Read modal data This function is not supported on Series 15i. Use "cnc_rdgcode" and "cnc_rdcommand" instead of this function.
      cnc_diagnoss Read diagnosis data The structures including the data are changed in order to read and write the real diagnosis data.
      cnc_diagnosr Read diagnosis data(area specified)
      cnc_rddiaginfo Read diagnosis data information

    • PMC: Function related to PMC
      Function name(15-B) Brief description in case of Series 15i
      pmc_rdmsg Read message from PMC to MMC These functions are not supported on Series 15i.
      pmc_wrmsg Write message from MMC to PMC
      pmc_crdmsg Read message from PMC to MMC (conditional)
      pmc_cwrmsg Write message from MMC to PMC (conditional)
  12. Difference of the function specifications (Series 30i, 0i-D/F, PMi-A and other CNCs)

      Please note that there are some differences of the specifications between the library except Series 30i, 0i-D/F, PMi-A and Series 30i, 0i-D/F, PMi-A about library function. The major differences are as follows.

    • Data size at all axes specification

      In some function, when you read/write data for all axes, data size that must be allocated is different as follows.

      the library except Series 30i, 0i-D/F, PMi-A:number of the actual control axis.
      the library for Series 30i, 0i-D/F, PMi-A :number of maximum axes in interface.

      The number of maximum axes is defined in the header file as MAX_AXIS(=32).

      The following functions are related to this subject.
      Brief description Function name
      Read absolute axis position cnc_absolute, cnc_absolute2
      Read machine axis position cnc_machine
      Read relative axis position cnc_relative, cnc_relative2
      Read distance to go cnc_distance
      Read skip position cnc_skip
      Read servo delay value cnc_srvdelay
      Read acceleration/deceleration delay value cnc_accdecdly
      Set origin/preset relative axis position cnc_wrrelpos
      Preset work coordinate cnc_prstwkcd
      Read work zero offset value cnc_rdzofs
      Write work zero offset value cnc_wrzofs
      Read parameter cnc_rdparam
      Write parameter cnc_wrparam
      Read setting data cnc_rdset
      Write setting data cnc_wrset
      Read diagnosis data cnc_diagnoss

    • Data size for spindle functions

      In Series 30i, 0i-D/F, the maximum spindle number has been extended to 8 from 4. So, data size of function related to the spindle that must be allocated is different as follows.

      The number of maximum spindles is defined in the header file as MAX_SPINDLES(=8).

      The following functions are related to this subject.
      Brief description Function name
      Read load information of serial spindle cnc_rdspload
      Read maximum r.p.m. ratio of serial spindle cnc_rdspmaxrpm
      Read gear ratio of serial spindle cnc_rdspgear
      Read actual spindle speed(S) (2) cnc_acts2
      Read operation mode for spindle setting cnc_rdopmode
      Read position deflection S for spindle adjustment cnc_rdposerrs
      Read spindle alarm for spindle monitor cnc_rdspdlalm
      Read control input signal for spindle monitor cnc_rdctrldi
      Read control output signal for spindle monitor cnc_rdctrldo

    • Function related to CNC program

      The management of the program came to be managed by the file name and the hierarchical directory. So, the function specification was changed completely.

    • Real type parameter/Real type diagnosis data

      In Series 30i, 0i-D/F and PMi-A, the real type parameter and the real type diagnosis data are added. The structures including these data are changed in order to read and write them.

      The following functions are related to this subject.
      Brief description Function name
      Read parameter cnc_rdparam
      Write parameter cnc_wrparam
      Read parameter(area specified) cnc_rdparar
      Write parameter(area specified) cnc_wrparas
      Read parameter information cnc_rdparainfo
      Read setting data cnc_rdset
      Write setting data cnc_wrset
      Read setting data(area specified) cnc_rdsetr
      Write setting data(area specified) cnc_wrsets
      Read setting data information cnc_rdsetinfo
      Read diagnosis data cnc_diagnoss
      Read diagnosis data(area specified) cnc_diagnosr
      Read diagnosis data information cnc_rddiaginfo

    • CNC alarm

      In Series 30i, 0i-D/F and PMi-A, the alarm status become the 32 bits. All the alarm status of Series 30i, 0i-D/F and PMi-A cannot be read though the cnc_alarm function is supported. Use the "cnc_alarm2".

      The content of the alarm status is also different from FOCAS1.

      And the area where axis information in structure used by the cnc_rdalminfo is stored is expanded from "short" into "long".

    • Modal/Command

      All the modal/command information of Series 30i, 0i-D/F and PMi-A cannot be read though the cnc_modal function is supported. Use the "cnc_rdgocde" and "cnc_rdcommand".

      The specification of "block after next block(=2)" cannot be specified for the block of the reading object on the cnc_modal.

      The command value(mainly I,J and K) is extended to the 12 digits. So, the data which overflows when the value of 12 digits is converted into the integer in four bytes is rounded. And the number of places of decimals is set. So, the number of places of decimals might be set besides F code.

      The number of places of decimals might become negative value, so, the number of places of decimals is changed to "8 bits with sign" from "3 bits without sign".

  13. Difference of the function specifications (Series 30i-A, Series 30i-B)

      Please note that there are some differences of the specifications between Series 30i-A and Series 30i-B about library function. The major differences are as follows.

    • Get execution pointer

      In case of Series 30i-A, when STL signal is ON, the return code is EW_REJECT.

      In case of Series 30i-B, even if STL signal is ON, the return code is EW_OK. (when Parameter No.13104#1=1, the return code is EW_REJECT)

      In case of Series 30i-B, even if M198 is executed, the return code is EW_OK.

      The following functions are related to this subject.
      Brief description Function name
      Get execution pointer cnc_rdactpt
      Read execution pointer cnc_rdexecpt
      Get execution pointer(For arbitrary file name) cnc_pdf_rdactpt

    • Read series/version of CNC system software

      Software ID of the CNC system software is different.

      The following functions are related to this subject.
      Brief description Function name
      Read series/version of CNC system software (3) cnc_rdsyssoft3

    • Read CNC status information
    • In case of Series 30i-B, type 3(FS35i-B only) of emergency status and type 4-8 of alarm status are added.

      The following functions are related to this subject.
      Brief description Function name
      Read CNC status information cnc_statinfo
      Read CNC status information(2) cnc_statinfo2

  14. Advanced mode(32 axes) and traditional mode(8 axes) for FS30i

    The original mode (advanced mode) and the compatible mode (traditional mode) is switched by the cnc_setlibopt. The default is advanced mode.

    The specification of each mode is as follows.
    Item Advanced mode traditional mode
    Number of maximum controlled axes 32 8
    Number of maximum controlled spindles 8 4
    Read/Write of all axis specification. The size of the allocated buffer is always the size of the maximum controlled axes. The size of the allocated buffer is the size of the current controlled axes. (It is similar to FS16i.)
    Real type of parameter and diagnosis data 8 bytes with sign The conversion to 4 bytes integer.
    Alarm status 32 bits 16 bits

    The number of axes shows the number of buffers used to access to the data of axis.

    In the following cases, the traditional mode can not be used.

    • When the number of current controlled axes in the system exceeds 8.
    • When the number of controlled spindles in the system exceeds 4.

    The differences of the data structures between the advanced mode and the traditional mode are as follows.

    • Parameter/Diagnosis

      In traditional mode, the real type parameter and the real type diagnosis data are converted into two word integer type by which a minimum setting unit is assumed to be the first digit.

        Example) In case of 1.230 : data=1230, number of places of decimals=3
      

      In advanced mode, the function of library is expanded the part of the specification along with the support of parameter/diagnosis data of FS30i.(Part in bold line) In traditional mode, this extended part is never input and output.

      cnc_rdparar, cnc_wrparas "From the explanation of "type in the IODBPSD structure""
      type : Attribute of parameter which was read is stored.
      0 : bit type
      1 : byte type
      2 : word type
      3 : 2-word type
      4:real type
      cnc_diagnosr "From the explanation of "type in the ODBDGN structure""
      type : Attribute of diagnosis which was read is stored.
      0 : byte type
      1 : word type
      2 : 2-word type
      3 : but type(8 bit)
      4 : bit type(1 bit)
      5:real type
      cnc_rdparainfo "From the explanation of "prm_type in the ODBPARAIF structure""
      info[N].prm_type : Attribute of parameter. The following attributes are set.
      bit 0,1 : type attribute
      0 : bit type
      1 : byte type
      2 : word type
      3 : 2-word type or real type
      :
      :
      bit 12 : in case that type attribute = 3
      0 : except real type
      1 : real type
      cnc_rddiaginfo "From the explanation of "diag_type in the ODBDIAGIF structure""
      info[N].diag_type : Attribute of diagnosis data. The following attributes are set.
      bit 0,1 : type attribute(It is effective when bit 3 = 0)
      0 : bit type (8 bit)
      1 : byte type
      2 : word type
      3 : 2-word type or real type
      :
      :
      bit 12 : in case that type attribute = 3
      0 : except real type
      1 : real type
    • Alarm status

      In order to get every alarm by using 16 bits alarm status, in the traditional mode, when a alarm which is shown by the upper word (from bit 16 to 31) in the 32 bits alarm status of cnc_alarm2 function occurs, bit 14 in the 16 bit alarm status of cnc_alarm function is turned on. In the advanced mode, bit 14 is reserved.

      #00 : Parameter switch on (SW)
      #01 : Power off parameter set (PW)
      :
      :
      #13 : Syncronized error (SN)
      #14 : Others(#16 to #31)
      #15 : External alarm message (EX)

      Then, when 14 is passed to the alarm type parameter of cnc_rdalminfo function, all alarm information from bit 16 to 32 can be retrieved.

  15. Difference of the HSSB version and the Ethernet version
    • 4 status (EW_SOCKET, EW_PROTOCOL, EW_ALARM, EW_STOP) are added to the return status of the functions.
       
    • The following functions of the HSSB are not supported. Use the function in the right side of the following table.
      Brief description HSSB Ethernet
      Allocate library handle cnc_allclibhndl, cnc_allclibhndl2 cnc_allclibhndl3
      Start downloading NC program cnc_dwnstart cnc_dwnstart3
      Download NC program cnc_download, cnc_cdownload cnc_download3
      End of downloading NC program cnc_dwnend cnc_dwnend3
      Start downloading DNC program cnc_dncstart cnc_dncstart2
      Download DNC program cnc_dnc, cnc_cdnc cnc_dnc2
      End of downloading DNC program cnc_dncend cnc_dncend2
      Start uploading NC program cnc_upstart cnc_upstart3
      Upload NC program cnc_upload, cnc_cupload cnc_upload3
      End of uploading NC program cnc_upend cnc_upend3

       
    • The following functions are not supported in the Ethernet.
      • Function related to Data Server, DNC1, DNC2, OSI-Ethernet
      • Function related to servo learning data
      • Message translation with LADDER program (pmc_rdmsg, pmc_wrmsg)

       
    • NC's BOOT/IPL function (backup/restore SRAM, exchanging system software, etc.) is not supported by the Ethernet version.
       
    • Cannot access to the loader control board (5th path) by the Ethernet version. (except FS30i)
        There is a limitation about maximun number of applications which can access to one CNC at the same time. See "Communication with Ethernet Board" for details.
  16. Specifying the folder and file name for FS30i, 0i-D/F and PMi-A.

    In FS30i, 0i-D/F and PMi-A, the folder name specify by "Drive Name + Folder Name".(In FS0i-D, folder name is not available to CNC memory.)

    And, the file name specify "Drive Name + folder Name + File Name".


    In case of folder name, place "/"(slash) at the end of string. If there is no "/", it is regarded as the string for file.

    The format is as follows.

    • //Drive Name/Filder Name 1/Folder Name 2/.../Folder Name n/File Name

    Ex.1) The "USER/PATH1" folder in CNC memory.

    • //CNC_MEM/USER/PATH1/

    Ex.2) The "PART1.PRG" file in "NCDATA/MACHINE1" folder in Data server.

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

    The Drive name can be acquired by cnc_rdpdf_drive function.

  17. Non-volatile memory for FS30i, 0i-D/F and PMi-A

    Machining programs are stored in non-volatile memory in the CNC unit.

    You must use "High-speed program managementcnc_saveprog_start/cnc_saveprog_end" when registration and the deletion of the machining programs are frequently repeated in such case that the machining programs are automatically downloaded from a personal computer at each machining.

    In "High-speed program managementcnc_saveprog_start/cnc_saveprog_end", the program is not saved to the non-volatile memory at registration, modification, or deletion of programs.


Top Page