浅谈发那科机器人与TP参数之间的关系
扫描二维码
随时随地手机看文章
对于发那科机器人中的KAREL编程语言,在使用函数时可以通过形参的方式进行参数的传递,而控制机器人动作又只能通过TP程序实现,而在实际应用中会出现在不同程序间进行参数传递的需求,尤其是对于有模块化编程思想的设计者更有这种迫切的要求。那TP程序中可以进行不同程序之间的参数传递吗?答案当然是可以!
通过DATA按键进行变量查看的时候,有数值寄存器、位置寄存器和字符串这几种寄存器类型,而这些寄存器都有一个共同的特点,那就是全局性的,也就是说所有的TP程序都可以对这些寄存器进行访问,所以在使用时就必须知道其存储的值,或者对其进行初始化。而这些寄存器是实现不同程序间参数传递的方式之一。
学过编程的人都知道,不仅有全局变量,还有局部变量,FANUC发那科工业机器人当然也不例外,也提供了一种“局部变量”的方式来实现程序间参数的传递,这个“局部变量”就是自变量寄存器AR。
自变量
在TP程序中使用CALL指令之后,将光标移动到所调用的程序后面,然后选择F4[选择],这样所输入的参数就称之为自变量,因为调用宏程序也是采用相同的方式,所以参数的传递同样也适用于宏程序调用,如上图所示。
自变量寄存器
当进行自变量传递时,可以使用数字寄存器R、常数、字符串等六种参数,此时还可以从图片上发现4 AR,这个就是自变量寄存器,其主要作用就是用来接收从其他TP程序所传递过来的自变量。
TP程序对参数的使用与其他编程语言有很大的不同,很多编程都是在函数中直接使用形参所定义的名称即可,而在TP程序中则是使用自变量寄存器AR,该寄存器与其他的寄存器有一个很大的不同,它是局部变量,也就是说只能在同一个程序内使用。
二者之间的关系
自变量和自变量寄存器之间是怎么样的一个对应关系呢?其实就是顺序上一一对应,以这个程序调用为例,顺着就是AR[1]、AR[2]和AR[3],其中AR[1]代表**个参数,AR[2]就是第二个参数,AR[3]就是第三个参数,在被调用程序中可以直接使用AR[n]来处理所接收到的数据。
注意事项
自变量寄存器AR的作用是来接收传递的数据参数,所以其不能被赋值。若直接使用AR的值,而不是通过自变量进行参数的传递,系统则会报INTP-288错误,即没有指定参数。每个程序可以使用30个自变量寄存器,但自变量只能有10个,所以在使用时请小心。