FOXBOT编程手册精编版.docx
《FOXBOT编程手册精编版.docx》由会员分享,可在线阅读,更多相关《FOXBOT编程手册精编版.docx(89页珍藏版)》请在冰豆网上搜索。
![FOXBOT编程手册精编版.docx](https://file1.bdocx.com/fileroot1/2022-10/10/99b321da-d34e-4e44-9502-c7f4824ae7b2/99b321da-d34e-4e44-9502-c7f4824ae7b21.gif)
FOXBOT编程手册精编版
富士康.工業機器人
FOXBOT
編程手冊
(Ver.2007.1)
簡介
FOXBOT的編程手冊由FOXBOT指令手冊和CypressEnable編輯器語言參考手冊組成。
FOXBOT指令手冊主要用于機器人的運動控制指令;CypressEnable主要用于程序的變量命名﹑流程控制﹑子程序等。
程序編輯界面是CypressEnable編輯器﹐程序中的語句語法要求應符合CypressEnable的要求。
FOXBOT
指令手冊
目錄
ACCEL
功能:
指定內部加速度比例
格式:
ACCEL<加速度比例>
範例:
ACCEL50
CURPOS
功能:
取得目前的位置(typeP格式)
格式:
Positiontype變數=CURPOS
說明:
範例:
DEFPOSlp1
lp1=CURPOS
MSGBOXPOSX(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<減速度比例>
說明:
範例:
DECEL50
DEFIO
功能:
聲明IO變數
格式:
DEFIO<變量名稱>=,<端口地址>
說明:
通過變量名聲明指定變量作為一個IO變量
選擇IO變量的類型。
IO變量的類型包括﹕BIT(1位)﹑BYTE(8位)﹑INTEGER(16位)
<端口地址>指定輸入輸出IO的開始號
相關指令﹕INOUTSETRESET
範例:
DimaASInteger
DEFIOsamp1=INTEGER,0
’聲明一個來自端口15的IO字類型變量。
Sampl返回值是16位的來自從0到15端口整型
INa=samp1
Msgbox
Notes:
對于字或整型,使用MSB作為一個信號位。
Byte
允許數字值范圍﹐MSB端口號:
開始端口地址+7
Integer
允許數字值范圍﹐MSB端口號:
開始端口地址+15
DEFPOS
功能﹕聲明一個位置類型變量
格式﹕DEFPOS<變量名>
舉例﹕DEFPOSlpx‘聲明lpx作為位置類型變量
注意﹕一個語句只能聲明一個位置變量類型
相關指令poseP
格式﹕DimlpxasposeP
DELAY
功能﹕暫停程序處理,延時一個指定的周期時間,
格式﹕DELAY
說明﹕程序處理停止直到暫停時間到。
單位:
ms
舉例﹕
DIMli1AsInteger
Delay100
‘延時100ms(0.1s)
Delayli1+10
‘延時li1+10ms
DEFJNT
功能﹕聲明一個關節類型變量
格式﹕DEFJNT<變量名>
舉例﹕
DEFJNTljx
‘聲明ljx作為一個關節類型變量
DIST
功能﹕返回兩點之間的距離
格式﹕DIST(<位置類型變量1>,<位置類型變量2>)
說明﹕獲得位置1和位置2之間的距離
舉例﹕
Dimlf1ASSingle
DEFPOSlp1
DEFPOSlp2
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之間的距離
MSGBOXlf1
DRIVE
功能:
執行每個軸的相對運動
格式:
DRIVE(<軸號>﹐<相對運動量>)
說明﹕移動指定軸﹐移動量用角度來表示,角度的正負表示移動的方向。
舉例﹕DRIVE1,30
'移動1軸﹐30度。
DRIVEA
功能﹕執行每個軸的絕對運動
格式﹕DRIVEA<軸號>﹐<角度>
說明﹕移動指定軸到指定角度
舉例﹕
DRIVEA1,-30
‘移動1軸到-30度。
FIG
功能﹕提取一個形態。
格式﹕FIG(位置類型變量)
說明:
從位置數據提取一個形態
舉例﹕
DIMlp1ASposeP
li1=FIG(lp1)
‘指定一個lp1的形態給li1
GOHOME
功能﹕移動到HOME語句定義的坐標位置
格式:
GOHOME
說明:
移動機器人使用PTP控制從當前位置到HOME位置
使用HOME語句聲明一個原點位置
如果沒有設置HOME﹐執行這個語句將會出現錯誤。
舉例﹕GOHOME
‘機器人從當前位置移動到原點位置
HOME
功能﹕聲明任意位置為原點位置
格式﹕HOME<位置類型變量>
說明﹕聲明任意的位置類型的坐標作為原點位置
舉例﹕DimJJAsposeJ
Speed30
JJ.J5=20
'賦值20度給JJ.J5,其他JJ的組成是0
HomeJJ
'設置JJ作為原點位置
GoHome
'移動到原點位置
End
IN
功能﹕IO變量值賦給指定變量
格式﹕IN<變量名>=<IO變量>
舉例﹕
'!
TITLE"EXAMPLE_IN"
Dimli1AsInteger
'Declareli1andli2asInteger
Dimli2AsInteger
'Declaresamp1asTypeIOvariable,
DEFIOsamp1=Integer,48
'lengthis16(integer),startingfromIO(48)
'GetthecurrentIOstatusdefinedinsamp1
'intointegerformatandassignittoli1
Inli1=samp1
'GetIOstatusstartingfrom56intoaninteger
'andassignittoli2
Inli2=IO(56)
'Showli1andli2
'(ifonlyIO(56)ison,li1=256meaning100000000
'inbinarystartingfromport48andli2=1)
MsgBox"li1="&li1&Chr(13)&Chr(10)_
&"li2="&li2
J2P
功能﹕關節類型變量轉換成位置類型變量。
格式﹕J2P<關節類型變量>,<位置類型變量>
舉例﹕
Dimlj1asposeJ
Dimlp1asposeP
lj1.j1=0
lj1.j2=0
lj1.j3=0
lj1.j4=0
lj1.j5=0
lj1.j6=0
J2Plj1,lp1
Msgboxlp1.x&“”lp1.y&“”lp1.z_
lp1.rx&“”lp1.ry&“”lp1.rz
MOVE
功能﹕移動機器人末端操作器到指定坐標。
格式﹕MOVE<插補方法>,@<到達目標位置確認形式>,<路徑目標位置>,
說明﹕移動機器人從當前位置到指定的目標位置。
對于<位置>﹐位置類型
,關節類型可以使用。
插補方法
說明
P(PTP)
PTP(點到點)﹕運動從一個點到另一個點﹐機器人移動的路徑依賴機器人的姿態﹐不是一條直線。
運動路徑可以不是一條直線
L
CP控制,到達目標位置的路徑是一條直線
A
B
運動路徑是一條直線
機器人手臂從一個運動到另一個運動有三種方法確定第一個運動的完成。
@0:
運動位置到達目標位置就算到達。
@P:
實際位置到達目標位置附近即算到達,且不減速而往下一位置。
@E:
編碼器值核實點,實際位置到達目標位置,停下來﹐檢查編碼器的值是否在一定時間內不超出一定範圍才算到達。
下面的例子都是機器人從當前位置P1經過P2
P3
到達P3﹕
‘PROGRAMPASS_MOVE
‘TAKEARM
MOVEP,@P,P
(2),S=10
MOVEP,@0,P(3),S=10
END
P3
PROGRAMEND_MOVE
TAKEARM
MOVEL,@0,P
(2),S=10
MOVEL,@0,P(3),S=10
END
P3
PROGRAMENCODER_MOVE
TAKEARM
MOVEL,@E,P
(2),S=10
MOVEL,@0,P(3),S=10
END
OUT
功能﹕給輸出IO變量賦值
格式﹕OUT=<變量名>
舉例﹕'!
TITLE"EXAMPLE_OUT"
Dimli1AsInteger
'Declareli1asInteger
'Declaresamp1asTypeIOvariable,lengthis16(integer),startingfromIO(30)
DEFIOsamp1=Integer,30
'assign2^5-1=31(11111inHexvalue)toli1
li1=2^5-1
'Outputtheli1datafromtheportdeclaredinsamp1
Outsamp1=li1
'Delay3seconds
Delay3000
'assign2^5-1=31(11111inHexvalue)toli1
li1=2^5-1
'Outputtheli1datafromtheport38
OutIO(38)=li1
POSRX
功能﹕獲得繞X軸旋轉的角度
格式﹕POSRX<位置類型變量>
舉例﹕
Dimlf1AsSingle
DEFPOSlp
lp1=CURPOSE
lf1=POSRX(lp1)
‘指定X軸旋轉lp1部分給lf1
POSRY
功能﹕獲得繞Y軸旋轉的角度
格式﹕POSRY<位置類型變量>
舉例﹕
Dimlf1AsSingle
DEFPOSlp
lp1=CURPOSE
lf1=POSRY(lp1)
‘指定Y軸旋轉lp1部分給lf1
POSRZ
功能﹕獲得繞Z軸旋轉的角度
格式﹕POSRZ<位置類型變量>
說明﹕從位置坐標系中提出繞Z軸旋轉部分
舉例﹕Dimlf1AsSingle
DEFPOSlp
lp1=CURPOSE
lf1=POSRZ(lp1)
‘指定Z軸旋轉lp1部分給lf1
POSX
功能﹕獲得X坐標
格式﹕POSX<位置類型變量>
舉例﹕DIMlf1AsSingle
DEFPOSlp1
lf1=POSX(lp1)
‘指定lp1的X部分給lf1
POSY
功能﹕獲得Y坐標
格式﹕POSY<位置類型變量>