Fanuc-Karel小程序进行程序备份与清除
解放双手,通过一串FANUC-karel小代码,对FANUC机器人进行程序备份与清除,其运行效果如下。
简单小代码如下,代码很简单,懂的大佬请直接忽略不看。主要介绍PROG_BACKUP以及PROG_CLEAR两个函数的使用方法。
PROGRAM BackClear
%COMMENT = 'BackAndClear'
%NOLOCKGROUP
%NOBUSYLAMP
VAR
STATUS:INTEGER
data_type1:INTEGER
real_value:REAL
int1_value:INTEGER
str1_value:STRING[254]
file_spec :STRING[254]
prog_type :INTEGER
max_size: INTEGER
write_prot:BOOLEAN
prog_name:STRING[50]
int_var:INTEGER
ROUTINE MenuSelect
BEGIN
WRITE(CHR(137),CHR(128))--用户清清屏
WRITE ('program backup and cleanup' ,CR)
WRITE('Type 1 backup' ,CR)
WRITE('Type 2 cleared' ,CR)
WRITE('Progam Tips',' Author : Robot Yang ' ,CR)
FORCE_SPMENU(TP_PANEL,SPI_TPUSER,1)--强制弹出窗口
END MenuSelect
BEGIN
GET_TPE_PRM(1, data_type1, int1_value,real_value,str1_value,STATUS)--获取AR[1]
IF data_type1= 3 THEN--检查AR[1]是否为字符串
MenuSelect--调用例行程序
WRITE(CR, 'Enter an INTEGER: ')
READ(int_var)--读取int_var
IF int_var=1 THEN --如果输入1,则进行备份
PROG_BACKUP(str1_value, PBR_NVRTYPE, 1500, TRUE, STATUS)
IF STATUS<>0 THEN
WRITE('Backup Error',CR)
POST_ERR(STATUS, '', 0, 5)
else
WRITE('The Program Backup successful',CR)
ENDIF
else
IF int_var=2 THEN--如果输入2,则进行清除
PROG_CLEAR(str1_value, PBR_NVRTYPE, STATUS)
IF STATUS<>0 THEN
WRITE('CLEAR Error',CR)
POST_ERR(STATUS, '', 0, 5)
else
WRITE('The Program Cleared successful',CR)
ENDIF
ENDIF
ENDIF
else
WRITE('Please enter AR[1] correctly as a string',CR)
FORCE_SPMENU(TP_PANEL,SPI_TPUSER,1)
POST_ERR(STATUS, '', 0, 5)
ENDIF
END BackClear
PROG_BACKUP :其主要功能为对指定的程序进行保存。
语法 : PROG_BACKUP (file_spec, prog_type, max_size, write_prot, status)
file_spec :STRING --指需要备份的文件路径以及所需要备份的程序名
prog_type :INTEGER --指要保存的程序类型,VR\JB\MQ 等
max_size: INTEGER --指程序备份路径所需的磁盘空间的*大大小,单位为KB
write_prot: BOOLEAN--备份程序的保护状态,如果为输入为true的话将指定应保存保护程序。如果为false的话将指定不应保存受保护程序。
status :INTEGER
PROG_BACKUP('UD1:\Karel\PNS0001',PBR_NVRTYPE, 1500, TRUE, STATUS)
那么这句语句的意思就可以这样理解:将具有相应程序的PNS0001保存到UD1上的Karel子目录(如果没有他将新建一个)。它将保存由PNS0001调用的所有程序VR,JB,PR,MR,TP。保存写保护程序。UD1:设备上的可用空间少于如果少于1500kb的话,它将会返回失败。
PROG_CLEAR :清除指定的程序下调用的所有程序。
语法 : PROG_CLEAR (prog_name, prog_type, status)
prog_name :STRING --指定清除程序的程序名
prog_type :INTEGER --指定清除程序的程序lei'x
PROG_CLEAR('PNS0001', PBR_NVRTYPE, STATUS)
这句语句的意思就可以这样理解: 它将清除由PNS0001调用的所有程序VR,JB,PR,MR,TP。如果STATUS返回不等于0,则发生错误。
更多资讯:发那科机器人