You are on page 1of 14

IE 4230 - Systems Integration IE 4230 - Systems Integration

CNC Machining

CNC Machine

Continuous path motion control Closed loop (PID) control Components


Drive motors Position feedback Computer controller

Drive Motors

DC servo motors AC servo motors Stepper motors Hydraulic motors

Position Feedback

Incremental encoder Quadrature Absolute encoder Resolver Tachometer No feedback (open loop)

Mechanical Components

Ball screw Ball nut (anti-backlash) Ways Linear bearings

Control

Desired path (p, v, a)


3-axis position control (encoder feedback) Velocity control (tachometer feedback) Torque control (current feedback) Linear interpolation Circular interpolation Complex path interpolation (contouring)

Path generator

CNC Programming

Manual

Write code directly Draw cutter path Draw the part Cutter path is generated

Computer-assisted

CAD/CAM

CNC Integration

Two Versions of DNC

Distributed Numerical Control


Program is stored in a computer Program is loaded to CNC machine and executed automatically CNC commands are individually transmitted from a computer to the CNC machine and executed immediately

Direct Numerical Control

Galil DMC Programming


All units are counts Independent axis movements Coordinated (vector mode) movements Typical sequence

Specify parameters Specify motion Begin motion After motion

Independent Axis Moves

Scale

Motion

2000 ppi in X and Y 10000 ppi in Z

PA position absolute PR position relative BG begin motion AM after motion ST stop motion

Parameters

Sequence control

SP speed AC acceleration DC deceleration

Vector Mode Moves

Parameters

Motion

VM vector mode plane VS vector speed VA vector acceleration VD vector deceleration

VP linear position

(from local origin) (rad, start, sweep)

CR circular arc

VE end sequence BGS begin sequence AMS after motion sequence

Sequence control

Galil Program Segment

Other Galil Statements

Labels

Remarks

Begin with # 8 characters total #DRILL Begin with letter 8 characters total SAFEZ=8000

Line begins with REM Ignored during load Begin with label #MY_PROG End with EN

Program structure

Variables

Galil Subroutines

Jump to subroutine (by label) from main program: JS #MYSUB Place subroutine after main program When subroutine end (EN) is encountered, returns to main program just after JS statement One subroutine can be called many times