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.
Similar content being viewed by others
References
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
Siemens A (2009) Milling with sinumerik 5-axis machining. SINUMERIK 5-axis machining, Manual
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
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
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
Kopetz H (2011) Real-time systems: design principles for distributed embedded applications. Springer Science & Business Media, Berlin
Szyperski C, Gruntz D, Murer S (2002) Component software: beyond object-oriented programming. Pearson Education, London
Heineman GT, Crnkovic I, Schmidt HW, Stafford JA, Szyperski C, Wallnau K (2001) Component-based software engineering
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
Suh SH, Kang SK, Chung DH, Stroud I (2008) Theory and design of CNC systems. Springer Science & Business Media, Berlin
Xu X, Nee AYC (2009) Advanced design and manufacturing based on STEP. Springer Science & Business Media, Berlin
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
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
LinuxCNC (2019) Hal introduction. http://linuxcnc.org/docs/2.7/html/hal/intro.html
LinuxCNC (2018) About linuxcnc. http://linuxcnc.org/docs/2.7/html/getting-started/about-linuxcnc.html
LinuxCNC (2007) Emc components. http://wiki.linuxcnc.org/cgi-bin/wiki.pl?EMC_Components
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
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
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
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
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
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
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
Kirk K (2009) Reuse: is the dream dead?. https://dzone.com/articles/reuse-dream-dead
Crnkovic I, Sentilles S, Vulgarakis A, Chaudron MR (2010) A classification framework for software component models. IEEE Trans Softw Eng 37(5):593–615
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
OMG (2006) Corba component model specification. https://www.omg.org/spec/CCM/4.0/PDF Accessed April 01, 2006
Zhang C, Guo L, Lan H (2006) Open cnc system components implementation based on ccm. Manufa Tech Mach Tool 38(2):25–28
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
Henning M (2006) The rise and fall of corba. Queue 4(5):28–34
Thramboulidis K (2013) Iec 61499 vs. 61131: a comparison based on misperceptions. J Softw Eng Appl 6 (8):405–415
Xue-mei H (2010) Distributed and reconfigurable step-nc controller design of compliant to iec 61499 standard. Computer Integrated Manufacturing Systems (12):16
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
Kirk K (2018) Pc-based control for. http://www.beckhoff.com.cn/CNC/
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
Lowy J (2007) Programming WCF services. ” O’Reilly Media, Inc.”, Massachusetts
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
Microsoft (2017b) Assembly contents. https://docs.microsoft.com/en-us/dotnet/framework/app-domains/assembly-contents
Microsoft (2019) .Net framework guide. https://docs.microsoft.com/zh-cn/dotnet/framework/
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
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
Du S, Dong Y (2009) Research on component technology for reconfigurable cnc system. In: International conference on computational intelligence & software engineering
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
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
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
Verl A, Lechler A, Schlechtendahl J (2012) Glocalized cyber physical production systems. Prod Eng 6 (6):643–649
Yao YX, Yu SZ (2007) A novel architecture for compiled-type software cnc system. Key Eng Mater 339:5
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
Sang Z, Xu X (2017) The framework of a cloud-based cnc system. Procedia CIRP 63:82–88
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
Evans E (2002) Domain-driven design: Tackling complexity in the heart of software
Vernon V (2013) Implementing domain-driven design. Addison-Wesley
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/
Kramer TR, Kramer TR, Messna E (2000) The nist rs274ngs interpreter-version 3
Siemens A (2006) Sinumerik 802d sl grinding. SINUMERIK 802D, Programming and Operating manual
Richards M (2015) Software architecture patterns. O’Reilly Media, Incorporated
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher’s note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00170-020-05590-6