サンプルプログラム11:MM_S11_Viz_Timer
プログラム概要
機能 |
ロボットはタイマーを使用して、通信の確立から把持および配置が完了するまでにかかる時間を計算します。 |
ファイル場所 |
Mech-VisionとMech-Vizソフトウェアのインストールディレクトリにある |
必要なプロジェクト |
Mech-VisionとMech-Vizプロジェクト |
使用前提 |
|
このサンプルプログラムは参考用です。ユーザーは実際の状況に応じて、このプログラムを基に変更を加える必要があります。このプログラムをそのまま使用しないでください。 |
プログラム説明
以下はMM_S11_Viz_Timerサンプルプログラムのコードと関連する説明です。
このサンプルは、MM_S2_Viz_Basicサンプルに比べて、タイマー機能(太字部分のコード)のみが追加されています。そのため、MM_S2_Viz_Basicサンプルと同じ部分のコードについては、以下で再度説明することはありません(詳細は MM_S2_Viz_Basicサンプルの説明 をご参照ください)。 |
NOP
'--------------------------------
'FUNCTION: trigger Mech-Viz
'project and get planned path,add
'a timer to record cycle time
'Mech-Mind, 2023-12-25
'--------------------------------
'clear I50 to I69
CLEAR I050 20
'initialize p variables
SUB P071 P071
SUB P072 P072
SUB P073 P073
'move to robot home position
MOVJ C00000 VJ=50.00
'initialize communication
'parameters (initialization is
'required only once)
CALL JOB:MM_INIT_SOCKET ARGF"192.168.170.22;50000;1"
*LOOP
'reset timer 0
SETTM TM000 TRESET
'start timer 0
SETTM TM000 TSTART
'move to image-capturing position
MOVJ C00001 VJ=50.00 PL=0
'open socket connection
CALL JOB:MM_OPEN_SOCKET
'trigger Mech-Viz project
CALL JOB:MM_START_VIZ ARGF"2;30"
'get planned path, 1st argument
'(1) means getting pose in JPs
CALL JOB:MM_GET_VIZDATA ARGF"1;51;52;53"
'check whether planned path has
'been got from Mech-Viz
'successfully
IFTHENEXP I053<>2100
'add error handling logic here
'according to different error
'codes
'e.g.: I053=2038 means no
'point cloud in ROI
PAUSE
ENDIF
'close socket connection
CALL JOB:MM_CLOSE_SOCKET
'save waypoints of the planned
'path to local variables one
'by one
CALL JOB:MM_GET_JPS ARGF"1;71;61;62"
CALL JOB:MM_GET_JPS ARGF"2;72;63;64"
CALL JOB:MM_GET_JPS ARGF"3;73;65;66"
'follow the planned path to pick
'move to approach waypoint of
'picking
MOVJ P071 VJ=50.00 PL=0
'move to picking waypoint
MOVJ P072 VJ=10.00 PL=0
'add object grasping logic here,
'such as DOUT OT#(1) ON
PAUSE
'move to departure waypoint of
'picking
MOVJ P073 VJ=50.00 PL=0
'move to intermediate waypoint of
'placing
MOVJ C00002 VJ=50.00
'move to approach waypoint of
'placing
MOVL C00003 V=166.6 PL=0
'move to placing waypoint
MOVL C00004 V=50.0 PL=0
'add object releasing logic here,
'such as DOUT OT#(1) OFF
PAUSE
'move to departure waypoint of
'placing
MOVL C00005 V=166.6 PL=0
'move back to robot home position
MOVJ C00006 VJ=50.00
'stop timer 0
SETTM TM000 TSTOP
PAUSE
JUMP *LOOP
END
上記のサンプルプログラムの処理流れは、下図の通りです。
下表は、タイマー機能のコードとその説明です。
処理流れ | コートと説明 |
---|---|
ループで通信確立から把持および配置が完了するまでにかかる時間を計算 |
上記のコードは、プログラムが「*LOOP」と「JUMP *LOOP」の間のコードを繰り返し実行することを意味します。
上記のコードは、タイマーTM000を0にリセットすることを意味します。
上記のコードは、タイマーTM000を開始することを意味します。
上記のコードは、タイマーTM000を停止することを意味します。ティーチペンダントでTM000変数の値を確認できます。下図に示すように、TM000変数の値は120で、単位は0.01秒です。 |