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 sets the actual read axis number (the servo axis number) to "*data_num" variable after execution. And in case that "*data_num" is smaller than the servo axis number, this function reads data for the specified axis 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 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 servo load meter data. The number of array must be equal to "*data_num". The ODBSVLOAD structure is as follows.
typedef struct odbsvload {
LOADELM svload; /* servo load meter data */
} ODBSVLOAD ;
- svload
- The LOADELM structure for servo load meter data
And the LOADELM structure is as follows.
typedef struct loadelm {
long data; /* load meter data */
short dec; /* place of decimal point */
short unit; /* unit */
char name; /* axis name */
char suff1; /* subscript of axis name 1 */
char suff2; /* subscript of axis name 2 */
char reserve; /* */
} LOADELM;
- data
- Load meter data
- dec
- Place of decimal point
- unit
- Unit
Always 0 (=%) - name
- Axis name (ASCII)
- suff1
- Subscript of axis name(ASCII)
- suff2
- Not used
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 axis number (*data_num) is 0 or less. |
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 not related to CNC parameter.
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 reads all servo load meter data, and displays them.
#include "fwlib32.h"
void example( void )
{
ODBSVLOAD sv[MAX_AXIS];
short num = MAX_AXIS;
short ret = cnc_rdsvmeter(h, &num, sv);
if(!ret) {
int i;
for(i = 0 ; i < num ; i++) {
printf("%c = %d\n", sv[i].svload.name, sv[i].svload.data);
}
}
}
Example(C#)
The following program reads all servo load meter data, and displays them.
class example
{
public void sample()
{
Focas1.LOADELM sv = new Focas1.LOADELM();
short num = Focas1.MAX_AXIS;
byte[] bytes = new byte[Marshal.SizeOf(sv) * Focas1.MAX_AXIS];
IntPtr ptrWork = Marshal.AllocCoTaskMem(Marshal.SizeOf(sv));
short ret = Focas1.cnc_rdsvmeter(h, ref num, bytes);
if (ret == Focas1.EW_OK)
{
int i;
for (i = 0; i < num; i++)
{
Marshal.Copy(bytes, i * Marshal.SizeOf(sv), ptrWork, Marshal.SizeOf(sv));
Marshal.PtrToStructure(ptrWork, sv);
Console.WriteLine("{0} = {1}", (char)sv.name, sv.data);
}
}
Marshal.FreeCoTaskMem(ptrWork);
}
}