ArticlePDF Available

EGCL: An Extended G-Code Language with Flow Control, Functions and Mnemonic Variables

Authors:

Abstract and Figures

In the context of computer numerical control (CNC) and computer aided manufacturing (CAM), the capabilities of program-ming languages such as symbolic and intuitive programming, pro-gram portability and geometrical portfolio have special importance. They allow to save time and to avoid errors during part programming and permit code re-usage. Our updated literature review indicates that the current state of art presents voids in parametric programming, program portability and programming flexibility. In response to this situation, this article presents a compiler implementation for EGCL (Extended G-code Language), a new, enriched CNC programming language which allows the use of descriptive variable names, geomet-rical functions and flow-control statements (if-then-else, while). Our compiler produces low-level generic, elementary ISO-compliant G-code, thus allowing for flexibility in the choice of the executing CNC machine and in portability. Our results show that readable variable names and flow control statements allow a simplified and intuitive part programming and permit re-usage of the programs. Future work includes allowing the programmer to define own functions in terms of EGCL, in contrast to the current status of having them as library built-in functions.
Content may be subject to copyright.
EGCL: An Extended G-Code Language with Flow
Control, Functions and Mnemonic Variables
Oscar E. Ruiz, S. Arroyave, J. F. Cardona
Abstract—In the context of computer numerical control (CNC) and
computer aided manufacturing (CAM), the capabilities of program-
ming languages such as symbolic and intuitive programming, pro-
gram portability and geometrical portfolio have special importance.
They allow to save time and to avoid errors during part programming
and permit code re-usage. Our updated literature review indicates that
the current state of art presents voids in parametric programming,
program portability and programming flexibility. In response to this
situation, this article presents a compiler implementation for EGCL
(Extended G-code Language), a new, enriched CNC programming
language which allows the use of descriptive variable names, geomet-
rical functions and flow-control statements (if-then-else, while). Our
compiler produces low-level generic, elementary ISO-compliant G-
code, thus allowing for flexibility in the choice of the executing CNC
machine and in portability. Our results show that readable variable
names and flow control statements allow a simplified and intuitive
part programming and permit re-usage of the programs. Future work
includes allowing the programmer to define own functions in terms
of EGCL, in contrast to the current status of having them as library
built-in functions.
Keywords—CNC Programming, Compiler, G-code Language, Nu-
merically Controlled Machine-Tools.
GLOSSARY
APT : Automatically Programming Tool
AST : Abstract Syntax Tree
EGCL : Extended G-Code Language
IGCL : ISO G-code Language
GUI : Graphic User Interface
NC : Numerical Control
NCPP : Numerical Control Program Processor
STEP-NC : Standard for the Exchange of Product data for NC
I. I
NTRODUCTION
T
HE interaction between programmers and CNC machine-
tools is implemented through machining languages. The
most widely used language is G-code, even though there are
other programming languages such as APT and STEP-NC (
[11], [6] see section II-A1).
G-code was defined in the 1960’s by the ISO6983 standard (
[5]). It can be considered as a low-level programming language
as it lacks implementation variables, arithmetic and boolean
Prof. Oscar E. Ruiz is the Coordinator of the CAD/CAM/CAE Laboratory
at Universidad EAFIT, Medellín, Colombia. Email: oruiz@eafit.edu.co
S. Arroyave is research assistants with the CAD/CAM/CAE Laboratory at
Universidad EAFIT, Medellín, Colombia. Email: sarroyav@eafit.edu.co
Prof. J. F. Cardona is with the Department of Compuer Science of
Universidad EAFIT, Medellín, Colombia. Email: fcardona@eafit.edu.co
expressions, flow control structures and function calls. There
are currently several ways to produce G-code. They include:
(1) manual programming, (2) vendor macro-language pro-
gramming and (3) CAD-CAM systems. Manual programming,
covering most industry applications ( [9]), is a technique based
on the ISO G-code language (IGCL), in which each movement
through coordinate point sequence must be specified by an
instruction. Additionally, the traditional G-code language does
not permit symbolic coordinate programming. This in general
implies reprogramming and new programming errors when
changes in the designed part are made. At the expense of
program portability, NC machine-tools vendors have extended
the IGCL creating their own macro-languages by adding some
features such as numeric variables, flow control statements and
machining cycles (e.g. drilling cycle). This implies that each
vendor macro-language can only be executed on a specific
machine-tool.
In CAD-CAM systems, machining instructions are obtained
from a 3D geometric model and user-defined machining
strategies, obtaining a specific G-code program by selecting
a post-processor of a given machine vendor.
The APT programming language was developed in the
1950’s at MIT ( [11]). In APT, the user must describe the
geometrical part and give a high-level description of the tool
path. Notice that in CNC-oriented CAD-CAM systems, the
geometry of the part is either imported as a file or defined
via a GUI and the tool path is defined by expert systems
which propose one of several machining programmer-friendly
strategies.
In the present article, the problem of IGCL insufficient
programming capabilities is faced by defining a new language
and by creating its compiler to produce generic ISO G-code,
thus allowing for flexibility in the choice of the executing CNC
machine and in code re-usability.
This paper is organized as follows: In section II, a literature
review is presented. Section III explains how the grammar was
defined and the proposed language compiler was implemented.
Section IV discusses the results and application cases. Section
V concludes the article and poses future work questions.
II. L
ITERATURE REVIEW
Many discussions take place on how to improve the capa-
bilities of IGCL programming and on how to solve portability
problems of vendor programs. Some authors face this problem
by creating new languages or by modifying the machine
control systems whereas other propose to translate G-code
programs from a specific vendor language to another. In this
World Academy of Science, Engineering and Technology 67 2012
455
section we discuss the existing literature, giving a taxonomy
along with conclusions about the aspects to improve, which
explain the objectives of the present article.
A. CNC Languages
1) STEP-NC: It is a programming language specified in
2003 by the ISO14649 standard ( [6]). This language does not
only allow storing machining instructions, but also relevant
information as the geometrical description of a part, work
plans, machining strategies, tools and so on ( [4]). STEP-NC
was created to improve the G-code. Nevertheless, replacing
the traditional way to program CNC will take many years
due to the costs of the technological transformation of the
industry ( [13]). In addition, distinguished CNC machine-tool
vendors (e.g. Fanuc and Mitsubishi) have not yet implemented
STEP-NC in their products ( [3]). On the other hand, STEP-
NC is designed to be used by integrated complete CAD-CAM
systems, resulting non affordable for small companies ( [12]).
2) G-code Expansions: Neagle and Wiegley ( [10]) report
the embedding of IGCL grammar into Java Language. The
user can then program G-code instructions inside a Java script
and compile it to produce traditional G-code. This implies that
the compiler generates the Abstract Syntax Tree (AST) as an
intermediate representation of the source program, solely in
terms of Java language. It does not allow, before the code
generation, to handle the AST to do a code optimization or a
geometrical tool path verification.
Arroyo, Ochoa, Silva y Vidal ( [2]) propose the use of
Haskell to design IGCL programs. Haskell is a high level,
general-purpose and pure functional programming language.
The authors create functions in Haskell which produce G-Code
instructions. In order to produce basic G-code, the programmer
must execute the functions. This implies to assemble these
instructions with the rest of the code, resulting in an error-
prone process.
B. Program Processors
In a CNC machine, the NC program processor (NCPP)
is in charge of checking the syntax of NC programs and
decoding them into specific outputs such as motion command,
parameter setting or error messages ( [3]). Some authors have
created new proccesors in order to solve IGCL shortcoming.
References [3] and [9] present a universal NCPP that accepts
NC programs inputs in different vendor macro languages
such as Fanuc and Mitsubishi. Reference [15] proposes an
intelligent open CNC system in which natural language (e.g.
English) is used to describe the machining routines. This kind
of solution could be undesirable for companies because they
must modify the existing control system by including the new
NCPP. It must also be noticed that natural language technology
still presents inherent unsolved ambiguities an challenges, not
only related to CNC activities.
C. Translators
In order to solve the portability problems of IGCL programs,
Schroeder and Hoffman ( [12]) proposed a translator that can
take a program written in a specific vendor language and
convert it into another specific vendor language by defining
the converting grammar rules. This proposal, being a specific
solution for portability problems instead of a general one,
requires that the user have knowledge in formal language
theory to define the converting grammar rules. In addition, it
is a language-to-language converter. So there could potentially
be 2.n.(n 1) converters for a set of n languages.
D. Conclusions of the Literature Review
According to the taxonomy conducted in this literature
review, there are several capabilities that remain elusive in
CNC programming. These include: (1) program portability (2)
mnemonic variable names, (3) symbolic coordinates program-
ming and (4) flow control structures such as IF and WHILE.
In response to these limitations, this paper presents the
implementation of EGCL, an Extended G-Code Language for
CNC machining, which enhances the traditional IGCL by
adding to it the grammar of arithmetic and boolean expressions
and control flow statements. By taking advantage of the
fact that most machining controls are able to process IGCL
programs, the output of our EGCL compiler is a program
written in vendor-independent IGCL. This solution is available
without the need of replacing or modifying the machine
control.
III. M
ETHODOLOGY
A. Compiler Design
In order to design a extended G-code language (EGCL) able
to recognize readable variable names, symbolic coordinates,
IF and WHILE statements and functions, it was necessary
to define a non-ambiguous grammar which accepts IGCL,
arithmetic and boolean expressions and control flow statements
grammars.
The front-end of a compiler is composed by the lexical
analyzer (also called lexer) and the syntactical analyzer (also
called parser). They have the responsibility of construct an
intermediate representation (AST) of the input program (see
Figure 1). The back-end is in charge of code generation. The
middle-end is responsible of performing transformations on
the intermediate representation, so that the back end can pro-
duce a better target program than it would otherwise have been
produced from an unoptimized intermediate representation (
[1]).
1) Lexical Analyzer: In our case, the lexical analyzer was
created with the software Flex
c
, a generator of lexical scan-
ners ( [8]). The finite automata regular definitions for lexical
analyzer are shown in Figure 2.
2) Syntactic Analyzer: The syntactic analyzer or parser
determines whether a sequence of valid EGCL words (tokens)
corresponds indeed to a valid EGCL sentence or sequence
of sentences. A parsing process does not perform semantic,
geometric and machining validations. The semantic process is
in charge of such check ups. In the parser, if an unexpected
token is read, the parser stops the compilation and shows an
error message. On the other hand, if a valid statement or
sequence of statements are recognized by the parser, it stores
World Academy of Science, Engineering and Technology 67 2012
456
Front-end Back-end
Lexer
Parser
AST
Symbol
Table
Code
Generation
Lexical / Syntactic
Error Messages
EGCL
Program
IGCL
Program
Code
Optimization
Middle-end
AST
Symbol
Table
Geometric / Machining
Error Messages
Fig. 1. Internal scheme of the compiler.
LETTER [a-zA-Z]
DIGIT [0-9]
POSINTEGER 0 | [1-9] DIGIT*
POSREAL POSINTEGER?.DIGIT*
INTEGER -? POSINTEGER
REAL -? POSREAL
PROG_NAME (O|o)DIGIT
+
LINE_NUM (N|n)DIGIT
+
G0_CODE (G|g)0? 0
G1_CODE (G|g)0? 1
G2_CODE (G|g)0? 2
G3_CODE (G|g)0? 3
X_COORD (X|x)(REAL | INTEGER)
Y_COORD (Y|y)(REAL | INTEGER)
Z_COORD (Z|z)(REAL | INTEGER)
X_CENTER_COORD (I|i)(REAL | INTEGER)
Y_CENTER_COORD (J|j)(REAL | INTEGER)
Z_CENTER_COORD (K|k)(REAL | INTEGER)
RADIUS (R|r)(POSREAL | POSINTEGER)
ADD_INFO M_FUN | G_FUN | TOOL_COMP
SPEED FEED_RATE | SPINDLE_SPEED
T_CHANGE_CODE (M|m)0? 6
TOOL_NUM (T|t)DIGIT
+
TOOL_COMP (G|g)(41 |42)
G43_CODE (G|g)(43)
LENGTH_ADD (H|h)DIGIT
+
FEED_RATE (F|f)(POSREAL | POSINTEGER)
SPINDLE_SPEED (S|s)(POSREAL | POSINTEGER)
M_FUN (M|m)DIGIT
+
G_FUN (G|g)DIGIT
+
FINISH (M|m)(30 | 02 | 2)
TRUE true
FALSE false
ELSEIF else if
IF if
ELSE else
WHILE while
SPIRAL spiral
HOLESLINE holesLine
CIRCARRAY circArray
TOK_X X | x
TOK_Y Y | y
TOK_Z Z | z
IDENT LETTER (DIGIT | LETTER | _)*
BINOP + | - |
*
| \ | ^
BOOLOP && | ||
UNIOP !
LOGOP == | != | <= | < | >= | >
Fig. 2. Regular definitions for the Lexical Analyzer EGCL.
prog | start stms end
start PROG_NAME
end FINISH
stms | stms stm
stm cond | loop | g_line | functions
g_line move_code add_info_l
| T_CHANGE_CODE TOOL_NUM
G43_CODE z_coord LENGTH_ADD
move_code coord_l
| G0_CODE coord_l
| G1_CODE coord_l
| coord_l cen_or_rad
| G2_CODE coord_l cen_or_rad
| G3_CODE coord_l cen_or_rad
coord_l x_coord y_coord z_coord
x_coord X_COORD | x_exp
x_exp TOK_X “<” exp “>”
y_coord Y_COORD | y_exp
y_exp TOK_Y “<” exp “>”
z_coord Z_COORD | z_exp
z_exp TOK_Z “<” exp “>”
exp TRUE | FALSE
| INTEGER | REAL | IDEN | call
| exp BINOP exp
| “(” exp “)”
call IDENT “(” exp “)”
assing IDENT = exp
bool_exp TRUE | FALSE
| bool_exp BOOLOP bool_exp
| exp LOGOP exp
| “(” bool_exp “)”
loop WHILE “(” bool_exp “)” “{” stms “}”
cond IF ( bool_exp “)” “{” stms “}” elseif else
else | ELSE “{” stms “}”
elseif | ELSEIF “(” bool_exp “)” “{” stms “}”
functions SPIRAL_TOK | HOLES_TOK | C_ARRAY_TOK
Fig. 3. Context-free grammar for the Syntactic Analyzer EGCL.
1: O001; Program name
2: T ool_num_1=true; Variable declaration
3: if (T ool_num_1==true)
4: {
5: M06 T01; To take tool number 1
6: }
7: else
8: {
9: M06 T02; To take tool number 2
10: }
11: M30; Program end
Fig. 4. An IF-ELSE instruction in EGCL.
the sequence in a hierarchical structure of internal instructions,
which is an intermediate representation of the input program.
This intermediate representation is usually built as a tree data
structure called Abstract Syntax Tree (AST). Figure 5 shows
the AST produced for the EGCL code displayed in Figure 4.
The syntactic analyzer was created with the software
Bison
c
( [7]), based on the grammar shown in Figure 3.
3) Code Generator: The AST is generated as a by-product
of the syntactical validation of the input EGCL code. A further
processing of the AST translates it into a IGCL file.
In line 2 of Figure 4, the assignment in EGCL expresses
that the variable Tool_num_1 must be created and a value
assigned to it. If the boolean expression in line 3 evaluates to
TRUE, the statement of the IF domain is executed and then
the text M06 T01 (tool change in the magazine of the CNC
machine) is written to the output file. The output stream is
ended by the closing M30 text. The output file looks as shown
in Figure 6. This simple example illustrates the compiling pro-
cess showing the capabilities of the EGCL to use mnemonic
World Academy of Science, Engineering and Technology 67 2012
457
program
statements
assignment
indentifier
Tool_num_1
expression
true
conditional
boolean
expression
boolean
expression
identifier
Tool_num_1
operator
==
boolean
expression
true
statements
g_line
token
M06
token
T01
else
statements
g_line
token
M06
token
T02
prog. end
token
M30
O001
Fig. 5. AST for the EGCL example program in Figure 4.
1: O001
2: N10 M06 T01
3: N20 M30
Fig. 6. Output of IF-ELSE Instruction in EGCL in Figure 4
Fig. 7. Proposed Star Pocket part.
variables and to control the program flow. In this manner,
one EGCL script is able to produce several different IGCL
programs by changing some geometric parameters defined at
the header. The produced IGCL programs will generate diverse
parts once they are executed in a CNC machine.
4) Code Simulator: A tool path simulator based in
OpenGL
c
was created in our work to check the output
of EGCL compiler. This simulation is generated by other
compiler whose input is an IGCL program and whose output
is a graphical tool path representation. CncSimulator
c
( [14])
was used to double-check the EGCL compiler output and the
tool path simulator.
IV. R
ESULTS AND DISCUSSION
In order to check the functioning of the designed compiler,
two application cases were proposed (Figures 7 and 11), as
follows.
A. Star Pocket Part
In the metalwork industry, some parts must be machined
using a contour-parallel tool path strategy. The programming
of this type of parts can be simplified with the implementation
of loop statements. In order to program the part proposed in
Figure 7 which its details are shown in Figure 8, it was first
defined some geometric parameters (lines 6-8, Figure 9). Two
WHILE instructions are used in lines 23 y 25 respectively. The
outer loop (line 23) controls the number of passes depending
on the total of the hole depth (Depth) and the depth per pass
(DPass). The innermost loop (line 25) controls the number
of parallel cuts in one pass, depending on the tool diameter
and the overlap percentage of the tool between parallel passes
(OV_LAP) and the circumscribed star diameter in a pass (DL,
see Figure 8). Finally, parametric statements of movements
were programmed in lines 47-58 of Figure 9. A stream of
elementary G-code machining instructions were obtained as
the result of the EGCL program compilation. They were
simulated in the software CncSimulator
c
( [14]) obtaining
the result shown in Figure 10.
This application case highlights the capabilities of the
EGCL in geometry parametrization through symbolic pro-
gramming and the advantages of nested loops statements to
control the number of passes and parallel cuts.
B. Drill Target Pattern Part
In order to illustrate the capabilities of the language to
program hole drilling, a part with a large number of holes was
designed (see Figures 11 and 12). The largest central hole was
programmed by a spiral compiler built-in function (line 18,
Figure 13). A set holes to build the cross were programed in
line 48 of Figure 13 with the function holesLine by defining
the center coordinates of the first one ((X1ini,Y1ini)),
the depth of the holes (DepthBC) and the upper retract plane
(Zseg). Finally, the holes in circumference pattern were pro-
gramed with the built-in function circArray in line 56 of the
Figure 13. This function is able to create any number of arc-
equidistant holes placed in a circumference of any diameter
World Academy of Science, Engineering and Technology 67 2012
458
'(
'/
$$
2&HQ;&HQ<
722/
'HSWK
=VHJ
7BGLDP
6(&7,21$$
=
;
33;3<
33;3< 33;3<33;3<
33;3<
33;3<
33;3<
33;3<
33;3<
33;3<
<
;
722/
Fig. 8. Geometric parameters of the designed Star Pocket part.
World Academy of Science, Engineering and Technology 67 2012
459
1: O002; Star Pocket Part Program
...
6: DE = 140
7: CenX =0
8: CenY = 7
...
23: while (DP ass <= abs(Depth))
24: {
25: while (DL OV _LAP > T _DIAM)
26: {
27: P0X = CenX
28: P0Y = CenY + DM/2
...
47: G0 X<P0X>Y<P0Y>Z<Zseg>
48: G1 Z<-DPass>
49: X<P1X>Y<P1Y>
...
62: }
...
69: }
...
72: M30
Fig. 9. EGCL program for producing the Star Pocket in Figure 7.
Fig. 10. Star pocket part simulated in CncSimulator
c
software ( [14]).
by specifying the number of holes (NumElem), circumference
radius (Radius) and center ((Cenx,Ceny)), the depth of
the holes (DepthBC) and the upper retract plane (Zseg). This
case study illustrates the built-in function advantages of EGCL
for programming geometric patterns of machining features.
The afore mentioned application cases (sections IV-A and
IV-B), would require long programming time programmed
manually. To illustrate this contrast, input and output files were
compared (Table I). Additionally, programs manually written
are valid only for the set of coordinate points for which they
were created, while macro-based programming on EGCL can
Fig. 11. Proposed Drill Target Pattern part.
1: O003;
...
6: CenX =0
7: CenY =0
8: Depth = 2.5
9: Zseg =5
...
18: spiral(Pitch,Rext,CenX,CenY,Depth,Zseg)
...
26: NumHoles =4
27: dx1=10
28: dy1=0
29: Xini1=25
30: Y ini1=0
31: DepthBC = 5
...
48: holesLine(NumHoles, dx1,dy1, Xini1, Y ini1,DepthBC,Zseg)
...
52: NumElem =16
53: Radius =65
54: Cenx =0
55: Ceny =0
56: circArray(NumElem, Radius, Cenx, Ceny, DepthBC, Zseg)
...
67: M30
Fig. 13. EGCL program for producing the Drill Target Pattern part in Figure
11.
Fig. 14. Drill Target Pattern part simulated in CncSimulator
c
software (
[14]).
re-use code by simply modifying the mnemonic geometric
variables defined at the header of the programs.
V. C
ONCLUSION AND FUTURE WORK
This article presents the implementations of a language
extension for G-code (EGCL). The compiler for ECGL pro-
duces ISO compliant elementary G-code as output. The output
programs of the compiler are portable due to the fact that the
most CNC machines are able to process this basic ISO G-
code. The developed EGCL has the following characteristics:
(1) it allows to use of mnemonic variable names, (2) it permits
symbolic coordinates, (3) it accepts flow control structures,
such as IF and WHILE, and (4) it allows to use built-in
geometric functions (e.g. 2D spiral, geometric holes arrays).
These capabilities save time in part programming and make
re-programmation easier and more immune to errors.
Star Pocket Drill Target Pattern
Lines in the EGCL file 72 64
Lines in the IGCL file 257 236
TABLE I
C
OMPARISON OF NUMBER OF LINES OF EGCL VS. IGCL EQUIVALENT
PROGRAMS
.
World Academy of Science, Engineering and Technology 67 2012
460
G[
G\
5BFD
5BH[W
;LQL
<LQL
$$
2&HQ;&HQ<
722/
;
<
KROHV
LQ5BFD
'HSWK
=VHJ
6(&7,21$$
722/
=
;
Fig. 12. Geometric parameters of the designed Drill Target Pattern part.
The EGCL grammar was achieved by extending IGCL with
arithmetic and boolean expressions, flow control statements
(e.g. IF, WHILE and function use capabilities). The lexical,
syntactic and intermediate G-code generation software were
accordingly implemented. The code generator was created to
produce the output file in IGCL.
Future work includes allowing the part-programmer to pre-
define own geometrical functions in both, source and object
form and to use them as libraries for the EGCL programs.
Likewise, we seek to optimize the code (following criteria
usual in CNC machining) and conduct geometrical verifica-
tions by using the middle-end of the compiler.
REFERENCES
[1] Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman.
Compilers: Principles, Techniques, and Tools (2nd Edition). Addison
Wesley, 2006.
[2] G. Arroyo, C. Ochoa, J. Silva, and G. Vidal. Towards CNC Programming
Using Haskell. Advances in Artificial Intelligence–IBERAMIA 2004,
pages 386–396, 2004.
[3] X. Guo, Y. Liu, D. Du, K. Yamazaki, and M. Fujishima. A Univer-
sal NC Program Processor Design and Prototype Implementation for
CNC Systems. The International Journal of Advanced Manufacturing
Technology, pages 1–15, 2011.
[4] S Habeeb and X Xu. A Novel CNC System for Turning Operations
Based on a High-Level Data Model. The International Journal of
Advanced Manufacturing Technology, 43:323–336, 2009.
World Academy of Science, Engineering and Technology 67 2012
461
[5] International Organization for Standardization (1982). ISO 6983-1: Nu-
merical control of machines Program format and definition of address
words Part 1: Data format for positioning, line motion and contouring
control systems. International Organization for Standardization, Geneva,
Switzerland.
[6] International Organization for Standardization (2004). ISO 14649-
1: Industrial automation systems and integration Data model for
computerized numerical controllers Part 1: overview and fundamen-
tal principles. International Organization for Standardization, Geneva,
Switzerland.
[7] SC. Johnson. YACC - Yet Another Compiler-Compiler. Computer
Science, Technical Report 32, 1975.
[8] ME Lesk. Lex - A Lexical Analyzer Generator. Computing Science,
Technical Report 39, 1975.
[9] Y. Liu, X. Guo, W. Li, K. Yamazaki, K. Kashihara, and M. Fujishima.
An Intelligent NC Program Processor for CNC System of Machine
Tool. Robotics and Computer-Integrated Manufacturing, 23(2):160–169,
2007.
[10] S. Nagle and J. Wiegley. GSP: Extending G-Code Using JSP Servlet
Technologies. In Automation Science and Engineering, 2008. CASE
2008. IEEE International Conference on, pages 953–958. IEEE, 2008.
[11] D.T. Ross. The Design and Use of the APT Language for Automatic
Programming of Numerically Controlled Machine Tools. In Proc. 1959
Computer Applications Symposium, Chiergo, pages 80–99, 1959.
[12] T. Schroeder and M. Hoffmann. Flexible Automatic Converting of NC
Programs. A Cross-compiler for Structured Text. International Journal
of Production Research, 44(13):2671–2679, 2006.
[13] S.J. Shin, S.H. Suh, and I. Stroud. Reincarnation of G-code Based Part
Programs Into STEP-NC for Turning Applications. Computer-Aided
Design, 39(1):1–16, 2007.
[14] Bulldog Digital Technologies. Free CNC-Simulator (Version 4.53f)
[Software]. Avaliable from http://www.cncsimulator.com, 2007.
[15] J. Zhang, L. Wang, S. Li, and F. Zhang. The Research of an Intelligent
Open CNC System. Initiatives of Precision Engineering at the Beginning
of a Millennium, pages 779–783, 2002.
World Academy of Science, Engineering and Technology 67 2012
462
... A set of software-as-a-service applications have been developed. In the proposed system, customised production of technologically complex products is enabled by dynamically configuring a manufacturing supply chain [13,14]. It is believed that the development of a front-end system with a next level of integration to a cloud-based manufacturing infrastructure is able to better support on-demand manufacturing of customised products. ...
Chapter
Cloud manufacturing is a new concept extending and adopting the concept of cloud computing for manufacturing. The aim is to transform manufacturing businesses to a new paradigm in that manufacturing capabilities and resources are componentised, integrated and optimised globally. This chapter presents an interoperable manufacturing perspective based on cloud manufacturing. A literature search has been undertaken regarding cloud architecture and technologies that can assist cloud manufacturing. Manufacturing resources and capabilities are discussed in terms of cloud services. A service-oriented, interoperable cloud manufacturing system is introduced. Service methodologies are developed to support two types of cloud users, i.e. customer user and enterprise user, along with standardised data models describing cloud service and relevant features. Two case studies are undertaken to evaluate the reported system. Cloud technology brings into manufacturing industry with a number of benefits such as openness, cost-efficiency, resource sharing and production scalability.
... A set of software-as-a-service applications have been developed. In the proposed system, customized production of technologically complex products is enabled by dynamically configuring a manufacturing supply chain [13,14]. It is believed that the development of a front-end system with a next level of integration to a Cloud-based manufacturing infrastructure is able to better support ondemand manufacture of customized products. ...
Article
Full-text available
Cloud manufacturing is a new concept extending and adopting the concept of Cloud computing for manufacturing. The aim is to transform manufacturing businesses to a new paradigm in that manufacturing capabilities and resources are componentized, integrated and optimized globally. This study presents an interoperable manufacturing perspective based on Cloud manufacturing. A literature search has been undertaken regarding Cloud architecture and technologies that can assist Cloud manufacturing. Manufacturing resources and capabilities are discussed in terms of Cloud service. A service-oriented, interoperable Cloud manufacturing system is proposed. Service methodologies are developed to support two types of Cloud users, i.e., customer user and enterprise user, along with standardized data models describing Cloud service and relevant features. Two case studies are undertaken to evaluate the proposed system. Cloud technology brings into manufacturing industry with a number of benefits such as openness, cost-efficiency, resource sharing and production scalability.
... The goal of this project (named ManuCloud) is to provide users with the ability to utilize the manufacturing capabilities of configurable and virtual production networks, supported by a set of applications. In the proposed system, customized production of technologically complex products is enabled by dynamically configuring a manufacturing supply chain [8,9]. It is considered that the development of a front-end system with a Cloud-based manufacturing infrastructure is able to better support the specifications and on-demand manufacture of customized products. ...
Conference Paper
Full-text available
The modern manufacturing industry calls for a new generation of integration models that are more interoperable, intelligent, adaptable and distributed. Evolved from service-oriented architecture, web-based manufacturing and Cloud Computing, Cloud Manufacturing model is discussed world-widely which enables manufacturing enterprises to respond quickly and effectively to the changing global market. Especially for Waste Electrical and Electronic Equipments, it is a critical necessity to reuse, remanufacture, recycle and recover energy by re-shaping the lifecycle management patterns. In this paper, recent Cloud Manufacturing approaches are reviewed. Next, a novel service-oriented remanufacturing platform is introduced based on Cloud Manufacturing paradigm. During case studies, a LCD television model is taken to evaluate the proposed Cloud Remanufacturing service mechanism and information management methodologies.
... A set of software-as-a-service applications have been developed. In the proposed system, customized production of technologically complex products is enabled by dynamically configuring a manufacturing supply chain [13,14]. It is believed that the development of a front-end system with a next level of integration to a Cloud-based manufacturing infrastructure is able to better support ondemand manufacture of customized products. ...
Conference Paper
Full-text available
Cloud manufacturing is a new concept extending and adopting the concept of Cloud computing for manufacturing. The aim is to transform manufacturing businesses to a new paradigm in that manufacturing capabilities and resources are componentized, integrated and optimized globally. This study presents an interoperable manufacturing perspective based on Cloud manufacturing. A literature search has been undertaken regarding Cloud architecture and technologies that can assist Cloud manufacturing. Manufacturing resources and capabilities are discussed in terms of Cloud service. A service-oriented, interoperable Cloud manufacturing system is proposed. Service methodologies are developed to support two types of Cloud users, i.e., customer user and enterprise user, along with standardized data models describing Cloud service and relevant features. Two case studies are undertaken to evaluate the proposed system. Cloud technology brings into manufacturing industry with a number of benefits such as openness, cost-efficiency, resource sharing and production scalability.
Article
Cloud computing is changing the way industries and enterprises do their businesses in that dynamically scalable and virtualised resources are provided as a service over the internet. This paper discusses some of the essential features of cloud computing. Cloud computing is also emerging as one of the major enablers for the manufacturing industry: it can transform the traditional manufacturing business model, help it align product innovation with business strategy, and create intelligent factory networks that encourage effective collaboration. Two types of cloud computing adoptions in the manufacturing sector have been suggested: manufacturing with direct adoption of cloud computing technologies and cloud manufacturing, the manufacturing version of cloud computing. Cloud computing has been implemented in some of key areas of manufacturing such as information technology and pay-as-you-go business models. In cloud manufacturing, distributed resources are encapsulated into cloud services and managed in a centralised way. Clients can use cloud services according to their requirements. An interoperable cloud manufacturing system (ICMS) has been proposed to provide users with a big range of flexible manufacturing capabilities. The enterprises are loosely integrated in the manufacturing cloud as ICMS service providers. Manufacturing capabilities and business opportunities are integrated and broadcasted in a larger resource pool, which can enhance the competiveness of the entire consortium.
Article
Cloud computing is changing the way industries and enterprises do their businesses in that dynamically scalable and virtualized resources are provided as services mostly over the Internet. Cloud Computing is also emerging as one of the major enablers for the manufacturing industry; it can transform the traditional manufacturing business model, help it align product innovation with business strategy, and create intelligent factory networks that encourage effective collaboration. Two types of Cloud Computing adoptions in the manufacturing sector have been suggested, manufacturing with direct adoption of Cloud Computing technologies and Cloud Manufacturing-the manufacturing version of Cloud Computing. Cloud computing has been implemented in some of key areas of manufacturing such as IT and pay-as-you-go business models. In Cloud Manufacturing, distributed resources are encapsulated into cloud services and managed in a centralized way. Clients can use cloud services according to their requirements. A cloud manufacturing platform has been proposed to provide users with a big range of flexible and sustainable manufacturing capabilities. Manufacturing capabilities and business opportunities are integrated and broadcasted in a larger resource pool, which can enhance the competiveness of the entire consortium.
Article
Full-text available
Since the NC program standard RS274D was invented decades ago, most computer numerical control (CNC) providers have extended this standard a lot to adapt their own specific functions. Thus, one NC program cannot be used in different CNC systems. In order to process different types of NC programs, a universal NC program processor was proposed for CNC systems in this paper. This processor has a unique structure which consists of two main components. One is an NC dictionary, which stores the specific NC program specification. The other is an interpreting engine, which checks NC programs and generates the primitive canonical machining functions by referring to the dictionary. The dictionary is constructed through defining NC block templates, block execution order table, block syntax procedures, and interpreter library for each NC command. A prototype system has been built to evaluate the proposed design followed by a successful case study.
Conference Paper
Full-text available
Recent advances in Computerized Numeric Control (CNC) have allowed the manufacturing of products with high quality standards. Since CNC programs consist of a series of assembler-like instructions, several high-level languages (e.g., AutoLISP, APL, OMAC) have been proposed to raise the programming abstraction level. Unfortunately, the lack of a clean semantics prevents the development of formal tools for the analysis and manipulation of programs. In this work, we propose the use of Haskell for CNC programming. The declarative nature of Haskell provides an excellent basis to develop program analysis and manipulation tools and, most importantly, to formally prove their correctness.
Article
Nowadays, manufacturing enterprises have come to an agreement that open architecture controllers should be set up. Demands for increased control capabilities require the open computer numeric control (CNC) to comprise intelligent building elements. This paper presented HCM-I, an intelligent open CNC system, in which some intelligent elements are developed. The graphic platform of the system make it convenient to build and (re)configure a system by choosing icons. And with the intelligent programming module of the system, users can use natural language to describe the machining parts. It can translate the natural language, such as English or Chinese, into the standard NC language. These intelligent elements bring the system more flexibility and convenience to use.
Article
The syntax and semantics of programs for CNC machines is defined in the standards of the International Organization for Standardization (ISO) and in local counterparts. Because of the very tight limits of these standards, most manufacturers of numeric controls extend the NC language by including specific structures. These can be simple commands, management of variables, control structures, etc. Using the above manufacturer-specific commands, a NC program cannot be used in the numeric control of another manufacturer. Sometimes, even the manufacturer-specific commands differ from newer software versions on the same control. The present algorithms can be used to support the user by converting NC programs from one type to another. The main focus was on versatility and simple usage. A software tool was programmed to verify the benefits of this approach.
Article
The research work documented in this paper is divided into two parts. In the first part, a generic infrastructure for implementing STEP-NC data models is proposed. The infrastructure illustrates a bidirectional data flow of three different data forms: STEP-NC data, machine specific language, and low-level machine actuation signals. The proposed method utilizes the concepts of modularity and database to harmonize and group machining processes and to manage machining activities. The second part reports on the development of a computer numerical control (CNC) lathe that interprets STEP-NC data into low-level machining instructions. This process was achieved through the development of a software package that can process STEP-NC data and provide an interface with a retrofitted CNC lathe. Tool path information is generated and executed “on-fly” with feedback handled. This new CNC system illustrates the benefits of a novel generation of CNC machine tools that have the capability of being driven by a high-level data model.
Article
As STEP-NC emerges as the new CNC control method and a fundamental means for realizing e-manufacturing, old manufacturing information based on the conventional manufacturing standard will become obsolete. In practice, replacement of G-code based part programs into STEP-NC is a huge task. In this paper, methods to interpret G-code based part programs into STEP-NC code are investigated. G-code is a compact, coded set of numbers for axis movements, while STEP-NC is very comprehensive and includes information about features, operations, strategies, cutting tools, and so on. It is thus very challenging to derive such comprehensive information from the low level G-code information. In this paper, we first clarify what should be given and what may be given, and then present algorithms for deriving STEP-NC information, such as geometric features, operations, etc., from the tool movement (G-code) based on expert reasoning. The algorithms are developed for the turning application. The developed algorithms were implemented and tested on G-code part programs used in actual practice.