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 at a time by specifying ALL_AXES for "axis". In that case, an amount of distance to go of each axis is stored in the data array of ODBAXIS.
The decimal point position of the amount of distance to go can be acquired in the cnc_getfigure function.
- Series 16/18/21, 16i/18i/21i, 0i-A/B/C The read amount of distance to go is twice as big as the actual one except specifying diameter of linear axis in T series.
- Power Mate i The read amount of distance to go is twice as big as the actual one.
Universal Fanuc Driver
Fanuc Focas Library CD
Declaration
Arguments
Specify the library handle. See "Library handle" for details.
Specify axis number to read.
ALL_AXES | : | for all axes(ALL_AXES : -1) |
1,..,m | : | for each axis(m : number of controlled axis) |
Specify the length of the data block(size of ODBAXIS structure)
ODBAXIS
for each axis | for all axes |
---|---|
- Series 15/15i, 30i, 0i-D/F, PMi-A
n = Maximum controlled axes
(The data for current controlled axes are valid.)
- Series 16/18/21, 16i/18i/21i, 0i-A/B/C, Power Mate i
n = Current controlled axes
Pointer to the ODBAXIS structure including the number of distance to go of the controlled axes. The ODBAXIS structure is as follows.
typedef struct odbaxis {
short dummy ; /* Not used. */
short type ; /* Axis number. */
long data[MAX_AXIS] ; /* number of distance to go of controlled axis. */
} ODBAXIS ; /* MAX_AXIS is the maximum 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 |
---|---|
(2) |
Size of ODBAXIS structure(length) is illegal. |
(4) |
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,
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.
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) | |||||||||||||||||
T (Turning) | - | ||||||||||||||||
LC (Loader) | - | - | - | - | - | - | - | - |
0i-D | 0i-F | 16i | 18i | 30i-A | 30i-B | |
---|---|---|---|---|---|---|
P (Punch press) | - | |||||
L (Laser) | - | - | - | - | ||
W (Wire) | - | - |
Power Mate i-D | |
Power Mate i-H | |
Power Motion i-A | O |
"O" | : | Both Ethernet and HSSB | |
"E" | : | Ethernet | |
"H" | : | HSSB | |
"X" | : | Cannot be used | |
"-" | : | None |
Note) 0i-C does not support the HSSB function.
Example(C Language)
The following program displays
1: -17300
2: 60018
3: -180
4: 8000
while the amount of distance to go for each axes are
The 1st axis -17.300 (Diameter programming)
The 2nd axis 30.009 (Radius programming)
The 3rd axis -0.180 (Rotation axis)
The 4th axis 4.000 (Radius programming)
in 4-axis system of T Series.
(in case of "mm input" and "IS-B".)
#include "fwlib32.h"
void example( void )
{
ODBAXIS buf ;
unsigned int idx ;
cnc_distance( h, -1, 4+4*MAX_AXIS, &buf ) ;
for ( idx = 0 ; idx < 4 ; idx++ )
printf( "%u:%8ld\n", idx, buf.data[idx] ) ;
}
Example(C#)
The following program displays
1: -17300
2: 60018
3: -180
4: 8000
while the amount of distance to go for each axes are
The 1st axis -17.300 (Diameter programming)
The 2nd axis 30.009 (Radius programming)
The 3rd axis -0.180 (Rotation axis)
The 4th axis 4.000 (Radius programming)
in 4-axis system of T Series.
(in case of "mm input" and "IS-B".)
class example
{
public void sample()
{
Focas1.ODBAXIS buf = new Focas1.ODBAXIS();
uint idx;
Focas1.cnc_distance(h, -1, 4 + 4 * Focas1.MAX_AXIS, buf);
for (idx = 0; idx < 4; idx++)
{
Console.WriteLine("{0}:{1,8}", idx, buf.data[idx]);
}
}
}