样例程序2:MM_S2_Viz_Basic
程序解读
以下为MM_S2_Viz_Basic样例程序的代码及相关解释说明。
1. MJOINT(POINTC(264.2282,-217.9533,359.1164,-83.989165,1.303953,176.0864,CFG1,0,0,1), v100perc, fine, tool0);
2. MM_Init_Socket(1);
3. CALL: MM_Open_Socket();
4. CALL: MM_Status := MM_Set_Branch(1, 1);
5. CALL: MM_Status := MM_Start_Viz(1, MM_J);
6. CALL: MM_Status, MM_LastData, MM_POS_NUM, MM_VisPosNum := MM_Get_VizData(1);
7. IF MM_Status <> 2100 THEN
8. STOPPROG;
9. END_IF;
10. CALL: MM_JPS[1], MM_Label[1], MM_Tool[1] := MM_GET_JPS(1);
11. CALL: MM_JPS[2], MM_Label[2], MM_Tool[2] := MM_GET_JPS(2);
12. CALL: MM_JPS[3], MM_Label[3], MM_Tool[3] := MM_GET_JPS(3);
13. CALL: MM_JPS[4], MM_Label[4], MM_Tool[4] := MM_GET_JPS(4);
14. CALL: MM_JPS[5], MM_Label[5], MM_Tool[5] := MM_GET_JPS(5);
15. MJOINT(MM_JPS[1], v500, fine, tool0);
16. MJOINT(MM_JPS[2], v500, fine, tool0);
17. MJOINT(MM_JPS[3], v500, fine, tool0);
18. MJOINT(MM_JPS[4], v500, fine, tool0);
19. MJOINT(MM_JPS[5], v500, fine, tool0);
20. CALL: MM_Close_Socket();
下表为上述程序的逻辑解读。用户单击指令名称的超链接便可查看该指令的详细说明。
| 流程 | 代码及说明 | ||
|---|---|---|---|
移动到拍照点 |
因此,整条指令表示机器人以关节移动方式准确移动至拍照点。 |
||
初始化通信参数 |
|||
建立通信 |
机器人通过MM_Open_Socket指令与视觉系统之间建立TCP协议通信连接。 |
||
设置Mech-Viz消息分支出口 |
因此,整条指令表示Mech-Viz工程在编号为1的“消息分支”步骤处将沿出口0继续执行,如下图所示。
|
||
触发运行Mech-Viz工程 |
因此,整条指令表示机器人触发视觉系统运行Mech-Viz工程,然后Mech-Viz基于Mech-Vision输出的视觉结果规划机器人的抓取路径。 |
||
获取规划路径 |
因此,整条指令表示机器人获取Mech-Viz工程返回的规划路径。
当状态码MM_Status为2100时,则机器人成功获取到规划路径;否则视觉系统发生异常。用户可根据具体异常状态码做相应的处理。 |
||
转存规划路径 |
因此,“CALL: MM_JPS[1], MM_Label[1], MM_Tool[1] := MM_GET_JPS(1);”整条指令表示将第一个路径点的关节角、标签和末端工具编号分别转存至指定变量。
|
||
移动至规划的各路径点 |
机器人以关节移动方式依次移动到各个路径点。 |
||
关闭通信 |
机器人通过MM_Close_Socket指令断开与视觉系统之间的TCP协议通信连接。 |