对于发那科机器人中的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个,所以在使用时请小心。
- LT1170HVIT、用于离线应用的 5A 驱动高压 FET 的典型应用
- C2905537_数字电位器方案验证板
- LT3091MPT7 简单电缆压降补偿的典型应用
- FRDM-17531EP-EVB,基于 MPC17531A 双 H 桥的 Freedom 扩展板,步进电机驱动器,2-8.6V,0.7A
- 二狗的台灯
- LT1171HVCQ、5V/2.5A 正电流升压降压转换器的典型应用
- LTC1754 的典型应用 - 具有 SOT-23 关断功能的微功率、稳压 3.3V/5V 电荷泵
- 【FC自定义Mapper】573 Deset Ultra卡带
- SM840021,用于 SM840021 的评估板,用于以太网交换机的 125 MHz PLL 时钟发生器
- 单片机最小系统板-IAP15W4K58S4