News CNCnetPDM About us Support  
       
  

CNC_RDDYNAMIC | POSITION

TOP

Description

Read various data which changes at CNC operation at a time. The data which can be read is as follows.

Data Function used for reading individually
Alarm status cnc_alarm
Program number in executing cnc_rdprgnum
Program number of the main program cnc_rdprgnum
Sequence number cnc_rdseqnum
Actual feed rate cnc_actf
Actual spindle speed cnc_acts
Absolute position data of controlled axis (2) cnc_absolute2
Machine position data of controlled axis cnc_machine
Relative position data of controlled axis (2) cnc_relative2
Amount of distance to go of controlled axis cnc_distance

The formats of each data are same as "Function used for reading individually". Refer to each function for details.

The data concerning the axis is read by specified with axis. Each data is stored in oaxis structure in ODBDY.

All axes can be read at a time by specifying ALL_AXES for "axis". In that case, various data concerning the axis is stored in each array of faxis inside of ODBDY.

The decimal point position of the various data concerning the axis can be acquired in the cnc_getfigure function.

  • Series 15i
    • This function cannot read all alarm status.
      Please use cnc_rddynamic2 function in order to read all alarm status.
      it is necessary to switch API to the one for the program number 8 digits. See "Program number 8 digits" for details.

  • Series 16/18/16i/18i, Power Mate i
    • it is possible to use this function for the program number 8 digits, however it is necessary to switch API to the one for the program number 8 digits. See "Program number 8 digits" for details.

  • Series 16i/18i-W
    • the data corresponding to "Actual spindle speed", "Amount of distance to go of controlled axis" cannot be got.

    MTConnect Fanuc Adapter

    Universal Fanuc Driver

    Fanuc Focas Library CD

    Declaration

    #include "fwlib32.h" or "fwlib64.h"

    FWLIBAPI short WINAPI cnc_rddynamic( unsigned short FlibHndl, short axis, short length, ODBDY *rddynamic );

    Arguments : HSSB

    FlibHndl   [ in ]

    Specify the library handle. See "Library handle" for details.

    axis   [ in ]

    Specify axis number to read.

    ALL_AXES : for all axes(ALL_AXES : -1)
    1,..,m : for each axis(m : number of controlled axis)

    length   [ in ]

    Specify the length of the data block(size of ODBDY structure)

    ODBDY

    for each axis
    for program number 4 digits for program number 8 digits
    for all axes
    for program number 4 digits for program number 8 digits

    n = Maximum controlled axes (The data for current controlled axes are valid)

    rddynamic   [ out ]

    Pointer to the ODBDY structure including various data. The ODBDY structure is as follows.

    
    For program number 4 digits
    
    typedef struct odbdy {
            short  dummy ;     /* not used                */
            short  axis ;      /* axis number             */
            short  alarm ;     /* alarm status            */
            short  prgnum ;    /* current program number  */
            short  prgmnum ;   /* main program number     */
            long   seqnum ;    /* current sequence number */
            long   actf ;      /* actual feedrate         */
            long   acts ;      /* actual spindle speed    */
            union {
                struct {
                    long  absolute[MAX_AXIS] ; /* absolute */
                    long  machine[MAX_AXIS] ;  /* machine  */
                    long  relative[MAX_AXIS] ; /* relative */
                    long  distance[MAX_AXIS] ; /* distance to go */
                } faxis ; /* In case of all axes */
                struct {
                    long  absolute ; /* absolute */
                    long  machine ;  /* machine  */
                    long  relative ; /* relative */
                    long  distance ; /* distance to go */
                } oaxis ; /* In case of 1 axis */
            } pos ;
    } ODBDY ;              /* MAX_AXIS is the maximum controlled axes. */
    
    
    For program number 8 digits
    
    typedef struct odbdy {
            short  dummy ;     /* not used                */
            short  axis ;      /* axis number             */
            short  alarm ;     /* alarm status            */
            long   prgnum ;    /* current program number  */
            long   prgmnum ;   /* main program number     */
            long   seqnum ;    /* current sequence number */
            long   actf ;      /* actual feedrate         */
            long   acts ;      /* actual spindle speed    */
            union {
                struct {
                    long  absolute[MAX_AXIS] ; /* absolute */
                    long  machine[MAX_AXIS] ;  /* machine  */
                    long  relative[MAX_AXIS] ; /* relative */
                    long  distance[MAX_AXIS] ; /* distance to go */
                } faxis ; /* In case of all axes */
                struct {
                    long  absolute ; /* absolute */
                    long  machine ;  /* machine  */
                    long  relative ; /* relative */
                    long  distance ; /* distance to go */
                } oaxis ; /* In case of 1 axis */
            } pos ;
    } ODBDY ;                       /* MAX_AXIS is the maximum controlled axes. */
    
      dummy
      Not used
      axis
      Axis number
      The read axis number is returned.
      alarm
      Alarm status
      The meaning of each bit is as follows.

      • Series 15/15i
      • #00:Background P/S
        #01:Foreground P/S
        #02:Overheat alarm (Only Series 15)
        #03:Sub-CPU error (Only Series 15)
        #04:Syncronized error
        #05:Parameter switch on
        #06:Overtravel,Ext. data
        #07:PMC error
        #08:External alarm message
        #09:(Not used)
        #10:Serious P/S
        #11:(Not used)
        #12:Servo alarm
        #13:I/O error
        #14:Power off parameter set
        #15:System error

      • Series 16/18/21, 16i/18i/21i, 0i-A/B/C, Power Mate i
      • #00:P/S alarm 100
        #01:P/S alarm 000
        #02:P/S alarm 101
        #03:P/S alarm except above
        #04:Overtravel alarm
        #05:Overheat alarm
        #06:Servo alarm
        #07:System alarm
        #08:APC alarm
        #09:Spindle alarm
        #10:P/S alarm 5000, Punch press alarm
        #11:Laser alarm
        #12:(Not used)
        #13:(Not used)
        #14:(Not used)
        #15:External alarm message

      • Series 16i/18i-W
      • #00:P/S alarm
        #01:Overtravel alarm
        #02:Servo alarm
        #03:(Not used)
        #04:Overheat alarm
        #05:Stroke limit - 1
        #06:Stroke limit - 2
        #07:Edit alarm
        #08:APC alarm
        #09:System alarm
        #10:P/S 5000 ... alarm
        #11:(Not used)
        #12:(Not used)
        #13:(Not used)
        #14:External alarm
        #15:Reverse control alarm

      • Series 30i, 0i-D/F, PMi-A
      • #00 : Parameter switch on (SW)
        #01 : Power off parameter set (PW)
        #02 : I/O error (IO)
        #03 : Foreground P/S (PS)
        #04 : Overtravel,External data (OT)
        #05 : Overheat alarm (OH)
        #06 : Servo alarm (SV)
        #07 : Data I/O error (SR)
        #08 : Macro alarm (MC)
        #09 : Spindle alarm (SP)
        #10 : Other alarm(DS) (DS)
        #11 : Alarm concerning Malfunction prevent functions (IE)
        #12 : Background P/S (BG)
        #13 : Syncronized error (SN)
        #14 : (reserved)
        #15 : External alarm message (EX)

      prgnum
      Program number under execution
      (It is the selected program number while automatic operation stopping)
      prgmnum
      Main program number (It is invalid in Series 15)
      seqnum
      Current sequence number
      actf
      Actual feed rate of the controlled axes
      acts
      Actual spindle speed data(It is invalid in Series 16i/18i-W, Power Mate i-H)
      absolute
      Absolute position of the controlled axes
      machine
      Machine position of the controlled axes
      relative
      Relative position of the controlled axes
      distance
      Amount of distance to go of the controlled axes (It is invalid in Series 16i/18i-W)

    Return

    EW_OK is returned on successful completion, otherwise any value except EW_OK is returned.

    The major error codes are as follows.

    Return code Meaning/Error handling
    EW_LENGTH
    (2)
    data block length error
    Size of ODBDY structure(length) is illegal.
    EW_ATTRIB
    (4)
    data attribute error
    The specification of axis number (axis) is improper.

    As for the other return codes or the details, see "Return status of Data window function"

    CNC option

    For HSSB connection,

      The extended driver/library function is necessary.

    CNC parameter

    This function is not related to CNC parameter.

    CNC mode

    This function can be used in any CNC mode.

    Available CNC

    0i-A 0i-B/C(Note) 0i-D 0i-F 15 15i 16 18 21 16i-A 18i-A 21i-A 16i-B 18i-B 21i-B 30i-A 30i-B
    M (Machining)H O O O H O H H H O O O O O O O O
    T (Turning) H O O O H - H H H O O O O O O O O
    LC (Loader) - - - - - - H H H H H H H H H - -

    0i-D0i-F16i18i30i-A30i-B
    P (Punch press)O O O O - O
    L (Laser) - - O - - O
    W (Wire) - - O O O O


    Power Mate i-DO
    Power Mate i-HO
    Power Motion i-AO

    "O" : Both Ethernet and HSSB
    "E" : Ethernet
    "H" : HSSB
    "X" : Cannot be used
    "-" : None

    Note) 0i-C does not support the HSSB function.

    See Also

    cnc_rddynamic2   cnc_alarm   cnc_rdprgnum   cnc_rdseqnum   cnc_actf   cnc_acts   cnc_absolute   cnc_machine   cnc_relative   cnc_distance  

    Example(C Language)

    
    The following program reads the dynamic data of all axes (number of axes =
    MAX_AXIS) and displays them on the screen.
    
    #include "fwlib32.h"
    
    void example( void )
    {
        ODBDY buf ;
        unsigned int idx ;
        cnc_rddynamic( h, -1, sizeof(buf), &buf ) ;
        printf( "Current program = %d   Main program = %d\n",
                        buf.prgnum, buf.prgmnum ) ;
        printf( "Sequence number = %ld\n", buf.seqnum ) ;
        printf( "actf = %ld   acts = %ld\n", buf.actf, buf.acts ) ;
        printf( "Alarm status = %d\n", buf.alarm ) ;
        printf( "AXIS Absolute  Relative  Machine   Distance\n" ) ;
        printf( "----+---------+---------+---------+--------\n" ) ;
        for ( idx = 0 ; idx < MAX_AXIS ; idx++ )
            printf( "  %u  %8ld  %8ld  %8ld  %8ld\n", idx,
                buf.pos.faxis.absolute[idx],
                buf.pos.faxis.relative[idx],
                buf.pos.faxis.machine[idx],
                buf.pos.faxis.distance[idx] ) ;
    }
    

    Example(C#)

    
    The following program reads the dynamic data of all axes (number of axes =
    MAX_AXIS) and displays them on the screen.
    
    class example
    {
        public void sample()
        {
            Focas1.ODBDY_1 buf = new Focas1.ODBDY_1();
            uint idx;
            Focas1.cnc_rddynamic(h, -1, (short)Marshal.SizeOf(buf), buf);
            Console.WriteLine("Current program = {0}   Main program = {1}",
                            buf.prgnum, buf.prgmnum);
            Console.WriteLine("Sequence number = {0}", buf.seqnum);
            Console.WriteLine("actf = {0}   acts = {1}", buf.actf, buf.acts);
            Console.WriteLine("Alarm status = {0}", buf.alarm);
            Console.WriteLine("AXIS Absolute  Relative  Machine   Distance");
            Console.WriteLine("----+---------+---------+---------+--------");
            for (idx = 0; idx < Focas1.MAX_AXIS; idx++)
            {
                Console.WriteLine("  {0}  {1,8}  {2,8}  {3,8}  {4,8}", idx,
                    buf.pos.absolute[idx],
                    buf.pos.relative[idx],
                    buf.pos.machine[idx],
                    buf.pos.distance[idx]);
            }
        }
    }

    Privacy notice

    This website uses cookies. By continuing to use it you agree to our privacy policy. 

    https://www.inventcom.net/fanuc-focas-library/position/cnc_rddynamic

    Fanuc Focas Library | Position | cnc_absolute

    Reads the absolute position data of axis specified with axis. The absolute position is stored in data[0] of ODBAXIS. All axes can be read at a time by... [read more]
    Fanuc Focas Library | Position | cnc_absolute

    Fanuc Focas Library | Position | cnc_absolute2

    Differences between functions of cnc_absolute2 and functions of... [read more]
    Fanuc Focas Library | Position | cnc_absolute2

    Fanuc Focas Library | Position | cnc_accdecdly

    Reads the acceleration/deceleration delay amount of axis specified with axis. The acceleration/deceleration delay amount is stored in data[0] of... [read more]
    Fanuc Focas Library | Position | cnc_accdecdly

    Fanuc Focas Library | Position | cnc_actf

    Reads the actual feed rate of the controlled axes of CNC. The actual feed rate is stored in data of ODBACT.... [read more]
    Fanuc Focas Library | Position | cnc_actf

    Fanuc Focas Library | Position | cnc_acts

    Reads the actual rotational speed of the spindle connected to CNC. The actual spindle speed is stored in data of ODBACT.... [read more]
    Fanuc Focas Library | Position | cnc_acts

    Fanuc Focas Library | Position | cnc_acts2

    Reads the actual rotational speed of the spindle connected to CNC. The actual spindle speed is stored in data[0] of ODBACT2. All spindle can be... [read more]
    Fanuc Focas Library | Position | cnc_acts2

    Fanuc Focas Library | Position | cnc_canmovrlap

    Cancel the manual overlapped motion value of axis specified with axis. It is possible to cancel the manual overlapped motion value of all axes at a... [read more]
    Fanuc Focas Library | Position | cnc_canmovrlap

    Fanuc Focas Library | Position | cnc_clr3dplsmov

    Clears the handle interrupt pulse amount and the handle interrupt move amount. It is only the handle interrupt pulse amount to be able to specify the... [read more]
    Fanuc Focas Library | Position | cnc_clr3dplsmov

    Fanuc Focas Library | Position | cnc_clr5axpls

    Clears the pulse amount for the manual feed for 5-axis machining.... [read more]
    Fanuc Focas Library | Position | cnc_clr5axpls

    Fanuc Focas Library | Position | cnc_distance

    Reads the amount of distance to go of axis specified with axis. The amount of distance to go is stored in data[0] of ODBAXIS. All axes can be read... [read more]
    Fanuc Focas Library | Position | cnc_distance

    Fanuc Focas Library | Position | cnc_exaxisname

    Reads the name of controlled axis and spindle name from 1st by the specified (*num), with supporting extended axis name. After execution,... [read more]
    Fanuc Focas Library | Position | cnc_exaxisname

    Fanuc Focas Library | Position | cnc_exaxisname2

    Reads the name of controlled axis and spindle name from 1st by the specified (*num), with supporting extended axis name. After execution,... [read more]
    Fanuc Focas Library | Position | cnc_exaxisname2

    Fanuc Focas Library | Position | cnc_machine

    Reads the machine position data of axis specified with axis. The machine position is stored in data[0] of ODBAXIS. All axes can be read at a time... [read more]
    Fanuc Focas Library | Position | cnc_machine

    Fanuc Focas Library | Position | cnc_prstwkcd

    Presets the word coordinate selecting in CNC(absolute position). Preset data is specified by data[0] in IDBWRA. It is... [read more]
    Fanuc Focas Library | Position | cnc_prstwkcd

    Fanuc Focas Library | Position | cnc_rd3dmovrlap

    Reads the movement amount (generally for 5 axes, in case of parallel axis, 5 + 5 = 10 axes) about 3-dimensional handle feed. The number of... [read more]
    Fanuc Focas Library | Position | cnc_rd3dmovrlap

    Fanuc Focas Library | Position | cnc_rd3dofschg

    Read the modification of tool length compensation amount in tool axis direction. The places of decimal points can be got by... [read more]
    Fanuc Focas Library | Position | cnc_rd3dofschg

    Fanuc Focas Library | Position | cnc_rd3dpulse

    Reads the handle interrupt pulse amount about 3-dimensional handle feed. The handle interrupt pulse amount in special handle feed mode(G156#0,... [read more]
    Fanuc Focas Library | Position | cnc_rd3dpulse

    Fanuc Focas Library | Position | cnc_rd3dtooltip

    Reads the absolute position of the tool tip coordinates about 3-dimensional handle feed. The number of each axis and the tool... [read more]
    Fanuc Focas Library | Position | cnc_rd3dtooltip

    Fanuc Focas Library | Position | cnc_rd5axmandt

    Reads the data for the manual feed for 5-axis machining.... [read more]
    Fanuc Focas Library | Position | cnc_rd5axmandt

    Fanuc Focas Library | Position | cnc_rd5axovrlap

    Reads the machine axis movement for the manual feed of 5-axis machining. The axis number(axis) should be specified as 1..max controlled axes (for reading... [read more]
    Fanuc Focas Library | Position | cnc_rd5axovrlap

    Fanuc Focas Library | Position | cnc_rdaxisdata

    Reads various data relating servo axis/spindle axis that is got by... [read more]
    Fanuc Focas Library | Position | cnc_rdaxisdata

    Fanuc Focas Library | Position | cnc_rdaxisname

    Reads the axis names from 1st axis to the specified axis number. In case that *data_num is bigger than the current controlled axis number, this... [read more]
    Fanuc Focas Library | Position | cnc_rdaxisname

    Fanuc Focas Library | Position | cnc_rddynamic2

    Reads various data which changes at CNC operation at a time. This function is the improved version of the... [read more]
    Fanuc Focas Library | Position | cnc_rddynamic2

    Fanuc Focas Library | Position | cnc_rdhndintrpt

    Reads the handle interruption values from 1st axis to the specified axis number. In case that data_num is bigger than the current controlled axis... [read more]
    Fanuc Focas Library | Position | cnc_rdhndintrpt

    Fanuc Focas Library | Position | cnc_rdmovrlap

    Read the manual overlapped motion value based on the input unit and based on the output unit. All axes can be read at a time by specifying ALL_AXES for... [read more]
    Fanuc Focas Library | Position | cnc_rdmovrlap

    Fanuc Focas Library | Position | cnc_rdposition

    Reads the positions from 1st axis to the specified axis number. In case that *data_num is bigger than the current controlled axis number,... [read more]
    Fanuc Focas Library | Position | cnc_rdposition

    Fanuc Focas Library | Position | cnc_rdspcss

    Reads the following data related to constant surface speed control on CNC side. Converted spindle speed value... [read more]
    Fanuc Focas Library | Position | cnc_rdspcss

    Fanuc Focas Library | Position | cnc_rdspdlname

    Reads the spindle names from 1st spindle to the specified spindle number. In case that *data_num is bigger than all spindle number, this function sets... [read more]
    Fanuc Focas Library | Position | cnc_rdspdlname

    Fanuc Focas Library | Position | cnc_rdspdlspeed

    This function does the calculation for serial spindle by which the gear ratio was considered against the rotation speed of spindle motor.... [read more]
    Fanuc Focas Library | Position | cnc_rdspdlspeed

    Fanuc Focas Library | Position | cnc_rdspeed

    Reads the actual feed rate and the actual rotational speed of the spindle. The spindle speed, which can be read in this function, is one of the... [read more]
    Fanuc Focas Library | Position | cnc_rdspeed

    Fanuc Focas Library | Position | cnc_rdspgear

    Reads the gear ratio of the serial spindle. The gear ratio is stored in data[0] of ODBSPN. All spindle can be read at a time by specifying... [read more]
    Fanuc Focas Library | Position | cnc_rdspgear

    Fanuc Focas Library | Position | cnc_rdspload

    Reads the load information of the serial spindle. The load information of the serial spindle is stored in data[0] of ODBSPN. All spindle... [read more]
    Fanuc Focas Library | Position | cnc_rdspload

    Fanuc Focas Library | Position | cnc_rdspmaxrpm

    Reads the maximum r.p.m. ratio of serial spindle. The gear ratio is stored in data[0] of ODBSPN. All spindle can be read at a time by specifying... [read more]
    Fanuc Focas Library | Position | cnc_rdspmaxrpm

    Fanuc Focas Library | Position | cnc_rdspmeter

    Reads the spindle load meter data and the spindle motor speed data from 1st spindle to the specified spindle number. In case that data_num... [read more]
    Fanuc Focas Library | Position | cnc_rdspmeter

    Fanuc Focas Library | Position | cnc_rdsvmeter

    Reads the servo load meter data from 1st axis to the specified axis number. In case that *data_num is bigger than the servo axis number, this function... [read more]
    Fanuc Focas Library | Position | cnc_rdsvmeter

    Fanuc Focas Library | Position | cnc_relative

    Reads the relative position data of axis specified with axis. The relative position is stored in data[0] of ODBAXIS. All axes can be read at a time... [read more]
    Fanuc Focas Library | Position | cnc_relative

    Fanuc Focas Library | Position | cnc_relative2

    Differences between functions of cnc_relative2 and functions of... [read more]
    Fanuc Focas Library | Position | cnc_relative2

    Fanuc Focas Library | Position | cnc_skip

    Reads the skipped position of axis specified with axis. The skipped position is stored in data[0] of ODBAXIS. All axes can be read at a time by... [read more]
    Fanuc Focas Library | Position | cnc_skip

    Fanuc Focas Library | Position | cnc_srvdelay

    Reads the servo delay amount of axis specified with axis. The servo delay amount is stored in data[0] of ODBAXIS. All axes can be read at a time by... [read more]
    Fanuc Focas Library | Position | cnc_srvdelay

    Fanuc Focas Library | Position | cnc_wrrelpos

    Sets again relative position against the axis specified with type. Preset data is specified by data[0] in IDBWRR. If 0 is... [read more]
    Fanuc Focas Library | Position | cnc_wrrelpos

    Fanuc Focas Library | Position | flist_Position

    CNC: Function related to controlled axis/spindle... [read more]
    Fanuc Focas Library | Position | flist_Position
    Modified: 2023-12-05