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" is bigger than the current spindle number, this function sets the actual read spindle number (the current spindle number) to "data_num" variable after execution. And in case that "data_num" is smaller than the current spindle number, this function reads data for the specified spindle number which is specified by "data_num".
Universal Fanuc Driver
Fanuc Focas Library CD
Declaration
Arguments
Specify the library handle. See "Library handle" for details.
Specify the data type.
0 | : | spindle load meter data |
1 | : | spindle motor speed data |
-1 | : | all type |
Specify the pointer to the number of data to be read. This function returns the number of data which was read actually.
Specify the pointer to the array of ODBSVLOAD structure to store the spindle load meter data and the spindle motor speed data. The number of array must be equal to "*data_num". The ODBSVLOAD structure is as follows.
typedef struct odbspload {
LOADELM spload; /* spindle load meter data */
LOADELM spspeed; /* spindle motor data */
} ODBSPLOAD ;
- svload
- The LOADELM structure for spindle load meter data
- spspeed
- The LOADELM structure for spindle motor speed data And the LOADELM structure is as follows.
The LOADELM structure is as follows.
typedef struct loadelm {
long data; /* load meter data, motor speed */
short dec; /* place of decimal point */
short unit; /* unit */
char name; /* spindle name */
char suff1; /* subscript of spindle name 1 */
char suff2; /* subscript of spindle name 2 */
char reserve; /* */
} LOADELM;
- data
- Load meter data, motor speed data
- dec
- Place of decimal point
- unit
- Unit
0 : % 1 : rpm - name
- Spindle name (ASCII)
ASCII code 'S' is stored. - suff1
Subscript of spindle name 1 (ASCII)
- Series 16/18/21, 16i/18i/21i, 0i, 30i, Power Mate i
The spindle number ('1', '2', ...) is stored.
- Series 15i
The value which is defined by parameter (No. 5845, 5846) is stored.
- suff2
Subscript of spindle name 2 (ASCII)
When the spindle switching function is available, the following ASCII code is stored.In case of main spindle : '1' In case of sub spindle : '2' When the spindle switching function is not available, NULL('\0') is stored.
In case of Series 15, data is stored. But it is invalid for the spindle name.
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) |
The spindle number (data_num) is 0 or less. |
(4) |
Type of data (type) is wrong. |
As for the other return codes or the details, see "Return status of Data window function"
CNC option
And this function is related to the following CNC option.
This function is related to the spindle switching control.
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.
5845, 5846 (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 | X |
"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 reads all spindle load meter, and displays them.
#include "fwlib32.h"
void example( void )
{
ODBSPLOAD sp[4]; /* 4 = maximum spinlde number */
short num = 4;
short ret = cnc_rdspmeter(h, 0, &num, sp);
if(!ret) {
int i;
for(i = 0 ; i < num ; i++) {
printf("%c%c = %d\n",
sp[i].spload.name, sp[i].spload.suff1,
sp[i].spload.data);
}
}
}
Example(C#)
The following program reads all spindle load meter, and displays them.
class example
{
public void sample()
{
Focas1.ODBSPLOAD_data sp = new Focas1.ODBSPLOAD_data();
short num = 4; /* 4 = maximum spinlde number */
byte[] bytes = new byte[Marshal.SizeOf(sp) * 4];
IntPtr ptrWork = Marshal.AllocCoTaskMem(Marshal.SizeOf(sp));
short ret = Focas1.cnc_rdspmeter(h, 0, ref num, bytes);
if (ret == Focas1.EW_OK)
{
int i;
for (i = 0; i < num; i++)
{
Marshal.Copy(bytes, i * Marshal.SizeOf(sp), ptrWork, Marshal.SizeOf(sp));
Marshal.PtrToStructure(ptrWork, sp);
Console.WriteLine("{0}{1} = {2}",
(char)sp.spload.name, (char)sp.spload.suff1, sp.spload.data);
}
}
Marshal.FreeCoTaskMem(ptrWork);
}
}