Reads the information of CNC about the commanded G code. Various information is stored in each member of ODBGCD.
The readable data are modal G code and one shot G code.
This function cannot be used for Series 16/18/21, 15, 16i/18i/21i, 0i-A/B/C, and Power Mate i, so use cnc_modal function instead of cnc_rdgcode function.
MTConnect Fanuc Adapter
#include "fwlib32.h" or "fwlib64.h"
FWLIBAPI short WINAPI cnc_rdgcode(unsigned short FlibHndl, short type, short block, short *num_gcd, ODBGCD *g_code );
Arguments
FlibHndl
[ in ]
Specify the library handle. See "Library handle" for details.
type
[ in ]
Specify the group of G code.
Series 15i
0 to 18,24,25,27
:
Read data of modal G code one by one.
-1
:
Read all data of modal G code at a time.
100 to 103
:
Read data of one shot G code one by one.
-2
:
Read all data of one shot G code at a time.
Series 30i, 0i-D/F, PMi-A
0 to 36
:
Read data of modal G code one by one.
-1
:
Read all data of modal G code at a time.
100 to 103
:
Read data of one shot G code one by one.
-2
:
Read all data of one shot G code at a time.
block
[ in ]
Specify the block to be read.
0
:
previous block
1
:
active block
2
:
next block
num_gcd
[ in/out ]
Pointer to the number of G code data to be read. Specify the number of G code data to be read before function call, and the number of G code data which was/were read actually is stored after the function call.
g_code
[ out ]
Specify the address of the array of ODBGCD structure including the G code data. The number of array must be 1 for reading data one by one. The number of array must be the number of G code to be read (*num_gcd) for reading all data at a time.
The ODBGCD structure is as follows.
typedef struct odbgcd {
short group ; /* G code group */
short flag ; /* additional information */
char code[8] ; /* G code */
} ODBGCD ;
Refer to the following explanation about the ODBGCD structure.
(1) Reading modal G code
Reading data one by one
Specify 1 for "num_gcd". Specify G code group in the following table for "type".
Specify the block to be read for "block".
Then G code which is selected in the objective block specified by "block" is set in the ODBGCD structure.
Series 15i
type
G code
type
G code
type
G code
0
G00
7
G43
13
G54
G01
G43.1
G54.1
G02
G44
G54.2
G02.1
G49
G55
G02.2
8
G73
G56
G02.3
G74
G57
G02.4
G76
G58
G03
G80
G59
G03.1
G81
14
G61
G03.2
G82
G62
G03.3
G83
G63
G03.4
G84
G64
G06.1
G84.2
15
G68
G06.2
G84.3
G69
G33
G85
16
G15
G60
G86
G16
1
G17
G87
17
G50.1
G18
G88
G51.1
G19
G89
18
G40.1
2
G90
9
G98
G41.1
G91
G99
G42.1
3
G22
10
G50
24
G25
G23
G51
G26
4
G93
11
G66
25
G12.1
G94
G66.1
G13.1
G95
G67
27
G80.5
5
G20
12
G96
G81.5
G21
G97
6
G40
G41
G41.2
G41.3
G42
G42.2
Series 30i, 0i-D/F, PMi-A
M Series
T Series
type
G code
G code SystemA
G code SystemB
G code SystemC
0
G0
G0
G0
G0
G1
G1
G1
G1
G2
G2
G2
G2
G3
G3
G3
G3
G33
G32
G33
G33
G75
G90
G77
G20
G77
G92
G78
G21
G78
G94
G79
G24
G79
G34
G34
G34
G2.2
G3.2
G2.3
G3.3
G6.2
G35
G35
G35
G2.4
G36
G36
G36
G3.4
G6.2
G6.2
G6.2
G2.4
G2.4
G2.4
G3.4
G3.4
G3.4
G2.2
G2.2
G2.2
G3.2
G3.2
G3.2
G35
G2.3
G2.3
G2.3
G36
G3.3
G3.3
G3.3
G34
G6.1
G6.1
G6.1
G32.2
G2.1
G2.1
G2.1
G2.1
G3.1
G3.1
G3.1
G3.1
1
G17
G97
G97
G97
G96
G96
G96
G19
G18
G17.1
2
G90
G90
G90
G91
G91
G91
3
G23
G69
G69
G69
G22
G68
G68
G68
4
G94
G98
G94
G94
G95
G99
G95
G95
G93
G93
G93
G93
G93.2
G93.3
G93.3
G93.3
G93.3
5
G20(G70)
G20
G20
G70
G21(G71)
G21
G21
G71
6
G40
G40
G40
G40
G41
G41
G41
G41
G42
G42
G42
G42
G41.2
G41.2
G41.2
G41.2
G42.2
G42.2
G42.2
G42.2
G41.3
G41.3
G41.3
G41.3
G41.4
G41.4
G41.4
G41.4
G42.4
G42.4
G42.4
G42.4
G41.5
G41.5
G41.5
G41.5
G42.5
G42.5
G42.5
G42.5
G41.6
G40.3
G40.3
G40.3
G42.6
G41.6
G41.6
G41.6
G42.6
G42.6
G42.6
G46.8
G46.8
G46.8
7
G49(G49.1)
G25
G25
G25
G43
G26
G26
G26
G44
G43.1
G43.4
G43.5
G43.2
G43.3
G43.8
G43.9
G43.7(G44.7)
G44.1
8
G80
G23
G23
G23
G81
G22
G22
G22
G82
G83
G84
G85
G86
G87
G88
G89
G73
G74
G76
G84.2
G84.3
G81.2
9
G98
G80
G80
G80
G99
G83
G83
G83
G84
G84
G84
G85
G85
G85
G86
G86
G86
G87
G87
G87
G88
G88
G88
G89
G89
G89
G81
G81
G81
G82
G82
G82
G83.1
G83.1
G83.1
G84.2
G84.2
G84.2
G83.5
G83.5
G83.5
G87.5
G87.5
G87.5
G83.6
G83.6
G83.6
G87.6
G87.6
G87.6
G86.1
G86.1
G86.1
G84.1
G84.1
G84.1
10
G50
G98
G98
G51
G99
G99
11
G67
G67
G67
G67
G66
G66
G66
G66
G66.1
G66.1
G66.1
G66.1
12
G97
G96
13
G54(G54.1)
G54(G54.1)
G54(G54.1)
G54(G54.1)
G55
G55
G55
G55
G56
G56
G56
G56
G57
G57
G57
G57
G58
G58
G58
G58
G59
G59
G59
G59
14
G64
G64
G64
G64
G61
G61
G61
G61
G62
G62
G62
G62
G63
G63
G63
G63
15
G69
G17
G17
G17
G68
G68.2
G68.3
G68.4
G18
G18
G18
G19
G19
G19
G17.1
G17.1
G17.1
16
G15
G69.1
G69.1
G69.1
G16
G68.1
G68.1
G68.1
G68.2
G68.2
G68.2
G68.3
G68.3
G68.3
G68.4
G68.4
G68.4
17
G40.1(G150)
G50
G50
G41.1(G151)
G51
G51
G42.1(G152)
18
G25
G40.1
G40.1
G40.1
G26
G41.1
G41.1
G41.1
G42.1
G42.1
G42.1
19
G160
G50.2(G250)
G50.2(G250)
G50.2(G250)
G161
G51.2(G251)
G51.2(G251)
G51.2(G251)
20
G13.1(G113)
G13.1(G113)
G13.1(G113)
G13.1(G113)
G12.1(G112)
G12.1(G112)
G12.1(G112)
G12.1(G112)
21
G50.1
G50.1
G50.1
G50.1
G51.1
G51.1
G51.1
G51.1
22
G54.2
G49(G49.1)
G49(G49.1)
G49(G49.1)
G43
G43
G43
G44
G44
G44
G43.1
G43.1
G43.1
G43.4
G43.4
G43.4
G43.5
G43.5
G43.5
G43.7(G44.7)
G43.7(G44.7)
G43.7(G44.7)
G43.8
G43.8
G43.8
G43.9
G43.9
G43.9
G44.1
G44.1
G44.1
23
G80.5
G15
G15
G15
G81.5
G16
G16
G16
24
G5.5
G5.5
G5.5
G5.6
G5.6
G5.6
25
G54.4
G54.4
G54.4
26
G49.9
G80.5
G80.5
G80.5
G44.9
G81.5
G81.5
G81.5
27
G80.4(G80.8)
G80.4(G80.8)
G80.4(G80.8)
G81.4(G81.4)
G81.4(G81.4)
G81.4(G81.4)
28
G8.9
G8.9
G8.9
G8.8
G8.8
G8.8
29
G54.3
G5.7
G5.7
G5.7
G5.8
G5.8
G5.8
30
G50.2
G10.3
G10.3
G10.3
G51.2
G10.4
G10.4
G10.4
G10.5
G10.5
G10.5
31
G5.5
G5.6
32
G54.4
33
G80.4(G80.8)
G81.4(G81.8)
34
G13
G12
35
G8.9
G8.8
36
G5.7
G5.8
The following data are set in the ODBGCD structure.
group
The group number which was specified by "type" is stored.
flag
The following flag is stored.
#3 = 1
:
command differ from the previous block (only Series 30i, 0i-D/F, PMi-A)
#7 = 1
:
There is a command in the present block.
code
G code is stored as a character string (ASCII).
For example, the following result is gotten by calling this function during executing N100's block of the next machining program.
Specify the number of G code to be read for "num_gcd". Specify -1 for "type". Specify the block to be read for "block". Then G code which is selected in the objective block specified by "block" is set in the ODBGCD structure. Specify the maximun group number for "num_gcd" in order to read all groups of G code. The number of G code which were read actually is stored in "num_gcd" after the function call.
(2) Reading one shot G code
Reading data one by one
Specify 1 for "num_gcd".
Specify G code group in the following table for "type".
Specify the block to be read for "block". Then one shot G code which is commanded in the objective block specified by "block" is set in the ODBGCD structure.
When no one shot G code is commanded in the objective block specified by "block", zero is set in "num_gcd".
When no one shot G code is commanded in the objective block specified by "block", zero is set in "num_gcd".
Series 15i
type
G code
type
G code
100
G04
101
G09
G05.1
102
G53
G07
103
G38
G07.1
G45
G10
G46
G10.1
G47
G10.6
G48
G10.9
G11
G12.2
G13.2
G27
G28
G29
G30
G30.1
G31
G31.1
G31.2
G31.3
G31.4
G31.8
G31.9
G37
G39
G52
G60
G65
G72.1
G72.2
G81.1
G92
G92.1
Series 30i, 0i-D/F, PMi-A
M Series
T Series
type
G code
G code SystemA
G code SystemB
G code SystemC
100
G4
G4
G4
G4
G10
G27
G27
G27
G28
G28
G28
G29
G29
G29
G27
G30
G30
G30
G28
G50
G92
G92
G29
G70
G70
G72
G30
G71
G71
G73
G72
G72
G74
G39
G73
G73
G75
G74
G74
G76
G75
G75
G77
G76
G76
G78
G10
G10
G10
G92
G37.1
G37.1
G37.1
G37(G37.2)
G37(G37.2)
G37(G37.2)
G31(G31.1)
G31
G31
G31
G60
G65
G65
G65
G65
G5
G5
G5
G5
G11
G11
G11
G11
G7.1(G107)
G7.1(G107)
G7.1(G107)
G52
G52
G52
G52
G37
G30.1
G30.1
G30.1
G7.1(G107)
G10.6
G10.6
G10.6
G30.1
G50.3
G92.1
G92.1
G10.6
G8
G8
G8
G72.1
G100
G110
G101
G72.2
G39
G39
G39
G92.1
G60
G60
G60
G8
G31.8
G31.8
G31.8
G70.7
G71.7
G72.7
G73.7
G74.7
G75.7
G76.7
G37.3
G37.3
G37.3
G31.9
G31.9
G31.9
G10.9
G10.9
G10.9
G81.1
G7
G7
G7
G73.1
G73.1
G73.1
G73.2
G73.2
G73.2
G5.1
G81.1
G81.1
G81.1
G7
G5.4
G5.4
G5.4
G31.8
G31.9
G12.4
G82.4
G82.4
G82.4
G13.4
G83.4
G83.4
G83.4
G5.4
G84.4
G84.4
G84.4
G10.9
G5.1
G5.1
G5.1
G31.2
G72.1
G72.1
G72.1
G31.3
G72.2
G72.2
G72.2
G31.4
G91.1
G28.2
G30.2
G50.4
G50.4
G50.4
G50.4
G50.5
G50.5
G50.5
G50.5
G50.6
G50.6
G50.6
G50.6
G51.4
G51.4
G51.4
G51.4
G51.5
G51.5
G51.5
G51.5
G51.6
G51.6
G51.6
G51.6
G37.1
G91.1
G91.1
G91.1
G37.2
G28.2
G28.2
G28.2
G37.3
G30.2
G30.2
G30.2
101
G9(G65.4)
G9(G65.4)
G9(G65.4)
G9(G65.4)
G96.1
G96.1
G96.1
G96.1
G96.2
G96.2
G96.2
G96.2
G96.3
G96.3
G96.3
G96.3
G96.4
G96.4
G96.4
G96.4
G22.2
G22.2
G22.2
G22.2
G52.1
G52.1
G52.1
G52.1
G52.2
G52.2
G52.2
G52.2
G52.3
G52.3
G52.3
G52.3
G0.1
G0.1
G0.1
G0.1
G5.9
G5.9
G5.9
G5.9
102
G53
G53
G53
G53
G53.1
G53.1
G53.1
G53.1
G53.6
G53.6
G53.6
G53.6
G53.2
G53.2
G53.2
G53.2
G53.7
G53.7
G53.7
G53.7
103
G38
G38
G38
G38
G45
G41.8
G41.8
G41.8;
G46
G42.8
G42.8
G42.8
G47
G48
G10.8
G10.8
G10.8
G10.8
G91.2
G91.2
G91.2
The following data are set in the ODBGCD structure.
group
The group number which was specified by "type" is stored.
flag
The following flag is stored.
#3
= 1
:
command differ from the previous block (only Series 30i, 0i-D/F, PMi-A)
#4
= 1
:
There is a command of a decimal point.
#5
= 1
:
Negative
#6
= 1
:
1 digit
#7
= (always)1
:
There is a command in the present block.
code
For example, the following result is gotten by calling this function during executing N100's block of the next machining program.
Reading all data at a time
Specify the number of one shot G code to be read for "num_gcd". Specify -2 for "type". Specify the block to be read for "block". Then one shot G code which is commanded in the objective block specified by "block" is set in the ODBGCD structure. Specify 4 for "num_gcd" in order to read all groups of one shot G code. The number of G code which were read actually is stored in "num_gcd" after the function call.
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 The number of G code data to be read (*num_gcd) is wrong.
EW_NUMBER (3)
Data number error The specification of G code group (type) is wrong.
EW_ATTRIB (4)
Data attribute error The specification of block (block) is wrong.