1.ABB机器人添加外部轴(变位机或导轨)
以下内容是:转载+原创
1.系统key要有外部轴选项,并且用该key做好系统,如下(下图示例可以添加3个外部轴)打开系统信息System Info
2.打开RobotStudio找到如下界面
3.找到路径 ...\ABB.RobotWare-6.08.0134\RobotPackages\RobotWare_RPK_6.08.0134\utility\AdditionalAxis\Track
4.打开任意一个DM1(驱动柜),复制M7L1B1T_DM1.cfg文件到U盘
4.1.把刚才复制的文件粘贴到系统的HOME文件夹里面,我的是在:
..\irb2400-1\Solution4\Virtual Controllers\IRB2400_10_150\HOME
5.示教器控制面板Control Panel-配置Configuration,选择加载参数Load Parameters,点击确定
6.找到之前复制的那个文件,确定 然后重启
7. 打开手动操纵,可以看到状态栏增加了一个外部轴图标
7.1.设置运动配置
8. 切换到外轴,然后点击启动,即可用运动外轴
9. 在控制面板-配置,主题选择motion里,arm下可以修改外轴上下限,导轨的单位是米
10. Mechanical Unit里可以修改外轴名字
11. 在控制面板-配置,主题选择motion里,找到motor,可以修改选择的motor-type
12. 在控制面板-配置,主题选择motion里,找到transmission,可以修改减速比
2.实例
2.1.大概流程
2.2.添加IO信号
3.主程序
MODULE Module1
CONST robtarget p10:=[[928.61,0.00,1412.50],[0.5,-4.21658E-9,0.866025,-2.43445E-9],[0,0,-1,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
CONST robtarget p20:=[[1121.52,-482.29,1412.50],[0.5,1.05526E-8,0.866025,9.58614E-8],[-1,0,-1,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
CONST robtarget p30:=[[992.10,-118.96,655.14],[0.233562,0.0589606,0.970513,-0.00877652],[-1,0,-1,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
CONST robtarget p40:=[[997.30,-61.68,655.14],[0.233718,0.0310037,0.971808,-0.00205069],[-1,0,-1,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
CONST robtarget p50:=[[1146.83,-71.06,560.31],[0.233718,0.0310037,0.971808,-0.00205069],[-1,0,-1,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
CONST robtarget p1:=[[744.75,-657.03,906.15],[0.504158,0.128506,0.850594,-0.0761711],[-1,1,-2,0],[0,0,9E+9,9E+9,9E+9,9E+9]];
CONST robtarget p2:=[[917.94,-590.46,906.15],[0.504158,0.128507,0.850593,-0.0761708],[-1,1,-2,0],[0,0,9E+9,9E+9,9E+9,9E+9]];
CONST robtarget p3:=[[744.75,-590.46,906.15],[0.504158,0.128507,0.850593,-0.076171],[-1,1,-2,0],[0,0,9E+9,9E+9,9E+9,9E+9]];
CONST robtarget p4:=[[744.75,-438.20,906.15],[0.504158,0.128507,0.850593,-0.076171],[-1,1,-2,0],[0,0,9E+9,9E+9,9E+9,9E+9]];
CONST robtarget p100:=[[928.61,0.00,1412.50],[0.5,-4.21658E-9,0.866025,-2.43445E-9],[0,0,-1,0],[0,300.152,9E+9,9E+9,9E+9,9E+9]];
CONST robtarget p110:=[[928.61,0.00,1412.50],[0.5,-4.21658E-9,0.866025,-2.43445E-9],[0,0,-1,0],[0,0,9E+9,9E+9,9E+9,9E+9]];
VAR num regint1:=0;
VAR num product1:=0;
VAR num product2:=0;
VAR num product3:=0;
VAR num time1:=1;
PROC main()
MoveAbsJ [[0,0,0,0,30,-5.57934E-7],[0,0,9E+9,9E+9,9E+9,9E+9]]\NoEOffs, v1000, z50, tool0;
product1:=1;
WHILE TRUE DO
IF IN10=1 AND product1=1 THEN
ActUnit M8DM1;
MoveL p100,v2000,fine,tool0;
MoveL p110,v2000,fine,tool0;
InvertDO DO10;
WaitTime 1;
Reset OUT10;
DeactUnit M8DM1;
product1:=0;
product2:=1;
ELSEIF IN10=1 AND product2=1 THEN
ActUnit M8DM1;
MoveL p100,v2000,fine,tool0;
MoveL p110,v2000,fine,tool0;
InvertDO DO10;
WaitTime 1;
Reset OUT10;
DeactUnit M8DM1;
product2:=0;
product3:=1;
ELSEIF IN10=1 AND product3=1 THEN
ActUnit M8DM1;
MoveL p100,v2000,fine,tool0;
MoveL p110,v2000,fine,tool0;
InvertDO DO10;
WaitTime 2;
Reset OUT10;
DeactUnit M8DM1;
product3:=0;
regint1:=1;
ELSEIF IN20=1 AND regint1=1 THEN
WaitTime time1;
MoveL p10, v2000, fine, tool0;
MoveL p20,v2000,fine,tool0;
MoveL p30,v2000,fine,tool0;
MoveL p40,v2000,fine,tool0;
MoveL p50,v2000,fine,tool0;
MoveL p10,v2000,fine,tool0;
regint1:=0;
ELSEIF IN10=1 AND regint1=0 THEN
WaitTime time1;
ActUnit M8DM1;
MoveL p100,v2000,fine,tool0;
MoveL p110,v2000,fine,tool0;
InvertDO DO10;
WaitTime 1;
Reset OUT10;
DeactUnit M8DM1;
regint1:=1;
ENDIF
ENDWHILE
ENDPROC
ENDMODULE