报名人数298782
资讯中心 > 课程相关资讯 > 机器人培训 > 机器人培训 > 智通工业机器人培训专家为您讲解流程控制类指令及其编程应用

智通工业机器人培训专家为您讲解流程控制类指令及其编程应用

时间:2021-06-06 16:30 来源:
使用过滤器快速找到需要使用的指令:
在上面跟着智通工业机器人培训专家学会的几个指令中,我们会发现像STOP、GOTO、LABEL指令无法在示教器的常用指令栏“Common”中找到,除非自己很熟悉,不然一个个查找会显得很繁琐。其实,如果是6.06以上的Robtware版本,可以直接用过滤器功能进行搜索。下面介绍如何用过滤器对stop指令进行搜索。

步骤为:1单击【添加指令】—2单击右上角过滤器图标—3在输入栏输入“stop
”4单击【过滤器】—即可显示搜索结果,如图9-3所示—5单击【清除】,6单击【过滤器】即可对过滤器进行隐藏。详细操作图示,见图9-1~图9-4所示。

  
                               图9-1                                                   图9-2

   
                            图9-3                                               图9-4
 

工业机器人培训专家友情提醒您:
    使用过滤器后,其它指令会被过滤器遮盖,如果要添加其它指令,需要先参照上面第5、第6步骤对过滤器进行隐藏。

ProcCall指令

ProcCall-调用新程序
ProcCall指令用于将程序执行转移至另一个无返回值程序(也称为子程序),当子程序执行完毕之后,再回到原来的程序继续执行。
在程序的编辑中,通过用ProcCall指令来调用子程序可以极大的精简主程序的结构,让整体程序结构清晰明了。下面通过实例向大家进行说明:
 
使用实例1:
PROC main()  !主程序
    rInitAll;   !调用初始化程序
    rHome;   !调用回原点程序
    WHILE TRUE DO   !进入无限循环
        IF DI_01=1 THEN   !如果收到启动信号
            rPick;   !调用取件程序
            rSanding;   !调用打磨程序
            rWorking;   !调用加工程序
            rPut;       !调用放件程序
        ENDIF    !IF语句结束标识
        WaitTime 0.1;   !等待0.1秒
    ENDWHILE   !循环语句结束标识
ENDPROC    !程序结束标识
说明:以上程序是一个打磨加工程序的主程序,其把整个流程细分至对应的子程序,再通过ProcCall指令进行调用,使整个程序主体结构清晰明了,同时也便于后续的编辑调试。
 
使用实例2:
PROC rPick()   !取件程序
    ……
    MoveL pPick,v1000,fine,tool1;   !线性移动至取料点

    IF DI_2daowei=1 THEN   !如果到位信号为1
      SET DO_1;  !启用夹爪
    ELSE         !如果到位信号不为1
      Error;    !调用出错处理程序
    ENDIF
说明:这个实例是使用实例1中的rPick取件程序的部分展开内容。综合可以看出主程序mian调用了取件程序rPick, 取件程序rPick中又调用了出错处理程序Error,这说明程序可以逐级调用。

工业机器人培训专家友情提醒您:
    程序可相互调用,并反过来调用另一个程序。程序亦可自我调用,即递归调用。允许的程序等级取决于参数数量。通常允许10级以上。

RETURN指令

RETURN-返回例行程序指令
RETURN返回例行程序指令用于当此指令被执行时,则马上结束本例行程序的执行,程序指针返回调用操作的例行程序的调用指令位置的下一行。
 
使用实例1:
PROC main()
reg1 := 1;
Routine1;
reg1 := 6;
ENDPROC

PROC Routine1()
reg1 := reg1 + 1;
RETURN;
reg1 := 3;
ENDPROC

说明:当程序指针从主程序自动执行到”RETURN;”指令时,则程序指针立即返回到” reg1 := 6;”这一行并继续往下执行。而”RETURN;”指令后的” reg1 := 3;”则被跳过不执行。
如果不使用RETURN指令,则当调用的子程序Routine1()执行完毕后,自动返回main()程序。
 
如果RETURN所在程序是一个函数,则同时返回函数值。比如下面使用实例2:
 
使用实例2:
FUNC robtarget OFFSS(robtarget pPlace,num nX,num nY,num nZ)
pTest.trans.x := pPlace.trans.x + nX;
pTest.trans.y := pPlace.trans.y + nY;
pTest.trans.z := pPlace.trans.z + nZ;
RETURN pTest;
ENDFUNC
说明:这是一个自己做的偏移功能函数,等同于OFFS,RETURN返回的是pTest所代表的位置值。详细的功能函数介绍也可以参考之前更新的内容。

工业机器人培训专家友情提醒您:
    根据在以下方面使用的程序的类型,RETURN指令的结果可能有所不同:
• 主程序:如果程序拥有执行模式单循环,则停止程序。否则,通过主程序的第
一个指令,继续程序执行。
• 无返回值程序:通过过程调用后的指令,继续程序执行。
• 函数:返回函数的值。
• 软中断程序:从出现中断的位置,继续程序执行。
• 无返回值程序中的错误处理器:通过调用程序以及错误处理器的程序(通过过
程调用后的指令),继续程序执行。
• 函数中的错误处理器:返回函数值。

流程控制类指令应用示例

例题1:rYuan是一个画圆的例行程序名称,rFang是一个画方形的例行程序名称,nCount是一个num型的数据名称。编写程序完成以下要求:nCount等于1,3,5,7,9时画方形,nCount等于2,4,6,8,10时画圆,如果nCount大于10则停止运行。如图9-5所示。

图9-5

解:PROC main()
MoveJ pHome, v1000, z50, tool1;
nCount := 0;
WHILE TRUE DO
nCount := nCount + 1;
TEST nCount
CASE 2,4,6,8,10:
rYuan;
CASE 1,3,5,7,9:
rFang;
DEFAULT:
GOTO L2;
ENDTEST
ENDWHILE
L2:
MoveJ pHome, v1000, z50, tool1;
Stop;
ENDPROC

关于各种指令智通工业机器人培训专家就给您介绍到这辣,若有其他疑问欢迎扫码咨询课程老师哦!