主营ABB、库卡KUKA、安川YASKAWA、发那科FANUC、欧地希OTC、川崎Kawasaki、遨博AUBO、现代HYUNDAI、电装DENSO、欧姆龙OMRON、爱普生EPSON等进口机器人项目集成、机器人代理、机器人配件、机器人售后维保、机器人培训一站式服务。
地址:上海市嘉定区博园路1333号1栋7层(王工:18616566200)
当说起CAST指令,估计绝大部分使用库卡机器人的技术员会感到陌生。此指令包含CAST_TO和CAST_FROM指令,主要再CREAD/CWRITE手册里有讲到。今天我们就来熟悉下这个两个指令:
1.CAST_TO:
CAST_TO指令将多个变量组合在一起并作为一个字符串缓存出现,简而言之,我们可以使用该指令将多个变量(***多10个)一起写入一个字符串缓存里。
语法: CAST_TO (Buffer, OFFSET, Var1 <, …,Var10>)
元素
描述
Buffer
1.类型:CHAR数组(字符串)
2.Buffer作为变量Var1…Var10写入的字符串缓存
OFFSET
1.类型:INT
2.OFFSET是指变量在字符串缓存Buffer中开始被写入的起始字节位置。其取值从0开始。例如:
-OFFSET=0 :变量写入是从第1个字节开始;
-OFFSET=2 :变量写入是从第3个字节开始,字节1/2的位置会被忽略;
Var1
..
..
Var10
1.待被写入字符串缓存Buffer中的变量,***多10个变量可被写入字符串缓存Buffer中;
2.待被写入字符串缓存Buffer中的变量在使用CAST_TO指令前,务必初始化赋值;
3.被写入字符串缓存Buffer的变量在Buffer所占字节数,取决于其本身的数据类型,如:
定义
说明
INT Var1
Var1写入缓存并占位4个字节;
BOOL Var2
Var2写入缓存并占位1个字节;
REAL Var3
Var3写入缓存并占位4个字节;
总结说明:
(1).CAST_TO指令的功能是将多个变量值写入一个字符串变量里;
(2).CAST_TO指令中变量的变换:变量值->二进制->Hex-ASCII->高低位互换->Hex-ASCII->写入Buffer
案例说明:将$Axis_Act/10/3.14/TRUE/”F”写入Buffer[ ]
DEF CAST_TO_EXAMPLE()
DECLCHAR Buffer[4096]
DECLINT Offset
Offset=0
CAST_TO(Buffer[],Offset,$Axis_Act,10,3.14,TRUE,”F”)
HALT
END
2. CAST_FROM:
CAST_FROM指令将一个字符串缓存数据分解成多个单一变量,简而言之,按数据类型从字符串变量中获取各变量的值;
语法: CAST_FROM(Buffer,OFFSET, Var1<,…,Var10>)
元素
描述
Buffer
1.类型:CHAR数组(字符串)
2.Buffer作为变量Var1…Var10数据存储的字符串缓存
OFFSET
1.类型:INT
2.OFFSET是指变量在字符串缓存Buffer中开始被读取的起始字节位置。其取值从0开始。例如:
-OFFSET=0 :变量读取是从第1个字节开始;
-OFFSET=2 :变量读取是从第3个字节开始,字节1/2的位置会被忽略;
Var1
..
..
Var10
1.从字符串缓存Buffer读取的变量,***多10个变量值可从字符串缓存Buffer中读取;
2.待被读取的字符串缓存Buffer在使用CAST_FROM指令前,务必初始化赋值;
3.从字符串缓存Buffer读取的变量在Buffer所占字节数,取决于其本身的数据类型,如:
定义
说明
INT Var1
Var1写入缓存并占位4个字节;
BOOL Var2
Var2写入缓存并占位1个字节;
REAL Var3
Var3写入缓存并占位4个字节;
案例说明:
DEF CAST_TO_FROM_EXAMPLE()
DECLCHAR Buffer[4096]
DECLINT Offset
DECLE6AXIS Var1
DECLINT Var2
DECLREAL Var3
DECLBOOL Var4
DECLCHAR Var5
Offset=0
CAST_TO(Buffer[],Offset,$Axis_Act,10,3.14,TRUE,”F”)
HALT
Offset=0
CAST_FROM(Buffer[],Offset,Var1)
HALT
Offset=48
CAST_FROM(Buffer[],Offset,Var2)
HALT
Offset=52
CAST_FROM(Buffer[],Offset,Var3)
HALT
Offset=56
CAST_FROM(Buffer[],Offset,Var4)
HALT
Offset=57
CAST_FROM(Buffer[],Offset,Var4)
HALT
END
总结说明:
(1).CAST_FROM指令的功能是从一个字符串变量读取各个变量的值;
(2).CAST_FROM指令中变量的变换:字符串->Hex-ASCII->高低位互换->Hex-ASCII->二进制->分配各变量;
3. CAST指令所允许的数据类型及占位:
序号
数据类型
占位
1
INT
4 字节
2
REAL
4 字节
3
BOOL
1 字节
4
CHAR
1 字节
5
ENUM
4 字节
6
SIGNALS
1 字节
7
6*REAL=24 字节
8
POS
6*REAL+2*INT=32 字节
9
AXIS
6*REAL=24 字节
10
E3POS
6*REAL+2*INT+3*REAL=44 字节
11
E3AXIS
6*REAL +3*REAL=36 字节
12
E6POS
6*REAL+2*INT+6*REAL=56 字节
13
E6AXIS
6*REAL +6*REAL=48 字节
总结说明:
(1).CAST指令可以处理简单数据类型(INT/REAL/BOOL/CHAR/ENUM)的数组;
(2).CAST指令不会检查数组中的元素是否初始化,随机值会被写入到未被初始化的元素中去;
(3).只有上表中序号7-13的结构体变量能用于CAST指令中;对于其他结构体变量,如需要使用CAST指令,则必须每一次处理一个元素;
(4).CAST_TO/CAST_FROM主要在做数据转时使用:数据高低字节转换(大小端问题 )、EthernetKRL字符串的处理等
- 下一篇:库卡机器人汽车控制箱解决方案
- 上一篇:库卡机器人故障处理