Professional Documents
Culture Documents
Basic Instructions
MoveL
MoveJ
MoveL/MoveJ
LƯU Ý:
Nếu ta chỉ quan tâm đến điểm đầu và
điểm cuối của quỹ đạo và không quan
tâm đến chuyển động của Robot thì
thường sử dụng MoveJ hơn là MoveL.
Khi sử dụng MoveL thì thường xảy ra lỗi
khi Robot hoạt động vì Robot bị ràng
buộc về quỹ đạo.
MoveC
Example
Viết đoạn chương trình vẽ đường tròn đường kính
200 từ p1 (tọa độ hiện tại của Robot) đến p4.
y
P3(0,200,0)
P4
P2
x
P1(0,0,0)
MoveC p2, p3, v100, z100, tool1;
MoveC p4, p1, v100, z100, tool1;
Example
Viết đoạn chương trình để Robot di chuyển với
quỹ đạo là đường nét đứt như hình dưới đây.
Function
Function
RelTool(p1,100,50,0\Rx:=30\Ry:=-60
\Rz:=45): Robot di chuyển đến vị trí cách
điểm p1 100mm theo trục X, 50mm theo
trục Y, 0mm theo trục Z, đồng thời xoay
quanh trục Z một góc 25 độ.
Hướng x,y,z của RelTool() là của hệ tọa
độ Tool.
Example
Vẽ hình chữ nhật, kích thước là 100mm*50mm
MoveL p1,v100,… p1 100mm p2
MoveL p2,v100,…
MoveL p3,v100,… 50mm
MoveL p4,v100,…
MoveL p1,v100,… p4 p3
Có thể dùng lệnh để xác định p1, p2, p3, p4.
MoveL p1,v100,…
MoveL Offs(p1,100,0,0),v100,…
MoveL Offs(p1,100,-50,0),v100,…
MoveL Offs(p1,0,-50,0),,v100,…
MoveL p1,v100,…
10
Set signal
Set do1;
11
Reset signal
Reset do1;
12
WaitDI
WaitDI di1, 1;
di1: signal Kiểu dữ liệu: signaldi
Tín hiệu.
1: value Kiểu dữ liệu: dionum
Giá trị chờ đợi của tín hiệu.
Đợi đến khi tín hiệu di1 có giá trị 1.
[\MaxTime] ( num )
Thời gian đợi tối đa, theo giây
[\TimeFlag] ( bool )
Bool,TRUE or FALSE
13
WaitDI
14
WaitDO
WaitDO do1, 1;
do1: signal Kiểu dữ liệu: signaldo
Tín hiệu.
1: value Kiểu dữ liệu: dionum
Giá trị chờ đợi của tín hiệu.
15
WaitUntil
WaitUntil do1=1;
WaitUntil di2=0;
Chờ đến khi điều kiện được thỏa mãn.
16
WaitTime
WaitTime 5;
17
TPErase
TPErase;
18
TPWrite
TPWrite string;
19
TPReadFK
20
IF-THEN-ELSE
TRUE
IF <condition> THEN IF cond instructions
“Yes-part”
ELSEIF < condition> THEN FALSE
“Yes-part”
ELSE ELSEIF cond instructions
“Not-part”
ENDIF
ELSE instructions
Ví dụ:
IF reg1 > 5 THEN
Set do1;
Set do2;
ENDIF
Khi reg1 > 5 thì các tín hiệu do1, do2 sẽ được
set lên 1
21
TEST - CASE
TEST reg1
CASE 1:
PATH 1;
CASE 2:
PATH 2;
DEFAULT:
Error;
ENDTEST
TEST: được dùng để kiểm tra giá trị của một biến và
thực hiện các lệnh tương ứng với từng giá trị của
biến đó.
Các lệnh khác nhau được thi hành dựa trên giá trị
của biến.
Nếu giá trị biến không trùng với các giá trị nào trong
các Case thì sẽ thực hiện lệnh trong DEFAULT.
22
TEST - CASE
Ví dụ:
TEST reg1
CASE 1,2,3:
routine1;
CASE 4:
routine2;
DEFAULT:
TPWrite “Illegal choice”;
Stop;
ENDTEST
Nếu giá trị reg1 = 1, 2, 3 thì routine1 được thực
hiện, nếu reg1 = 4 thì routine2 được thực hiện,
các trường hợp khác thì in chuỗi “Illegal choice”
lên FlexPendant và dừng chương trình thực thi.
23
WHILE - DO
WHILE <condition> DO
Statement;
ENDWHILE
WHILE được sử dụng khi các lệnh được lặp đi lặp lại
nhiều lần cho đến khi biểu thức điều kiện đạt giá trị TRUE.
Ví dụ:
WHILE reg1 < reg2 DO
reg1 := reg1 + 1;
ENDWHILE
Chương trình sẽ lặp lại việc tăng giá trị của reg1
cho đến khi nào reg1 >= reg2.
24
FOR - TO
FOR <loop counter> FROM <start value> TO <end
value> DO
Statement;
ENDFOR
Dùng để lặp lại một đoạn chương trình một số lần cụ
thể. Trong quá trình thực hiện, giá trị của biến sẽ được
tăng lên 1 trong mỗi vòng lặp cho đến khi giá trị của
biến đạt giá trị kết thúc. Lúc đó, chương trình sẽ thoát
khỏi vòng lặp.
Ví dụ:
FOR i FROM 1 TO 5 DO
routine2;
ENDFOR
25
Stop
Stop;
26
Exit
Exit;
27
VelSet
28
AccSet
29
Data:=Value;
Data: Biến dữ liệu mới. (All)
Value:Giá trị mong muốn. (Same as Data)
Ví dụ:
ABB := FALSE; (bool)
ABB := reg1+reg3; (num)
ABB := “ WELCOME ”; (string)
pHome := p1; (robotarget)
30
31
32
33
34