注1:本文仅代表本人对机器人使用的一些建议,在使用机器人前,还请详细阅读库卡机器人官方资料,道路千万条,安全第一条!!!
注2:技术有限,欢迎各位大大在阅读过程中发现各类问题,并且批评指正!!!
库卡如何自己声明变量?在哪里声明?有哪些常用的系统变量?都是啥意思?关于变量,你有十万个为什么,听我慢慢道来~~~
本文中编程的内容涉及到使用WorkVisual,还不会的可以学习KUKA WorkVisual 编程教学;
目录
一、变量
1. 变量简介
2. 变量的声明和初始化
3. 全局变量和局部变量
二、系统变量
1. 系统变量在哪里
2. $Config.dat
3. 常用的系统变量介绍
变量根据作用范围可以分为全局变量和局部变量两种。
从类型来分主要有四大基本类型:整型(INT),实数型(REAL),布尔型(BOOL),字符型(CHAR);
此外常用的结构体变量有:点位类型(E6POS)
在.src程序中声明变量需要在程序开头声明,.dat中随意;请勿在.src和.dat文件中声明同名变量,会出现报错。
(1)声明方法,以INT型为例(颜色变淡表示该变量没被使用)
DECL INT NAME1
.src:
.dat:
(2)初始化方法,以INT型为例:
注:在.dat文件中声明+初始化的变量可以在程序中直接使用,且具有记忆功能,若变量值发生改变,那么.dat文件中变量的值也会发生相应改变,这是一个永久不可逆过程。
;.src:
DECL INT NAME1
NAME1 = 1
;.dat:
DECL INT NAME1 = 1
.src:
.dat:
两种变量本质区别就是声明的地方不同;
(1)局部变量声明
如 一、2.(1)中所示的声明方法声明的变量均为局部变量,只能在声明程序中使用
(2)全局变量声明
注:为方便学习,本文只介绍最简单的全局变量声明方法。
顾名思义,全局变量就是全局都可以使用的变量;本文推荐在R1/System/Config.dat中声明全局变量,简单明了;
打开Config.dat文件后拉到最底下,找到USER GLOBALS,打开折叠,进行声明:
4. 常见变量类型示例
(1)INT型:
(2)REAL型:
(3)BOOL型:
(4)CHAR型:
字符型一般结合数组使用,日常编程用的很少,此处不加赘述;
(5)E6POS型:
系统变量其实很好分辨,基本都是带美元符号($)的,不带的也有,但是很少,不影响大局;且系统变量都属于全局变量。
系统变量在哪里?主要集中在R1/Mada和R1/System/$Config.dat中,Mada文件中的两个.dat文件不建议做任何改动,搞的系统崩溃就得不偿失了!对于$Config.dat如何使用,后面也会做简单介绍;
$Config.dat除了可以用来声明全局变量外,还有一些常用的系统变量,可以在程序中使用;
(1)文件结构
BASISTECH GLOBALS:系统定义的变量默认值、结构体、功能模块……
AUTOEXT GLOBALS:涉及外部自动的变量
BackupManagerConfig 和 Conveyor ,水平有限,目前不知道干嘛的……
USER GLOBALS:留给用户自定义全局变量
(2)可修改的变量(WorkVisual中使用ctrl+F可以搜索)
注:其他内容,非必要请不要修改,以免引起不必要的麻烦!!!
① HOME位
; HOME POSITION
② 工具坐标系
DECL FRAME TOOL_DATA[16]
③ 负载数据
DECL LOAD LOAD_DATA[16]
④ 基坐标系
DECL FRAME BASE_DATA[32]
(3)使用场景举例
① HOME指定角度,直接在Config.dat中输入;
② 在程序中使用的负载数据需要修改
(1)运动相关
① $ACC.CP:加速度
注:用在自己输入的运动命令之前,对于系统定义好的运动指令无效!
$ACC.CP = 2 ; < 2.3
② $ACC_AXIS[]:轴加速度
注:用在自己输入的运动命令之前,对于系统定义好的运动指令无效!
DECL INT NUM
FOR NUM = 1 TO 6
$ACC_AXIS[NUM] = 50 ; 0 - 100%
ENDFOR
③ $VEL.CP:TCP速度
注:用在自己输入的运动命令之前,对于系统定义好的运动指令无效!
$VEL.CP = 2 ; < 3
④ $VEL_AXIS[]:轴速度
注:用在自己输入的运动命令之前,对于系统定义好的运动指令无效!
DECL INT NUM
FOR NUM = 1 TO 6
$VEL_AXIS[NUM] = 50 ; 0 - 100%
ENDFOR
⑤ $APO.CDIS:逼近距离
注:用在自己输入的运动命令之前,对于系统定义好的运动指令无效!
$APO.CDIS = 200 ; 0 - 500
⑥ $OV_PRO:程序倍率
注:程序中不建议直接使用,若有人调低倍率后测试,运行到该指令会立即改变程序倍率;可搭配后台或某些条件使用,示例:上位机控制机器人自动运行速度(抄作业的看过来);
$OV_PRO = 100 ; 0 - 100%
(2)坐标相关
① $BASE:基坐标
注:用在自己输入的运动命令之前,对于系统定义好的运动指令无效!
$BASE = BASE_DATA[1] ; 1 - 32
② $TOOL:工具坐标
注:用在自己输入的运动命令之前,对于系统定义好的运动指令无效!
$TOOL = TOOL_DATA[1] ; 1 - 16
③ $LOAD:负载
注:用在自己输入的运动命令之前,对于系统定义好的运动指令无效!
$LOAD = LOAD_DATA[1] ; 1 - 16
(3)外部自动相关
建议进入 菜单/配置/输入输出端/外部自动运行 中,查看输入端/输出端的变量,有很多都是很有用的!外部自动的变量有很多资料介绍,我这边就不赘述了。
最后再次声明,希望大家在使用机器人前能详细阅读库卡机器人官方资料,本文仅供参考,对于出现的任何后果,本人概不负责!