案例/模板说明
用户需要根据项目情况,编写机械臂前台主程序。
otc的一部分寄存器已经被占用,用户不允许使用这些寄存器,详见 API 说明。
CartMove模板
以下为机械臂主控CartMove模板程序,注意对工控机返回的 error_code 进行判断。
用户需要根据项目情况,编写自己的机械臂前台主程序。
CartMove基础模板: MZ04-01-A.001
CartMove二次定位模板:MZ04-01-A.002
TrajMove模板
INCLUDE "VARIABLE"
' 初始化并启动后台程序
CallProc MasterInit()
KILLMCR 300, 0, 10000
DELAY 2
FORKMCR 300, 10000
DELAY 2
'
' 连接服务端
'
' 设置服务端ip地址(ip地址的最后一段)
V3% = 101
' 设置服务端端口
V4% = 11111
CallProc xyzMasterConnect()
'
' 切换app
'
' 设置项目名称
L1$ = "111"
CallProc xyzSwitchApp(L1$)
' 需要对返回的error_code(V21%)进行判断,以下每条语句同理
IF V21% <> 0
STOP
ENDIF
*MAIN_LOOP
'
' 请求pick
'
CallProc xyzReqPick()
IF V21% <> 0
STOP
ENDIF
'
' 获取pick_in轨迹
'
CallProc xyzGetPickIn()
IF V21% <> 0
STOP
ENDIF
' 轨迹点数量>0时运行轨迹
IF V27% > 0
CallProc ExecTraj()
ENDIF
'
' 获取pick_out轨迹
'
CallProc xyzGetPickOut()
IF V21% <> 0
STOP
ENDIF
' 轨迹点数量>0时运行轨迹
IF V27% > 0
CallProc ExecTraj()
ENDIF
'
' 获取place_in轨迹
'
CallProc xyzGetPlaceIn()
IF V21% <> 0
STOP
ENDIF
' 轨迹点数量>0时运行轨迹
IF V27% > 0
CallProc ExecTraj()
ENDIF
'
' 获取pick_out轨迹
'
CallProc xyzGetPlaceOut()
IF V21% <> 0
STOP
ENDIF
' 轨迹点数量>0时运行轨迹
IF V27% > 0
CallProc ExecTraj()
ENDIF
GOTO *MAIN_LOOP
END
' **************************************************************************************************************
' SUB FUNCTIONS
' **************************************************************************************************************
UsrProc ExecTraj()
'
' set your own speed/override... here
' 如果需要分别调整出筐/入筐等的轨迹、圆滑值,可以在这里自定义调整
'
' IF V12% = 518
' ' set pick_in speed/override...
' ELSEIF V12% = 519
' ' set pick_out speed/override...
' ELSEIF V12% = 520
' ' set place_in speed/override...
' ELSEIF V12% = 521
' ' set place_out speed/override...
' ELSEIF V12% = 525
' ' set update_obj_pose_to_hand speed/override...
' ELSE
' STOP
' ENDIF
' V27%: traj pose num
L100% = V27% - 1
FOR L101% = 0 TO L100% STEP 1
V19! = V![301+6*L101%]
V20! = V![302+6*L101%]
V21! = V![303+6*L101%]
V22! = V![304+6*L101%]
V23! = V![305+6*L101%]
V24! = V![306+6*L101%]
IF V%[29+L101%] = 11
' JOINTS_MOVEJ
MOVEX A=3, AC=0, SM=0, M1J, P, (V19!,V20!,V21!,V22!,V23!,V24!),R=100.0,MS
ELSEIF V%[29+L101%] = 12
' JOINTS_MOVEL
MOVEX A=3, AC=0, SM=0, M1J, L, (V19!,V20!,V21!,V22!,V23!,V24!),R=100.0,MS
ELSEIF V%[29+L101%] = 21
' CART_MOVEJ
MOVEX A=3, AC=0, SM=0, M1X, P, (V19!,V20!,V21!,V22!,V23!,V24!),R=100.0,MS
ELSEIF V%[29+L101%] = 22
' CART_MOVEL
MOVEX A=3, AC=0, SM=0, M1X, L, (V19!,V20!,V21!,V22!,V23!,V24!),R=100.0,MS
ELSE
STOP
ENDIF
NEXT
EndProc
...
...