# STEP-NC Compliant Intelligent CNC Milling Machine with an Open Architecture Controller
## 1 Introduction  
Computer Numerical Control (CNC) machines play a vital role in product manufacturing. Traditionally, CNC machines have been programmed according to ISO6983 [1] standard throughout the last half a century or so. This standard defines a low level programming language, which describes only the cutter location path and switching instructions [2]. A limited set of information written with G and M codes are sent to the CNC machine for execution. The CNC machine tool just acts as an executing machine, having no intelligence. Therefore, due to the unavailability of information about work piece, cutting tools, machining features and machining parameters, the shop floor level modifications cannot be entertained, except for the feed rate and spindle speed adjustments. These details are not transferred to the machine tool controller, although they are available in CAM software. Since ISO 6983 covers only a limited set of facilities, CNC machine vendors extended the G and M code to define their own specific functions, such as custom fixed cycles. This makes a specific post processor required for each and every CNC controller because of the-vector-specific G and M codes. Therefore, the interchangeability of CNC part programs between different controllers is restricted [3]. In order to address these problems, a new standard, ISO 14649 [4], popularly known as STEP-NC, was recently introduced. This new standard provides a data model for a new breed of intelligent CNC machines [3]. The main objective of STEP-NC is to integrate data available at the design stage with CAM and CNC. Special provisions are included in the new standard to prevent data loss during the CAD-CAM-CNC chain [2]. Further, ISO 14649 standard introduces a new data format in order to transfer the information available at the CAD/CAM stage, such as features to be machined, workpiece data, cutting tool data, technological data, operations and their sequence and much more, to the CNC machine. Accordingly, the toolpaths can be generated by the CNC controller itself since all the information to generate cutter locations is available at the CNC machine. As machine-specific information is not used in ISO 14649, the post-processor requirement is eliminated [5]. Almost all commercial CNC machine controllers at present were developed on vendor-specific architectures. Therefore, the expansion hardware and software modules must be purchased from the same vendor for compatibility. The availability of those modules is limited and decided by the vendor, not by the customer. Accordingly, these commercial controllers cannot be extended to STEP-NC compliant controllers. As such, Open Architecture Controller (OAC) development technology is used to develop STEP-NC compliant controllers [6; 7; 8]. OAC is defined as an open system, which provides capabilities that enable properly implemented applications to run on a variety of platforms from multiple vendors, interoperate with other systems applications, and present a consistent style of interaction with the user [9]. Further, OAC systems are independent of manufactures' proprietary, and thus a customer gives the flexibility of plug-in required additional hardware and software from any developer into the system. This allows the integration of application programs, control algorithms, and hardware accessories developed by diverse manufacturers [10]. Overall, OAC technology is a neutral vendor control system interface that provides interaction, interoperability, portability, and scalability specifications. As personal computers (PCs) gained popularity, it became a better choice in the industry as a hardware platform for open architecture CNC systems. High performance to price ratio of a PC is one of the main advantages of using a PC in open architecture CNC systems [11]. Some of the PC-based OAC developments reported in the literature are described below. A PC-based OAC for the existing Denford Novamill ATC 3 axis CNC milling machine was developed on the LabVIEW software platform by [PERSON] et al.