News CNCnetPDM About us Support  
         
  

CNC_RDDYNAMIC2 | POSITION

Description

Reads various data which changes at CNC operation at a time.

This function is the improved version of the cnc_rddynamic function. Please use this function because the cnc_rddynamic function cannot read all alarm status of Series 15i. The data which can be read is as follows.

Data Function used for reading individually
Alarm status cnc_alarm2
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 ODBDY2.

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 ODBDY2.

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

MTConnect Fanuc Adapter

Universal Fanuc Driver

Fanuc Focas Library CD

Declaration

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

FWLIBAPI short WINAPI cnc_rddynamic2( unsigned short FlibHndl, short axis, short length, ODBDY2 *rddynamic );

Arguments

FlibHndl   [ in ]

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

axis   [ in ]

Specify axis number to read.

ALL_AXES : 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 ODBDY2 structure)

ODBDY2

for each axis for all axes

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

rddynamic   [ out ]

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

typedef struct odbdy2 {
    short  dummy ;     /* not used                */
    short  axis ;      /* axis number             */
    long   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 ;
} ODBDY2 ;            /* 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 15i
    • #00:Background P/S
      #01:Foreground P/S
      #02:Overheat alarm
      #03:Sub-CPU error
      #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:(Not used)
      #16:(Not used)
      #17:(Not used)
      #18:(Not used)
      #19:Macro alarm
      #20:System alarm
      #21,..,#31:(Not used)

    • Series 16i/18i/21i, 0i-A/B/C, Power Mate i (Ethernet Only)
    • #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:Rigid tap alarm
      #14:(Not used)
      #15:External alarm message
      #16,..,#31:(Not used)

    • 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)
      #11 : Alarm concerning Malfunction prevent functions (IE)
      #12 : Background P/S (BG)
      #13 : Syncronized error (SN)
      #14 : (reserved)
      #15 : External alarm message (EX)
      #16 : (reserved)
      #17 : (reserved)
      #18 : (reserved)
      #19 : PMC error (PC)
      #20 to 31 : (Not used)
    prgnum
    Program number under execution
    (It is the selected program number while automatic operation stopping)
    prgmnum
    Main program number
    seqnum
    Current sequence number
    actf
    Actual feed rate of the controlled axes
    acts
    Actual spindle speed data (It is invalid in 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

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.

For Ethernet connection,

    The Ethernet function and the extended driver/library function are necessary.

    However, in case of Series 16i/18i/21i-B, 0i-B/C/D/F, Series 30i and PMi-A, the required CNC option is as follows.

    When Embedded Ethernet is used,

      above two optional functions are not required.

    When Ethernet board is used,

      only Ethernet function is required.

CNC parameter

This function is related to the following CNC parameter.
See the manual of CNC parameter for details.

  • Series 15i
    • 2202#2,#3,#4,#5,#6,#7 (influenced by setting)

    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)X E O O X O X X X E E E E E E O O
    T (Turning) X E O O X - X X X E E E E E E O O
    LC (Loader) - - - - - - X X X X X X X X X - -

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


    Power Mate i-DE
    Power Mate i-HE
    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_rddynamic   cnc_alarm2   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 )
    {
        ODBDY2 buf ;
        unsigned int idx ;
        cnc_rddynamic2( 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 = %ld\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.ODBDY2_1 buf = new Focas1.ODBDY2_1();
            uint idx;
            Focas1.cnc_rddynamic2(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_rddynamic2
    Fanuc Focas Library | Position | cnc_absolute
    Description 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]
    cnc_absolute
    Fanuc Focas Library | Position | cnc_absolute2
    Description Differences between functions of cnc_absolute2 and functions of... [read more]
    cnc_absolute2
    Fanuc Focas Library | Position | cnc_accdecdly
    Description Reads the acceleration/deceleration delay amount of axis specified with "axis". The acceleration/deceleration delay amount is stored in "data[0]" of... [read more]
    cnc_accdecdly
    Fanuc Focas Library | Position | cnc_actf
    Description Reads the actual feed rate of the controlled axes of CNC. The actual feed rate is stored in "data" of "ODBACT".... [read more]
    cnc_actf
    Fanuc Focas Library | Position | cnc_acts
    Description Reads the actual rotational speed of the spindle connected to CNC. The actual spindle speed is stored in "data" of "ODBACT".... [read more]
    cnc_acts
    Fanuc Focas Library | Position | cnc_acts2
    Description 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]
    cnc_acts2
    Fanuc Focas Library | Position | cnc_canmovrlap
    Description 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]
    cnc_canmovrlap
    Fanuc Focas Library | Position | cnc_clr3dplsmov
    Description 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]
    cnc_clr3dplsmov
    Fanuc Focas Library | Position | cnc_clr5axpls
    Description Clears the pulse amount for the manual feed for 5-axis machining.... [read more]
    cnc_clr5axpls
    Fanuc Focas Library | Position | cnc_distance
    Description 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]
    cnc_distance
    Fanuc Focas Library | Position | cnc_exaxisname
    Description Reads the name of controlled axis and spindle name from 1st by the specified (*num), with supporting "extended axis name". After execution,... [read more]
    cnc_exaxisname
    Fanuc Focas Library | Position | cnc_exaxisname2
    Description Reads the name of controlled axis and spindle name from 1st by the specified (*num), with supporting "extended axis name". After execution,... [read more]
    cnc_exaxisname2
    Fanuc Focas Library | Position | cnc_machine
    Description 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]
    cnc_machine
    Fanuc Focas Library | Position | cnc_prstwkcd
    Description Presets the word coordinate selecting in CNC(absolute position). Preset data is specified by "data[0]" in "IDBWRA". It is... [read more]
    cnc_prstwkcd
    Fanuc Focas Library | Position | cnc_rd3dmovrlap
    Description 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]
    cnc_rd3dmovrlap
    Fanuc Focas Library | Position | cnc_rd3dofschg
    Description Read the modification of tool length compensation amount in tool axis direction. The places of decimal points can be got by... [read more]
    cnc_rd3dofschg
    Fanuc Focas Library | Position | cnc_rd3dpulse
    Description 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]
    cnc_rd3dpulse
    Fanuc Focas Library | Position | cnc_rd3dtooltip
    Description Reads the absolute position of the tool tip coordinates about 3-dimensional handle feed. The number of each axis and the tool... [read more]
    cnc_rd3dtooltip
    Fanuc Focas Library | Position | cnc_rd5axmandt
    Description Reads the data for the manual feed for 5-axis machining.... [read more]
    cnc_rd5axmandt
    Fanuc Focas Library | Position | cnc_rd5axovrlap
    Description 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]
    cnc_rd5axovrlap
    Fanuc Focas Library | Position | cnc_rdaxisdata
    Description Reads various data relating servo axis/spindle axis that is got by... [read more]
    cnc_rdaxisdata
    Fanuc Focas Library | Position | cnc_rdaxisname
    Description 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]
    cnc_rdaxisname
    Fanuc Focas Library | Position | cnc_rddynamic
    Description Read various data which changes at CNC operation at a time. The data which can be read is as follows. Data Function... [read more]
    cnc_rddynamic
    Fanuc Focas Library | Position | cnc_rdhndintrpt
    Description 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]
    cnc_rdhndintrpt
    Fanuc Focas Library | Position | cnc_rdmovrlap
    Description 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]
    cnc_rdmovrlap
    Fanuc Focas Library | Position | cnc_rdposition
    Description 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]
    cnc_rdposition
    Fanuc Focas Library | Position | cnc_rdspcss
    Description Reads the following data related to constant surface speed control on CNC side. Converted spindle speed value... [read more]
    cnc_rdspcss
    Fanuc Focas Library | Position | cnc_rdspdlname
    Description 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]
    cnc_rdspdlname
    Fanuc Focas Library | Position | cnc_rdspdlspeed
    Description This function does the calculation for serial spindle by which the gear ratio was considered against the rotation speed of spindle motor.... [read more]
    cnc_rdspdlspeed
    Fanuc Focas Library | Position | cnc_rdspeed
    Description 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]
    cnc_rdspeed
    Fanuc Focas Library | Position | cnc_rdspgear
    Description 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]
    cnc_rdspgear
    Fanuc Focas Library | Position | cnc_rdspload
    Description 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]
    cnc_rdspload
    Fanuc Focas Library | Position | cnc_rdspmaxrpm
    Description 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]
    cnc_rdspmaxrpm
    Fanuc Focas Library | Position | cnc_rdspmeter
    Description 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]
    cnc_rdspmeter
    Fanuc Focas Library | Position | cnc_rdsvmeter
    Description 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]
    cnc_rdsvmeter
    Fanuc Focas Library | Position | cnc_relative
    Description 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]
    cnc_relative
    Fanuc Focas Library | Position | cnc_relative2
    Description Differences between functions of cnc_relative2 and functions of... [read more]
    cnc_relative2
    Fanuc Focas Library | Position | cnc_skip
    Description 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]
    cnc_skip
    Fanuc Focas Library | Position | cnc_srvdelay
    Description 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]
    cnc_srvdelay
    Fanuc Focas Library | Position | cnc_wrrelpos
    Description Sets again relative position against the axis specified with "type". Preset data is specified by "data[0]" in "IDBWRR". If 0 is... [read more]
    cnc_wrrelpos
    Fanuc Focas Library | Position | flist_Position
    CNC: Function related to controlled axis/spindle... [read more]
    flist_Position
    Modified: 2018-06-11