《机器人现场编程-变量的定义.pptx》由会员分享,可在线阅读,更多相关《机器人现场编程-变量的定义.pptx(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、变量 变量的定义变量主要分类n 位姿变量n 实型变量n 字符串变量位姿变量定义:描述位姿信息的变量被称为位姿变量。位姿变量仅在有赋值时才被定义。它会保持未定义状态直到被赋予数值,如果执行了含未定义变量的程序,会报出错。位姿变量位姿变量在以下的情况中很有用:u相同的位姿数据被重复利用而没有必要每次示教其位姿。u一个已定义的位姿变量可在不同的程序中使用。u一个已定义位姿变量可以被用来或被改变来定义一个不同的位姿。u计算值可被用作为位姿信息,以取代使用示教器对机器人进行耗时的示教工作。u位姿变量可以自由命名,使程序变得更易读。位姿变量的三种定义方法-监控指令定义1)HERE指令把机器人的当前位姿数据
2、存储在指定名称下。示例1:使用关节位移值变量名以#开头,以区别于变换值。紧跟在指令后面,显示当前位姿的关节位移值:HERE#pose JT1JT2JT3JT4JT5JT6xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx变化吗?(放弃请按RETURN键)位姿变量的三种定义方法-监控指令定义示例2:使用变换值紧跟在指令后面,显示当前位姿的变换值:HEREpose XmmYmmZmmOdegAdegTdegxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx变化吗?(放弃请按RETURN键)位姿变量的三种定义方法-监控指令定义2)P
3、OINT指令用另一个已定义的位姿变量来定义一个位姿,或通过终端输入数值来定义它。示例1:使用关节位移值(定义一个新的、未定义过的变量)POINT#pose JT1JT2JT3JT4JT5JT60.0000.0000.0000.0000.0000.000变化吗?(放弃请按RETURN键)输入新值,各值之间以逗号为分隔:xxx,xxx,xxx,xxx,xxx,xxx位姿变量的三种定义方法-监控指令定义示例2:使用关节位移值(改变一个已定义变量的值)POINT#pose JT1JT2JT3JT4JT5JT610.00020.00030.00040.00050.00040.000变化吗?(放弃请按RE
4、TURN键)输入要改变的值:30,20 将JT1和JT5的值改变为30和20。位姿变量的三种定义方法-监控指令定义示例3:替换一个已定义变量的值POINTpose_1=pose_2 JT1JT2JT3JT4JT5JT610.00020.00030.00040.00050.00040.000变化吗?(放弃请按RETURN键)显示要定义给pose_1的值(Pose_2的最新值),按键,将这个值设置给pose_1。位姿变量的三种定义方法-程序命令定义1)HERE命令将机器人的当前位姿数据存储到指定名称下。HEREpose注意:如果是关节位移值变量,变量名以#开始,如:#pick,#start。如果是
5、变换值变量,变量名没有前缀#,如:pick,start。2)POINT命令可用一个已定义的位姿来替代一个位姿变量。POINTpose_1=pose_2变量“pose_1”被已定义的变量“pose_2”的值代替,如果“pose_2”未定义则报出错。位姿变量的三种定义方法-使用复合变换值复合变换值或相对变换值,即在两个坐标系之间的变换值,用在两个或多个过渡坐标系之间的变换值的组合来表达。如“plate”是相对于基础坐标系的变换值的变量名,描述了平板上的坐标系。如果有个相对于位置“plate”的物体的位姿被定义为“object”,那么该物体object相对于机器人基础坐标系的复合变换值,可以用“pl
6、ate+object”来描述。位姿变量的三种定义方法-使用复合变换值示例:位姿变量的三种定义方法-使用复合变换值(1)用示教器将机器人工具点动到要命名为“plate”的位姿,然后输入以下指令将此位姿定义为plate。HEREplate(2)将机器人工具点动到要命名为“object”的位姿,并输入:HEREplate+object 变换值“object”现在定义为相对于“plate”的当前位姿(如果“plate”在此时仍未定义,“object”将不能被定义并且报出错)。(3)将机械手移动到捡起取出object的位姿,并输入:HEREplate+object+pickup(4)最后的命令定义相对于
7、变换值“object”的位姿变量“pickup”。位姿变量的三种定义方法-使用复合变换值注意:复合变换值通过几个独立变换值的“+”结合来定义。请在“+”和变换值之间不要留任何空格。用这种方法,你可以结合任意多的变换值。如果机器人要在指定为相对于“object”的“pickup”位姿处捡起object,程序应该这样写:JMOVEplate+object+pickup或LMOVEplate+object+pickup位姿变量的三种定义方法-使用复合变换值说明:1.不要改变相对变换值表达式中的变换值变量的顺序。例如,如果变换值变量“b”被定义为相对于变换值变量“a”,表达式应该为“a+b”,而不是“
8、b+a”。2.上例中的位姿数据“object”和“pickup”被定义为了相对于其他位姿数据。因此,不要使用“JMOVEobject”或“LMOVEpickup”指令,除非确信它在程序中的目的和影响。位姿变量的三种定义方法-使用复合变换值在重复使用复合变换值时,请使用POINT命令来减少计算复合变换值的时间。例如,要接近位姿“pickup”,然后向“pickup”位姿移动,可能输入:JAPPROplate+object+pickup,100/接近“pickup”上方100 mmLMOVEplate+object+pickup/直线运动到“pickup”然而,如果输入以下命令,将可以节省计算时间
9、:POINTx=plate+object+pickup/计算目标位姿JAPPROx,100/接近目标上方100mmLMOVEx/直线运动到目标这两个程序的结果动作相同,但是后者计算一次混合转换,因此执行时间更短。在这个非常简单例子中,执行时间的差异是很小的,但是在更复杂的程序中,它可产生很大的差异,并且可以缩短整个循环时间。实型变量的定义实型变量用赋值命令(=)来定义,给实型变量赋值的格式是:Real_variable_name=numeric_value示例:a=10.5count=i*2+8Z2=Z1+5.2左侧的变量可以是数量变量(如计数),也可以是数组元素(如Z2)。变量仅在赋值时定义
10、。在赋值前,它一直处于未定义状态,如果执行了含有未定义变量的程序,将报出错。右侧的数值可以是一个常数、一个变量或者是一个数学表达式。在处理赋值命令时,先计算赋值命令的右侧值,然后把这个值赋给左侧的变量。实型变量的定义如果命令左侧的变量是一个新变量或以前从未被赋值过,右边的值将被自动赋值给该变量。如果左侧变量是个已定义的变量,这个新值将替换此变量的当前值。例如,指令“x=3”赋值3给变量“x”。它读作“赋值3给x”,而不是“x等于3”。下面的例子将清晰地解释其处理过程:x=x+1如果此例是一个数学等式,读作“x等于x加1”,但它没有意义,作为赋值命令,它应该读作“赋值x加1给x”。这样,先计算“
11、x”的当前值和1的和,然后把结果值作为一个新的数值赋值给“x”。因此,这个等式要求首先定义x,如下所示:x=3x=x+1这时,“x”的结果值为4。字符串变量的定义字符串变量用赋值命令(=)定义,给字符串变量赋值的格式是:$string_variable=string_value示例:$a1=$a2$errormess2=“timeover”左边的字符变量可以是一个变量(如$name),也可以是数组元素(如$line2)。只有当变量在被创建了名字并被赋予数值时,它才被定义。在赋值前,它一直处于未定义状态,如果执行了含有未定义变量的程序,将报出错。字符串变量的定义右边的字符串可以是字符串常数、字符串变量或者是字符表达式。在处理赋值命令时,先计算赋值命令右侧的值,然后把这个值赋给左侧的变量。$name=“KAWASAKIHEAVYINDUSTRIESLTD.”在上述命令中,把“”括起来的的字符串赋值给变量“$name”,如果指令左侧的变量以前未被用过,此字符串将被自动赋值。如果左侧的变量是个已定义的变量,这个命令将用右侧的新字符串替换当前的字符串。TheEndTheEnd!