本文目录
ABB机器人程序数据的类型分类是什么?
ABB机器人控制器数据类型多达100余种,其中常见的数据类型包括基本数据、i/o数据、运动相关数据。
1、基本数据
基本数据:
bool 逻辑值:逻辑状态下赋予的真或者假。逻辑值有两种情况:成立和不成立则逻辑值为真使用true或1表示不成立则逻辑值为假使用false或0表示
byte 字节值:用于计量存储容量的一种计量单位,取值范围为(0-255)
num 数值:变量、可存储整数或小数整数取值范围(-8388607~8388608)
dnum 双数值:可存储整数和小数,整数取值范围(-4503599627370495~+4503599627370496)
string 字符串:字符串是由数字、字母、下划线组成的一串字符。他在编程语言中表示文本的数据类型。
stringdig 只含数字的字符串:可处理不大于4294967295的正整数
2、i/o 数 据
dionum 数字值:取值为0或1用于处理数字i/o信号,数字i/o信号中0作为低电平0~0.7v,1作为高电平3.4~5.0v
signaldi/do 数字输入/输出信号:二进制值输入、输出 如开关接通是1,断开是0
signalgi/go 数字量输入/输出信号组:多个数字量输入或输出组合配合使用。
signalai 模拟量输入:例通过温度采样器采集到一个温度值,就要经过变送器转换,转换成PLC能够识别的二进制数
signalao 模拟量输出:数据-变送器-执行机构
3、运 动 相 关 数 据
robtarget 位置数据:定义机械臂和附加轴的位置
robjoint 关节数据:定义机械臂各关节位置
speeddate 速度数据:定义机械臂和轴移动速率,包含四个参数:
v_tcp 表示工具中心点速率,单位mm/s;
v_ori 表示TCP重定位速率,单位(°)/s;
v_leax 表示线性外轴的速率,单位mm/s;
v_reax 表示旋转外轴速率,单位(°)/s
zonedata 区域数据:一般也称为转弯半径,用于定义机器人轴在朝向下一个移动位置前如何接近编程位置
tooldata 工具数据:用于定义工具的特征,包含工具中心点(TCP)的位置和方向,以及工具的负载
wobjdata 工件数据:用于定义工件的位置及状态
loaddata 负载数据:用于定义机械臂安装界面的负载
4、数据存储类型
ABB机器人数据存储类型分为三种
CONST 常量:数据在定义时已赋予了数值,不能在程序中进行修改,除非手动修改
VAR 变量:数据在程序执行过程中停止时,会保持当前的值。但如果程序指针被移动到主程序后,数据就会丢失
PERS 可变量:无论程序的指针如何,数据都会保持最后赋予的值。在机器人执行的rapid程序中也可以对可变量存储类型进行赋值操作,在程序执行后,赋值的结果会一直保持,直到对其进行重新赋值。
?
处理目标集合的方法?
集合是唯一对象的无序组合。这意味着它不是列表之类的顺序的对象,不能包含相同 的元素。在没有顺序要求的情况下,集合是删除重复、计算交集、并集以及两个或以上对象组之间差异的理想数据结构。集合不支持索引和切片操作,但'in'和 'not in'运算符可以用来测试一个元素是否在集合中。
创建集合
要创建集合,可使用方法set(x) ,其中x是一个类序列的对象(即字符串、元组或列表)。
>>> set ('MGSNKSKPKDASQ')
set (['A','D','G','K','M','N','Q','P','S'])
>>> set ((1,2,3,4 ))
set([1,2,3,4])
>>> set ([1,2,3,'a','b','c'])
set (['a',1,2,3,'c','b'])
即使输入文件中的元素顺序不同,所产生的集合中的元素也会完全相同。 集合中的元素必须是不可变对象,如数字、字符串或元组,因而列表、字典或其他集合不能作为集合的元素。
由于集合是唯一元素的组合,创建集合时多余的元素会被自动删除,如下所示 :
>>> id_list = ['P04637','P02340','P10361 ','Q29537',' P04637','P10361 ',' P10361']
>>> id_set = set(id_list)
>>>id_set
set (['Q29537','P10361','P04637'])
这是一种非常简洁的寻找唯一标识符的方式。
集合的方法
方法 add()可用于将一个元素添加到集合,如果所添加的元素已存在于该集合中,add() 就不起任何作用。方法 update()用于将几个元素添加到集合,除非它们在集合中己存在。 pop() 、remove()和 discard()可以将元素从集合中去除。
>>>s1 = set ([1,2,3,4,5])
> >>s1.add (10)
>>>s1
set([1,2,3,4,5,10])
>>>s1.update ( ['a','b','c'] )
>>>s1
set (['a',1,2,3,4,5,10,'c','b'])
检查集合成员
运算符in可以检查元素是否包含在集合中。
>>>5 in s1
True
>>>6 in s1
字符串对象和元组对象是不可变对象?
都是常量对象,不可以改变
元组是一维数据吗?
元组(tuple)是不可变的Python对象。元组是一种序列,就像列表一样,都可以描述一组数据的集合,它们都是容器,是一系列组合的对象。元组和列表之间的主要区别是元组不能像列表那样改变元素的值,可以简单地理解为“只读列表”。 元组使用小括号: (),而列表使用方括号: [] 。
元祖无序而列表有序对吗?
元组合列表都属于有序序列,元组属于不可变序列,不可以修改元组中的元素的值,也无法为元组增加或删除元素。
列表是包含若干元素的有序,连续内存空间。可以对列表进行增加删除和修改的一系列操作。