Description
Reads the management data of NC programs already registered in CNC.
The management data of NC program are
- Number of registered programs(In case of 0i-F, 30i, the number of the reserved folders by system are added.)
 - Number of available programs
 - Character number of used memory
 - Character number of unused memory
 
Universal Fanuc Driver
Fanuc Focas Library CD
Declaration
Arguments
Specify the library handle. See "Library handle" for details.
Specify the output format.
| 0 | : | binary | 
| 1 | : | ASCII | 
Specify the length of data block.
| 12 | : | binary | 
| 31 | : | ASCII | 
                        prginfo Pointer to the ODBNC structure including the program directory.
                        The ODBNC structure is as follows.
typedef struct odbnc {
     union {
        struct {
             short   reg_prg ;   /* Number of registered programs. */
             short   unreg_prg ; /* Number of available programs. */
             long    used_mem ;  /* Character number of used memory. */
             long    unused_mem ;/* Character number of unused memory. */
        } bin ;
        char asc[31] ;           /* Buffer for ASCII format */
     } u ;
} ODBNC ;
- type=0
 - Each data are stored in each members of the structure with binary format.
 - type=1
 - ASCII strings are stored in "prginfo.u.asc" with following format.
 
| prginfo.bin.reg_prg | Number of registered programs. | 
| prginfo.bin.unreg_prg | Number of available programs. | 
| prginfo.bin.used_mem | Character number of used memory. | 
| prginfo.bin.unused_mem | Character number of unused memory. | 
% LF d1 LF d2 LF d3 LF d4 LF %
| LF | 0x0A ('\n') | 
| d1 | Number of registered programs | 
| d2 | Number of available programs | 
| d3 | Character number of used memory | 
| d4 | Character number of unused memory | 
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)  | 
Length of the block (length) is illegal.  | 
(4)  | 
Output format (type) is illegal.  | 
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 the management data of NC program, and displays them.
#include "fwlib32.h"
void example( void )
{
        ODBNC buf ;
        short ret ;
        ret = cnc_rdproginfo( h, 0, 16, &buf ) ;
        if ( ret )
                printf( "ERROR: %d\n", ret ) ;
        else {
                printf( "Registered program number   = %d\n",
                        buf.u.bin.reg_prg ) ;
                printf( "Registerable program number = %d\n",
                        buf.u.bin.unreg_prg ) ;
                printf( "Used memory                 = %ld\n",
                        buf.u.bin.used_mem ) ;
                printf( "Free memory                 = %ld\n",
                        buf.u.bin.unused_mem ) ;
        }
}
Example(C#)
The following program reads the management data of NC program, and displays them.
class example
{
    public void sample()
    {
            Focas1.ODBNC_1 buf = new Focas1.ODBNC_1();
            short ret;
            ret = Focas1.cnc_rdproginfo(h, 0, 16, buf);
            if (ret != Focas1.EW_OK)
            {
                    Console.WriteLine("ERROR: {0}", ret);
            }
            else
            {
                    Console.WriteLine("Registered program number   = {0}",
                            buf.reg_prg);
                    Console.WriteLine("Registerable program number = {0}",
                            buf.unreg_prg);
                    Console.WriteLine("Used memory                 = {0}",
                            buf.used_mem);
                    Console.WriteLine("Free memory                 = {0}",
                            buf.unused_mem);
            }
    }
}