Fanuc机器人 Karel 编程学习(三)---R/W 位置寄存器值

使用Karel 设置和获取Fanuc 位置寄存器值

说明:由于项目需要特意研究了Fanuc Karel 语言,Karel 语言比较小众 网络上资料很少,因此把过程记录下来,方便其他人,也方便自己以后查阅。

PROGRAM RWREG1
--忽略错误暂停,命令暂停,在TP启用时忽略暂停的请求
%NOPAUSE = ERROR +COMMAND +TPENABLE  

VAR
	status :INTEGER
	str1:STRING[254]
	str2:STRING[254]
		
	s_curp:XYZWPR   --笛卡尔坐标位置变量
	g_curp:XYZWPR   --笛卡尔坐标位置变量
	s_jntp:JOINTPOS  --关节坐标位置变量
	g_jntp:JOINTPOS  --关节坐标位置变量
	
	x:REAL
	y:REAL
	z:REAL
	w:REAL
	p:REAL
	r:REAL
	
	strX:STRING[10]
	strY:STRING[10]
	strZ:STRING[10]
	strW:STRING[10]
	strP:STRING[10]
	strR:STRING[10]
	
	j1:REAL
	j2:REAL
	j3:REAL
	j4:REAL
	j5:REAL
	j6:REAL	

	strJ1:STRING[10]
	strJ2:STRING[10]
	strJ3:STRING[10]
	strJ4:STRING[10]
	strJ5:STRING[10]
	strJ6:STRING[10]
	
	realJP : ARRAY [9] OF REAL
	
	strPos :STRING[254]
	strJpos :STRING[254]
	

BEGIN
	FORCE_SPMENU(TP_PANEL,SPI_TPUSER,1) --显示用户界面
	WRITE('hello',CR)
	
	s_curp = CURPOS(0,0)  --返回机器人当前笛卡尔坐标位置,两个形参使用默认值(0,0)
	s_jntp=CURJPOS(0,0)   --返回机器人当前关节坐标位置
	
	SET_POS_REG(1,s_curp, status)  -- 变量存入位置寄存器 PR[1]
	SET_JPOS_REG(2,s_jntp, status)  -- 变量存入位置寄存器 PR[2]
	
	g_curp = GET_POS_REG(1,status)   -- 获取寄存器值 PR[1] 
	g_jntp = GET_JPOS_REG(2,status)   -- 获取寄存器值 PR[2] 
	x = g_curp.x
	y = g_curp.y
	z = g_curp.z
	w = g_curp.w
	p  = g_curp.p
	r   = g_curp.r
	
	CNV_JPOS_REL (g_jntp, realJP, status)  
	j1 =  realJP[1]
	j2 =  realJP[2]
	j3 =  realJP[3]
	j4 =  realJP[4]
	j5 =  realJP[5]
	j6 =  realJP[6]
	
	CNV_REAL_STR(x,1,2,strX)
	CNV_REAL_STR(y,1,2,strY)
	CNV_REAL_STR(z,1,2,strZ)
	CNV_REAL_STR(w,1,2,strW)
	CNV_REAL_STR(p,1,2,strP)
	CNV_REAL_STR(r,1,2,strR)
	
	CNV_REAL_STR(j1,1,2,strJ1)
	CNV_REAL_STR(j2,1,2,strJ2)
	CNV_REAL_STR(j3,1,2,strJ3)
	CNV_REAL_STR(j4,1,2,strJ4)
	CNV_REAL_STR(j5,1,2,strJ5)
	CNV_REAL_STR(j6,1,2,strJ6)
	strPos = strX+','+strY+','+strZ+','+strW+','+strP+','+strR
	strJpos = strJ1+','+strJ2+','+strJ3+','+strJ4+','+strJ5+','+strJ6
	
	WRITE(strPos,CR)
	WRITE(strJpos,CR)
	
END RWREG1

最后运行的效果如下

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

u无名人士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值