




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
机器人编程语言 VAL II 简介 刘景泰 审订 李岩 修改 200806 南开大学机器人与信息自动化研究所 2004 年 12 月 8 日 VAL II 机器人编程语言 第 1 页 共 53 页 目 录 第一章第一章 序言序言 5 第二章第二章 机器人位姿机器人位姿 6 第一节 精确点 PRECISION POINTS 6 第二节 变换 TRANSFORMATIONS 7 第三章第三章 监控命令监控命令 8 第一节 定义坐标位置 8 POINT 8 HERE 9 WHERE 9 TEACH 9 BASE 10 TOOL 10 第二节第二节 程序编辑命令程序编辑命令 10 EDIT 10 第三节第三节 程序和数据显示命令程序和数据显示命令 11 DIRECTORY 12 LLIST 或者 12 LISTL 12 PLIST 或者 12 LISTP 12 RLIST 或者 12 LISTR 12 第四节第四节 程序操作程序操作 12 COPY 12 RENAME 或者 13 RENAMEF 13 第五节第五节 程序和数据删除命令程序和数据删除命令 13 DELETE 13 PDELETE 或者 13 DELETEP 13 LDELETE 或者 13 DELETEL 13 RDELETE 或者 13 DELETER 13 第六节第六节 程序控制命令程序控制命令 14 一 对用户程序的控制 14 SPEED 14 EXECUTE 14 ABORT 15 XSTEP 15 DO 15 VAL II 机器人编程语言 第 2 页 共 53 页 PROCEED 15 RETRY 15 二 机器人控制程序的进程控制 16 PCEXECUTE 16 PCABORT 16 PCEND 16 PCPROCEED 16 PCRETRY 16 第七节第七节 系统状态与控制系统状态与控制 17 CALIBRATE 17 STATUS 17 PCSTATUS 17 FREE 17 ZERO 17 第八节第八节 系统参数与开关系统参数与开关 17 PARAMETER 18 ENABLE 或者 18 DISABLE 18 SWITCH 18 第四章第四章 函数函数 19 第第 节节 实数型函数实数型函数 19 一 算术运算函数 19 ABS 19 SIGN 20 FRACT 20 INT 20 SQRT 20 SQR 21 SIN 21 COS 21 ATAN2 21 二 机器人控制函数 22 HAND 22 PENDANT 22 PRIORITY 23 SIG 24 SPEED 24 STATE 25 三 机器人定位函数 26 DISTANCE 26 DX 27 DY 27 DZ 27 INRANGE 27 VAL II 机器人编程语言 第 3 页 共 53 页 四 常值函数 27 ID 27 TRUE 28 FALSE 28 PI 28 TODIS 28 TOANG 28 TPS 29 五 其它各种函数 29 ADC 29 BCD 29 DCB 29 BITS signal 29 ERROR 29 EXCEPTI0N 30 I0GET 30 LLAST 30 PARAMETER 30 RANDOM 31 RLAST 31 TIMER 31 第二节 位置函数 31 一 坐标变换函数 31 BASE 31 DEST 32 FRAME 32 HERE 33 INVERSE 33 NORMAL 33 NULL 33 SCALE BY 33 SHIFT BY 34 TOOL 34 TRANS 34 二 精确点定位函数 34 POINT 34 第五章第五章 程序指令程序指令 36 第一节 运动指令 36 MOVE 36 MOVET 36 MOVES 37 MOVEST 37 ALIGN 37 APPRO 37 VAL II 机器人编程语言 第 4 页 共 53 页 APPROS 37 DEPART 37 DEPARTS 38 DRIVE 38 READY 38 BRAKE 38 BREAK 38 DELAY 39 第二节 机器人末端手爪控制 39 0PEN or CLOSE 39 0PENI or CLOSEI 39 GRASP 39 第三节 程序控制指令 40 GOT0 40 IF GOTO 40 CALL 40 RETURN 40 PAUSE 40 STOP 41 WAIT 41 第四节 结构指令 41 CASE OF VALUE ANY END 41 DO UNTIL 41 FOR TO STEP END 41 IF THEN ELSE END 41 WHILE DO END 41 第六章第六章 示例程序示例程序 42 第一节 运动与力控制 42 第二节 手爪控制 43 第三节 整型数赋值与显示 44 第四节 变量名操作 45 第五节 位姿定义 46 第六节 坐标位置的反变换 48 第七节 TOOL 命令 48 第八节 函数 FRAME 49 第九节 DETACH ATTACH 49 Comment 园园园园1 去掉 Comment 园园园园2 逆 Comment 园园园园3 程序 Comment 园园园园4 去掉 VAL II 机器人编程语言 第 5 页 共 53 页 第一章 序言 VALII 语言是美国 Unimation 公司为其工业机器人而设计的一种基于计算机的控制 语言 由于机器人的任务是由用户的程序来描述定义的 所以基于计算机的控制系统可 以使用户很容易地定义机器人所要完成的任务 使用这一系统的另一优点就是可以方便 地处理传感器的反馈信息 同时也可使机器人在未知环境中 或运动参考系中正常地工 作 VAL II 机器人编程语言是 VAL II 系统的一部分 它包括用来规划系统完成特定任务 的编程语言 VAL II 语言十分易学 它结构简单 明了 易读 它所有的命令都使用人 类易读 易记忆的单词或数字串 用户的控制机器人运动的程序可以在计算机上方便的 编写 调试 作为一个实时系统 VAL II 在连续的规迹规划中可以快速地进行复杂的正 反运动 学的运算 可以高效地使用系统的内存 降低整个系统的复杂性 最大限度地方使用户 VAL II 可以实时地将当前的控制命令与机器人的运行状态等信息反馈给用户 方便地实 现联机修改 VAL II 的一大特点是提供了完成各种基本运动操作的子程序库 一个复杂的机器人 运动 可以分解为一系列的简单的子运动操作 实现这些子操作的程序或命令一般都已 存在 这为用户编写复杂运动的程序提供了方便 VAL II 语言包括监控命令 程序指令 各种函数 监控命令可以在监控状态下由用 户在终端上直接键入来控制机器人的运动 设置系统参数 显示系统状态等 编程指令 提供了编写完成机器人运动的程序所需的各种指令 程序指令与监控指令在很多情况下 相同 并且有些程序指令透过使用命令 DO 在监控状态下使用 VAL II 语言还提供了 种类繁多的函数 这些函数对于数学运算 定义机器人的位姿 等各种操作有很大的帮 助 在本技术手册中 将介绍 VAL II 语言的监控命令 程序指令 各种函数 并附有较 多的例子 VAL II 机器人编程语言 第 6 页 共 53 页 第二章 机器人位姿 机器人位姿可用来指定机器人运动的目标位置与姿态 本部分 VAL II 语言中介绍两 种表示机器人位姿的方法 精确点和变换 本部分还介绍了表示位姿的变量 它提供了 一种用变量名引用位姿值的方法 在 VAL II 语言中 有几个函数可以返回表示位姿的值 这些函数我们前面已经介绍 过了 在本部分里我们要特别注意区分位置 point or position 与位姿 location 位置是指机 器人作业空间中的一个点在笛卡尔坐标系中的位置 它由 X Y Z 三个坐标分量来定义 位姿则是指机器人作业空间中一个点的位置和机器人末端在该点的姿态 当要求机器人 运动到一位姿时 我们必须为它定义两部分值 即 1 机器人末端在笛卡尔坐标系中的位置 2 机器人末端的姿态 第一节 精确点 PRECISION POINTS 当机器人的位置是由机器人在该位置姿态时的各关节参数表示的时 我们称这时的 表示位姿的方法为精确点 例如 对于一个 PUMA 机器人 它的精确点是由它的六个关 节角 Jt1 Jt2 Jt3 Jt4 Jt5 Jt6 来定义的 使用精确点具有以下优点 1 重复定位精度高 2 机器人运动时的坐标计算简单 使用精确点具有以下缺点 l 精确点的定义是依赖于具体机器人型号的 所以它的使用受到了很大的限制 例 如 对于 PUMA560 定义的精确点就不适用于 PUMA550 260 型号的机器人 程序的移 植性差 2 对于精确点的修改是很困难的 由于精确点以上的两个缺点 经常使用的是变换坐标 Comment 园园园园5 由 VAL II 机器人编程语言 第 7 页 共 53 页 第二节 变换 TRANSFORMATIONS 变换坐标的定义是不依赖于机器人的表示位姿的方法 它的方法是定义机器人的末 端在 Cartesian 坐标系中的 X Y Z 坐标值 该坐标系一般为建立在机器人上的基坐标 系 它末端的姿态为末端三个关节轴相对于三个坐标轴的旋转角度 由于变换坐标的定义是不依赖于机器人的 所以变换坐标可以在不同的型号的机器 人上使用 对于变换的修改是比较简单的 由于机器人的变换坐标的定义与机器人的工作空间 的关系非常紧密 所以对机器人在 X 方向上的坐标变化 只修改其 X 坐标分量就可以了 使用变换的一个最大的优点是可以定义相对坐标位置和使用复合坐标变换 这些内容将 在下面介绍 但是 使用变换坐标也存在着一些缺点一些缺点 对于一个六自由度的机器人 它到达空间 中一点可以是右手或左手 也可以是高肘或低肘 所以对于空间中一点 机器人六个关 节参数的解是不唯一的 所以使用变换坐标的计算较复杂 并且存在选最优解的问题 用户在编程时的负担加重了 使用变换的另一个缺点另一个缺点 是机器人的定位精度低 不论何时 机器人在运动时总是 先将一变换转变成一精确点 然后系统才能决定机器人的运动 在将变换转变成精确点 时 计算存在着误差 所以定位精度不如精确点高 不过 总的来说 使用变换比使用精确点要方便 复合变换复合变换为用户定义一位姿相对于另一位姿的关系提供了一种方便 当有几个坐标 是相对于一参考的基坐标定义的时 若基坐标发生了变化 我们只要修改该发生变化的 坐标 其它的相对于该坐标定义的坐标的值也就自动地被修改了 例如 定义 plate 为机器人工作平台相对于机器人基坐标系的坐标值 定义 object 为 机器人操作对象相对于机器人工作平台的坐标值 则复合变换 plate object 定义了机器人 的操作对象相对于参考基坐标系的位置 正像例子中所表示的那样 一个复合变换的坐标是用一系列的坐标变量用 联 结起来的 在它们之间不能有空格键 我们可以用上述的方法将一系列的变换坐标联结 起来表示一个复合的坐标 接上面的例子 若机器人的手爪要抓取被操作对象的 grasp 位置 若该抓取位置 是相对于被操作物体本身的坐标系定义的 则要想将机器人的手爪抓住 grasp 位置 可执行下面的命令 MOVE plate object grasp Comment 园园园园6 VAL II 机器人编程语言 第 8 页 共 53 页 第三章 监控命令 本部分将介绍 VAL II 语言所能接收的一些常用的监控命令 VAL II 语言的监控命令的格式 般包括命令名 有时还包括一个或多个命令参数 命令的格式 般为 当命令参数为一数值值时 谊命令参数也可以用一可返回该类数值值的表达式来代 替 在通常情况下 命令参数的缺省值默认为 0 第一节 定义坐标位置 有几个命令可用来为机器人定义坐标系或用来判断机器人的当前位置状态 在下面 介绍的命令中 所有的距离都是以毫米为单位的 任何函数的输入参数都可为一精确点 坐标或一变换 POINT 该命令可将 右边的表示位置的值赋给 左边表示位置的变量 所以变 量和数值必须有相同的数据类型 它们必须都同时为精确点坐标 precision point 或为 变换 transformation 如果命令行中无表示位置的数值 并且该表示位置的变量已经被定义过 则系统将 在终端上显示出该位置变量的值 并询问用户是否修改该变量的值 如果命令行中无表示位置的数值 并且该表示位置的变量从未被定义过 则系统将 定义该变量 并把 NULL 即 0 0 0 90 90 0 赋值给变量 如果 变量是精确点坐标 则机器人的各个关节的参数将显示在终端上 若变量为 变换坐标 别系统将把机器人在世界坐标系的坐标值 x y z O A T 显示出来 其 中的 x y z 表示末端位置坐标 O A T 代表末端姿态坐标 若等号左边为一复合变换的坐标 该命令只将等号右边的值赋给复合坐标中最右边 的坐标变量 例 POINT pick1 pick 设置变换坐标变量 pick1 的值为 pick 的值 并允许用户 修改 Comment 园园园园7 按 VAL II 机器人编程语言 第 9 页 共 53 页 POINT park 定义精确点坐标变量 park 并允许用户修改 HERE 将机器人当前状态位置 赋值给一变换坐标变量或一精确点坐标变量 象命令 POINT 一样 它也允许用户在终端上修改该变量的值 例 HERE place 定文变换坐标变量 place 等于机器人的当请坐标位置 并 允许用户修改 HERE pick 将机器人的当前坐标赋值给精确点坐标变量 pick 并允 许用户修改 WHERE 显示机器人在 Cartesian 世界坐标系下的当前位置 各关节的当前参数 及当 前手爪的开合状态 在终端上按如下的形式显示 X Y Z O A T Jtl Jt2 Jt3 Jt4 Jt5 Jt6 HAND 当该命令的后面跟有参数时 以上信息将在终端上不停的更新显示 直到用户按下 组合键 Ctrl C 为止 TEACH 当机器人在示教盒的 RECORD 键控制下时 该命令可用来记录一系列的坐标值 每当 RECORD 键按下时 系统就会定义一坐标变量 并将机器人在 RECORD 键按下时的位 置状态赋给该变量 一个完整的路径 用户可以通过让机器人记录住其中的多个关键点 教会机器人记忆住该动作 当 RECORD 键被按下时 终端将会响铃告诉用户 当前位置已被正确记录下来当在终 端上按下 RETURN 键时 该操作被终止 当命令行中的变量名不是代表一数组时 系统会自动的以该变量名为前缀 在后面 按顺序加上数字来表示一系列的坐标位置 VAL II 机器人编程语言 第 10 页 共 53 页 BASE 当 VAL II 系统初始化时 基坐标系的建立是以机器人内部的关节 1 关节 2 作 为 X Y 坐标轴 按右手定则在空间中确定 Z 轴 BASE 命令将在上述坐标系的基础上重新 定义一个新的基坐标系 定义的新坐标系是在原来的基坐标系中将坐标原点移动到点 并 且将其绕 Z 轴旋转度得到的 例 BASE xbase 50 5 30 重新定义一新的世界参考坐标系 新坐标系的 X 轴 沿原坐标系的 X 轴正向移动 xbase 毫米 新坐标系 的 Z 轴沿原坐标系的 Z 轴负向移动 50 5 毫米 并且 新的坐标系的 X Y 坐标轴绕 Z 轴旋转 30 度 TOOL 该命令重新定义工具坐标系 它将表示机器人连接的工具末端的内部坐标变换设 置为特定的变换 如果命令行中没有指定变换值 则系统将其设为空 null tool nulltool 的定义为 0 0 0 0 90 0 例 TOOL grip wrench 用复合变换 grip wrench 的值代替当前工具坐标系的变 换 第二节第二节 程序编辑命令程序编辑命令 VAL II 的用户可以通过编写用户程序来控制机器人运动 完成操作 VAL II 的编辑 命令为 EDIT 下面介绍该命令 EDIT 该命令开始编辑操作或创建一用户程序 下面的命令可用来浏览或修改用户程序 用该命令来替换已存在的程序行 VAL II 机器人编程语言 第 11 页 共 53 页 越过当前行 显示修改下一行 C 开始编辑修改一新的用户程序 D 从当前行开始删除行程序 E 从编辑命令中退出 返回监控状态 F 在用户程序中找出与该字符串匹配的程序行 I 在当前行之前加入新的语句 L 让该程序行保持修改前的原样 重新开始修改 M 用新的字符串来代替旧的字符串 P 从当前行开始显示程序的剩余部分 R R 功能类似于命令 M S 不修改当前行 转而修改表示的行 T T locationvariable 初始化 joint interpolate 编程 定位示教状态 TSTS locationvariable 初始化 straight line 编程 定位示教状态 第三节第三节 程序和数据显示命令程序和数据显示命令 本节介绍的命令可用来显示程序和变量的值 包括位置变量和实型变量 利用组合键 Ctrl C 可停止执行该命令 Comment 园园园园8 制 VAL II 机器人编程语言 第 12 页 共 53 页 DIRECTORY 显示系统内存中的用户程序名 LLIST 或者或者 LISTL 显示命令行中所给位置变量的值 若命令行中无位置变量 将以字母顺序显示所 有已定义位置变量的值 在命令行中的位置变量可以为复合变换或位置函数 若命令行 中所给位置变量为一数组变量名 则显示该数组的所有元素 PLIST 或者或者 LISTP 显示命令行中所给程序的所有语句 若命令行中无程序名 将以字母顺序显示所 有已存在的程序 RLIST 或者或者 LISTR 显示命令行中所给实型变量的值 若命令行中无变量 将以字母顺序显示所有巳 定义的实型变量的值 若命令行中所给变量为一数组变量名 则显示该数组的所有元素 第四节第四节 程序操作程序操作 本节介绍的命令可为程序进行复创或换名操作 COPY 复制一个新的用户程序 VAL II 机器人编程语言 第 13 页 共 53 页 RENAME 或者或者 RENAMEF 对用户程序或 磁盘文件进行换名操作 第五节第五节 程序和数据删除命令程序和数据删除命令 本节介绍的命令可用来删除程序和变量的值 包括位置变量和实型变量 DELETE 删除指定的用户程序 并且同时删除由该程序引用的各种变量 该命令对系统程序无效 PDELETE 或者或者 DELETEP 删除指定的用户程序 该操作可为系统回收内存 该命令对系统程序无效 LDELETE 或者或者 DELETEL 删除指定的位置变量 该操作可为系统回收内存 若一个位置变量一旦被删除 则任何对它的引用都会出错 若位置变量名为一位置变量数组 则该数组的所有元素都被删除 RDELETE 或者或者 DELETER 删除指定的实型变量 该操作可为系统回收内存 若一个实型变量一旦被删除 则任何对它的引用都会出错 VAL II 机器人编程语言 第 14 页 共 53 页 若实型变量名为一实型变量数组 则该数组的所有元素都被删除 第六节第六节 程序控制命令程序控制命令 本部分的介绍的命令可用来监控用户程序 命令或进程的执行 一 对用户程序的控制一 对用户程序的控制 除了本节介绍的命令外 在机器人控制柜的面板上 有开关 HALT RUN RESTAT 它们也可用来控制用户程序的执行 但它们不能用来控制用户的进程 当一用户程序正 在执行时 开关切到 HALT 状态 这时用户程序的执行与机器人的运动都将停止 若再 把开关切到 RUN 则用户程序的执行与机器人都将接着停止时的状态继续运行 若把开 关切到 RESTART 则用户程序的执行与机器人都将重新运行 SPEED 指定程序控制状态下机器人的运动速度 速度值可指定为一常数 一实型变量的 值 或 算术表达式的值 这些值的范围为 0 39 低速 到 12800 高速 其中 100 为正常 速度 当系统初始化时 速度值设为 50 超过 100 要十分小小 机器人的实际运动速度 监控命令 SPEED 用户程序中的 SPEED 命令的设置 例如 若监控命令 SPEED 设置速度为 50 用户程序中的 SPEED 命令的设置速度 为 60 则机器人的实际运行速度为额定速度的 30 EXECUTE 从指定的程序的第行执行程序次 若没有指定程序名 系统则执行 最近执行过的程序 程序的执行次数的范围为 32768 到 32767 当程序循环执行时 若它遇到命令 STOP 程序停止执行 当程序的执行次数缺省或为 0 1 时 程序循环执行一次 当程 序的执行次数为一负数时 程序会不停的循环执行下去 直到开关切到 HALT 或用户在 终端上终止程序的执行 见 ABORT 命令行参数指定了程序第一次执行时 开始的程序行 缺省的值为 1 总取正值 VAL II 机器人编程语言 第 15 页 共 53 页 ABORT 当用户程序执行完当前命令行 并且机器人完成当前的动作后 使用该命令可终 止执行用户程序的执行 以及机器人的运动 XSTEP 从指定的程序的第行单步执行程序次 若没有指定程序名 系统则 执行最近执行过的程序 不像 EXECUTE 命令 该命令在每次执行完一程序行后 都会 暂停执行程序的下一命令行 DO 执行指定的单步程序指令 可以将一条机器人程序指令作为监控命令使用 此时控 制柜的开关必须打到 RUN 的位置 该命令可用来控制机器人的运动 或改变程序语句的 执行顺序 若命令行中的命令参数是缺省的 则系统执行上一条 DO 命令的内容 例 DO MOVE t1 将机器人运动到 t1 位置 DO GOT0 100 改变程序语句的执行序列 PROCEED 当某个机器人控制程序由于 PAUSE 命令 ABORT 命令或程序执行时出错而终止 时 使用该命令可以继续执行被暂停的用户程序 当程序执行到语句 WAIT 时 例如 机器人等待外部的输入信号 若输入了命令 PROCEED 则系统跳过执行 WAIT 命令 RETRY 类似于命令 PROCEED 它可重新开始执行一被暂停执行的用户程序 RETRY 命 令重新开始执行的点依赖于程序被终止时的系统状态 当机器人的一个运动由于出错等 各种原因而停止时 使用该命令可使未完成的命令继续执行到完成 当没有程序命令行或机器人运动被中途停止时 该命令的功能与 PROCEED 命令一 样 VAL II 机器人编程语言 第 16 页 共 53 页 二 机器人控制程序的进程控制二 机器人控制程序的进程控制 下面的命令可以用来初始化一进程 或控制该进程的运行 PCEXECUTE 类似于 EXECUTE 命令 开始执行以用户的程序 PCEXECUTE 命令初始化一 进程控制程序 若无输入命令参数 该命令执行上一条 PCEXECUTE 命令的内容 例 PCEXECUTE control 1 初始化执行名为 control 的用户程序 直到用户 终止该程序的执行 或出错 机器人控制柜面板上的开关 RESTART HAIT RUN 对进程的执行无影响 PCABORT 当当前的一条程序指令完成后 使用该命令可以终止当前进程的运行 使用命令 PCPROBEED 可继续该进程的执行 PCEND 当当前的一个循环执行完成后 使用该命令可以终止当前进程的运行 类似于命 令 PCABORT 使用命令 PCPROCEED 可继续该进程的执行 PCPROCEED 当一机器人控制进程由于 PAUSE 命令 或 PCABORT 命令 或程序执行时出 错而终止时 使用该命令可以继续执行被暂停的用户进程 当程序执行到语句 WAIT 时 例如 机器人等待外部的输入信号 若输入了命令 PCPROCEE 则系统跳过执行 WAIT 命令 PCRETRY 类似于命令 PCPROCEED 它可重新开始执行一被暂停执行的用户进程 PCRETRY 命令重新开始执行的点依赖于程序被终止时的系统状态 当机器人的一个运动由于出错 等各种原因而停止时 使用该命令可使未完成的命令继续执行到完成 当没有程序命令行或机器人运动被中途停止时 该命令的功能与 PROCEED 命令一 样 Comment 园园园园9 将 Comment 园园园园10 B Comment 园园园园11 VAL II 机器人编程语言 第 17 页 共 53 页 第七节第七节 系统状态与控制系统状态与控制 有一些命令可用来判断 VAL II 系统的当前状态 进行初始化操作 或终止其运行 CALIBRATE 校准 PUMA260 550 560 机器人系统中的关节位置传感器 尽管系统可在未执 行 CALIBRATE 命令时 可以执行用户程序 但是原来定义的位置变量降失去应有的准 确性 所以当机器人掉电后重新上电后 该命令应该被执行 对于 PUMA550 560 机器人 当机器人在其运动空间时 执行 CALIDRATE 操作可 引起机器人各关节的细微运动 STATUS 显示系统与正在执行的用户程序的状态信息 这些信息包括 机器人的状态 最 近由 SPEED 命令设置的机器人运行速度 已执行的和将要执行的用户程序的步数 PCSTATUS 该命令类似于 STATUE 命令 它显示正在执行的用户程序的状态信息 这些信 息包括 用户程序的执行状态 最近由 SPEED 命令设置的机器人运行速度 之执行的和 将要执行的用户程序的步数 FREE 显示系统当前可用内存占系统内存总数的百分比 ZERO 重新初始化 VAL II 系统 该命令 般不常用 第八节第八节 系统参数与开关系统参数与开关 下列命令可用来设置或显示系统参数与开关 VAL II 机器人编程语言 第 18 页 共 53 页 PARAMETER 设置系统参数为给定值 该给定值可为一常量 一实型变量或代数表达式 如果 命令行中 被省略 则显示该系统参数 ENABLE 或者或者 DISABLE 打开或关闭系统开关 SWITCH 显示一个或多个系统开关的值 若命令行中无开关名 将显示所有的系统开关的 值 VAL II 机器人编程语言 第 19 页 共 53 页 第四章 函数 本部分介绍 VAL II 语言提供的几种函数 这些函数都可以为用户程序返回一个值 例如 一个实型值的函数为用户程序返回一个实数类型的值 一个位置型值的函数为用 户程序返回一个位置类型的值 当一个 VAL II 程序执行时 任何被引用的函数都将被其执行结果值来代替 例如 程序行 X SORT 4 被执行后 实型变量 X 将被赋值为 2 这是因为 4 的平 方根为 2 在本例中 数字 4 称为求平方根函数 SQRT 的参数 2 称为函数的返回值 注意 表达式 X SQRT 4 与上式的含义不同 它把数组 SQRT 第四个元素的值赋 给变量 X VAL II 语言能够区分出数组名与函数名 这是因为 在函数中所有的参数是用 圆括号 括起来的 而在数组中数组下标是用方括号 括起来的 然而有一些函数在引 用时是不带有任何参数的 为避免二意性 这些函数名不能被用作变量名 例如 函数 HAND 如果用户用它作为一个变量名 VAL II 将不能区分出它是一个变量名还是 个函 数名 大多数的函数都有一个或多个输入参数 函数实际返回的值只依赖于用户提供的输 入参数值 有一些函数正像上面堤到的 不接收任何输入参数 第第 节节 实数型函数实数型函数 下面介绍的函数可用来定义实数型的值 所用到的符号 expression 代表一数学表 达式 它可为函数提供输入参数 compound 代表函数的一输入参数 它可以是一复 合变换或者是复合函数 注意 监控命令 LISTR 可在任何时间 将实型函数的结果显示在系统的终端上 一 算术运算函数一 算术运算函数 这些函数可用在数学表达式中 为简单起见 本部分所有的例子都使用常数型的输 入参数 当它们的参数为一些包含变量的表达式时 这些函数显得就更加重要了 ABS 返回输入参数的绝对值 ABS 0 123 返回 0 123 VAL II 机器人编程语言 第 20 页 共 53 页 ABS 5 462 返回 5 462 ABS 1 3125E 2 返回 1 3125E 2 SIGN 当输入参数为负数时 返回 1 0 否则 返回 1 0 SIGN 0 l23 返回 1 0 SIGN 5 462 返回 1 0 SIGN 1 3125E 2 返回 1 0 FRACT 返回一实型输入参数的小数部分及其符号 当输入参数是用科学计数法表示时 该 函数显得很有用 FRACT 0 123 返回 0 123 FRACT 5 462 返回 0 462 FRACT 1 3125E 2 返回 0 25 因为 1 3125E 2 131 25 INT 返回一实型输入参数的整数部分及其符号 当输入参数是用科学计数法表示时 该 函数显得很有用 INT 0 123 返回 0 0 INT 5 462 返回 5 0 INT 1 3125E 2 返回 131 0 SQRT 返回一实型输入参数的平方根 当该输入参数小于零时 返回 ERR0R SQRT 0 123 返回 0 35071 SQRT 5 462 返回 ERROR 输入参数小于零 SQRT 1 3125E 2 返回 11 45644 VAL II 机器人编程语言 第 21 页 共 53 页 SQR 返回输入参数的平方值 SQR 0 1230 返回 0 01513 SQR 5 462 返回 29 83344 SQR 1 3125E 2 返回 1 72266E 4 SIN 返回输入参数所表示角的正弦值 输入参数的表示的角的单位为度 函数返回值界 于 1 0 与 1 0 之间 SIN 0 123 返回 0 00215 SIN 5 462 返回 0 09831 SIN 1 3125E 2 返回 0 75184 COS 返回输入参数所表示角的余弦值 输入参数的表示的角的单位为度 函数返回值界 于 1 0 与 1 0 之间 COS 0 123 返回 1 00000 COS 5 462 返回 0 99546 COS 1 3125E 2 返回 0 65935 ATAN2 这是一个反正切函数 它返回一个角的度数 该角度的正切值等于两输入表达式的 比值 当两个表达式都为零时 函数返回 ERROR ATAN2 0 123 0 251 返回 26 10669 ATAN2 5 462 47 2 返回 6 60093 ATAN2 1 3125E 2 1 3 返回 89 43252 VAL II 机器人编程语言 第 22 页 共 53 页 二 机器人控制函数二 机器人控制函数 这些函数可在任意时刻用来获取机器人系统的当前状态信息 当用户希望自己的程 序适应这些状态时 这些函数显得特别重要 HAND 该函数返回手爪的状态 当手爪关闭时 返回 0 0 当手爪开启时 返回 25 40625 PENDANT 返回从示教盒上最近接收的值 输入表达式的值决定示教盒返回值的含义 注意 该函数的返回值只与当前示教盒的按键有关 所以它不能正确的反应机器的 运行状态 例如 当系统处于 COMP 状态时 而按了 WORLD 健 函数 PENDANT 返 回值说明 WORLD 键被按了 函数 STATE 返回当前的状态 当表达式的值为 l 时 函数值为一 16 位的整型数 各位的含义解释如下 位序号含义位序号含义 0RECORD 按建8Joint 4 按键 10FF 按键9Joint 4 按键 2Joint 1 按键10Joint 5 按键 3Joint 1 按键11Joint 5 按键 4Joint 2 按键12Joint 6 按键 5Joint 2 按键13Joint 6 按键 6Joint 3 按键14CLAMP 1 按键 7Joint 3 按键15CLAMP 2 按键 当表达式的值为 2 时 函数值为一 16 位的整型数 各位的含义解释如下 位序号含义位序号含义 Comment 园园园园12 掉 VAL II 机器人编程语言 第 23 页 共 53 页 位序号含义位序号含义 0TOOL mode 按键5未用 1WORLD mode 按键6TP 按键 2JOINT mode 按键7TP 按键 3FREE mode 按键8 15未用 4COMP mode 按键 当表达式的值为 3 时 函数值表示示教盒的 SPEED SETTING 键 它的值是下面六 个数值中的一个 它们的对应关系如下 速度值示教盒的速度键速度值示教盒的速度键 0低速 TICK 键有效16低速 TICK 键无效 4常速 TICK 键有效128常速 TICK 键无效 7高速 TICK 键有效255高速 TICK 键无效 当表达式的值为 4 时 函数值为一 16 位的整型数 各位的含义解释如下 速度值示教盒的速度键速度值示教盒的速度键 0NEXT STEP 按键5 按键 1MOVE TP 按键6H0lD RUN 按键 2 4未用7 15未用 通常 BAND 算符被用来屏蔽摔 PENDANT 的一些位 例如表达式 PENDANT 2 BAND 20 当示教盒的 COMP 键被按下时 它的结果为一非零值 PRIORITY 返回当前程序的优先级 改优先级可以用 LOCK 指令或者用 REACT REACTI 指令 设置 Comment 园园园园13 VAL II 机器人编程语言 第 24 页 共 53 页 SIG 返回 TRUE 1 0 或 FALSE 0 0 根据与所有的二进制表示的信于值执行逻辑与 AND 运算 也就是说 当所列出的信号值满足当前状态时 SIG 返回 TRUE 值 否则 迟回 PALSE 值 每一信号的数值和用 Signal 描述的期望值可以是一个常数 实型变量 或者一个表 达式 Signal 后的数值给出信号的序号 当该信号为正时 返回 TRUE 当信号为负时 返回 FALS 正 例如 Signal 100l 0n Signal 1004 0ff Signal 1001 Off 下面对函数 SIG 的引用将返回下列值 SIG 1001 1 0 TRUE SIG 1004 0 0 FALSE SIG 1004 1 0 TRUE SIG 1001 1004 0 0 FALSE SIG 1001 1004 1 0 TRUE SIG 1001 1004 2 1 0 TRUE SPEED 该函数根据翰入参数表达式的值 返回系统的当前速度 这个速度值通常被解释为 额定速度的百分比 额定速度通常为 SPEED 100 该函数接收的输入参数与其对应的返回值的含义为 输入参数速度值 1监控速度 由监控命令 SPEED 设置 2程序常设速度 由结构 SPEEDALWAYS 设置 3上一动作或当前动作的程序暂时设置的速度 Comment 园园园园14 VAL II 机器人编程语言 第 25 页 共 53 页 输入参数速度值 4下一动作的程序暂时设置的速度 STATE 该函数返回当前机器人系统的状态信息 它有三种不同的返回值 当表达式的值为 1 时 函数的返回值表示的 VAL II 系统状态 其返回值的具体含义 如下 返回值解 释 0当机械手臂电源切断后初始化系统 1发生致命错误 机械手臂电源不能接通 2等待用户接通机械手臂电源 3机械手臂电源刚接通 系统正被初始化 4当前为手动操作方式 5CALIBRATE 命令正在执行 6LIUP 命令正在执行 7当前为程控操作方式 当表达式的值为 2 时 函数的返回值表示机器人系统的当前运动状态 当机器人工 作在程控状态时 即 STATE l 7 这些执行状态可以改变 其返回值的具体含义如下 返回值解 释 0无运动命令在执行 1正在进行正常的规迹讦价 2机械手臂停留在规划的位置 此时 RETRY 命令无效 3机械手臂位置误差在未规划的最终位置被忽略 VAL II 机器人编程语言 第 26 页 共 53 页 返回值解 释 4机械手臂停留在非规划的位置 RETRY 命令完成精确定位 5减速至 HOLD 状态 6在 HOLD 状态停止 RETRY 命令完成精确定位 7因 REACTI 或 BREAK 指令而减速 8因 REACTI 或 BREAK 指令而停止 RETRY 命令完成精确定位 9因硬件错误或紧急刹车而减速 10因硬件错误或紧急刹车而停止 RETRY 命令完成精确定位 当表达式的值为 3 时 函数的返回值所表示的示教盒的状态含义如下 返回值解 释返回值解 释 00FF 状态3WORLD 状态 1FREE 状态4T00L 状态 2J0INT 状态5COMP 状态 三 机器人定位函数三 机器人定位函数 这些实数型的函数可用来获取机器人定位的信息 这些函数的输入参数是一些坐标 值 而其结果是一实数 我们必须将它与以后介绍的位置函数区分开来 位置函数的结 果都是位置类型的值 DISTANCE 该函数以毫米为单位返回两点之间的距离 这两点是以变换定义的 例如 表达式 X DISTANCE HERE PART 将把当前机器人的末端与预先用 PART 定义的位置之间的 距离赋给实型数 X VAL II 机器人编程语言 第 27 页 共 53 页 DX DY DZ 这三个函数将分别返回机器人在 compound 定义的位置时 其坐标值在三个轴上的 分量 例如 若机器人在 start 的位置坐标为 125 250 50 135 50 75 则 DX start 125 00 DY start 250 00 DZ start 50 00 注意 指令 DECOMPOSE 可用来获得坐标的不同分量值 当要获得姿态分量时 必须使用该指令 INRANGE 该函数被用来测试由复合变换定义的坐标位置机器人是否可以达到 当返回值为零 时 机器人可以达到该坐标位置 否则 机器人不能达到该坐标位置 返回的非零位可 用来解释其原因 四 常值函数四 常值函数 本部分描述的函数不论在何时引用都返回相同的值 如果一 VAL II 程序能在不同的 机器人系统中使用 本部分的前三个函数将返回不同系统的不同参数信息 其它的函数 被用来代表常数等 方便用户 ID 该函数返回各种描述系统特性的值 它接收的参数和其输出值之间的对应关系为 输入参数结果含义 1机器人的类型号 2机器人的系列号 3使用的 VAL II 软件的版本号 VAL II 机器人编程语言 第 28 页 共 53 页 输入参数结果含义 4使用的 VAL II 软件的修改版本号 5使用的硬件的版本号 6使用的硬件的修改版本号 7系统的 RAM 容量 以 K 为单位 TRUE 该函数总返回 1 0 该数值在 VAL II 语言中表示逻辑真 FALSE 该函数总返回 0 0 该数值在 VAL II 语言中表示逻辑假 PI 该函数总返回圆周率值 3 14159 TODIS 该函数返回系统内部用来将距离的毫米级的变化 表示成复合变换坐标值的比例因 子 当由另外的计算机脱机产生 VAL II 系统的坐标变换数值时 该比例因子是必须的 实际的距离数值乘上 TODIS 可得系统内部的表示其的整型数 若该整型数除以 TODIS 可得实际的距离数值 TOANG 该函数返回系统内部用来将角度的变化表示成复合变换坐标值的比例因子 当由另 外的计算机脱机产生 VAL II 系统的坐标变换数值时 该比例因子是必须的 实际的角度 数值乘上 TOANG 可得系统内部的表示其的整型数 若该整型数除以 TOANG 可得实际 的角度数值 Comment 园园园园15 该 VAL II 机器人编程语言 第 29 页 共 53 页 TPS 该函数返回系统每秒发生的时钟数 Ticks per second 五 其它各种函数五 其它各种函数 这些函数可为用户程序提供各种信息 ADC 只有当系统配备有各类模拟信号输入 输出端口时 改函数才可被引用 否则 任 何对该函数的引用都将获得出错信息 本函数的返回值表示在当前端口的输入 它界于 2048 到 2047 之间 该函数的输入通道序号值为 0 到 15 否则出错 VAL II 系统可接收的摸 数信号转换的最大输入模拟信号值为 10 伏 最小为 10 伏 VAL II 系统还可通过 ADC GAIN 系统选择输入信号的最大变化范围 该变化范围与所选 择的增益数值成反比 例如 选择增益为 2 则输入信号的变化范围为 5 0 到 5 0 伏 例 假定 A D 的输入增益设为 1 在通道 7 有一 3 0V 的输入信号 则表达式 X ADC 7 将 614 赋值给变量 X 2047 3 10 614 BCD DCB 这两个函数可将二进制编码的十进制数 BCD 码 与实型数进行相互转换 它在连接 PC 机器指令和函数 BITS 时非常有用 函数 BCD 将界于 0 到 9999 之间的整型数转换成一 BCD 数 BITS signal 返回一代表一个或多个二进制位模式的值 ERROR 返回系统最新的出错的错误代号 输入表达式的值决定用户所希望看到的出错类型 代号 它们的对应关系为 VAL II 机器人编程语言 第 30 页 共 53 页 代号出错类型 0返回机器人程序的最新出错代码 1返回控制执行程序的最新出错代码 1返回从外部计算机通过 ALTER 变换 设备获得的最新出错代码 只 有负的数被解释为一错误代码 EXCEPTI0N 返回从外部计算机通过 ALTER 设备获得的最新输入数据 只有正的数可作为用户的 使用数据 I0GET 返回计算机的地址空间中特定的输入 输出端口的值 输入表达式的值若为一偶数 则它被解释为 16 位的地址字 若为奇数 则它的有意义的位为高 8 位 该表达式的值为 57344 到 65535 该函数可用来从系统配置的非标准输入 输出端口读取数据 命令 I0PUT 可在这样 的端口输出数据 使用该函数时 必须注意当一系统循环执行时 该函数的执行会稍停片刻 当进行 关节插值运算时 该延迟时间为 5ms LLAST 该函数返回一位姿数组被使用过的元素的最大索引值 注意 该函数的值为一索引 值而不是数组的元素 而且 它的值也不是数组所有元素的个数 若该数组不存在 函 数返回 1 例如 若数组 part 的元素 part 0 到 part 10 都被引用过 则 LLAST part 为 10 而 不是 11 当数组的第 0 3 5 元素被引用过 而 1 2 4 未被引用过时 LLAST part 的 值为 5 PARAMETER 返回当前系统由输入参数 parameter name 定义名字的参数的值 Comment 园园园园16 L VAL II 机器人编程语言 第 31 页 共 53 页 RANDOM 返回一个界于 0 0 到 1 0 的随机数 所以每次对它的引用 都可得到一个不同的值 RLAST 该函数返回一实型数组被使用过的元素的最大索引值 正像函数 LIAST 它不考 虑未被使用过的索引值较低的元素 若该数组不存在 函数返回 1 TIMER 以秒为单位返回设定时钟的当前值 代表时钟序号的表达式值必须为 2 到 15 时钟 0 到 15 可被重新设置 例如 利用 TIMER 命令 时钟 0 为系统时钟 它不能被重新设 置 它只可被用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 末日来无迹后会永无期…… 中英互译
- 民政知识、行政法规及社会综合常识试卷真题及答案
- 河南省孟州市2025年上半年事业单位公开遴选试题含答案分析
- 河北省魏县2025年上半年事业单位公开遴选试题含答案分析
- 河北省饶阳县2025年上半年事业单位公开遴选试题含答案分析
- 河北省涞水县2025年上半年公开招聘村务工作者试题含答案分析
- 2025年度城市观光旅游包车运营管理合同
- 2025版山西拓扬人力资源有限责任公司企业人才招聘与选拔服务合同
- 2025版生产车间安全设施承包协议
- 2025版架子工劳务分包合同范本(含安全协议)
- 2025-2026学年湘教版(2024)初中数学八年级上册教学计划及进度表
- GB/T 45763-2025精细陶瓷陶瓷薄板室温弯曲强度试验方法三点弯曲或四点弯曲法
- 全过程工程咨询投标方案(技术方案)
- (高清版)DZT 0388-2021 矿区地下水监测规范
- 胰腺肿瘤影像学课件
- 夹芯彩钢复合板吊顶施工方案
- 高效课堂讲座课件
- 双高专业群电子商务专业群申报书
- 有害物质污染源识别与评价表
- 餐具洗消保洁制度管理办法
- 齿轮的设计计算PPT学习教案
评论
0/150
提交评论