An Open System Framework for component-based CNC Machines

Similar documents
Universal Communication Component on Symbian Series60 Platform

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

Solution: Reuse Design Patterns Design patterns support reuse of software architecture Patterns embody successful solutions to problems that arise whe

Java Based Open Architecture Controller

Topics in Object-Oriented Design Patterns

CHAPTER LINUXCNC OVERVIEW

Concurrent Object-Oriented Development with Behavioral Design Patterns

Using Algebraic Geometry to Study the Motions of a Robotic Arm

Architectural Patterns

Design Patterns. Architectural Patterns. Contents of a Design Pattern. Dr. James A. Bednar. Dr. David Robertson

The Object Recursion Pattern

Assignment 3. Position of the center +/- 0.1 inches Orientation +/- 1 degree. Decal, marker Stereo, matching algorithms Pose estimation

Software Architecture. Lecture 4

Architectural Blueprint

Pro/ENGINEER Wildfire 2.0 Curriculum

Ch 5 Industrial Control Systems

Object-Oriented Design

Finite State Machines and Statecharts

Chapter 1 Introduction to Numerically Controlled Machines

Object-Oriented Design

5-Axis Flex Track Drilling Systems on Complex Contours: Solutions for Position Control

Performance Evaluation of the Reactor Pattern Using the OMNeT++ Simulator

Part V. Process Management. Sadeghi, Cubaleska RUB Course Operating System Security Memory Management and Protection

Chapter 10: Performance Patterns

1 PROCESSES PROCESS CONCEPT The Process Process State Process Control Block 5

Visualization and Analysis of Inverse Kinematics Algorithms Using Performance Metric Maps

Towards a Java Framework for Knowledge Representation and Inference

extrinsic members RoleB RoleA

Goals of Lecture. Lecture 27: OO Design Patterns. Pattern Resources. Design Patterns. Cover OO Design Patterns. Pattern Languages of Programming

Facade and Adapter. Comp-303 : Programming Techniques Lecture 19. Alexandre Denault Computer Science McGill University Winter 2004

Finite State Machine Modeling for Software Product Lines. Finite State Machines and Statecharts

Chapter 12 (revised by JAS)

Design and Development of Cartesian Robot for Machining with Error Compensation and Chatter Reduction

CHAPTER 6: CREATIONAL DESIGN PATTERNS

Analysis and Design with the Universal Design Pattern

REDUCING BEAMFORMING CALCULATION TIME WITH GPU ACCELERATED ALGORITHMS

Curriculum 2013 Knowledge Units Pertaining to PDC

Microthread. An Object Behavioral Pattern for Managing Object Execution. 1.0 Intent. 2.0 Also Known As. 3.0 Classification. 4.0 Motivation/Example

Metadata in the Driver's Seat: The Nokia Metia Framework

Overview of the Experimental Physics and Industrial Control System: EPICS

REMOTE MONITORING AND CONTROL OF MANUFACTURING SYSTEM

Pattern Density and Role Modeling of an Object Transport Service

10/25/2018. Robotics and automation. Dr. Ibrahim Al-Naimi. Chapter two. Introduction To Robot Manipulators

Motion Simulation of a Modular Robotic System

Software Architecture

A Framework for Framework Documentation Greg Butler Concordia University and Rudolf K. Keller Universite de Montreal and Hafedh Mili Universite duqueb

SWE 760 Lecture 1: Introduction to Analysis & Design of Real-Time Embedded Systems

Principles of Parallel Algorithm Design: Concurrency and Decomposition

CAS 703 Software Design

Cecilia Laschi The BioRobotics Institute Scuola Superiore Sant Anna, Pisa

Live Classroom Curriculum Guide

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

AN OBJECT-ORIENTED VISUAL SIMULATION ENVIRONMENT FOR QUEUING NETWORKS

Configuration Provider: A Pattern for Configuring Threaded Applications

DARPA Investments in GEO Robotics

Chapter 3 Processes. Process Concept. Process Concept. Process Concept (Cont.) Process Concept (Cont.) Process Concept (Cont.)

Chapter 1: Introduction

DELTA TAU Data Systems, Inc.

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach

AN OPC DATA ACCESS SERVER DESIGNED FOR LARGE NUMBER OF ITEMS

The Authenticator Pattern

Software Engineering

Supersedes: S-EG-06. Specifications relating to event loggers for electricity and gas metering devices

LabVIEW Certification Overview

Direct deployment of component-based automation systems

Concurrency Control with Java and Relational Databases

Week 6: Data. Let's focus first on application domain data.

DESIGN AND SIMULATION OF HETEROGENEOUS CONTROL SYSTEMS USING PTOLEMY II

Middleware Reliability Implementations and Connector Wrappers

Design of an open hardware architecture for the humanoid robot ARMAR

FMS-200 Flexible integrated assembly systems

Exercise Unit 2: Modeling Paradigms - RT-UML. UML: The Unified Modeling Language. Statecharts. RT-UML in AnyLogic

TRAINING A ROBOTIC MANIPULATOR

Ch 22 Inspection Technologies

IGRIP The Robotic Simulation and Off-Line Programming Solution

Dynamic Adaptability of Services in Enterprise JavaBeans Architecture

What is an industrial robot?

A Meta-Model for Composition Techniques in Object-Oriented Software Development

OROCOS: design and implementation of a robot control software framework

Introduction to UML What is UML? Motivations for UML Types of UML diagrams UML syntax Descriptions of the various diagram types Rational Rose (IBM.. M

CSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1

Applying High-School Mathematics to Robotics

TechFront. Versatile Gaging System Designated the Equator, this system is described by

Smart City, Internet of Things, Security and Privacy

C++ INTERFACE CLASSES STRENGTHENING ENCAPSULATION

06. Analysis Modeling

Ch 8 Industrial Robotics

Software Design. Levels in Design Process. Design Methodologies. Levels..

Manipulator Path Control : Path Planning, Dynamic Trajectory and Control Analysis

Designing Component-Based Architectures with Rational Rose RealTime

SOFTWARE ENGINEERING UML FUNDAMENTALS. Saulius Ragaišis.

A MULTI-ROBOT SYSTEM FOR ASSEMBLY TASKS IN AUTOMOTIVE INDUSTRY

The SIGCSE 2001 Maze Demonstration Program

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model

Object-Oriented Software Development Goal and Scope

Fundamentals of Inverse Kinematics Using Scara Robot

Software Development Fundamentals (SDF)

Parallel Programming Concepts. Parallel Algorithms. Peter Tröger

INTELLIGENT PROGRAMMABLE DRIVES BECOME A CONTROL FOR THE ENTIRE MACHINE

CAS 703 Software Design

Transcription:

An Open System Framework for component-based CNC Machines John Michaloski National Institute of Standards and Technology Sushil Birla and C. Jerry Yen General Motors Richard Igou Y12 and Oak Ridge National Laboratory George Weinert Lawrence Livermore National Laboratory This paper describes a framework for open, component-based, manufacturing controllers. The framework is based on the analysis of computer numerically controlled (CNC) machines. The framework includes a control class hierarchy, plug-and-play modules aggregated from the class hierarchy, and a model of collaboration. The framework can be used to build applications that range from a single-axis device to a multi-arm robot. General Terms: Frameworks, Control Additional Key Words and Phrases: API, architecture, classes, CNC, object-oriented 1. BACKGROUND A desire for agile discrete-parts manufacturing has resulted in a need for open controllers implemented with plug-and-play components for cost and performance reasons. Industry requirements for open-control are spelled out in the Open Modular Architecture Controller (OMAC) requirements document, originally specified by the Big Three automakers in [Chrysler, Ford Motor Co., and General Motors 1994]. In response to these requirements, the OMAC Application Programming Interface (API) workgroup was formed and has developed the OMAC API specification that adopts an open system framework to enable open controller technology. (See [OMAC API Workgroup ] for more information.) Generally the term framework is used to mean a specification for an integrated set of software components. An open system framework is a framework that promotes interface Permission to make digital/hard copy of part or all of this work for personal or classroom use is granted without fee provided that the copies are not made or distributed for profit or commercial advantage, the copyright notice, the title of the publication, and its data appear, and notice is given that copying is by permission of the ACM, Inc. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. c2000 ACM 00360-0300/00/0300

2 OMAC API Machining systems/cells; workstations Simple machines; tool-changers; work changers Axis groups Axis components (sensors, actuators) Machine tool axis or robotic joints (translational; rotational) Geometry (coordinate frame; circle) Units Measures Containers (meter) (length) (matrix) Primitive Data Types (int,double, etc.) Fixtures Other tooling Control components (pid; filters) Kinematic structure Plans Processes Fig. 1. Manufacturing Controller Class Hierarchy reuse based on a public interface specification [Johnson 1997]. An open system framework allows integrators to mix and match components from different vendors. With an open system framework, controllers can be built from best value components from best in class services. For parts manufacturing, this ability leads to better integration of process improvements and increased satisfaction of application requirements. In the following sections, we review the OMAC API open system framework, which was designed to be flexible enough to accommodate a broad range of manufacturing control applications. First, an analysis of application domain is presented leading to the definition of an abstract class hierarchy. Next, the concept of a module is introduced as a necessary prerequisite for plug-and-play. Following this discussion, module behavioral patterns within the framework are reviewed. Finally, an example of module collaboration is presented. 2. APPLICATION DOMAIN ANALYSIS The primary OMAC API application domain is multi-axis, coordinated motion control typical of Computer Numerical Control (CNC) machines or robots. In addition, process control is necessary to handle input/output, events and auxiliary equipment. Representative controller applications include cutting, manipulation, forming, and grinding. The target range of controller complexity can be quite large from multiple robotic arms to single axis controllers. This disparity implies that the framework must be scalable and permit portions of the framework to be used. Other controller constraints such as memory limitations and real-time performance also shape the framework. Frameworks use a class hierarchy for domain modeling. Figure 1 portrays the class hierarchy derived from the decomposition of a shop-floor controller. The decomposition of a generic controller into classes spans many levels of abstraction and has elements for motion control and discrete logic necessary to coordinate machining, cut parts, and sequence operations. Classes form the building blocks of the framework. For example, the class definition for position can be found throughout the hierarchy. As one moves up the hierarchy, classes broaden their scope to define device abstractions for physical components such as sensors and actuators. As the scope broadens however, objects have no physical equivalents. Objects such as Axis Groups are only logical entities. Axis Groups embody the planning and

A Framework for component-based CNC Machines 3 control knowledge needed to coordinate multiple axes. In turn, methods of an Axis Group are invoked by user-supplied Plans. 3. PLUG-AND-PLAY MODEL Plug-and-play on a per-class basis is not really feasible. Instead, a coarser granularity component, which we call a module, is necessary for realizing plug-and-play. The OMAC API framework extracts approximately 20 modules from the class hierarchy. To be plugand-play, a module must satisfy the following requirements: significant piece of software used in a component-based controller grouping of similar classes well-defined API, states, and state transitions replaceable by any other piece of software that implements the API, states and state transitions. Modules have other secondary characteristics. Modules can be either active or passive based on variations regarding supervision and activation. Modules may provide more functionality than required in the specification. More than one instance of a module may be used in a controller. Modules may be used to build other components. Controllers are built with a set of modules. At the top level, controllers are modeled as a distributed system of concurrently active objects although in implementation a single thread of execution is possible. Active objects do not need to receive a message to be in the active state and govern their execution by internally managing one or more independent threads of control. To reinforce the notion of plug-and-play, we use the term active module in lieu of active object. Examples of controller active modules include: (1) Axis modules, which perform servo control of axis motion by transforming incoming motion goal points into setpoints for the corresponding actuators; (2) Axis Group modules, which coordinate the motions of individual axes by transforming an incoming motion segment specification into a sequence of equi-time-spaced setpoints for the coordinated axes; (3) Discrete Logic modules, which implement discrete control logic or rules characterized by a Boolean function that maps input and internal state variables to output and internal state variables; and (4) Task Coordinator modules, which sequence operations and coordinate the various motion, sensing, and event-driven control processes. Active modules may delegate to passive modules that do not possess threads of control and that depend on an active module for the execution of their functions. Examples of passive modules include (1) Kinematic modules, which perform coordinate frame transformations, and (2) Control Law modules, which are responsible for servoing calculations to reach commanded setpoints. 4. BEHAVIOR MODEL The behavior of an active module is modeled by a, s, and Finite State Machine () pattern that is illustrated in Figure 2(a). The source (or generator) of all s is the. This means that the contains API, which will trigger s, which are used by the (which will make calls to the s API s, which can generate events,...ad infinitum). The may contain one or more embedded active modules as illustrated in Figure 2(b). Embedding of s leads to recursive event propagation and corresponds to

4 OMAC API Axis Group (a) Active Module Axis (b) Embedded Active Module (c) Interacting Active Modules Fig. 2. Active Module Relationships the concept of layered s [Harel 1988]. s can be evaluated synchronously at given time intervals or asynchronously on an event-driven basis. Interacting active modules maintain a client-server relationship where a supervisory client commands a subordinate server. To communicate, a supervisory module s makes API calls to other subordinate module s s, which will then send events to their own s as illustrated in Figure 2(c). Overall, event dispatching is both distributed as well as recursive. Such event dispatching contrasts to traditional frameworks characterized by centralized event handling known as inversion of control [Fayad and Schmidt 1997]. s can also be either resident or transient. In the transient case, an can be removed, and then replaced with another. An is transient when, for example, a supervisor issues a new command to the subordinate or when an exception occurs and an exception handling is required. Representation of an can be complex and there is no universal strategy. In light of this situation, OMAC has developed the Control Plan Unit (CPU) module to capture the essentials of an. The crux of the CPU class is a few fundamental methods as seen in the following Interface Definition Language [Object Management Group 1995]: interface ControlPlanUnit { ControlPlanUnit executeunit(); boolean isdone(); }; The ControlPlanUnit is an example of the Command pattern [Gamma et al. 1994]. To evaluate the current state, an active module invokes the executeunit() method, which causes the to perform a state evaluation. Examples of modules derived from Control Plan Unit include: (1) Capability, which is a CPU to which the Task Coordinator delegates for specific modes of operation corresponding to traditional CNC operating modes (AUTO or MANUAL); (2), which is a transient CPU used by the Axis Group module for motion control; and (3) Discrete Logic Unit, which is a transient or resident CPU for discrete logic control. A series of linked CPUs forms a Control Plan. A Control Plan is a general-purpose representation of a control program. OMAC API defines the Control Plan Generator mod-

A Framework for component-based CNC Machines 5 RS 274 Part Program N10 G01 G91 F10 N20 X10 Y10 Z10 N30 X1 Y1 Z1 N40 M30 (a) translate() Control Control Plan Control Plan Unit Plan Control Unit Plan Unit Plan Unit Unit Control Plan Generator (b) getnextcontrolplanunit() Control Plan Unit (c) executeunit() Task Coordinator (d) setnext() Axis Group Fig. 3. Collaboration ule, which is responsible for translating programs written in application-specific languages (e.g., CNC RS274D part programs [Engineering Industries Association 1979]) into the more general Control Plan. To enable program translation, OMAC API defines Program Logic CPU to mimic control constructs such as if/then, or while statements. The next section will study the case where a CPU can contain embedded CPUs as a model of collaboration. 5. COLLABORATION Transient CPUs serve as data by being passed between active modules. Subsequently, such transient CPUs then serve as the logic within the behavior model. Figure 3 illustrates the collaboration model as a CPU propagates through a simplified control system. In step (a) the Control Plan Generator module translates a part program written in RS274D into a Control Plan. In step (b) the Task Coordinator uses getnextcontrolplanunit to retrieve a CPU. In step (c) the Task Coordinator does an executeunit on this CPU. Step (c) may be repeated several times as in the case where the CPU may have to synchronize with lower level modules (e.g., such as waiting until all current s have first completed). After synchronization, step (d) occurs whereby the CPU appends a reference CPU onto the Axis Group motion queue using the method setnext. This is an example of an embedded CPU being passed to a subordinate module. Once the CPU is loaded onto the Axis Group queue, it waits for activation. Once activated, the Axis Group periodically calls the CPU executeunit() method until the isdone() condition is true. 6. CONCLUSION The OMAC API specification employs an open system framework to enable plug-and-play controller technology. Components are defined at a coarse granularity to enable market viability. The OMAC API framework provides a standard way for components to collaborate including provisions for exchanging information, invoking operations on each other, and handling errors. The OMAC API framework is not all-inclusive. The focus of effort has been to develop

6 OMAC API a framework for assembling and reconfiguring modules that the controller community routinely wants to upgrade. At this time, the OMAC API framework discusses, but does not attempt to specify procedures for such issues as conformance, configuring modules, performance evaluation, and resource profiling. REFERENCES Chrysler, Ford Motor Co., and General Motors. 1994. Requirements of Open, Modular, Architecture Controllers for Applications in the Automotive Industry. Chrysler, Ford Motor Co., and General Motors. White Paper Version 1.1. Engineering Industries Association. 1979. EIA Standard - EIA-274-D, Interchangeable Variable, Block Data Format for Positioning, Contouring, and Contouring/Positioning Numerically Controlled Machines. Washington, D.C.: Engineering Industries Association. FAYAD, M. AND SCHMIDT, D. C. 1997. Object-Oriented Application Frameworks - Introduction. CACM 40, 10, 32 38. GAMMA, E., HELM, R., JOHNSON, R., AND VLISSIDES, J. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Reading, MA. HAREL, D. 1988. On Visual Formalisms. CACM 31, 5, 514 530. JOHNSON, R. E. 1997. Frameworks = (Components + Patterns). CACM 40, 10, 39 42. Object Management Group. 1995. The Common Object Request Broker: Architecture and Specification, Revision 2.0. Framingham, MA: Object Management Group. OMAC API Workgroup. OMAC API Set. OMAC API Workgroup. See Web URL: http://isd.cme.nist.gov/info/omacapi.