您好!欢迎光临工博士商城
您当前的位置:首页 » 新闻中心 » 发那科机器人— 参数传递

新闻中心

发那科机器人— 参数传递
发布时间:2023-03-14        浏览次数:3525        返回列表
 01

  参数传递

  在TP程序中,使用CALL指令调用程序,在调用程序时,可以向被调用的程序传入参数,数据类型可以为 直接: 整型、字符串型、浮点型;间接 : R、SR、AR。

  01 - 1 TP调用TP程序参数传递

  允许两个TP程序间进行参数传递,在TP程序中的参数传递,使用CALL调用,并在程序名后加如括号"( )",里面可以放入要传入的参数,规则由左向右,依次为参数1,参数2,参数3.... 例如下面的调用情形,在MAIN程序中调用了MAKE_1子程序,并传入了参数: 1 和 间接R[3]寄存器的值,此时在MAKE_1子程序如果要使用传入的参数,需要用到AR寄存器,AR为局部变量,仅在使用的程序有效,AR[1] 代表个参数,AR[2]代表第二个参数,以此类推。

  图 1-1 TP程序间的参数传递

  

  CALL 程序名 (参数1,参数2,参数3,....)

  参数1 对应 AR[1],参数2对应AR[2].....

  调用参数:

  光标移至程序名后面,选择

  选择参数类型

  传入参数,多个参数再次点击[选择]

 

  参数寄存器使用:

  指令 - 数值寄存器

  AR寄存器只允许出现在赋值号右侧

  

  

  支持的参数类型:

  >>直接:

  整型常量值: 123,234,66

  浮点型常量值: 123.456,0.234

  字符串常量值: 'hello','nihao'

  >>间接:

  R寄存器:CALL MAKE_1( R[1],R[3] )

  SR寄存器: CALL MAKE_1( SR[1] )

  参数寄存器: CALL MAKE_1( AR[1],AR[2] )

  >>注意1:间接的参数类型,不能再进行间接指定,例如以下是错误的:

  CALL MAKE_1( R[ AR[1] ] )

  >>注意2:调用时的参数个数应当大于或等于参数寄存器的个数。

  >>注意3:参数传递只允许使用CALL调用时进行传递。

  >>注意4:参数寄存器赋值时与左侧必须参数类型一致。

  >>注意5: 参数多支持30个

  例如 在MAIN程序中,调用了MAKE_1子程序,并传入了两个参数,在MAKE_1中使用了来自MAIN主程序调用时传入的两个参数:

  MAIN主程序

  MAKE_1子程序

  

  

  运行MAIN程序结果为:R[1] 寄存器被赋值为123,SR[1]寄存器被赋值为'Hello'。

  01 - 2 TP调用KAREL程序参数传递

  TP在传入KAREL的方法同TP与TP间的参数传递,但TP使用的是AR参数寄存器,而KAREL程序内使用GET_TPE_PRM内置程序,获取从TP程序CALL调用时传入的参数。

  GET_TPE_PRM定义:

  参数说明:

  >>param_no :参数编号,支持10个参数

  >>data_type :参数类型,返回从TP程序传入的参数类型,值为以下三个值

  1 - INTEGER类型

  2 - REAL 类型

  3 - STRING 类型

  >>int_value : 返回从TP中传入的整型(INTEGER)参数

  >>real_value : 返回从TP中传入的浮点型(REAL)参数

  >>str_value : 返回从TP中传入的字符串型(STRINGR)参数

  >>注意1: TP传入参数的个数必须小于等于KAREL中的参数编号之和。

  >>注意2: 每次使用GET_TPE_PRM,将重新赋值GET_TPE_PRM的参数表,除传回的类型参数外,其余都为空(INTEGER=0 ; REAL=0.0 ; STRING='')

  参数传入:

  调用时选择COLLECT

  选择参数类型

  传入参数,多个参数再次点击[选择]

  

  例如MAIN主程序调用了KAREL程序 PARM_1并传入了三个参数:

  CALL PARM_1(123,'TEST',234.5)

  在KAREL中获取从TP传入的参数:

  02

  Arg参数“注记”文件

  当拿到一个编写带有参数的TP或者KAREL程序,在进行程序调用时,我们并不知道每个参数是干什么的,因此可以使用“DT”格式的文件用于提示使用者,并可向用户提供一个弹出的菜单项供用户快速选择。系统仅支持7DC3 及以后版本,对于之前7DC2、7DA7或者更早的版本将不支持。

  例如,在iRPickTool功能加载的KAREL程序:

  文件存储格式:

  ARGDISPEG01.DT 文件另存为格式为ANSI:

  

  DT文件命名规则:

  ARGDISPEG01.DT

  >>其中ARG:argument 为参数的意思; DISP: display 显示的意思。

  >>ARGDISP为系统程序在控制启动时自动检索的DT文件开头格式。

  >>EG代表为语言为英文,经测试,即使示教器为中文,也必须使用英文(英语语言与中文语言通用,但必须包含中文词典才可在DT使用中文,否则乱码),否则将无法显示提示注记符号,以下为语言简写:

  >>01代表参数文件编号,支持01 - 99,支持功能代号:

  ARGDISPEGJ518.DT

  DT文件的加载:

  >>方式1:文件界面的加载 ,并进行重启,便可以使用参数提示功能。

  

  >>方式2: CM命令的加载

  参考以下CM命令加载,且也必须进行重启才对TX生效:

  

  

  语法结构

  

  >>{} :为注释,该注释的内容不参与程序指令中

  >>[PROGRAM] : 程序名及参数个数设定

  NAME="PROG_NAME" {双引号内为程序名}

  ARGUMENT='5' {单引号内指定参数的数量}

  >>[ARGUMENT] : 参数表,支持多30个参数

  >>[ENDPROGRAM] : 单个程序的参数提示符结束标志。

  参数表:

  基本的写法为

  「N(参数的种类)01(第几个参数)=(等号)"Pick Pos PR"(显示的参数的意思)」

  参数的种类包含:N:常数、V:宏定义、S:字符串、W:字符串列表

  N - 常数(传入参数类型为INTEGER、REAL)

  只允许用户传入常数,并提示字符串:

  N01="Pick Pos PR"

  

  后加初始值的情况:

  N01="Pick Pos PR1" : '100'

  则在进行调用时,默认输入值为100:

  

  发那科机器人

  V - 宏定义(传入参数类型为INTEGER)

  允许用户从上拉列表选择,传入值只能为整型,多个枚举值用","逗号隔开,一个参数多支持35个枚举。

  V02="BLUE":'1',"GREEN":'2',"YELLOW":'3',"BLACK":'4',"None":'0'

  

  发那科机器人维修

  上述选择传入KAREL程序的参数2的值为 0

  S - 字符串(传入参数类型为STRING)

  允许用户传入字符串,并用字符串进行提示:

  S04="Rotation VR"

 

  

  后加初始值的情况:

  S04="Rotation VR":"HELLO"

 

  注意,这与常数的初始值不一样,字符串值使用双引号""包含。

  W -字符串表(传入参数类型为STRING)

  允许用户从上拉列表选择,传入值只能为字符串类型,多个枚举值用","隔开,一个参数多支持35个枚举。

  W03="$KAREL_ENB","$APPLICATION[1]","None"

  

 

  一个DT文件,支持1000个程序的注记,因此你可以按照语法结构进行多个程序设定:

  

  系统变量TX控制显示(重启生效):

  

  加载错误与对策:

  我开始接广告了,为自己挣些零花钱。因此今天是次接到推广的广告,但不影响文章的发布,广告大概一个月去接一次。在文章发布过后一天,就可以把广告的文章删除啦,不影响后续阅读。现在做一个调研,麻烦动动手指来投个票吧 ^_^

 

  更多咨询:发那科机器人

发那科机器人发那科机器人

 

联系热线:18621383601 联系人:石川 联系地址:上海市宝山区富联一路98弄6号

技术和报价服务:星期一至星期六8:00-22:00 发那科机器人系统集成商

返回
顶部