1、先进制造技术单元3 工业机器人编程单元3 工业机器人编程3.1 工业机器人的坐标系 3.2 用户坐标系的设置3.3 工具坐标系的设置3.4 机器人编程指令3.5 区域监控3.6 绝对零点位置的设置3.7 编程任务1创建简单程序3.8 编程任务2添加WHILEDO3.9 编程任务3添加(赋值)指令3.10 编程任务4抓料单元3 工业机器人编程3.4.1运动指令3.4.2归原点指令3.4.3设置指令3.4.4系统功能指令3.4.5流程控制指令3.4.6输入输出指令3.4.7模拟量输入输出指令3.4.8触发功能指令3.4.4系统功能指令1.:=(赋值)给某变量赋值,左侧为变量,“:=”为赋值操作,右
2、侧为表达式,如下图所示。表达式的类型必须符合变量的数据类型。释义:将0赋给da13.4.4系统功能指令2./(注解)用于说明程序的用途,使用户容易读懂程序,如下图所示。释义:PTP(ap9)为零点3.4.4系统功能指令3.WaitTime用于设置机器人等待时间,时间单位为 ms,如下图所示。释义:机器人等待1s再执行后面的程序。3.4.4系统功能指令4.Stop该命令用于停止所有激活程序的执行。如果指令不带参数,等同于按下了示教器终端上的停止(stop)按钮,如下图所示。3.4.4系统功能指令释义:机器人运动至stop(ALLAXES)时将停止运行。指令中有3种STOPMODE:ALLAXES
3、、COMTINUETRACKING、HARDSTOP。三者区别如下:3.4.4系统功能指令(1)ALLAXES:停止时,首先机器人会以stop on the path方式(滑动过渡)停下来,然后机器人的路径规划也停止,重新启动时,系统放弃原有的路径规划并规划新的路径;(2)COMTINUETRACKING:与ALLAXES区别在于:停止时机器人保持原有的路径规划,重新启动时,机器人按之前规划的路径接着运行;(3)HARDSTOP:与ALLAXES区别在于:机器人不会以stop on the path方式(滑动过渡)停下来,而是立即停止运动。3.4.5流程控制指令1.CALL调用指令,能够调用其
4、它程序作为子程序,且调用的程序必须在编写程序的项目中,如下图所示。释义:程序执行完第二十九行Lin(cp7,os0)后,调用并执行程序t1。注意:只能调用相同工程名下的子程序,且子程序中不应有循环。3.4.5流程控制指令2.WAIT等待指令。当WAIT表达式的值为TRUE,下一步指令就会执行,否则的话,程序等待直到表达式为TRUE为止,如下图所示。释义:程序执行完第二十九行Lin(cp7,os0)后,等待数字输入din0.port为TRUE时才执行后面的程序,否则机器人暂停运行,并处于一直等待状态。3.4.5流程控制指令3.SYNC.Sync该指令用于同步程序平行运行,如下图所示。使用此指令可
5、以同步两个正在运行的程序,如同步两个机器人的运动。释义:robot1 运行到同步点并设置同步编号、清除同步点,等待直到另外一个程序重置同步编号。3.4.5流程控制指令3.SYNC.Sync该指令用于同步程序平行运行,如下图所示。当一个程序运行至同步点时,同步点会被重置,然后两个程序启动;假如设定的同步编号与给定的不同,会产生错误,程序停止运行。3.4.5流程控制指令4.IFTHENEND_IF,ELSIFTHEN,ELSEIF指令用于条件跳转控制。类似于c+中的IF语句。条件判断表达式必须是BOOL类型。每一个IF指令必须以关键字END_IF做为条件控制结束,如图所示。3.4.5流程控制指令5
6、.WHILEDOEND_WHILEWHILE指令在满足条件的时候循环执行子语句。循环控制表达式必须是BOOL类型。该指令必须以关键字END_WHILE做为循环控制结束,如下图所示。该指令执行两点之间的循环运动。3.4.5流程控制指令6.LOOPDOEND_LOOP循环次数控制指令,如下图所示。该指令执行两点之间的循环运动,且循环次数为10。3.4.5流程控制指令7.RUN,KILLRUN指令调用一个用户程序,该程序与主程序平行运行。RUN调用的程序必须用KILL指令终止。RUN调用的程序必须是该项目中的程序,如下图所示。注意:RUN/KILL的程序(IoTest)中不能含有运动指令,如PTP、
7、Lin等。否则程序运行时会报错。一般只用于来监测实时信号等。3.4.5流程控制指令8.RETURN该指令用于终止正在运行的程序,如下图所示。注意:运行至指令RETURN时,程序停止运行,并且指针返回到程序开始行(第一行)。注意:RETURN,RUN,KILL,IFTHENEND_IF,ELSIFTHEN,ELSE,IO 等指令为预处理指令,会在程序运行前提前编译,所以需在这些指令前加上指令WaitIsFinished。3.4.5流程控制指令9.GOTO,IFGOTO,LABELGOTO 指令用于跳转到程序不同部分,如下图所示。跳转目标通过LABEL指令定义。不允许从外部跳转进入内部程序块。内部程序块可能是WHILE循环程序块或者IF程序块。3.4.5流程控制指令9.GOTO,IFGOTO,LABELIF-GOTO指令相当于一个缩减的IF程序块。IF条件判断表达式必须是BOOL类型。假如条件满足,程序执行GOTO跳转命令,其跳转目标必须由LABEL指令定义。LABEL指令用于定义GOTO跳转目标。释义:当程序运行至第97行,即IF TRUE GOTO a,程序忽略后面的指令,直接跳至第90行,并继续运行