使用範例
1. 基本範例
下列程式範例係將任何觸發信號連接至控制器的R-I/O接頭、在觸發輸入的情況下閂鎖機器人位置資訊,並顯示已閂鎖位置資訊。
Function Main
Motor On
Power High
Speed 50; Accel 50, 50
SpeedS 500; AccelS 5000
Go P0 '開始位置
SetLatch SETLATCH_PORT_CU_0, SETLATCH_TRIGGERMODE_LEADINGEDGE, 4
LatchEnable On '啟用閂鎖
Move P1 '開始動作,於動作時輸入觸發器
Wait LatchState = True '確認閂鎖完成
P3 = LatchPos(WithoutToolArm, 1) '取得閂鎖位置1
P4 = LatchPos(WithoutToolArm, 2) '取得閂鎖位置2
P5 = LatchPos(WithoutToolArm, 3) '取得閂鎖位置3
P6 = LatchPos(WithoutToolArm, 4) '取得閂鎖位置4
LatchEnable Off '停用閂鎖
Print P3 '顯示閂鎖位置1
Print P4 '顯示閂鎖位置2
Print P5 '顯示閂鎖位置3
Print P6 '顯示閂鎖位置4
Fend
省略參數時的程式範例
Function Main
Motor On
Power High
Speed 50; Accel 50, 50
SpeedS 500; AccelS 5000
Go P0 '開始位置
SetLatch SETLATCH_PORT_CU_0, SETLATCH_TRIGGERMODE_LEADINGEDGE
LatchEnable On '啟用閂鎖
Move P1 '開始動作,於動作時輸入觸發器
Wait LatchState = True '確認閂鎖完成
P3 = LatchPos '取得閂鎖位置
LatchEnable Off '停用閂鎖
Print P3 '顯示閂鎖位置
Fend
2. 視覺系統範例
此範例係利用機器人夾具末端來處理工件,在不停止的情況下通過外部固定上方攝影機取得點的上方,以及利用適當的位置修正來裝配工件。
此系統具有一個傳輸型感測器,能在機器人夾具末端處理工件及通過攝影機取得點時輸出觸發信號。接著,它會利用R-I/O和攝影機觸發輸入來連接感測器輸出(進行外部微調),並同步處理已閂鎖機器人位置資訊及攝影機圖像。其可計算工件位置誤差,並比較攝影機圖像與即時I/O的機器人位置資訊來執行位置偏移。
在此情況下,必須將機器人視覺系統校準為向上固定的攝像機。此外,預先登錄零件放置位置,可以利用CalRobotPlacePos結果獲取機器人位置資訊以進行精確的零件放置。可以在CalRobotPlacePos屬性嚮導中設定零件放置位置。
有關攝影機觸發器信號的連接以及視覺校準等,請參閱以下手冊。
「Vision Guide 8.0」
以下為範例程式。
Function Main
Robot 1
Motor On
Power High
Speed 100
Accel 100, 100
Jump InitPos '移動至初始位置
Wait 1.0
SetLatch 24, SETLATCH_TRIGGERMODE_LEADINGEDGE '設定閂鎖條件
MemOff 0
Xqt PictureOnFly_Camera '啟動拍攝任務
Jump StartPos C0 '移動至部件供給位置
Wait 0.5
LatchEnable On '開始等待閂鎖
MemOn 0 '啟用拍攝
Jump FrontPos C0 CP '移動至攝影機上方前面
Go PassingPos CP '通過攝影機上方
Go TargetPos :Z(-70) CP '移動至裝配位置上方
Wait MemSw(1) = On '等待圖像處理完成
Wait LatchState = True '等待位置閂鎖完成
LatchEnable Off '停用位置閂鎖
Jump ExactTargetPos C0 LimZ (-70) '移動至裝配位置
Wait 0.5
Jump InitPos '移動至初始位置
Wait 0.5
Motor Off
Fend
' 從工作影像拍攝到工作地點獲取執行的功能
Function PictureOnFly_Camera
'視覺結果變數
Integer AcqStat '閃控成像完成旗標
Boolean Found '工件偵測狀態
Wait MemSw(0) = On '等待成像開始旗標
MemOff 1 '清除成像完成旗標
MemOff 0 '清除成像開始旗標
AcqStat = 0 '清除閃控成像旗標
VRun PictureOnFly_i
Do Until AcqStat = 3 '等待閃控
VGet PictureOnFly_i.AcquireState, AcqStat
Loop
'檢查工件偵測
VGet PictureOnFly_i.Geom01.Found, Found
If Found = False Then
Print "Work NotFound"
Pause
EndIf
Wait LatchState = True '等待觸發器
'將影像拍攝位置(觸發位置)設定為視覺
VSet PictureOnFly_i.RobotPos, LatchPos (WithoutToolArm)
'取得機器人位置
VGet PictureOnFly_i.Geom01.RobotPlacePos, Found, ExactTargetPos
MemOn 1 '變更攝影機成像旗標
Fend