pos数据如何获取(库卡变量查找功能)

快鱼网 41 0

更多内容请点击 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工控人,定期分享实用资料与技术解答!!!

标签: 变量

抱歉,评论功能暂时关闭!