Skip to main content
Log in

Development of a novel component-based open CNC software system

  • ORIGINAL ARTICLE
  • Published:
The International Journal of Advanced Manufacturing Technology Aims and scope Submit manuscript

Abstract

Component-based software development (CBSD) is widely utilized to develop open CNC applications. It aims to build an open CNC application by composing a set of components, each implementing specific CNC sub-domain logic. Components conform to a certain component model to keep conformant interactive behaviors. Due to there is no standard granularity to decompose CNC domain and no general component model, as well as seldom consider extra-functional properties, components are heterogeneous. Moreover, they have a direct dependency rather than depending on abstractions. In a nutshell, there are many open-source CNC applications built by heterogeneous and tightly coupled components. They can implement CNC functionality but are good at functional extension and reconfiguration. In this paper, we apply CBSD and dependency inversion principle to develop a novel open CNC application which allows customizing CNC functionality. Specifically, a new granularity to decompose CNC domain is proposed. A special sub-domain is designed to encapsulate the execution logic of other sub-domains at an abstract level and instantiate concrete implementation details at runtime according to configuration. The functional properties of sub-domains are exposed via abstractions. Therefore, as long as re-writing the execution logic and configuring corresponding implementation details, CNC functionality can be extended or reconfigured. A prototype and several components have been developed to test the performance of the application.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18

Similar content being viewed by others

References

  1. Kief HB, Roschiwal HA, Schwarz K (2015) CNC-Handbuch 2015/2016: CNC, DNC, CAD, CAM, FFS, SPS, RPD, LAN, CNC-maschinen, CNC-roboter, antriebe, simulation, fachwortverzeichnis. Carl Hanser Verlag GmbH Co KG, Munich

    Book  Google Scholar 

  2. Siemens A (2009) Milling with sinumerik 5-axis machining. SINUMERIK 5-axis machining, Manual

  3. Pritschow G, Altintas Y, Jovane F, Koren Y, Mitsuishi M, Takata S, Van Brussel H, Weck M, Yamazaki K (2001) Open controller architecture–past, present and future. CIRP Ann 50(2):463–470

    Article  Google Scholar 

  4. Shackleford WP, Proctor FM (2001) Use of open source distribution for a machine tool controller. In: Sensors and controls for intelligent manufacturing, international society for optics and photonics, pp 19–30

  5. Wang G, Shang X, Yan Y, Allen JK, Mistree F (2018) A tree-based decision method for the configuration design of reconfigurable machine tools. J Manuf Syst 49:143–162

    Article  Google Scholar 

  6. Kopetz H (2011) Real-time systems: design principles for distributed embedded applications. Springer Science & Business Media, Berlin

    Book  Google Scholar 

  7. Szyperski C, Gruntz D, Murer S (2002) Component software: beyond object-oriented programming. Pearson Education, London

    Google Scholar 

  8. Heineman GT, Crnkovic I, Schmidt HW, Stafford JA, Szyperski C, Wallnau K (2001) Component-based software engineering

  9. Ardalis (2019) Architectural pinciples. https://docs.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/architectural-principles https://docs.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/architectural-principles https://docs.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/architectural-principles

  10. Suh SH, Kang SK, Chung DH, Stroud I (2008) Theory and design of CNC systems. Springer Science & Business Media, Berlin

    Book  Google Scholar 

  11. Xu X, Nee AYC (2009) Advanced design and manufacturing based on STEP. Springer Science & Business Media, Berlin

    Book  Google Scholar 

  12. Hardwick M, Zhao YF, Proctor FM, Nassehi A, Brail A (2013) A roadmap for step-nc-enabled interoperable manufacturing. In: International journal of advanced manufacturing technology

  13. Minhat M, Vyatkin V, Xu X, Wong S, Al-Bayaa Z (2009) A novel open cnc architecture based on step-nc data model and iec 61499 function blocks. Robot Comput Integr Manuf 25(3):560–569

    Article  Google Scholar 

  14. LinuxCNC (2019) Hal introduction. http://linuxcnc.org/docs/2.7/html/hal/intro.html

  15. LinuxCNC (2018) About linuxcnc. http://linuxcnc.org/docs/2.7/html/getting-started/about-linuxcnc.html

  16. LinuxCNC (2007) Emc components. http://wiki.linuxcnc.org/cgi-bin/wiki.pl?EMC_Components

  17. Bin L, Yun-fei Z, Xiao-qi T (2004) A research on open cnc system based on architecture/component software reuse technology. Comput Ind 55(1):73–85

    Article  Google Scholar 

  18. Park S, Kim SH, Cho H (2006) Kernel software for efficiently building, re-configuring, and distributing an open cnc controller. Int J Adv Manuf Technol 27(7-8):788–796

    Article  Google Scholar 

  19. Han Z, Jin H, Li M, Fu H (2015) An open modular architecture controller based online chatter suppression system for cnc milling. Mathematical problems in Engineering 2015

  20. Wang Y, Yang D, Gai R, Wang S, Sun S (2015) Design of trigonometric velocity scheduling algorithm based on pre-interpolation and look-ahead interpolation. Int J Mach Tools Manuf 96:94–105

    Article  Google Scholar 

  21. Wang CS, Wiegers T, Vergeest JS (2011) An implementation of intelligent cnc machine tools. In: Applied mechanics and materials, trans tech publ, vol 44, pp 557–561

  22. Michaloski JL, Birla S, Weinert GF, Yen CJ (1998) Framework for component-based cnc machines. In: Sensors and controls for intelligent machining, agile manufacturing, and mechatronics, international society for optics and photonics, vol 3518, pp 132–144

  23. Han Z, Wang Y, Fu H, et al. (2007) Development of a pc-based open architecture software-cnc system. Chin J Aeronaut 20(3):272–281

    Article  Google Scholar 

  24. Kirk K (2009) Reuse: is the dream dead?. https://dzone.com/articles/reuse-dream-dead

  25. Crnkovic I, Sentilles S, Vulgarakis A, Chaudron MR (2010) A classification framework for software component models. IEEE Trans Softw Eng 37(5):593–615

    Article  Google Scholar 

  26. Feljan J, Lednicki L, Maras J, Petričić A, Crnković I (2009) Dices technical report classification and survey of component models. Tech. Rep., Technical report

  27. OMG (2006) Corba component model specification. https://www.omg.org/spec/CCM/4.0/PDF Accessed April 01, 2006

  28. Zhang C, Guo L, Lan H (2006) Open cnc system components implementation based on ccm. Manufa Tech Mach Tool 38(2):25–28

    Google Scholar 

  29. Hongxing W, Xinming D, Youdong C, Xiaoliang Z (2008) Research of open cnc system based on corba. In: 2008 Fifth IEEE international symposium on embedded computing. IEEE, Piscataway, pp 364–369

  30. Henning M (2006) The rise and fall of corba. Queue 4(5):28–34

    Article  Google Scholar 

  31. Thramboulidis K (2013) Iec 61499 vs. 61131: a comparison based on misperceptions. J Softw Eng Appl 6 (8):405–415

    Article  Google Scholar 

  32. Xue-mei H (2010) Distributed and reconfigurable step-nc controller design of compliant to iec 61499 standard. Computer Integrated Manufacturing Systems (12):16

  33. Othman MA, Jamaludin Z, Minhat M (2019) Intelligent control of cnc system based on iec 61499 function block technology. In: Symposium on intelligent manufacturing and mechatronics. Springer, Berlin, pp 176–185

  34. Kirk K (2018) Pc-based control for. http://www.beckhoff.com.cn/CNC/

  35. John K, Michael S (2018) Component object model (com). https://docs.microsoft.com/zh-cn/windows/desktop/com/component-object-model--com--portal https://docs.microsoft.com/zh-cn/windows/desktop/com/component-object-model--com--portal https://docs.microsoft.com/zh-cn/windows/desktop/com/component-object-model--com--portal

  36. Lowy J (2007) Programming WCF services. ” O’Reilly Media, Inc.”, Massachusetts

    Google Scholar 

  37. Microsoft (2017a) Metadata and self-describing components. https://docs.microsoft.com/en-us/dotnet/standard/metadata-and-self-describing-components https://docs.microsoft.com/en-us/dotnet/standard/metadata-and-self-describing-components

  38. Microsoft (2017b) Assembly contents. https://docs.microsoft.com/en-us/dotnet/framework/app-domains/assembly-contents

  39. Microsoft (2019) .Net framework guide. https://docs.microsoft.com/zh-cn/dotnet/framework/

  40. Sun P, Liu Q, Ding J, Pi S (2017) Open cnc system design for multiple intelligent functions based on twincat and. net framework. In: 2017 IEEE International conference on mechatronics and automation (ICMA). IEEE, Piscataway, pp 910–915

  41. Zabiński T, Maczka T (2010) Human system interface for manufacturing control—industrial implementation. In: 3rd International conference on human system interaction. IEEE, Piscataway, pp 350–355

  42. Du S, Dong Y (2009) Research on component technology for reconfigurable cnc system. In: International conference on computational intelligence & software engineering

  43. Lutz P, Sperling W, Fichtner D, Mackay R (1997) Osaca—the vendor neutral control architecture. In: Proceeding european conference integration in manufacturing, pp 247–256

  44. Morales-Velazquez L, De Jesus Romero-Troncoso R, Osornio-Rios RA, Herrera-Ruiz G, Cabal-Yepez E (2010) Open-architecture system based on a reconfigurable hardware–software multi-agent platform for cnc machines. J Syst Archit 56(9):407–418

    Article  Google Scholar 

  45. Wang T, Wang L, Liu Q (2011) A three-ply reconfigurable cnc system based on fpga and field-bus. Int J Adv Manuf Tech 57(5-8):671–682

    Article  Google Scholar 

  46. Verl A, Lechler A, Schlechtendahl J (2012) Glocalized cyber physical production systems. Prod Eng 6 (6):643–649

    Article  Google Scholar 

  47. Yao YX, Yu SZ (2007) A novel architecture for compiled-type software cnc system. Key Eng Mater 339:5

    Article  Google Scholar 

  48. Zhou L, Yuan JL, Gao P, Ren YH (2014) A new architecture of open cnc system based on compiling mode. Int J Adv Manuf Technol 73(9-12):1597–1603

    Article  Google Scholar 

  49. Sang Z, Xu X (2017) The framework of a cloud-based cnc system. Procedia CIRP 63:82–88

    Article  Google Scholar 

  50. Okwudire C, Lu X, Kumaravelu G, Madhyastha H (2020) A three-tier redundant architecture for safe and reliable cloud-based cnc over public internet networks. Robot Comput Integr Manuf 62:101880

    Article  Google Scholar 

  51. Evans E (2002) Domain-driven design: Tackling complexity in the heart of software

  52. Vernon V (2013) Implementing domain-driven design. Addison-Wesley

  53. Shamlia (2013) Understanding the basis of mvvm design pattern. https://blogs.msdn.microsoft.com/msgulfcommunity/2013/03/13/understanding-the-basics-of-mvvm-design-pattern/

  54. Kramer TR, Kramer TR, Messna E (2000) The nist rs274ngs interpreter-version 3

  55. Siemens A (2006) Sinumerik 802d sl grinding. SINUMERIK 802D, Programming and Operating manual

  56. Richards M (2015) Software architecture patterns. O’Reilly Media, Incorporated

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yingxue Yao.

Additional information

Publisher’s note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Liu, L., Yao, Y. & Li, J. Development of a novel component-based open CNC software system. Int J Adv Manuf Technol 108, 3547–3562 (2020). https://doi.org/10.1007/s00170-020-05590-6

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00170-020-05590-6

Keywords

Navigation