更多内容请点击 R工控人 关注
********************************
如何获取更多经典文章?
关注 R工控人,定期分享实用资料与技术解答!!!
库卡变量查找功能
库卡机器人上如何通过Tag来查询变量的值,借用ABB的一个指令:
该功能通过变量名的字符串来获取此变量对象的值。
最近,也初步开发了插件来实现该功能,该功能暂定为SearchVariable.
其中,KRL功能代码如下:
(1).SearchVar.dat:
DEFDAT SearchVariable PUBLICDECL CHAR cVariableName[128]DECL CHAR cVariableResult[256]DECL INT zReadStatus=0DECL BOOL bSearchVarRequestENDDAT
(2).SearchVar.src:
DEFFCT CHAR[256] SearchVariable (Var[]:IN )DECL CHAR Var[]DECL INT IFOR I=1 TO 128 cVariableName[I]=0ENDFORzReadStatus=0FOR I=1 TO 256 cVariableResult[i]=0ENDFORcVariableName[]=Var[]bSearchVarRequest=TRUEWAIT FOR zReadStatus<>0RETURN (cVariableResult[])ENDFCT
测试过程:
(1).测试代码:
DEF Example ( )DECL INT IDECL CHAR RET[256]DECL E6AXIS AxisPosDECL INT OV_PRODECL BOOL MoveEnableDECL E6POS PosActDECL FRAME fBaseDECL BOOL bOKDECL E6POS XP1DECL E6POS XP[5]BAS(#BASE,1)BAS(#TOOL,1)FOR I=1 TO 5 XP[I]=$POS_ACT XP[I].X=XP[I].X+I*20 XP[I].Y=XP[I].Y-I*20 XP[I].Z=XP[I].Z+I*15ENDFORBASE_DATA[1]={X 100,Y 200,Z -150,A 90,B 80,C -63}RET[]=SearchVariable("$OV_PRO")bOK=STRTOINT(RET[],OV_PRO)HALTRET[]=SearchVariable("$AXIS_ACT")bOK=STRTOE6AXIS(RET[],AxisPos)HALTRET[]=SearchVariable("$MOVE_ENABLE")bOK=STRTOBOOL(RET[],MoveEnable)HALTRET[]=SearchVariable("BASE_DATA[1]")bOK=STRTOFRAME(RET[],fBase)HALTRET[]=SearchVariable("XP[1]")bOK=STRTOE6POS(RET[],XP1)HALTRET[]=SearchVariable("$PRO_STATE0")HALTEND
变量$OV_PRO:
变量$AXIS_ACT:
变量$MOVE_ENABLE:
变量BASE_DATA[1]
变量XP[1]:
变量$PRO_STATE0:
另外,也可以通过联机表单来操作:
关于返回值变量,如果系统定义了,则不需要定义按键来定义,如果未定义可以通过按键来定义,如下自动定义返回变量了:
运行看结果:
目前该功能仅支持全局变量读取,后续会扩展支持局部变量的读取;目前支持枚举变量、结构体变量以及系统自带的数据类型,如:BOOL、INT、REAL、FRAME、E6POS、POS、E6AXIS、AXIS等
3. 实现这个功能的另外一个目的就是为了和库卡官方选项EthernetKRL搭配使用来实现变量的读取功能(类似OpenShowVar),目前仅实现了变量的读取,主要可以用变量数据采集。
********************************
更多内容请点击 R工控人 关注
欢迎大家问题留言,沟通交流
关注 R工控人,定期分享实用资料与技术解答!!!
标签: 变量
②文章观点仅代表原作者本人不代表本站立场,并不完全代表本站赞同其观点和对其真实性负责。
③文章版权归原作者所有,部分转载文章仅为传播更多信息、受益服务用户之目的,如信息标记有误,请联系站长修正。
④本站一律禁止以任何方式发布或转载任何违法违规的相关信息,如发现本站上有涉嫌侵权/违规及任何不妥的内容,请第一时间反馈。发送邮件到 88667178@qq.com,经核实立即修正或删除。