Abstract
The development of open CNC systems is a popular topic in the past three decades. From the perspective of software engineering, most open CNC prototypes are developed based on the component-based software development (CBSD) approach. That is, they are constructed by composing functional or logical components. This paper retrospects the development of CBSD-based open CNC systems. These systems are analyzed from three aspects. For the component granularity aspect, CNC domain analysis and component reusability are discussed. For the component model aspect, component models used in open CNC systems are summarized, illustrated, and discussed. Likewise, for the software architecture aspect, architecture styles are summarized, described, and analyzed. But due to the diversity and platform dependency of component models, there is no widely accepted platform that can collect and execute heterogeneous CNC components. Service is an evolution of components. It makes a traditional component to be platform-independent and supports communication via message. Thus, a service-oriented architecture (SOA)-based universal open CNC platform is an attractive development trend of diverse CBSD-based open CNC systems. And its development is similar to the development of the CBSD-based system, but more complicated because it contains more domain logic. Therefore, this paper provides a technical foundation for developing SOA-based open CNC platform which is a part of novel automation patterns, such as cloud manufacturing and cyber-physical production system.
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. Carl Hanser Verlag GmbH Co KG, Fachwortverzeichnis
Siemens A (2009) Milling with sinumerik 5-axis machining. SINUMERIK 5-axis machining, Manual
Siemens A (2019) Sinumerik one - the digital native cnc. https://new.siemens.com/global/en/markets/machinebuilding/machine-tools/cnc4you/fokus-digitalisierung/sinumerik-one.html
Bandari YK, Williams SW, Ding J, Martina F (2015) Additive manufacture of large structures: robotic or cnc systems. In: Proceedings of the 26th international solid freeform fabrication symposium, Austin, pp 12–14
Flynn JM, Shokrani A, Newman ST, Dhokia V (2016) Hybrid additive and subtractive machine tools–research and industrial developments. Int J Mach Tools Manuf 101:79–101
Rauch M, Hascoët JY, Simoes V, Hamilton K (2014) Advanced programming of machine tools: interests of an open cnc controller within a step-nc environment. Int J Mach Machinab Mater 7 15(1–2):2–17
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, vol 4191, 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
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
Lutz P, Sperling W, Fichtner D, Mackay R (1997) Osaca—the vendor neutral control architecture. In: Proc. European conf. integration in manufacturing, pp 247–256
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
Sawada C, Akira O (1997) Open controller architecture osec-ii: architecture overview and prototype systems. In: 1997 IEEE 6th International conference on emerging technologies and factory automation proceedings, EFTA’97. IEEE, pp 543–550
LinuxCNC (2018) About linuxcnc. http://linuxcnc.org/docs/2.7/html/getting-started/about-linuxcnc.html
Kirk K (2018) PC-based control for. http://www.beckhoff.com.cn/CNC/
Szyperski C, Gruntz D, Murer S (2002) Component software: beyond object-oriented programming. Pearson Education
Heineman GT, Crnkovic I, Schmidt HW, Stafford JA, Szyperski C, Wallnau K (2001) Component-based software engineering
Jalender B, Govardhan A, Premchand P (2011) Breaking the boundaries for software component reuse technology. Int J Comput Appl 13(6):37–41
Petritsch H (2006) Service-oriented architecture (soa) vs. component based architecture. Vienna University of Technology. Vienna, p 18
Lowy J (2007) Programming WCF services. O’Reilly Media, Inc.
Brecher C, Verl A, Lechler A, Servos M (2010) Open control systems: state of the art. Prod Eng 4(2–3):247–254
Flammini A, Ferrari P, Marioli D, Sisinni E, Taroni A (2009) Wired and wireless sensor networks for industrial applications. Microelectron J 40(9):1322–1336
Xu X (2012) From cloud computing to cloud manufacturing. Robot Comput-Integr Manuf 28(1):75–86
Davis J, Edgar T, Porter J, Bernaden J, Sarli M (2012) Smart manufacturing, manufacturing intelligence and demand-dynamic performance. Comput Chem Eng 47:145–156
Prinz F, Schoeffler M, Lechler A, Verl A (2019) A novel i4 0-enabled engineering method and its evaluation. Int J Adv Manuf Technol 102(5–8):2245–2263
Ding K, Chan FT, Zhang X, Zhou G, Zhang F (2019) Defining a digital twin-based cyber-physical production system for autonomous manufacturing in smart shop floors. Int J Prod Res 57(20):6315–6334
Monostori L, Kádár B, Bauernhansl T, Kondoh S, Kumara S, Reinhart G, Sauer O, Schuh G, Sihn W, Ueda K (2016) Cyber-physical systems in manufacturing. Cirp Ann 65(2):621–641
Adamson G, Wang L, Holm M, Moore P (2017) Cloud manufacturing–a critical review of recent development and future trends. Int J Comput Integr Manuf 30(4-5):347–380
Xu X (2017) Machine tool 4.0 for the new era of manufacturing. Int J Adv Manuf Technol 92(5–8):1893–1900
Lechler A, Verl A (2017) Software defined manufacturing extends cloud-based control. In: ASME 2017 12th International manufacturing science and engineering conference collocated with the JSME/ASME 2017 6th international conference on materials and processing. American Society of Mechanical Engineers Digital Collection
Verl A, Lechler A, Schlechtendahl J (2012) Glocalized cyber physical production systems. Prod Eng 6 (6):643–649
Kanagwa B, Mugisa EK (2007) A comparison of service oriented architecture with other advances in software architectures. Strengthening the Role of ICT in Development, p 405
Kung-kiu L, et al. (2017) An introduction to component-based software development, vol 3. # N/A
Kirk K (2009) Reuse: is the dream dead? https://dzone.com/articles/reuse-dream-dead
Suh SH, Kang SK, Chung DH, Stroud I (2008) Theory and design of CNC systems. Springer Science & Business Media
Siemens A (2006) Configuring the ncu. SINUMERIK 840D, Manual
Aho AV, Lam MS, Sethi R, Ullman JD (2006) Compilers: principles, techniques and tools, 2nd edn. Addison-Wesley Longman Publishing Co. Inc
Xu XW, Newman ST (2006) Making cnc machine tools more open, interoperable and intelligent—a review of the technologies. Comput Ind 57(2):141–152
Xu X, Nee AYC (2009) Advanced design and manufacturing based on STEP. Springer Science & Business Media
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
Ridwan F, Xu X (2013) Advanced cnc system with in-process feed-rate optimisation. Robot Comput Integr Manuf 29(3):12–20
Rauch M, Laguionie R, Hascoet JY, Suh SH (2012) An advanced step-nc controller for intelligent machining processes. Robot Comput Integr Manuf 28(3):375–384
Valilai OF, Houshmand M (2010) Infelt step: an integrated and interoperable platform for collaborative cad/capp/cam/cnc machining systems based on step standard. Int J Comput Integr Manuf 23(12):1095–1117
Um J, Suh SH, Stroud I (2016) Step-nc machine tool data model and its applications. Int J Comput Integr Manuf 29(10):1058–1074
Rostan M (2008) Industrial ethernet technologies: overview. In: ETG Industrial ethernet seminar series. Nuremberg
Siemens A (2006) Guide for the sinumerik 840d sl machine configuring. SINUMERIK 840D sl, SINAMICS S120, Manual
LinuxCNC (2007) Emc components. http://wiki.linuxcnc.org/cgi-bin/wiki.pl?EMC_Components
LinuxCNC (2019) Hal introduction. http://linuxcnc.org/docs/2.7/html/hal/intro.html
Staroveški T, Brezak D, Udiljak T (2013) Linuxcnc–the enhanced machine controller: application and an overview. Tehnički vjesnik 20(6):1103–1110
Wang W, Zhou K (2017) An extensible nc program interpreter for open cnc systems. Int J Adv Manuf Technol 2:1–13
Yusof Y, Latif K (2015) New interpretation module for open architecture control based cnc systems. Procedia CIRP 26:729–734
Yusof Y, Latif K (2016) New technique for the interpretation of iso 14649 and 6983 based on open cnc technology. Int J Comput Integr Manuf 29(2):136–148
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
Wang CS, Wiegers T, Vergeest JS (2011) An implementation of intelligent cnc machine tools. In: Applied mechanics and materials, vol 44. Trans Tech Publ, pp 557–561
Li Y, Liu Q, Xiong J, Wang J (2015) Research on data-sharing and intelligent cnc machining system. In: 2015 IEEE international conference on mechatronics and automation (ICMA). IEEE, pp 625–630
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
Birla S, Faulkner D, Michaloski J, Sorenson S, Weinert G, Yen J (2001) Reconfigurable machine controllers using the omac api. In: Proceedings of the CIRP 1st international conference on reconfigurable manufacturing, vol 1, Ann Arbor
Crnkovic I, Sentilles S, Vulgarakis A, Chaudron MR (2010) A classification framework for software component models. IEEE Trans Softw Eng 37(5):593–615
Ardalis (2019)
Ježek K (2010) Component compatibility in terms of extra-functional properties: technical report no. dcse/tr-2010-06
Sentilles S (2012) Managing extra-functional properties in component-based development of embedded systems. PhD thesis, Pau
Strasser T, Zoitl A (2016) Basic principles of IEC 61499 reference model. Distributed control applications: guidelines, design patterns, and application examples with the IEC 61499
Lau KK, Safie L, Stepan P, Tran C (2011) A component model that is both control-driven and data-driven. In: International Acm Sigsoft symposium on component based software engineering
Sapienza G, Sentilles S, Crnkovic I, Seceleanu T (2016) Extra-functional properties composability for embedded systems partitioning. In: International ACM sigsoft symposium on component-based software engineering
Buschmann F, Meunier R, Rohnert H, Sommerlad P, Stal M (1996) Pattern-oriented soft-ware architecture, volume 1: a system of patterns
Seceleanu C, Crnkovic I (2013) Component models for reasoning. Computer 46(11):40–47
John K, Michael S (2018) Component object model (com). https://docs.microsoft.com/zh-cn/windows/desktop/com/component-object-model--com--portal
Frølund S, Koistinen J (1998) Quality-of-service specification in distributed object systems. Distrib Syst Eng 5(4):179
Lau KK, Ukis V (2006) Defining and checking deployment contracts for software components. In: International symposium on component-based software engineering. Springer, pp 1–16
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
Wang N, Parameswaran K, Kircher M, Schmidt DC (2000) Applying reflective middleware techniques to optimize a qos-enabled corba component model implementation. In: Proceedings 24th annual international computer software and applications conference. COMPSAC2000. IEEE, pp 492–499
Soetens P (2006) A software framework for real-time and distributed robot and machine control. Doktorarbeit Katholieke Universiteit Leuven, Belgien
Balasubramanian K (2006) Composition in the corba component model
Zhang C, Guo L, Lan H (2006) Open cnc system components implementation based on ccm. Manuf Technol Mach Tool 38(2):25–28
Zhang Cr, Liu L, Guo Ln (2007) Development of open cnc system components application based on corba component model [j]. Modular Machine Tool & Automatic Manufacturing Technique, 2
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, pp 364–369
Microsoft (2018) Com+ (component services). https://docs.microsoft.com/en-us/windows/win32/cossdk/component-services-portal
Löwy J (2001) COM and NET component services. O’Reilly Media, Inc.
Lowy J (2005) Programming NET components: design and build. NET applications using component-oriented programming. O’Reilly Media, Inc.
Mahnke W, Leitner SH, Damm M (2009) OPC unified architecture. Springer Science & Business Media
Beckhoff (2019) Twincat 3 — extended automation (xa). http://www.beckhoff.com/twincat/
Han Zy, Wang Yz, Fu Hy et al (2007) Development of a pc-based open architecture software-cnc system. Chin J Aeronaut 20(3):272–281
Zhou Z, Xie J, Chen Y, Chen B, Qiu Z, Wong Y, Zhang Y (2004) The development of a fieldbus-based open-cnc system. Int J Adv Manuf Technol 23(7–8):507–513
Liu Y, Wang Yz, Fu Hy (2008) An open architecture motion controller for cnc machine tools. In: 2008 2nd International symposium on systems and control in aerospace and astronautics. IEEE, pp 1–4
Tu NTT, Cuong ND, Tan VV, Thang HQ (2010) Research and development of opc client-server architectures for manufacturing and process automation. In: Proceedings of the 2010 symposium on information and communication technology, SoICT 2010, Hanoi, Viet Nam, August 27-28, 2010
Microsoft (2019) Common language runtime (clr) overview. https://docs.microsoft.com/zh-cn/dotnet/standard/clr
Microsoft (2019) .net framework guide. https://docs.microsoft.com/zh-cn/dotnet/framework/
Microsoft (2017) Assembly contents. https://docs.microsoft.com/en-us/dotnet/framework/app-domains/assembly-contents
Microsoft (2017) Assembly manifest. https://docs.microsoft.com/en-us/dotnet/framework/app-domains/assembly-manifest
Microsoft (2017) Metadata and self-describing components. https://docs.microsoft.com/en-us/dotnet/standard/metadata-and-self-describing-components
Microsoft (2016) What is ”managed code”. https://docs.microsoft.com/en-us/dotnet/standard/managed-code
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, 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, pp 350–355
Thramboulidis K (2013) Iec 61499 vs. 61131: a comparison based on misperceptions. J Softw Eng Appl 6 (8):405–415
Lewis R (2001) Modelling control systems using IEC 61499: applying function blocks to distributed systems. 59, Iet
Vyatkin V (2011) IEC 61499 function blocks for embedded and distributed control systems design
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
Xue-mei H (2010) Distributed and reconfigurable step-nc controller design of compliant to iec 61499 standard. Comput Integr Manuf Syst 12:16
Wang L, Jin W, Feng HY (2006) Embedding machining features in function blocks for distributed process planning. Int J Comput Integr Manuf 19(5):443–452
Elias D, Yusof Y, Minhat M (2012) Interoperable cnc machine via function block and step-nc data model for milling operation. In: Applied mechanics and materials, vol 229. Trans Tech Publ, pp 2365–2369
Du S, Dong Y, Yi H, Yan H (2009) A component model and layered system architecture for reconfigurable cnc systems. In: International conference on information & automation
Du S, Dong Y (2009) Research on component technology for reconfigurable cnc system. In: International conference on computational intelligence & software engineering
Denton W (2003) How to make a faceted classification and put it on the web. See http://www.miskatonicorg/library/facet-web-howtohtml
Henning M (2006) The rise and fall of corba. Queue 4(5):28–34
patterns M, Practices (2009) Microsoft application architecture guide. Microsoft Press
Kautz O, Roth A, Rumpe B (2018)
Brambilla M, Cabot J, Wimmer M (2017) Model-driven software engineering in practice. Synth Lect Softw Eng 3(1):1–207
OMG (2020) Mda - the architecture of choice for a changing world. https://www.omg.org/mda/
Li D, Li F, Huang X, Lai Y, Zheng S (2010) A model based integration framework for computer numerical control system development. Robot Comput Integr Manuf 26(4):333–343
Kübler K, Scheifele S, Scheifele C, Riedel O (2018) Model-based systems engineering for machine tools and production systems (model-based production engineering). Procedia Manuf 24:216–221
Liu J, Fu Y, Han Z, Fu H (2015) Design of an industrial ethernet based embedded open architecture cnc system. In: 2015 International conference on estimation, detection and information fusion (ICEDIF). IEEE, pp 413–417
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 Arch 56(9):407–418
Microsoft (2008) Hard real-time with venturcom rtx on microsoft windows xp and windows xp embedded. https://docs.microsoft.com/en-us/previous-versions/windows/embedded/ms838583(v=winembedded.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
Yao YX, Yu SZ (2007) A novel architecture for compiled-type software cnc system. Key Eng Mater 339:5
Wang L, Orban P, Cunningham A, Lang S (2004) Remote real-time cnc machining for web-based manufacturing. Robot Comput Integr Manuf 20(6):563–571
Zhang X, Tang X, Chen J, Zhou H, Wu T (2007) Hierarchical real-time networked cnc system based on the transparent model of industrial ethernet. Int J Adv Manuf Technol 34(1–2):161– 167
Richards M (2015) Software architecture patterns. O’Reilly Media, Incorporated
Tanenbaum AS, Bos H (2015) Modern operating systems. Pearson
Steve S (2019) Overview of asp.net core mvc. https://docs.microsoft.com/zh-cn/aspnet/core/mvc/overview?view=aspnetcore-2.2
Stephen W (2008) Understanding models, views, and controllers (c#). https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/overview/understanding-models-views-and-controllers-cs
Charlie R (2011) Scaling isomorphic javascript code. https://blog.nodejitsu.com/scaling-isomorphic-javascript-code/
Lou T, et al. (2016) A comparison of android native app architecture–mvc, mvp and mvvm
Pan HH, Jiang JJ, Chen L, Sun HT, Tan HQ (2011) A scalable graphics user interface architecture for cnc application based - on wpf and mvvm. Adv Mater Res 317–319:1931–1935
Jiang JJ, Tan HQ, Yao B (2012) A multi-platform compatible and open software architecture for computer numerical control systems. In: Advanced materials research, vol 468. Trans Tech Publ, pp 430–433
Soni S, Dhete P, Patil S, Meshram DB (2012) Industrial automation using windows presentation foundation & model view view-model pattern. Int J Adv Res Comput Eng Technol 1:149–152
Brown S (2014) Software architecture for developers. Barnes & Noble
Wang T, Wang L, Liu Q (2011) A three-ply reconfigurable cnc system based on fpga and field-bus. Int J Adv Manuf Technol 57(5–8):671–682
Xu XW (2006) Realization of step-nc enabled machining. Robot Comput Integr Manuf 22(2):144–153
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, pp 176–185
Liu Y, Guo X, Li W, Yamazaki K, Kashihara K, Fujishima M (2007) An intelligent nc program processor for cnc system of machine tool. Robot Comput Integr Manuf 23(2):160–169
Correa JE, Toombs N, Ferreira PM (2017) A modular-architecture controller for cnc systems based on open-source electronics. J Manuf Syst, 44
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. A review of the application of component-based software development in open CNC systems. Int J Adv Manuf Technol 107, 3727–3753 (2020). https://doi.org/10.1007/s00170-020-05258-1
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00170-020-05258-1