FANUC KAREL 温故而知新

前几天看了保存点位,赋值点位的程序 ,过了一周回头再看又有了新收获!

先上程序

PROGRAM TEST_KAREL1

%ALPHABETIZE
%NOLOCKGROUP
%NOPAUSE=ERROR+COMMAND+TPENABLE


CONST
MAX_AXS = 9
JNT_POS = 9
XYZ_POS = 2
VAR
yesno : INTEGER
to_prog: STRING[25]
open_id: INTEGER
status: INTEGER
position_no: INTEGER
jp_org : ARRAY [9] OF REAL
jp_new : ARRAY [9] OF REAL
prg_select: INTEGER
arr_size : INTEGER
indx : INTEGER
indx_pos: INTEGER
num_pos : INTEGER
indx_axs: INTEGER
num_axs : INTEGER
pos_typ : INTEGER
group_no: INTEGER
org_jpos : JOINTPOS
new_jpos : JOINTPOS
posn_type: INTEGER
org_xyz : XYZWPREXT

new_xyz : XYZWPR
new_xyz1 : XYZWPR
new_xyz2 : XYZWPREXT
new_xyz3 : XYZWPREXT
xyz : XYZWPR
prog_index : INTEGER
pause_entry:BOOLEAN

BEGIN

WRITE(CHR(128),CHR(137))  --清屏
FORCE_SPMENU(TP_PANEL, SPI_TPUSER, 1) --显示TP菜单
to_prog = 'B_TEST'  --打开TP程序名称
OPEN_TPE (to_prog, TPE_RWACC, TPE_RDREJ, open_id, status)
--打开   程序文件     读写                 id      状态
IF status<>0 THEN
	CLOSE_TPE (open_id, status)
ENDIF
--定义工具坐标 用户坐标
$GROUP[1].$UTOOL = $MNUTOOL[1,1] --uTool 1
$GROUP[1].$UFRAME = $MNUFRAME[1,1] --uFrame 1
--运动组
group_no = 1
position_no = 3
pause_entry = FALSE  --进入程序不暂停
------------------------用户界面交互 指定程序行号 确认是否正确
REPEAT --手动输入程序行号 询问是否正确  
WRITE ('输入行号 ',CR)
READ (indx_pos)
WRITE ('输入是否正确 Yes:1, No:0 ? ',CR)
READ (yesno)
UNTIL (yesno = 1)
--获取指定行位置 的数据              1          1        2        0         0
GET_POS_TYP (open_id, indx_pos, group_no, posn_type, num_axs, status)
org_xyz = GET_POS_TPE (open_id , indx_pos, status)
--获取当前位置 默认(0,0,指定动作组)
new_xyz = CURPOS(0,0,1)

new_xyz1 = new_xyz
new_xyz1.x = new_xyz1.x + 100
new_xyz1.y = new_xyz1.y + 100
new_xyz1.z = new_xyz1.z + 100
--将new_xyz1值保存到PR[1]中
SET_POS_REG(1,new_xyz1,status)   --如果单纯这行指令 要输入最上面的三行
CLOSE_TPE (open_id, status)      --注意 如果想要在这个程序里运行打开的程序  首先要先关闭才能运行   这个很容易忽视

--在示教器上显示值  
WRITE ('get_pos_typ status', status,CR)
WRITE ('open_id:',open_id, CR)  --打开项目id  
WRITE ('指定位置:',org_xyz,CR)
WRITE ('当前位置:',new_xyz,CR)
WRITE ('PR[1]位置信息:',new_xyz1,CR)
--调用需要的程序  可以实现在karel里改掉程序里的值
CALL_PROGLIN('B_TEST',1, prog_index,FALSE)
WRITE ('当前位置:',new_xyz,CR)
WRITE ('prog_index:',prog_index,CR)

--如果还想实现什么功能 都可以在里面实现
--CLOSE_TPE (open_id, status)
END TEST_KAREL1

运行程序就会让你输入所需要的项目

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值