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 by specifying ALL_AXES for "axis". In that case, an machine position of each axis is stored in the data array of ODBAXIS.
The decimal point position of the machine position can be acquired in the cnc_getfigure function.
- Series 15/15i
The relation to the read machine position, 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, 16i/18i-W, 0i-A/B/C, Power Mate i
Amount of servo delay and acceleration/deceleration delay is always included in the read machine position.
- Series 30i/31i/32i, 0i-D/F, Power Motion i-A
Amount of servo delay and acceleration/deceleration delay is not included in the read machine position.
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 machine 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] ; /* Machine 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 |
---|---|
(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.
2202#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) | |||||||||||||||||
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 "MACHINE 2: -265593" while the machine
position data of the 2nd axis is -26.5593.
(in case of "inch output" and "IS-B".)
#include "fwlib32.h"
void example( void )
{
ODBAXIS buf ;
cnc_machine( h, 2, 4+4*1, &buf ) ;
printf( "MACHINE 2:%8ld\n", buf.data[0] ) ;
}
Example(C#)
The following program displays "MACHINE 2: -265593" while the machine
position data of the 2nd axis is -26.5593.
(in case of "inch output" and "IS-B".)
class example
{
public void sample()
{
Focas1.ODBAXIS buf = new Focas1.ODBAXIS();
Focas1.cnc_machine(h, 2, 4 + 4 * 1, buf);
Console.WriteLine("MACHINE 2:{0,8}", buf.data[0]);
}
}