KUKA 变量

注1:本文仅代表本人对机器人使用的一些建议,在使用机器人前,还请详细阅读库卡机器人官方资料,道路千万条,安全第一条!!!

注2:技术有限,欢迎各位大大在阅读过程中发现各类问题,并且批评指正!!!

库卡如何自己声明变量?在哪里声明?有哪些常用的系统变量?都是啥意思?关于变量,你有十万个为什么,听我慢慢道来~~~

本文中编程的内容涉及到使用WorkVisual,还不会的可以学习KUKA WorkVisual 编程教学;


目录

一、变量

1. 变量简介

2. 变量的声明和初始化

3. 全局变量和局部变量

二、系统变量

1. 系统变量在哪里

2. $Config.dat

3. 常用的系统变量介绍


一、变量

1. 变量简介

变量根据作用范围可以分为全局变量和局部变量两种。

从类型来分主要有四大基本类型:整型(INT),实数型(REAL),布尔型(BOOL),字符型(CHAR);

此外常用的结构体变量有:点位类型(E6POS)

2. 变量的声明和初始化

在.src程序中声明变量需要在程序开头声明,.dat中随意;请勿在.src和.dat文件中声明同名变量,会出现报错。

(1)声明方法,以INT型为例(颜色变淡表示该变量没被使用)

DECL INT NAME1

.src:

KUKA 变量_第1张图片

.dat:

KUKA 变量_第2张图片

(2)初始化方法,以INT型为例:

注:在.dat文件中声明+初始化的变量可以在程序中直接使用,且具有记忆功能,若变量值发生改变,那么.dat文件中变量的值也会发生相应改变,这是一个永久不可逆过程。

;.src: 
DECL INT NAME1
NAME1 = 1
;.dat: 
DECL INT NAME1 = 1

.src:

KUKA 变量_第3张图片

.dat:

KUKA 变量_第4张图片

3. 全局变量和局部变量

两种变量本质区别就是声明的地方不同;

(1)局部变量声明

如 一、2.(1)中所示的声明方法声明的变量均为局部变量,只能在声明程序中使用

(2)全局变量声明

注:为方便学习,本文只介绍最简单的全局变量声明方法。

顾名思义,全局变量就是全局都可以使用的变量;本文推荐在R1/System/Config.dat中声明全局变量,简单明了;

KUKA 变量_第5张图片

打开Config.dat文件后拉到最底下,找到USER GLOBALS,打开折叠,进行声明:

KUKA 变量_第6张图片

4. 常见变量类型示例

(1)INT型:

KUKA 变量_第7张图片

(2)REAL型:

KUKA 变量_第8张图片

(3)BOOL型:

KUKA 变量_第9张图片

(4)CHAR型:

字符型一般结合数组使用,日常编程用的很少,此处不加赘述;

(5)E6POS型:

KUKA 变量_第10张图片


二、系统变量

系统变量其实很好分辨,基本都是带美元符号($)的,不带的也有,但是很少,不影响大局;且系统变量都属于全局变量。

1. 系统变量在哪里

系统变量在哪里?主要集中在R1/Mada和R1/System/$Config.dat中,Mada文件中的两个.dat文件不建议做任何改动,搞的系统崩溃就得不偿失了!对于$Config.dat如何使用,后面也会做简单介绍;

2. $Config.dat

$Config.dat除了可以用来声明全局变量外,还有一些常用的系统变量,可以在程序中使用;

(1)文件结构

BASISTECH GLOBALS:系统定义的变量默认值、结构体、功能模块……

AUTOEXT GLOBALS:涉及外部自动的变量

BackupManagerConfig 和 Conveyor ,水平有限,目前不知道干嘛的……

USER GLOBALS:留给用户自定义全局变量

KUKA 变量_第11张图片

(2)可修改的变量(WorkVisual中使用ctrl+F可以搜索)

注:其他内容,非必要请不要修改,以免引起不必要的麻烦!!!

① HOME位

; HOME POSITION

KUKA 变量_第12张图片

② 工具坐标系

DECL FRAME TOOL_DATA[16]

KUKA 变量_第13张图片

③ 负载数据

DECL LOAD LOAD_DATA[16]

KUKA 变量_第14张图片

④ 基坐标系

DECL FRAME BASE_DATA[32]

KUKA 变量_第15张图片

(3)使用场景举例

① HOME指定角度,直接在Config.dat中输入;

② 在程序中使用的负载数据需要修改

KUKA 变量_第16张图片

3. 常用的系统变量介绍

(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)外部自动相关

建议进入 菜单/配置/输入输出端/外部自动运行 中,查看输入端/输出端的变量,有很多都是很有用的!外部自动的变量有很多资料介绍,我这边就不赘述了。

最后再次声明,希望大家在使用机器人前能详细阅读库卡机器人官方资料,本文仅供参考,对于出现的任何后果,本人概不负责!

你可能感兴趣的:(KUKA,制造)