工业机器人FOXBOT-编程手册

工业机器人FOXBOT-编程手册
工业机器人FOXBOT-编程手册

工业机器人FOXBOT編程手冊

( Ver. 2007.1 )

簡介

FOXBOT的編程手冊由FOXBOT指令手冊和Cypress Enable編輯器語言參考手冊組成。FOXBOT指令手冊主要用于機器人的運動控制指令;Cypress Enable 主要用于程序的變量命名﹑流程控制﹑子程序等。程序編輯界面是Cypress Enable編輯器﹐程序中的語句語法要求應符合Cypress Enable的要求。

FOXBOT

指令手冊

目錄

ACCEL (1)

CURPOS (1)

DECEL (1)

DEFIO (1)

DEFPOS (2)

DELAY (2)

DEFJNT (2)

DIST (2)

DRIVE (3)

DRIVEA (3)

FIG (3)

GOHOME (3)

HOME (4)

IN (4)

J2P (5)

MOVE (5)

OUT (6)

POSRX (7)

POSRY (7)

POSRZ (7)

POSX (7)

POSY (8)

POSZ (8)

RESETIO (8)

ROBOTSTOP (8)

ROTATE (9)

SETIO (9)

SPEED (10)

WAIT (10)

附錄 (10)

功能:指定內部加速度比例

格式:ACCEL <加速度比例>

範例:ACCEL 50

CURPOS

功能:取得目前的位置(type P格式)

格式:Position type 變數= CURPOS

說明:

範例:

DEFPOS lp1

lp1=CURPOS

MSGBOX POSX(lp1) & chr(13) & chr(10) &_

POSY(lp1) & chr(13) & chr(10) &_

POSZ(lp1) & chr(13) & chr(10) &_

POSRX(lp1) & chr(13) & chr(10)&_

POSRY(lp1) & chr(13) & chr(10)&_

POSRZ(lp1) & chr(13) & chr(10)&_

FIG(lp1)

DECEL

功能:指定內部減速度比例

格式:DECEL <減速度比例>

說明:

範例:

DECEL 50

DEFIO

功能:聲明IO變數

格式:DEFIO <變量名稱> = , <端口地址>

說明:

通過變量名聲明指定變量作為一個IO變量

選擇IO變量的類型。IO變量的類型包括﹕BIT(1位)﹑BYTE(8位)﹑INTEGER(16位)<端口地址>指定輸入輸出IO的開始號

相關指令﹕IN OUT SET RESET

範例:

Dim a AS Integer

DEFIO samp1= INTEGER,0

’聲明一個來自端口15的IO字類型變量。Sampl返回值是16位的來自從0到15端口整型

IN a=samp1

Msgbox

對于字或整型,使用MSB作為一個信號位。

DEFPOS

功能﹕聲明一個位置類型變量

格式﹕DEFPOS <變量名>

舉例﹕DEFPOS lpx ‘聲明lpx作為位置類型變量注意﹕一個語句只能聲明一個位置變量類型

相關指令poseP

格式﹕Dim lpx as poseP

DELAY

功能﹕暫停程序處理,延時一個指定的周期時間,

格式﹕DELAY

說明﹕程序處理停止直到暫停時間到。單位:ms

舉例﹕

DIM li1 As Integer

Delay 100

‘延時100ms(0.1s)

Delay li1+10

‘延時li1+10ms

DEFJNT

功能﹕聲明一個關節類型變量

格式﹕DEFJNT<變量名>

舉例﹕

DEFJNT ljx

‘聲明ljx作為一個關節類型變量

DIST

功能﹕返回兩點之間的距離

格式﹕DIST (<位置類型變量1>,<位置類型變量2>) 說明﹕獲得位置1 和位置2之間的距離

舉例﹕

Dim lf1 AS Single

DEFPOS lp1

lp1=CURPOS

lp1.x=lp2.x+10

lp1.y=lp2.y+10

lp1.z=lp2.z+10

lp1.rx=lp2.rx+10

lp1.ry=lp2.ry+10

lp1.rz=lp2.r2+10

lf1=DIST(lp1,lp2)

‘lf1等于lp1和lp2之間的距離

MSGBOX lf1

DRIVE

功能:執行每個軸的相對運動

格式:DRIVE (<軸號>﹐<相對運動量>)

說明﹕移動指定軸﹐移動量用角度來表示,角度的正負表示移動的方向。舉例﹕DRIVE 1,30

'移動1軸﹐30度。

DRIVEA

功能﹕執行每個軸的絕對運動

格式﹕DRIVEA <軸號>﹐<角度>

說明﹕移動指定軸到指定角度

舉例﹕

DRIVEA 1,-30

‘移動1軸到-30度。

FIG

功能﹕提取一個形態。

格式﹕FIG(位置類型變量)

說明:從位置數據提取一個形態

舉例﹕

DIM lp1 AS poseP

li1=FIG(lp1)

‘指定一個lp1的形態給li1

GOHOME

功能﹕移動到HOME語句定義的坐標位置

說明:移動機器人使用PTP控制從當前位置到HOME位置使用HOME語句聲明一個原點位置

如果沒有設置HOME﹐執行這個語句將會出現錯誤。舉例﹕GOHOME

‘機器人從當前位置移動到原點位置

HOME

功能﹕聲明任意位置為原點位置

格式﹕HOME <位置類型變量>

說明﹕聲明任意的位置類型的坐標作為原點位置

舉例﹕Dim JJ As poseJ

Speed 30

JJ.J5 = 20

' 賦值20度給JJ.J5,其他JJ的組成是0

Home JJ

' 設置JJ作為原點位置

GoHome

' 移動到原點位置

End

IN

功能﹕IO變量值賦給指定變量

格式﹕IN <變量名>=<IO變量>

舉例﹕

'!TITLE "EXAMPLE_IN"

Dim li1 As Integer

' Declare li1 and li2 as Integer

Dim li2 As Integer

' Declare samp1 as Type IO variable,

DEFIO samp1 = Integer, 48

' length is 16 (integer), starting from IO(48)

' Get the current IO status defined in samp1

' into integer format and assign it to li1

In li1 = samp1

' Get IO status starting from 56 into an integer

' and assign it to li2

In li2 = IO(56)

' Show li1 and li2

' (if only IO(56) is on, li1 = 256 meaning 100000000

' in binary starting from port 48 and li2 = 1)

MsgBox "li1 = " & li1 & Chr(13) & Chr(10) _

& "li2 = " & li2

J2P

功能﹕關節類型變量轉換成位置類型變量。

格式﹕J2P<關節類型變量>,<位置類型變量>

舉例﹕

Dim lj1 as poseJ

Dim lp1 as poseP

lj1.j1=0

lj1.j2=0

lj1.j3=0

lj1.j4=0

lj1.j5=0

lj1.j6=0

J2P lj1,lp1

Msgbox lp1.x & “”lp1.y& “”lp1.z_

lp1.rx & “”lp1.ry& “”lp1.rz

MOVE

功能﹕移動機器人末端操作器到指定坐標。

格式﹕MOVE<插補方法>,@<到達目標位置確認形式> ,<路徑目標位置> ,

說明﹕移動機器人從當前位置到指定的目標位置。

對于<位置>﹐位置類型,關節類型可以使用。

插補方法說明

PTP(點到點)﹕運動從一個點到另一個點﹐機器人移動的路徑依賴機器人的姿態﹐不是一條直線。

P(PTP)

運動路徑可以不是一條直線

CP控制,到達目標位置的路徑是一條直線

A B

L

運動路徑是一條直線

機器人手臂從一個運動到另一個運動有三種方法確定第一個運動的完成。

@0:運動位置到達目標位置就算到達。

@P:實際位置到達目標位置附近即算到達,且不減速而往下一位置。

@E:編碼器值核實點, 實際位置到達目標位置,停下來﹐檢查編碼器的值是否在一定時間內不超出一定範圍才算到達。 下面的例子都是機器人從當前位置P1經過P2 到達P3﹕

‘PROGRAM PASS_MOVE ‘TAKEARM

MOVE P , @P , P(2) ,S=10 MOVE P , @0 , P(3) ,S=10 END

PROGRAM END_MOVE TAKEARM

MOVE L, @0 , P(2),S=10 MOVE L, @0 , P(3),S=10 END

PROGRAM ENCODER_MOVE TAKEARM

OUT

功能﹕給輸出IO 變量賦值 格式﹕OUT =<變量名> 舉例﹕'!TITLE "EXAMPLE_OUT" Dim li1 As Integer ' Declare li1 as Integer

' Declare samp1 as Type IO variable, length is 16 (integer), starting from IO(30) DEFIO samp1 = Integer, 30

' assign 2^5-1 = 31 (11111 in Hex value) to li1 li1 = 2^5-1

' Output the li1 data from the port declared in samp1 Out samp1 = li1 ' Delay 3 seconds Delay 3000

' assign 2^5-1 = 31 (11111 in Hex value) to li1 li1 = 2^5-1

' Output the li1 data from the port 38 Out IO(38) = li1

經過運動(@P)

P2 P3

伺服偏離(@0)

P2

編碼器值檢查運動(@E)

功能﹕獲得繞X軸旋轉的角度

格式﹕POSRX <位置類型變量>

舉例﹕

Dim lf1 As Single

DEFPOS lp

lp1=CURPOSE

lf1=POSRX(lp1)

‘指定X軸旋轉lp1部分給lf1

POSRY

功能﹕獲得繞Y軸旋轉的角度

格式﹕POSRY<位置類型變量>

舉例﹕

Dim lf1 As Single

DEFPOS lp

lp1=CURPOSE

lf1=POSRY(lp1)

‘指定Y軸旋轉lp1部分給lf1

POSRZ

功能﹕獲得繞Z軸旋轉的角度

格式﹕POSRZ<位置類型變量>

說明﹕從位置坐標系中提出繞Z軸旋轉部分舉例﹕Dim lf1 As Single

DEFPOS lp

lp1=CURPOSE

lf1=POSRZ(lp1)

‘指定Z軸旋轉lp1部分給lf1

POSX

功能﹕獲得X坐標

格式﹕POSX <位置類型變量>

舉例﹕DIM lf1 As Single

DEFPOS lp1

lf1=POSX(lp1)

‘指定lp1的X部分給lf1

功能﹕獲得Y坐標

格式﹕POSY <位置類型變量>

說明﹕從位置類型或向量類型坐標值提出Y部分。

舉例﹕

DIM lf1 As Single

DIM lp1 As poseP

lf1=POSY(lp1)

‘指定lp1的Y部分給lf1

POSZ

功能﹕獲得Z坐標

格式﹕POSZ <位置類型變量>

說明﹕從位置類型變量坐標值提出Z部分。

舉例﹕DIM lf1 As Single

DIM lp1 As poseP

lf1=POSZ(lp1)

‘指定lp1的Z部分給lf1

RESETIO

功能﹕設置一個IO口為OFF

格式﹕RESETIO

說明﹕設置通過IO變量標明的端口為OFF

舉例﹕

‘!titile “example_setio”

‘takearm

RESETIO IO(40)

‘設置IO40為OFF

ROBOTSTOP

功能﹕機器人運行停止

格式﹕ROBOTSTOP

說明﹕機器人進入持續停止狀態﹐關閉馬達電源﹐關閉機器人正在操作的輸出信號。舉例﹕‘PROGRAM TSR1

ROBOTSTOP

‘停止機器人

END

功能﹕繞指定向量執行旋轉運動

格式﹕ROTATE <旋轉平面>, <角度> ,<向量>,<速度百分比>

說明﹕

旋轉平面﹕XYH,XZH,YZH; XY,XZ,YZ

旋轉平面與XYH,XZH,YZH平行,向量是相對工具坐標系,

旋轉平面與XY,YZ,YZ平行﹐向量是相對工件坐標系

半徑應是向量在指定平面的投影距離。

注意﹕機器人6軸端面與指定旋轉平行﹐才能畫圓。

范例﹕

' Assign J(0) position

J(0).J1 = 0

J(0).J2 = 0

J(0).J3 = 90

J(0).J4 = 0

J(0).J5 = 30

J(0).J6 = 0

' Move to J(0)

MOVE P, J(0), S=50

' Assign J(0).J2 a new position

J(0).J2 = 60

' Move to new J(0)

MOVE P, J(0), S=50

' Rotate 360 degree on XY plan around a vector V(0) described in Tool Coordinate ROTATE XYH,360,V(0),S=100

' Assign J(0).J2 a new position

J(0).J2 = 0

' Move to new J(0)

MOVE P, J(0), S=50

End

SETIO

功能﹕設置一個IO口為ON。

格式﹕SET IO (IO變量)

說明﹕設置指定IO為ON

舉例‘!titile “example_setio”

‘takearm

SETIO (40)

‘設置IO(24)點為ON

SPEED

功能﹕指定內部關節合成速度。

格式﹕SPEED <運動速度>

說明﹕運動速度是內部關節合成最大速度的百分比(%)﹐范圍:0.1-100

最大速度是指TCP點的最大速度

舉例﹕

SPEED 50

機器人有內部速度和外部速度。外部速度是指示教器上設定的速度

內部速度是指用SPEED指令設定的值。

實際速度=最大速度*內部速度*外部速度

例如﹕

內部速度=70%

外部速度30%

實際速度=最大速度*0.7*0.3

舉例﹕

SPEED 50

WAIT

功能﹕程序停止直到條件滿足。

格式﹕W AIT <條件表達>

說明:程序被停止直到條件被滿足。

舉例:WAIT IO(10) = ON

’程序等一直到IO(10)為ON

[ 注意]

●不能在指令后直接添加注釋﹐需要另取一行﹐以單引號(’)開頭。

●程序編寫后不能以只讀(only read)的方式存儲。

附錄

Cypress Enable

編輯器

語言參考手冊

目錄

CYPRESS ENABLE 程序編寫規范 0

注釋 0

數字 0

變量和常量名 0

變量類型 (1)

其他數據類型 (2)

控制結構 (3)

子程序和函數 (5)

B Y R EF &B Y V AL參數傳遞 (5)

文件輸入輸出 (6)

數組 (7)

腳本語言概述 (8)

函數和語句快速參考 (8)

語言參考A-Z (12)

A BS函數 (12)

A SC函數 (12)

A TN函數 (13)

CB OOL 函數 (13)

CD ATE 函數 (13)

CD BL 函數 (14)

C HR 函數 (14)

CI NT 函數 (15)

CL NG函數 (15)

C LOSE 語句 (15)

C ONST 語句 (16)

C OS函數 (17)

CS NG函數 (17)

CS TR 函數 (17)

CV AR 函數 (18)

D ATE函數 (18)

D AY 函數 (19)

D IM 語句 (19)

D O...L OOP語句 (20)

E ND語句 (20)

E XIT語句 (21)

E XP函數 (22)

F ILE C OPY函數 (22)

F ILE L EN函數 (22)

F IX函數 (22)

F OR EACH ...N EXT語句 . (23)

F OR...N EXT語句 . (23)

F REE F ILE函數 (24)

F UNCTION 語句 (24)

G LOBAL語句 (25)

G O T O 語句 (26)

H OUR函數 (26)

I F...T HEN...E LSE語句 (26)

I NPUT #語句 (27)

I NPUT 函數 (28)

I N S TR函數 (28)

I NT函數 (29)

I S A RRAY函數 (29)

I S D ATE函數 (29)

函數I S E MPTY (30)

I S N ULL函數 (30)

I S N UMERIC函數 (30)

K ILL語句 (31)

LB OUND函數 (31)

L CASE函數 (32)

L EFT函數 (32)

L EN函數 (33)

L ET 語句 (33)

L INE I NPUT #語句 (34)

LOF函數 (34)

L OG函數 (34)

函數M ID (35)

M INUTE函數 (35)

M ONTH函數 (36)

N AME語句 (36)

N OW函數 (36)

O N E RROR語句 (36)

O PTION B ASE語句 (38)

O PTION E XPLICIT語句 (38)

P RINT方法 (39)

R ANDOMIZE語句 (41)

R E D IM 語句 (41)

R EM語句 (41)

R IGHT 函數 (42)

R ND函數 (43)

S ECOND函數 (43)

S EEK 函數 (44)

S EEK 語句 (44)

S ELECT C ASE 語句 (45)

S END K EYS函數 (46)

S IN 函數 (46)

S PACE函數 (47)

S QR 函數 (47)

S TATIC語句 (48)

S TOP 語句 (48)

S TR 函數 (49)

S TR C OMP函數 (49)

S TRING 函數 (50)

S UB 語句 (50)

T AN 函數 (51)

T IME 函數 (51)

T IMER事件 (51)

T RIM,L TRIM﹐R TRIM函數 (52)

T YPE 語句 (52)

U BOUND函數 (53)

UC ASE 函數 (54)

V AL函數 (54)

V AR T YPE (54)

W EEKDAY 函數 (55)

W HILE...W END 語句. (55)

W RITE #語句 (56)

Y EAR函數 (56)

Cypress Enable 程序編寫規范

這部分主要描述Enable語言的一般元素,包括注釋﹑語句﹑數字的不同表達形式﹑變量數據類型(包括用戶定義類型)﹑多流程程序控制結構等。

注釋

格式﹕’注釋內容

說明﹕注釋是不可執行的代碼行﹐是為了便于編程人員閱讀程序而加入的。注釋目前只能單獨占一行﹐Enable將忽略出現在撇號或者Rem之后的任何文本。Rem和所有其他的關鍵字以及Enable的大部分名稱都是大小寫不敏感的。

范例﹕

MsgBox Msg ' 顯示信息

語句

說明﹕在Enable里沒有語句結束符﹐一行可以放多條語句﹐通過“:”隔開。

范例﹕

x.AddPoint(25,100) : x.AddPoint(0,75)

等價于﹕

x.AddPoint(25,100)

x.AddPoint(0,75)

續行符

在Enable中續行符用下划線“_”表示﹐在續行符”_”前后都要有空格。

范例﹕

x.AddPoint _

(25,100)

數字

Cypress Enable支持三種數字表達形式﹕十進制﹑八進制和十六進制。本手冊中所使用的大部分數字用十進制表示。使用八進制或者十六進制需要分別在數字前加前綴”&O”或”&H”。變量和常量名

相关主题