RAPID普通子程序的TEST条件调用,可通过条件测试指令TEST实现,子程序调用指令可编写在所需的位置。TEST指令的编写格式如下。
TEST 测试数据
CASE 测试值,测试值,......;
子程序调用;
......
DEFAULT;
子程序调用;
ENDTEST
......
TEST条件调用可通过TEST测试数据的检查,按CASE指定的值,执行不同的指令,程序中的CASE使用次数不受限制,DEFAULT可根据需要使用或省略。
例如,对于以下程序,如寄存器reg1的值为1、2、3,系统将调用子程序work1,work1执行完成后,跳转至指令Rest do1;如reg1的值为4或5,系统将调用子程序work2,work2执行完成后,跳转至指令Rest do1;如reg1的值为6,系统将调用子程序work3,work3执行完成后,跳转至指令Rest do1;如reg1的值不在1~6的范围内,则系统调用子程序work4,work4执行完成后,在执行指令Rest do1;
TEST reg1
CASE 1,2,3:
work1;
CASE 4,5:
work2;
CASE 6:
work3;
DEFAULT:
work4;
ENDTEST
Rest do1;
......
RAPID程序结构与分类
1、程序声明
RAPID应用程序的结构复杂,它需要由各类模块和程序组成;程序又分为主程序、子程序,全局程序、局域程序、普通程序、功能程序、中断程序等多种。
为了能对程序的使用范围、结构类型、名称、程序参数进行统一的规定,程序的起始行需要对程序进行声明。
①使用范围:使用范围用来规定可以使用该程序的模块,它可定义为全局程序(GLOBAL)或局域程序(LOCAL)。
全局程序(Global routine)可被任务中的所有模块使用,GLOBAL是系统默认的设定,无需另加声明。如主程序“PROC mainprg()”、子程序“PROC Initall()”等均为全局程序。
局域程序(Local routine)只能有本模块使用,局域程序需要加“LOCAL”声明,如“LOCAL PROC Iocal_rprg()”等。
局域程序的优先级高于全局程序,因此,如任务中存在名称相同的全局程序和局域程序,执行局域程序所在的模块时,系统将优先执行局域程序,与之间名的全局程序及其程序数据等均无效。
除了起始位置的“LOCAL”声明外,局域程序的类型、结构和格式要求等和全局程序并无区别,为此,后术的内容均以全局程序为例进行说明。
②程序类型:程序类型是对程序作用和功能的规定,它可选择普通程序、功能程序和中断程序3类:3类程序的结构形式、调用要求不相同,程序的编程格式与使用与使用方法后述。
③程序名称:程序名称是程序的识别标记,程序名称用便是标识,在同意系统中,程序名称原则上不应重复定义。
④程序参数:程序参数是用于参数化编程的变量,它需要在程序名称后附加的括号内定义。普通程序PROC通常不适用参数化编程功能,因此一般不使用参数,但需要保留名称后的括号;中断程序TRAP在任何情况下均可能被调用,故不能使用程序参数,名称后也无括号;RAPID功能程序FUNC采用的是参数化编程,故必须定义程序参数。
- 下一篇:ABB机器人电路板维修故障中电压检测法
- 上一篇:安川机器人设备维护的几个要点