样例程序21:MM_S21_1Robot_3IPC_Sequentially
程序解读
以下为MM_S21_1Robot_3IPC_Sequentially样例程序的代码及相关解释说明。
| 本样例侧重讲解一台机器人如何连接多台工控机的使用方法。每台工控机上视觉系统运行的逻辑流程,可参考MM_S5_Viz_SetBranch样例的解释说明(详情请参考MM_S5_Viz_SetBranch样例说明)。 |
1: !-------------------------------- ;
2: !FUNCTION: set up communication ;
3: !between 1Robot and 3IPC ;
4: !Sequentially ;
5: !Mech-Mind, 2024-4-25 ;
6: !-------------------------------- ;
7: ;
8: !set current uframe NO. to 0 ;
9: UFRAME_NUM=0 ;
10: !set current tool NO. to 1 ;
11: UTOOL_NUM=1 ;
12: LBL[10] ;
13: ;
14: !initialize communication ;
15: !parameters(initialization is ;
16: !required once change IPC tcp ;
17: !service ;
18: CALL MM_INIT_SKT('6','192.168.1.20',30000,5) ;
19: !trigger Mech-Viz project ;
20: CALL MM_START_VIZ(0,60,53) ;
21: !check whether viz project has ;
22: !been triggered successfully ;
23: IF (R[53]<>2103),JMP LBL[99] ;
24: WAIT .20(sec) ;
25: !set branch, "MM_SET_BCH ;
26: CALL MM_SET_BCH(1,1,53) ;
27: !check whether viz branch has ;
28: !been set successfully ;
29: IF (R[53]<>2105),JMP LBL[99] ;
30: ;
31: !initialize communication ;
32: !parameters(initialization is ;
33: !required once change IPC tcp ;
34: !service ;
35: CALL MM_INIT_SKT('7','192.168.1.200',30000,5) ;
36: !trigger Mech-Viz project ;
37: CALL MM_START_VIZ(0,61,53) ;
38: !check whether viz project has ;
39: !been triggered successfully ;
40: IF (R[53]<>2103),JMP LBL[99] ;
41: WAIT .20(sec) ;
42: !set branch, "MM_SET_BCH ;
43: CALL MM_SET_BCH(1,2,53) ;
44: !check whether viz branch has ;
45: !been set successfully ;
46: IF (R[53]<>2105),JMP LBL[99] ;
47: ;
48: !initialize communication ;
49: !parameters(initialization is ;
50: !required once change IPC tcp ;
51: !service ;
52: CALL MM_INIT_SKT('8','192.168.1.50',30000,5) ;
53: !trigger Mech-Viz project ;
54: CALL MM_START_VIZ(0,62,53) ;
55: !check whether viz project has ;
56: !been triggered successfully ;
57: IF (R[53]<>2103),JMP LBL[99] ;
58: WAIT .20(sec) ;
59: !set branch, "MM_SET_BCH ;
60: CALL MM_SET_BCH(1,2,53) ;
61: !check whether viz branch has ;
62: !been set successfully ;
63: IF (R[53]<>2105),JMP LBL[99] ;
64: ;
65: !initialize communication ;
66: !parameters(initialization is ;
67: !required once change IPC tcp ;
68: !service ;
69: CALL MM_INIT_SKT('6','192.168.1.20',30000,5) ;
70: !get planned path, 1st argument ;
71: !(1) means getting pose in JPs ;
72: CALL MM_GET_VIZ(1,51,52,53) ;
73: !check whether planned path has ;
74: !been got from Mech-viz ;
75: !successfully ;
76: IF (R[53]<>2100),JMP LBL[99] ;
77: !save the first waypoint of the ;
78: !planned path to local variables ;
79: !one by one ;
80: CALL MM_GET_JPS(1,70,71,72) ;
81: ;
82: !initialize communication ;
83: !parameters(initialization is ;
84: !required once change IPC tcp ;
85: !service ;
86: CALL MM_INIT_SKT('7','192.168.1.200',30000,5) ;
87: !get planned path, 1st argument ;
88: !(2) means getting pose in TCP ;
89: CALL MM_GET_VIZ(2,54,55,56,53) ;
90: !check whether planned path has ;
91: !been got from Mech-viz ;
92: !successfully ;
93: IF (R[53]<>2100),JMP LBL[99] ;
94: !save the first waypoint of the ;
95: !planned path to local variables ;
96: !one by one ;
97: CALL MM_GET_POS(1,71,73,74) ;
98: ;
99: !initialize communication ;
100: !parameters(initialization is ;
101: !required once change IPC tcp ;
102: !service ;
103: CALL MM_INIT_SKT('8','192.168.1.50',30000,5) ;
104: !get planned path, 1st argument ;
105: !(1) means getting pose in JPs ;
106: CALL MM_GET_VIZ(1,57,58,59,53) ;
107: !check whether planned path has ;
108: !been got from Mech-viz ;
109: !successfully ;
110: IF (R[53]<>2100),JMP LBL[99] ;
111: !save the first waypoint of the ;
112: !planned path to local variables ;
113: !one by one ;
114: CALL MM_GET_JPS(1,72,75,76) ;
115: ;
116: WAIT 5.00(sec) ;
117: JMP LBL[10] ;
118: ;
119: LBL[99:handling error] ;
120: !add error handling logic here ;
121: !according to different ;
122: !error codes ;
123: !e.g.: status=2038 means no ;
124: !point cloud in ROI ;
125: !e.g.: status=3099 means ;
126: !failed to open socket ;
127: PAUSE ;
上述样例程序代码对应的示意图如下所示。图中的①~⑥表示程序执行顺序。
下表为上述代码的逻辑解读。用户单击指令名称的超链接便可查看该指令的详细说明。
| 工控机IP地址及端口号 | 代码及说明 | ||
|---|---|---|---|
192.168.1.20:30000 |
机器人端口6与工控机(192.168.1.20)端口30000的通信流程如下。
|
|
FANUC机器人系统设置中共有8个端口,如下图。用户在MM_INIT_SKT指令中使用未定义端口时,需要重启控制器才可生效,否则机器人无法与视觉系统通信,并报错。
|