7/31/2019 215_CNC
1/14
IE 4230 - Systems IntegrationIE 4230 - Systems Integration
CNC Machining
7/31/2019 215_CNC
2/14
CNC Machine
Continuous path motion control
Closed loop (PID) control
Components Drive motors Position feedback Computer controller
7/31/2019 215_CNC
3/14
Drive Motors DC servo motors
AC servo motors
Stepper motors Hydraulic motors
7/31/2019 215_CNC
4/14
Position Feedback Incremental encoder
Quadrature
Absolute encoder Resolver
Tachometer
No feedback (openloop)
7/31/2019 215_CNC
5/14
Mechanical Components Ball screw
Ball nut (anti-backlash)
Ways Linear bearings
7/31/2019 215_CNC
6/14
Control
Desired path (p, v, a) 3-axis position control (encoder feedback)
Velocity control (tachometer feedback) Torque control (current feedback)
Path generator
Linear interpolation Circular interpolation Complex path interpolation (contouring)
7/31/2019 215_CNC
7/14
CNC Programming Manual
Write code directly
Computer-assisted Draw cutter path
CAD/CAM Draw the part Cutter path is generated
7/31/2019 215_CNC
8/14
CNC Integration Two Versions of DNC
Distributed Numerical Control Program is stored in a computer Program is loaded to CNC machine and
executed automatically
Direct Numerical Control CNC commands are individually transmittedfrom a computer to the CNC machine andexecuted immediately
7/31/2019 215_CNC
9/14
Galil DMC Programming
All units are counts
Independent axis movements
Coordinated (vector mode) movements
Typical sequence Specify parameters Specify motion Begin motionAfter motion
7/31/2019 215_CNC
10/14
7/31/2019 215_CNC
11/14
Vector Mode Moves
Parameters VM vector mode
plane VS vector speed VA vector
acceleration VD vector
deceleration
Motion VP linear position
(from local origin)
CR circular arc (rad, start, sweep)
VE end sequence
Sequence control BGS begin sequence AMS after motion
sequence
7/31/2019 215_CNC
12/14
Galil Program Segment
7/31/2019 215_CNC
13/14
Other Galil Statements Labels
Begin with #
8 characters total #DRILL
Variables Begin with letter 8 characters total SAFEZ=8000
Remarks Line begins with REM
Ignored during load Program structure
Begin with label #MY_PROG End with EN
7/31/2019 215_CNC
14/14
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