EGCL: An Extended G-Code Language with Flow Control, Functions and Mnemonic Variables
Commenced in January 2007
Frequency: Monthly
Edition: International
Paper Count: 32804
EGCL: An Extended G-Code Language with Flow Control, Functions and Mnemonic Variables

Authors: 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 programming languages such as symbolic and intuitive programming, program 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, geometrical functions and flow-control statements (if-then-else, while). Our compiler produces low-level generic, elementary ISO-compliant Gcode, 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, Numerically Controlled Machine-Tools.

Digital Object Identifier (DOI): doi.org/10.5281/zenodo.1061310

Procedia APA BibTeX Chicago EndNote Harvard JSON MLA RIS XML ISO 690 PDF Downloads 2571

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 Universal 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.
[5] International Organization for Standardization (1982). ISO 6983-1: Numerical 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 fundamental 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.