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 specifying ALL_AXES for "axis". In that case, an absolute position of each axis is stored in the data array of ODBAXIS.
The decimal point position of the absolute position can be acquired in the cnc_getfigure function.
- Series 15/15i
The relation to the read absolute position, amount of Tool Length Compensation and Cutter Radius Compensation, and amount of servo delay and acceleration/deceleration delay follows setting the CNC parameter of the following description.
- Series 16/18/21, 16i/18i/21i, 0i-A/B/C, Power Mate i
Amount of Tool Length Compensation and Cutter Radius Compensation, and amount of servo delay and acceleration/deceleration delay is always included in the read absolute position.
- Series 16i/18i-W
Amounts of Wire diameter Compensation, amounts of servo delay and acceleration/deceleration delay is always included in the read absolute position.
- Series 30i/31i/32i, 0i-D/F, Power Motion i-A
Amount of Tool Length Compensation and Cutter Radius Compensation is always included in the read absolute position. But, amount of servo delay and acceleration/deceleration delay is not included.
MTConnect Fanuc AdapterUniversal Fanuc Driver
Fanuc Focas Library CD
Declaration
FWLIBAPI short WINAPI cnc_absolute( unsigned short FlibHndl, short axis, short length, ODBAXIS *absolute );
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 absolute position data 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] ; /* Absolute position data 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 |
---|---|
EW_LENGTH (2) |
data block length error Size of ODBAXIS 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 15 2204#1=1, 7613#0=1 (must be set)
- M series:2202#2, #3, #4, #5 (influenced by setting)
- T series:2202#4, #5, 2203#3 (influenced by setting)
- Series 15i 2202#2,#3,#4,#5 (influenced by setting)
- Series 30i, 0i-D/F, PMi-A 3104#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) | 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-D | 0i-F | 16i | 18i | 30i-A | 30i-B | |
---|---|---|---|---|---|---|
P (Punch press) | O | O | O | O | - | O |
L (Laser) | - | - | O | - | - | O |
W (Wire) | - | - | O | O | O | O |
Power Mate i-D | O |
Power Mate i-H | O |
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.
See Also
Example(C Language)
The following program displays
1: 120005
2: -50119
3: 80
while the absolute position data for each axes are
The 1st axis 120.005
The 2nd axis -50.119
The 3rd axis 0.080
in 3-axis system.
(in case of "mm input" and "IS-B".)
#include "fwlib32.h"
void example( void )
{
ODBAXIS buf ;
cnc_absolute( h, -1, 4+4*MAX_AXIS, &buf ) ;
printf( "1:%8ld\n2:%8ld\n3:%8ld\n", buf.data[0], buf.data[1],
buf.data[2] ) ;
}
Example(C#)
The following program displays
1: 120005
2: -50119
3: 80
while the absolute position data for each axes are
The 1st axis 120.005
The 2nd axis -50.119
The 3rd axis 0.080
in 3-axis system.
(in case of "mm input" and "IS-B".)
class example
{
public void sample()
{
Focas1.ODBAXIS buf = new Focas1.ODBAXIS();
Focas1.cnc_absolute(h, -1, 4 + 4 * Focas1.MAX_AXIS, buf);
Console.WriteLine("1:{0,8}\n2:{1,8}\n3:{2,8}", buf.data[0], buf.data[1],
buf.data[2]);
}
}