CNC제어(교재)_PMAC[1]

Download Report

Transcript CNC제어(교재)_PMAC[1]

Motion Control
PMAC
( Programmable Multi-Axis Controller)
창원대학교 전기공학과 제어 및 전력전자연구실
제어 및 전력 전자 센터
적용분야
•
•
•
•
•
FPD Inspection / Manipulation
로보트 (robotics)
공작기계 (machine tools)
인쇄기 (printing)
종이 및 목재 가공기
(paper and lumber processing)
• 팩킹기 (packaging)
제어 및 전력 전자 센터
•
•
•
•
조립라인 (assembly lines)
material handling
카메라 제어(camera control)
실리콘 웨이퍼 가공기
(silicon wafer processing)
• 자동 용접기
(automatic welding)
• 레이저 가공기(laser cutting)
실습장비(시스템)
○ 시스템 구성
• PMAC 모듈
• AC 서보모터 + Amp 4조
• PC
제어 및 전력 전자 센터
실습장비(PMAC)
○ CEM 104 PLUS(PMAC 모듈)
• 고속 고정밀 모션 콘트롤러
• 8축 아날로그(+/-10V)출력 서보(토크 및 속도모드) 제어 및
스텝핑 모터 제어가능
제어 및 전력 전자 센터
PMAC 기능
모션 프로그램 실행
• 한번에 한 개의 이송(move), 이송 이전에 모든 계산 수행
• PMAC은 항상 다음 이송명령을 선독(Looking ahead) 하여 혼합이송
(Blending Move)을 한다.
PLC 프로그램 실행
• 빠른 속도의 연속 스캔
• 모션에 비동기인 모든 작업에 유익
제어 및 전력 전자 센터
PMAC 기능 (계속)
서보 루프 갱신 (Servo Loop Update)
• 사용자에게 보이지 않는 자동작업
• 모션 발생기에 의해 발생된 방정식에 의해 지령 위치를 증감하고,
지령 Command를 발생하기 위해 서보 루프를 close하는 동작으로
구성된다.
Commutation Update
• 자동 수행 (통상 약9KHz)
• 회전자의 자기장 방향을 측정 하(거나)고 산정하여 모터상간의 명령
을 분배한다.
제어 및 전력 전자 센터
PMAC Executive Program
: Pewin Pro Suite (Windows version)
○ PMAC의 셋업(setup), 디버그(debug) 및 진단(diagnose)을 위
한 필수적인 프로그램
○ The Executive program을 통해 PMAC이 가진 필요한 모든 내
용을 억세스한다.
• PMAC에 온라인 명령사용
• 위치(positions), 속도(velocities),및 추종에러 (following errors) 표시
• 모터, 좌표계 및 모든 상태정보를 표시
• 모든 PMAC 변수의 표시, 변경 및 조회 가능
• 모든 PMAC 정보의 백업(backup) 및 환원(restore)
등등.
제어 및 전력 전자 센터
Pewin Pro Suite : 실행 화면
제어 및 전력 전자 센터
Pewin Pro Suite : 실행(계속)
○ Setting
① CFG-file Download :File - download files
② 사용하지 않는 축 제거 :Configure - Coordinate System
(모든 축을 제거한다.)
○ 모션 프로그램 실행
① 다운로드
② >>Bx (버퍼지정)
③ >>R (실행)
제어 및 전력 전자 센터
좌표계 (COORDINATE SYSTEMS)
· 모든 모션프로그램은 좌표계에서 실행된다.
· 서로 연관성이 있는 모터들을 같은 좌표계에 설정 .
· 각각의 좌표계에 모션 프로그램을 실행 시킬 수 있다.
예제)
&1
#1->100X
#3->100Z
제어 및 전력 전자 센터
; Coordinate system 1
; 1 unit of X is 100 counts of motor 1
PMAC 명령어(COMMAND SET)
1. 온라인 명령어(On-line Commands)
(명령지령 즉시 실행되며, 저장 않됨)
- 적용되는 범위에 따라..
A. 전체 좌표계 (Global)
B. 좌표계 (Coordinate System Specific (&n …))
C. 모터 (Motor Specific (#n…))
모드설정(Mode setting), 이송명령(move commands),조회
(queries), 변수 설정(variable setting), 버퍼제어(buffer control)
제어 및 전력 전자 센터
PMAC 명령어(COMMAND SET)
2. 버퍼 명령어 (Buffer command )
(명령에 의해 실행될 수 있도록 버퍼에 저장)
A. 모션 프로그램 (Motion Program)
이송(Moves), 모드(modes), 산술(math), 로직(logic),
commands, 메시지(messages)
B. PLC Program
산술(Math), 논리(logic), commands, 메시지(messages)
* 버퍼형식 명령어는 “OPEN”으로부터 실행된다.
제어 및 전력 전자 센터
Global Status Commands
???
#
&
SIZE
- Report status bits (in hex ASCII)
- Report addressed motor
- Report addressed coordinate system
- Report available buffer space
<CTRL -B > - Report all motor status words
<CTRL -C > - Report all coordinate system status words
<CTRL -E > - Report all data gathering address contents
(in binary)
<CTRL -F > - Report all motor following errors
<CTRL -G > - Report global status word
<CTRL -P > - Report all motor positions
<CTRL -V> - Report all motor velocities
제어 및 전력 전자 센터
13
Status Commands
Motor Status Commands
P
- Report position (in counts
V
- Report velocity (in counts/servo cycle)
F
- Report following error (in counts)
?
- Report status bits (in hex ASCII)
Coordinate System Status Commands
%
- Report feedrate override value
??
- Report status bits (in hex ASCII)
PC
- Report program counter
PR
- Report program remaining in rotary buffer
#n- >
- Report axis definition of motor n
제어 및 전력 전자 센터
14
PMAC Stop Commands
J/ - “Jog Stop”: Bring motor to closed-loop, zero velocity
from moving, open-loop, or killed. Decelerates
according to Ix19-Ix21
A - “Abort”: Bring all motors in coordinate system to
closed-loop zero velocity from moving, open-loop, or
killed. Stops execution of motion program. Motors
decelerate according to Ix15. (<CTRL-A> for all C.S.)
Q - “Quit”: Stop calculating motion program; finish already
calculated moves (<CTRL-Q> for all C.S.)
/ - Stop program at end of executing move (I13>0 mode
only)
제어 및 전력 전자 센터
15
PMAC Stop Commands (continued)
H
- “Hold”: Feedhold for coordinate system. Equivalent to
“%0” but uses Ix95 for deceleration, and starts again
with R. (<CTRL-O> for all C.S.)
\ - Feedhold that permits jogging in hold mode (I13>0
mode only)
K - “Kill”: Open loop, zero command, disable amp for
motor (<CTRL-K> for all motors)
제어 및 전력 전자 센터
16
PMAC 변수(Variables)
1. I-Variables (1024 / 8192), 시스템 변수
 초기화 및 셋업용 변수 (Initialization and setup variables)
 정해진 의미를 가짐
 변수용도(번호)에 따라 카드전체, 특정 모터, 좌표계 및
엔코더에 영향을 미친다.
2. P-Variables (1024 / 8192)
 일반적인 사용자 사용 변수 (General purpose user variables)
 48-bit floating point format
 전체 영역 억세스 (Global (whole card) access)
제어 및 전력 전자 센터
PMAC 변수(Variables) (계속)
3. Q-Variables (1024 / 8192)
 일반적인 사용자 사용 변수 (General purpose user variables)
 48-bit floating point format
 좌표계에 따라 결정 (Specific to a coordinate system)
4. M-Variables (1024 / 8192)
 카드의 메모리 및 I/O를 억세스
 사용자 정의(address, offset, and bit width)
 형식 : Unsigned, 2’s compliment, BCD, floating point
formats 사용가능
제어 및 전력 전자 센터
조그 운전 (JOGGING MOTORS)
○ 조깅은 가장 간단한 형태의 Closed Loop 제어
○ 조깅 운전는 On-Line 명령에 의해 제어
○ 조깅은 간단한 위치제어나 스핀들과 같이 일정한 속도로 계속 움직
이는 운동에 사용될 수 있다.
○ What to learn:
• 조그운전 방법 (How to Jog Motors)
• 조그속도 변경방법 (How to change the jog speed)
• 조그 가속도 변경방법 ( How to change the jog acceleration)
제어 및 전력 전자 센터
온라인 조그 명령어
(On-line Jog commands)
J+ - “+” 방향으로 연속적인 조그운전 (Jog positive indefinitely)
J-
- “-”방향으로 연속적인 조그운전 (Jog negative indefinitely)
J/
- 조그이송 정지 또는 Closed Loop (Jog stop (or close loop)
J= - 이전 프로그램 위치로 복귀지령
(Jog back to prejog (last programmed) position)
J={constant} - 지정된 위치로 조그이송 (단위: counts)
(Jog to specified position (in counts))
J^{constant} - 현재의 실제 위치로 부터 지정된 거리이송
(Jog to specified distance from present actual position)
J:{constant} - 현재 지령 위치로부터 지정된 거리 이송
(Jog specified distance from present commanded position)
제어 및 전력 전자 센터
온라인 조그명령 예제
(On-line Jog Commands Examples)
#1J+
- 모터1 “+”방향으로 조깅
(Jog Motor #1 in positive direction)
#1J=1000 #2j+ - 모터1을 1000 카운트 위치로 이동,
모터2를 “+”방향 회전 동시 지령
( Jog Motor #1 to position 1000 and
jog motor #2 in a positive direction )
I122=30 - 모터1의 조그 속도를 30counts/msec로 설정
( Set motor #1 jog speed to 30 counts/msec )
I220=50 - 모터2의 조그 가속시간을 50 msec로 설정
( Set motor #2 jog acceleration time at 50 msec )
Note: 모터가 정의된 좌표계에서 모션 프로그램을 중일때는
조그 운전을 할수 없다.
(Motor cannot be JOGGED when it is defined in a coordinate system
that is running a motion program.)
제어 및 전력 전자 센터
원점 복귀 (HOMING MOTORS)
• 원점 이송은 모션 프로그램 또는 온라인 명령으로 실행
• 원점복귀 방법(트리거 조건)은 유저가 선택
• 전원 공급시 또는 리셋한 경우에는 기계의 원점설정을 위해 원점복귀
가 필요
What to Learn:
• 온라인 명령에 의한 원점복귀 방법
• 원점이송 속도 및 방향 변경방법
• 원점복귀 조건 설정방법( How to set the home trigger.)
제어 및 전력 전자 센터
온라인 원점이송 명령어
(On-line Homing Commands)
HM - 원점이송 명령 (Do home search move)
HMZ - 현재 지령된 위치를 원점으로 설정한다
(Present command position is set to home)
온라인 명령 예제 (On-line Examples):
#1HM - 모터1 원점 이송 (Do a home search move for motor #1)
#1HM #2HM #3HM - 모터 1/2/3 동시 원점복귀
(Start moves at the same time)
note: 모터가 정의된 좌표계에서 모션 프로그램을 실행중
일때는 원점 복귀 온라인 명령어는 사용할 수 없다.
제어 및 전력 전자 센터
모션 프로그램 (MOTION PROGRAMS)
모션 프로그램은 위치결정 및 윤곽이송을 위해 모터를 제어하고 조정하는
역할을 한다
모션 프로그램은 PMAC 적용에서 가장 중요한 내용임.
(Motion programs are the heart of most PMAC applications)
What to Learn:



모션 프로그램 ?
모션 프로그램 작성방법
모션 프로그램 실행방법
제어 및 전력 전자 센터
24
모션 프로그램 (계속)
PMAC 프로그램은

한번에 한 블럭실행, 모든 계산은 이송이전에 수행된다.

좌표계에서 실행됨.

한 프로그램은 복수개의 좌표계에서 동시에 실행될 수 있다.

한 개의 좌표계에서는 한 개의 프로그램만이 실행가능.
제어 및 전력 전자 센터
25
모션 프로그램 (계속)
프로그램 실행 절차 :

온라인 명령어를 통해 원하는 좌표계를 선택한다 : &n

온라인 명령어를 통해 실행하려는 프로그램을 좌표계에 인식 시킨다
: Bn

실행 명령을 입력한다 : R or <CTRL-R>
프로그램 정지 :

온라인 명령어를 통해 원하는 좌표계를 선택한다 : &n

정지명령을 입력한다 : Q, S, A, or <CTRL-Q>, <CTRL-S>,
<CTRL-A>, <CTRL-K>
제어 및 전력 전자 센터
26
PMAC 모션프로그램 문장 (Statements)

논리 제어 문장 (Logic Control Statements)
N, O, GOTO, GOSUB, CALL, RETURN
G, M, T, D (special CALL statements)
IF, ELSE, ENDIF, WHILE, ENDWHILE

기타 문장 (Miscellaneous Statements)
COMMAND, SEND, DISPLAY
ENABLE PLC, DISABLE PLC
제어 및 전력 전자 센터
27
UMAC Logic Operators
used in Motion Programs and PLCs

Logic Operators
&
(bit by bit AND)
|
(bit by bit OR)
^
(bit by bit Exclusive OR)

Comparators
=
!=
>
!>
<

(equal to)
(not equal to)
(greater than)
(not greater than; less than or equal to)
(less than)
Functions
SIN, COS, TAN, ASIN, ACOS, ATAN, ATAN2,
SQRT, LN, EXP, ABS, INT
제어 및 전력 전자 센터
28
Example : A Simple Move
********************* Set-up and Definitions *********************
CLOSE
END GAT
DEL GAT
&1
#1->1000X
; Erase any defined gather buffer
; Coordinate System 1
; Assign motor 1 to the X-axis - 1
; of X is 1 encoder count of motor
#2->1000Y
; Assign motor 2 to the Y-axis - 1
; of Y is 1 encoder count of motor
CLOSE
; Make sure all buffers are closed
program unit
#1
program unit
#2
********************* Motion Program Text *************************
OPEN PROG 1
; Open buffer for program entry, Program #2
CLEAR
; Erase existing contents of buffer
LINEAR
; Blended linear interpolation move mode
ABS(X,Y) ; Absolute mode - moves specified by position
INC(R)
TA500
; Set 1/2 sec (500 msec) acceleration time
TS0
; Set no S-curve acceleration time
F1500
; Set feedrate (speed) of 5000 units(cts)/sec
X250
; Move X-axis to position 10000
Y200
; Move Y-axis to position 10000
DWELL500 ; Stay in position for 1/2 sec (500 msec)
CIRCLE2 ; Circular Interpolation
f1000
X 15 Y 10 I -10 ; to X,Y. CCW. With radius of 10
CLOSE
; Close buffer - end of program
29
Example : A Simple Move
To run this program:
&1 B1 R
; Coord. System 1, point to Beginning
;of Program 1, Run
30
참고
Example 1: A Simple Move
This example shows how to program a simple move on the program
specifies how to do the move, then commands the move.
********************* Set-up and Definitions *********************
DEL GAT
&1
CLOSE
#1->X
;
;
;
;
;
Erase any defined gather buffer
Coordinate System 1
Make sure all buffers are closed
Assign motor 1 to the X-axis - 1 program unit
of X is 1 encoder count of motor #1
********************* Motion Program Text *************************
OPEN PROG 1
; Open buffer for program entry, Program #1
CLEAR
; Erase existing contents of buffer
LINEAR
; Blended linear interpolation move mode
ABS
; Absolute mode - moves specified by position
TA500
; Set 1/2 sec (500 msec) acceleration time
TS0
; Set no S-curve acceleration time
F5000
; Set feedrate (speed) of 5000 units(cts)/sec
X10000
; Move X-axis to position 10000
DWELL500 ; Stay in position for 1/2 sec (500 msec)
X0
; Move X-axis to position 0
CLOSE
; Close buffer - end of program
To run this program:
&1 B1 R ; Coord. System 1, point to Beginning of Program 1, Run
32
Example 1: A Simple Move
Mtr 1 Cmd Vel (cts/sec)
10000
5000
0
0
1
2
3
4
5
6
-5000
-10000
Time (second)
33
데이타 수집 (DATA GATHERING)
“Data Gathering”이라고 불리는 내장된 데이타 수집 기능 보유
What to Learn:

수집할 수 있는 데이타

데이타 Gathering 방법

데이타 Gathering 하는 경우
34
Example 2: A Simple Move with Data Gathering
This example shows how to program a simple move on the program
specifies how to do the move, then commands the move.
********************* Set-up and Definitions *********************
DEL GAT
&1
CLOSE
#1->X
;
;
;
;
;
Erase any defined gather buffer
Coordinate System 1
Make sure all buffers are closed
Assign motor 1 to the X-axis - 1 program unit
of X is 1 encoder count of motor #1
********************* Motion Program Text *************************
OPEN PROG
CLEAR
LINEAR
ABS
TA500
TS0
F5000
X10000
DWELL500
X0
DWELL0
CMD"ENDG"
CLOSE
1
;
;
;
;
;
;
;
;
;
;
;
;
; Open buffer for program entry, Program #1
Erase existing contents of buffer
Blended linear interpolation move mode
Absolute mode - moves specified by position
Set 1/2 sec (500 msec) acceleration time
Set no S-curve acceleration time
Set feedrate (speed) of 5000 units(cts)/sec
Move X-axis to position 10000
Stay in position for 1/2 sec (500 msec)
Move X-axis to position 0
Stop program lookahead
Send On-line command to stop data gathering
Close buffer - end of program
To run this program and gather data:
DEF GAT<CR>
GAT &1 B1 R
; GATHER, CS. 1, point to Beginning of Program 1, Run
35
Example 2: A Simple Move with Data Gathering
Mtr 1 Cmd Vel (cts/sec)
10000
5000
0
0
1
2
3
4
5
6
-5000
-10000
Time (second)
36
드웰 과 디레이 (DWELL vs. DELAY)
DWELL
 항상 일정한 시간 단위를 이용한다 (I10)
 앞서는 감속시간을 포함하지 않는다
 다음 이송명령의 계산은 DWELL시간이 끝나기 전까지
수행되지 않음 (add I11 time)
Move Time
TM or P/F
TA
I11
DWELL Time
Time
Move Time ...
37
드웰 과 디레이 (DWELL vs. DELAY)
DELAY




가변 시간단위를 이용한다 (% value)
전 감속시간을 포함한다
최소시간은 현재의 TA 시간이다
다음 이송시간은 DELAY시작때 부터 계산된다
Move Time
TM or P/F
DELAY
Time
Move Time ...
38
Example 3: A More Complex Move
This example introduces incremental and time-specification of moves,
looping logic, using variables, scaling of axes, and simple arithmetic.
Note that logical and mathematical operations do not delay moves.
;******************** Set-up and Definitions ********************
&2
; Coordinate system 2
CLOSE
; Make sure all buffers are closed
#5->1000X ; 1 unit (cm) of X is 1000 counts of motor 5
;******************** Motion Program Text ***********************
OPEN PROG 2
; Open buffer for entry, Program #2
CLEAR
; Erase existing contents of buffer
LINEAR
; Blended linear interpolation move mode
INC
; Incremental mode - moves specified by distance
TA500
; 1/2 sec (500 msec) acceleration time
TS250
; 1/4 sec in each half of S-curve
TM2000
; 2 sec move time (to start of decel)
P1=0
; Initialize a loop counter variable
WHILE (P1<10)
; Loop until condition is false (10 times)
X10
; Move X-axis 10 cm (=10,000 cts) positive
DWELL500
; Hold position for 1/2 sec
X-10
; Move X-axis back 10 cm negative
DWELL500
; Hold position for 1/2 sec
P1=P1+1 ; Increment loop counter
ENDWHILE ; End of loop
CLOSE
; Close buffer - end of program
To run this program:
&2 B2 R
; Coordinate System 2, point to Beginning of Program 2, Run
39
Example 3: A More Complex Move
5000
Velocity (count/second)
Repeat 9
More Times
0
0
1
2
3
4
5
6
Time (second)
-5000
40
POS
1/2 to 1/4
motor rev
Step Move
Time
Commanded Position
POS
POS
1/2 to 1/4
1/2 to 1/4
motor rev
motor rev
Time
제어 및 전력 전자 센터
Overshoot and Oscillation
Cause: too little Damping
or too much proportional gain
Fix: Increase K P(Ix31)
Decrease Kd (Ix30)
Time
Position Offset
Cause: Friction or Constant
Force
Fix: Increase K (Ix33)
i
41