type
status
date
slug
summary
tags
category
icon
password
Link
Description
前言:
由于欧姆龙机器人调试相对来说,案例较少。而且有一定难度因此将调试经验和内容分享如下
本次技术涉及的说明书(双语机翻)已经收录在我个人的微信公众号上请自行获取下载
📝安装(ACE软件)
ACE软件(点击跳转下载)
自己编写的调试ppt
调试内容补充说明(针对ppt)
尽量要中文
可以是.pg也可以是.V2要保证和程序路径保持一直即可
保存到控制器后要删除程序和变量。记得要备份以免出现问题无法找回程序
auto程序要保存在控制器的根目录,切记切记这步骤尽量最后调试无误后再操作!!
欧姆龙全系机器人说明书中英双语机翻
欧姆龙hornet565安装调试
🤗 客制化程序(ACE软件)
ACE4.5欧姆龙hornet565 视觉传送带跟踪客制化程序全流程(上)
ACE4.5欧姆龙hornet565 视觉传送带跟踪客制化程序全流程(中)
ACE4.5欧姆龙hornet565 视觉传送带跟踪客制化程序全流程(下)
🤗 调试过程(ACE软件)
🤗 其他注意问题(ACE软件)
ACE4.5 自定义托盘
🤗 相机问题(ACE软件)
先特克相机注意事项
⚠先特克相机需严格注意,软件触发点位极易烧毁。
🤗 程序详解(ACE软件)
特别补充
pick程序的114行
删除机器人的多余跟踪删掉抓取程序114行左右
main
PROGRAM mainrobot()
; ABSTRACT: Default main robot program for the Process Manager
; Process Strategy.
;
; If you want to force a particular process to execute, you
; must properly map the process index from the PC to the
; process mapping of the robot. The method 'pm.ps.map.idx'
; does this. For example, to execute process 1 from the PC,
; the code should look like this:
;
; CALL pm.ps.map.idx(1, proc.idx)
; CALL pm.rob.process(tsk.idx, proc.idx, sts)
;
; This is only valid if process 1 is relative to the robot
; controlled by this task.
;
; Alternately, you may want to command the robot to pick a
; specific part or target. This can be done using
; 'pm.rob.pick' and 'pm.rob.place' like this:
;
; CALL pm.prt.get.idx(tsk.idx, $part.name, part.idx)
; CALL pm.rob.pick(tsk.idx, part.idx, -1, pm.ms.mv.norm, , is.reset, sts)
;
; CALL pm.trg.get.idx(tsk.idx, $target.name, target.idx)
; CALL pm.rob.place(tsk.idx, target.idx, part.idx, -1, pm.ms.mv.norm, , is.reset, sts)
;
; INPUTS: None
;
; OUTPUTS: None
;
; SIDE EFFECTS: None
;
;* Copyright © Omron Robotics and Safety Technologies, Inc. All rights reserved.
摘要:流程管理器的默认主机器人程序;流程策略。;
; 如果您想强制执行特定进程,您可以;
必须正确地将进程索引从 PC 映射到 ;
机器人的流程图。方法 'pm.ps.map.idx' ;做这个。例如,要从 PC 执行进程 1,; 代码应该如下所示:; ; 调用 pm.ps.map.idx(1, proc.idx) ; 调用 pm.rob.process(tsk.idx, proc.idx, sts) ; ; 仅当进程 1 与机器人相关时这才有效;由该任务控制。; ; 或者,您可能想命令机器人选择一个 ; 特定部分或目标。这可以使用 ; 来完成。'pm.rob.pick' 和 'pm.rob.place' 像这样:; ; CALL pm.prt.get.idx(tsk.idx, $part.name,part.idx) ; CALL pm.rob.pick(tsk.idx,part.idx,-1,pm.ms.mv.norm,,is.reset,sts); ; CALL pm.trg.get.idx(tsk.idx, $target.name, target.idx) ; CALL pm.rob.place(tsk.idx, target.idx, part.idx, -1, pm.ms.mv.norm, , is.reset, sts) ; ; 输入:无;; 输出:无;; 副作用:无;;* 版权所有 © 欧姆龙机器人和安全技术公司。保留所有权利。
; Initialize the robot 初始化机器人
; Control loop 控制回路
.END
- 初始化:机器人被初始化,变量被设置。这包括设置任务索引 (
tsk.idx
),它标识机器人应执行的特定任务。
- 控制循环:程序的主要部分是一个循环,它不断检查机器人应该执行什么进程。循环
DO...UNTIL
运行直到is.running
信号设置为FALSE
。
- 进程执行:在循环内,程序检查信号(SIG(2090)、SIG(2092)),告诉机器人要执行哪个进程。该
pm.ps.map.idx
函数将过程索引从 PC 映射到机器人的过程映射。然后pm.rob.process
调用该方法来执行该过程。
- 空闲检查:如果没有要处理的进程,机器人会检查是否应转到空闲位置 (
pm.rob.chkidle
)。
- 错误处理:该脚本包括对任务错误的检查,并在失败时尝试重新附加任务 (
pm.chk.tskerr
)。
- 状态检查:最后,脚本检查进程管理器的状态,以查看机器人是否应继续运行 (
pm.chk.stat
)。
pick程序
PROGRAM pick2(tsk.idx, $type, blt.idx, reference, pal.idx, grip.idx, grip.state, pos, vals[], sts)
; ABSTRACT: Perform a move defined by a motion sequence.
;
; INPUTS: tsk.idx Index of the task
; $type Type of item being operated on
; blt.idx Belt number to move to
; 0 = Non-belt relative move
; > 0 = Belt relative move
; reference Encoder/reference position associated
; with the belt.
; pal.idx Instance pallet index
; grip.idx Gripper index to use
; grip.state Expected gripper state
; pos Location of the object/type
; vals The motion configuration array
;
; OUTPUTS: sts Status of the operation
; pm.tsk.success = Successful operation
; pm.tsk.retry = Retry the operation
; pm.tsk.skip = Skip the operation
; pm.tsk.abort = Abort the operation
; pm.tsk.next = Move to the next operation
; pm.tsk.cancel = Cancel the operation
;
; SIDE EFFECTS: None
;
; NOTE: If this program is customized and a loop is added (like a WHILE or DO ... UNTIL),
; then you should add a call to the V+ program pm.rob.montype to ensure the robot queues are
; serviced while the robot task is delayed. Additonally, you should call pm.chk.tskerr
; to check for task errors or shut-down commands. See the ACE Adept refrence guide for more details.
;
;* Copyright © Omron Robotics and Safety Technologies, Inc. All rights reserved.
摘要:执行由运动序列定义的移动。; ;
输入:tsk.idx 任务索引;
$type 正在操作的项目类型;
blt.idx 要移动到的皮带编号;0 = 非皮带相对移动;> 0 = 皮带相对移动;参考编码器/相关参考位置;与皮带。; pal.idx 实例托盘索引;grip.idx 要使用的夹具索引;grip.state 预期的夹具状态;pos 对象/类型的位置;vals 运动配置数组;; 输出: sts 操作状态;pm.tsk.success = 操作成功;pm.tsk.retry = 重试该操作;pm.tsk.skip = 跳过操作;pm.tsk.abort = 中止操作;pm.tsk.next = 移至下一个操作;pm.tsk.cancel = 取消操作;; 副作用:无;; 注意:如果此程序是自定义的并且添加了循环(如 WHILE 或 DO ... UNTIL),; 那么您应该添加对 V+ 程序 pm.rob.montype 的调用,以确保机器人队列;当机器人任务延迟时提供服务。此外,您应该调用 pm.chk.tskerr ;检查任务错误或关闭命令。有关更多详细信息,请参阅 ACE Adept 参考指南。; ;* 版权所有 © 欧姆龙机器人和安全技术公司。保留所有权利。
; Get the name of the process type being operated on (friendly name)获取正在操作的进程类型的名称
; Calculate the position, factoring in the gripper transformations
计算位置,考虑夹具变换;启动夹具选择
; If a belt part, move to approach
; and wait until part tracks into the window 如果是皮带部分,则移动到方法;等待部分跟踪进入窗口
; Approach the point
; Check the gripper selection and part presence
; Perform the motion
; Wait for gripper to complete 等待夹具完成
; Perform the depart 执行出发
100 CALL pm.rob.montype(tsk.idx, $type)
SIGNAL -2111
RETURN
.END
.PROGRAM place2(tsk.idx, $type, blt.idx, reference, pal.idx, grip.idx, grip.state, pos, vals[], sts)
; ABSTRACT: Perform a move defined by a motion sequence.
;
; INPUTS: tsk.idx Index of the task
; $type Type of item being operated on
; blt.idx Belt number to move to
; 0 = Non-belt relative move
; > 0 = Belt relative move
; reference Encoder/reference position associated
; with the belt.
; pal.idx Instance pallet index
; grip.idx Gripper index to use
; grip.state Expected gripper state
; pos Location of the object/type
; vals The motion configuration array
;
; OUTPUTS: sts Status of the operation
; pm.tsk.success = Successful operation
; pm.tsk.retry = Retry the operation
; pm.tsk.skip = Skip the operation
; pm.tsk.abort = Abort the operation
; pm.tsk.next = Move to the next operation
; pm.tsk.cancel = Cancel the operation
;
; SIDE EFFECTS: None
;
; NOTE: If this program is customized and a loop is added (like a WHILE or DO ... UNTIL),
; then you should add a call to the V+ program pm.rob.montype to ensure the robot queues are
; serviced while the robot task is delayed. Additonally, you should call pm.chk.tskerr
; to check for task errors or shut-down commands. See the ACE Adept refrence guide for more details.
;
;* Copyright © Omron Robotics and Safety Technologies, Inc. All rights reserved.
摘要:执行由运动序列定义的移动。; ; 输入:tsk.idx 任务索引;$type 正在操作的项目类型;blt.idx 要移动到的皮带编号;0 = 非皮带相对移动;> 0 = 皮带相对移动;参考编码器/相关参考位置;与皮带。; pal.idx 实例托盘索引;grip.idx 要使用的夹具索引;grip.state 预期的夹具状态;pos 对象/类型的位置;vals 运动配置数组;; 输出: sts 操作状态;pm.tsk.success = 操作成功;pm.tsk.retry = 重试该操作;pm.tsk.skip = 跳过操作;pm.tsk.abort = 中止操作;pm.tsk.next = 移至下一个操作;pm.tsk.cancel = 取消操作;; 副作用:无;; 注意:如果此程序是自定义的并且添加了循环(如 WHILE 或 DO ... UNTIL),; 那么您应该添加对 V+ 程序 pm.rob.montype 的调用,以确保机器人队列;当机器人任务延迟时提供服务。此外,您应该调用 pm.chk.tskerr ;检查任务错误或关闭命令。有关更多详细信息,请参阅 ACE Adept 参考指南。; ;* 版权所有 © 欧姆龙机器人和安全技术公司。保留所有权利。
; Get the name of the process type being operated on (friendly name)
; Calculate the position, factoring in the gripper transformations
; If a belt part, move to approach
; and wait until part tracks into the window
; Approach the point
; Check the gripper selection and part presence
; Perform the motion
; Wait for gripper to complete
; Perform the depart
100 CALL pm.rob.montype(tsk.idx, $type)
CALL number2()
RETURN
.END
.PROGRAM start2()
100 TYPE "run tcpclient"
EXECUTE 17 tcpclient(), 1, 15
TYPE "successful communication"
EXECUTE 19 mian(), 1, 2
.END
place程序
Adept Technology 或 Omron 机器人设计的。该脚本包括三个不同的程序(
mainrobot
、pick2
和place2
),它们定义机器人拾取和放置物品(可能在传送带环境中)的程序。pick2
以下是该程序的关键组件的简要概述place2
:- 任务索引 (
tsk.idx
):标识要执行操作的任务实例。
- 物品类型 (
$type
):机器人将操作的物品类型。
- 传送带索引 (
blt.idx
):要移动到的传送带编号,0
指示非传送带相对移动。
- 参考位置 (
reference
):与传送带相关的编码器或参考位置。
- 托盘索引 (
pal.idx
):标识码垛操作的特定托盘实例。
- 夹具索引 (
grip.idx
):用于操作的夹具工具的索引。
- 夹具状态 (
grip.state
):夹具的预期状态(打开、关闭等)。
- 对象位置 (
pos
):要拾取或放置的对象的位置。
- 运动值 (
vals[]
):运动配置值的数组,例如速度、加速度等。
- Status (
sts
):操作的输出状态,有各种值指示操作是否成功、是否应该重试、跳过、中止等。
和程序被构造为处理不同的场景,包括与传送带相关的操作(由
pick2
不等于表示)。它们包括根据夹具变换和零件位置计算接近和离开位置的步骤。它们还包括错误处理、日志记录和任务管理,以确保机器人顺利运行,并可以在发生错误时恢复或记录错误。place2
blt.idx
0
要将这些程序与视觉系统集成,您需要:
pos
确保视觉系统可以确定要拾取的物体的位置 ( ) 和方向。
- 将此位置数据输入机器人程序,可能会在程序
pos
pick2
place2
中使用变量之前对其进行修改。
- 根据需要调整运动配置值 (
vals[]
),以适应视觉系统确定的精度和约束。
- 确保视觉系统和机器人控制器正确同步,特别是在处理传送带上的移动物体时 (
blt.idx > 0
)。
此过程通常涉及视觉系统软件和机器人控制软件之间的密切协调,以确保数据在两个系统之间准确传输和解释。它还需要严格的测试,以确保机器人能够根据视觉系统的数据可靠地拾取和放置物体。
增加开机速度设置(注意更改配置需要导出保存,重新设置开机自启动该程序)打开运行输入shell:startup
增加装箱码垛清除实例的过程
代码
IProcessManager manager = (IProcessManager) ace["/ApplicationManager0/Process Manager0"];
计数的更改2024_7_8
此变量可作为计数的变量
增加进程暂停功能
🤗 关于V+程序的学习(ACE软件)
这个文件是一份关于OMRON公司V+模块的参考手册(文档编号I668-E-01)。
V+模块是用于与ACE服务器交互的一组程序,它们只能在ACE服务器运行或与ACE连接存在时使用。手册提供了详细的模块功能描述、使用说明以及编程和配置期间的参考信息。
主要内容包括:
- 介绍:说明了手册的用途和V+模块的使用条件。
- 手册结构:列出了手册中包含的各个部分。
- V+模块:详细介绍了以下模块:
- V+ Process Manager Module(进程管理模块)
- V+ Remote Library Module(远程库模块)
- V+ End-effector Module(末端执行器模块)
- V+ Robot Vision Manager Module(机器人视觉管理模块)
- V+ AceServer Module(AceServer模块)
- 功能函数:每个模块都包含了一系列的功能函数,如
sv.create_msg
、as.save.image
、ee.select
、pm.ace.blt.cam
等,用于执行特定的任务和操作。
- 版权和商标:文档中提到了版权声明、商标信息以及使用条款。
- 保修和责任限制:提供了OMRON产品的保修信息和责任限制条款。
- 应用注意事项:强调了产品使用时的责任和风险,以及编程产品的责任。
- 免责声明:提供了性能数据的解释、规格变更的通知和错误或疏漏的免责声明。
- 特定模块的详细说明:手册详细描述了每个模块的函数和语法,包括输入参数、输出参数以及使用示例。
- 错误代码:提供了在执行远程库方法时可能遇到的错误代码及其含义。
- 联系方式:列出了OMRON公司的全球联系方式和总部信息。
整个手册是为了帮助用户理解和使用V+模块,确保在编程和配置过程中能够正确地实现所需功能。
1. V+ AceServer Module • 页码范围:1-3 至 1-42
sv.create_msg
:创建新消息并初始化消息头。
sv.read_*
系列:从消息缓冲区读取不同类型的数据(例如adouble
、ashort
、asingle
等)。
sv.write_*
系列:向消息缓冲区写入不同类型的数据(例如adouble
、ashort
、asingle
等)。
sv.sig.is.equal
:比较信号与期望值,用于检查信号状态。
sv.stop_collect
:停止指定机器人的数据收集。
2. V+ Robot Vision Manager Module • 页码范围:2-2 至 2-7
as.save.image
:将视觉工具关联的图像保存到文件。
check_tracking
:检查机器人是否成功跟踪传送带。
clear_queue
:清除机器人视觉管理器的队列。
getinstance
:检索队列中的实例,用于获取零件位置信息。
reset_seq
:重置机器人视觉管理器序列。
set_as_exec_mod
:设置机器人视觉管理器的执行模式。
3. V+ End-effector Module • 页码范围:3-2 至 3-19
ee.select
:执行夹爪尖端的选择,可能涉及伸展或收回尖端。
ee.state
:改变末端执行器尖端的状态。
ee.setoff
:将偏移量与特定末端执行器尖端关联。
ee.release
:控制末端执行器上的释放信号。
ee.gr.settle
:等待末端执行器所需的稳定时间。
4. V+ Process Manager Module • 页码范围:4-3 至 4-87
pm.ace.blt.cam
:指示ACE触发相机。
pm.rob.pick
:执行机器人拾取操作。
pm.rob.place
:执行机器人放置操作。
pm.chk.run
:检查进程管理器应用程序是否正在运行。
pm.prt.avail
:获取可用部件的数量。
pm.trg.avail
:获取可用目标的数量。
pm.proc.enable
:根据进程索引启用或禁用进程
5. V+ Remote Library Module • 页码范围:5-4 至 5-48
rm.app.event
:在PC上生成应用程序事件。
rm.execute
和rm.execute3
:在PC上执行方法,并可选择等待其完成。
rm.pc.fapp
和rm.pc.fapps
:在PC上的文件中追加文本行。
rm.read.*
系列:读取PC上对象的属性值,适用于数值、字符串、变换等类型。
rm.write.*
系列:写入PC上对象的属性值,适用于数值、字符串、变换等类型。
根据此文档生成的相关案例模板
.PROGRAM example_robot_task(tsk.idx)
; 假设tsk.idx是当前任务的索引,通常由TASK()函数获得
; 定义一些变量
AUTO REAL part.idx ; 部件索引
AUTO REAL target.idx ; 目标索引
AUTO REAL is.reset ; 是否重置标志
AUTO REAL sts ; 状态码
; 初始化机器人到任务
CALL pm.rob.init(tsk.idx)
; 进入空闲模式
CALL pm.rob.idlemd(tsk.idx, TRUE, 0, "")
; 获取部件和目标的索引
CALL pm.prt.get.idx(tsk.idx, "PartName", part.idx)
CALL pm.trg.get.idx(tsk.idx, "TargetName", target.idx)
; 控制循环
DO
; 执行拾取操作
CALL pm.rob.pick(tsk.idx, part.idx, -1, , is.reset, sts)
LOOP
; 清理机器人
CALL pm.rob.clear(tsk.idx, sts)
; 结束程序
END
介绍
V+是OMRON工业机器人的解释型编程语言和控制系统。以下是关于您提到的几个方面的简要介绍:
编程语言
V+语言由一系列关键词组成,这些关键词提供了控制、数据操作和其他特定于应用程序的功能。关键词用于创建语句,这些语句按照特定语法执行,直到到达.END语句。
系统操作
系统操作涵盖了对V+控制系统的管理,包括系统消息、数字I/O控制、磁盘I/O操作等。例如,使用WAIT、SIGNAL等关键词来控制程序流和响应外部信号。
运动控制
V+系统提供了丰富的运动控制功能,支持关节插值运动和直线运动,允许进行安全接近和离开操作,连续路径规划,以及通过程序命令关键词如MOVE、MOVES等进行精确的运动控制。
变量和数据类型
V+支持多种数据类型,包括实数、整数、逻辑、字符串和位置数据类型。变量在使用前需要声明,并可以是局部的、全局的或自动的。V+还支持数组,允许创建多维数组。
监控命令程序
监控命令程序用于执行系统级功能,如加载文件、更改默认目录路径、在系统启动后执行主V+程序等。它们在系统启动或通过监控窗口手动执行。
V+程序的创建和使用
V+程序包含控制机器人运行时的逻辑、运动控制和视觉关键词。程序格式包括程序行和程序结构,可以通过各种程序控制结构如无条件分支、条件分支、循环结构等来控制程序流程。V+程序执行时,可以加载到系统内存中,也可以从系统内存中移除。
T20手持编程器编程
T20手持编程器提供了与V+程序交互的接口,允许用户通过手持设备进行机器人控制和编程。包括连接和断开T20设备、向T20显示写入信息、检测用户输入等。
这份用户手册详细介绍了如何使用V+系统进行工业机器人的编程和控制,包括详细的关键词使用指南、系统参数和系统开关的使用,以及如何通过Sysmac Studio软件或ACE软件进行程序的创建和管理。如果您需要更详细的信息或有特定的问题,请随时告知。
V+程序的创建和使用
V+程序是用于控制OMRON工业机器人的一系列指令和逻辑。以下是V+程序的创建和使用的详细讲解,以及一个简单的程序模板案例。
V+程序的创建
- 程序格式:
- 每个V+程序都以
.PROGRAM
关键词开始,后跟程序名和参数列表(如果有)。 - 程序由一系列语句组成,直到遇到
.END
关键词。
- 变量声明:
- 在程序的开始部分,可以声明
AUTO
、EXTERNAL
、GLOBAL
或LOCAL
变量。
- 程序结构:
- 程序结构包括程序头部、程序体和程序尾部。
- 程序体中包含了程序的逻辑,如运动控制、I/O操作等。
- 程序执行:
- 使用
EXECUTE
命令来启动V+程序。 - 程序可以在不同的任务(Task)上执行,每个任务具有不同的优先级。
- 程序控制:
- 使用
GOTO
、IF...THEN...ELSE
、FOR
、WHILE
等控制结构来管理程序流程。
- 程序中断:
- 使用
WAIT
、REACT
、REACTI
、HALT
、STOP
、PAUSE
等关键词来处理程序中断。
V+程序的使用
- 加载程序:
- 使用
LOAD
命令将程序从磁盘加载到系统内存。
- 执行程序:
- 使用
EXECUTE
命令执行已加载的程序。
- 监控和调试:
- 使用监控窗口(Monitor Window)来监控程序状态、执行单步调试等。
- 程序中断处理:
- 使用
REACTE
关键词来捕获和处理程序执行中的错误。
- 信息交换:
- 通过全局变量、软信号或程序参数列表在不同V+程序间交换信息。
程序模板案例
请注意,这只是一个简单的模板,实际的V+程序可能会包含更复杂的逻辑和运动控制指令。在创建程序时,需要根据具体的应用场景来设计程序的结构和逻辑。
运动指令
V+系统中的运动控制指令是用于定义机器人的运动行为的关键语句。以下是一些核心的运动控制指令的详细介绍:
- MOVE: 基本的运动指令,用于使机器人移动到指定的位置或执行预定义的路径点。
- 语法:
MOVE location
- MOVES: 与MOVE类似,但用于执行直线运动,确保工具尖端沿直线移动。
- 语法:
MOVES location
- APPRO: 安全接近指令,允许机器人从指定的距离沿工具Z轴接近目标位置。
- 语法:
APPRO location, distance
- DEPART: 安全离开指令,与APPRO相对,用于机器人离开当前位置前先沿工具Z轴移动指定距离。
- 语法:
DEPART distance
- JOINT: 用于指定机器人应通过关节插值运动到达目标位置。
- 语法:
JOINT joint_values
- SPEED: 设置机器人在运动过程中的最大速度,可以是百分比或绝对值(如毫米/秒或英寸/秒)。
- 语法:
SPEED value%
或SPEED value IPS
或SPEED value MMPS
- ACCEL: 设置机器人的加速度,影响机器人加速到最大速度的快慢。
- 语法:
ACCEL value
- BREAK: 用于中断当前运动,使机器人立即停止。
- 语法:
BREAK
- CPON/CPOFF: 启用或禁用连续路径操作。当禁用时,机器人在每个运动段结束时都会停止。
- 语法:
CPON
或CPOFF
- DURATION: 指定机器人完成一段运动所需的时间,忽略SPEED设置。
- 语法:
DURATION time
- SINGLE/MULTIPLE: 控制机器人是否应该在执行完当前运动后继续执行下一个运动指令。
- 语法:
SINGLE
或MULTIPLE
- FLIP: 翻转工具的方向。
- 语法:
FLIP
- ABOVE/BELOW: 设置机器人在执行运动时是否应该保持工具尖端在目标位置的上方或下方。
- COARSE/FINE: 设置机器人在接近目标位置时的运动精度,粗糙(COARSE)或精细(FINE)。
- NULL/NONULL: 控制机器人是否应该在到达目标位置后执行零位校正。
- BRAKE: 用于在机器人到达目标位置时应用紧急停止或正常停止。
- JUMP: 无条件跳转到程序中的另一个标签位置。
- WAIT: 等待直到满足特定条件或时间。
- REACT: 监控数字输入信号并在状态变化时调用子程序。
- REACTE: 在发生系统错误时调用错误处理程序。
这些指令可以组合使用,以创建复杂的运动序列和条件逻辑,实现精确的机器人控制。在编写V+程序时,应根据具体的应用场景和机器人的工作要求来选择和配置这些指令。
其他指令
V+系统中的运动控制指令是用于定义机器人的运动行为的关键语句。以下是一些核心的运动控制指令的详细介绍:
- MOVE: 基本的运动指令,用于使机器人移动到指定的位置或执行预定义的路径点。
- 语法:
MOVE location
- MOVES: 与MOVE类似,但用于执行直线运动,确保工具尖端沿直线移动。
- 语法:
MOVES location
- APPRO: 安全接近指令,允许机器人从指定的距离沿工具Z轴接近目标位置。
- 语法:
APPRO location, distance
- DEPART: 安全离开指令,与APPRO相对,用于机器人离开当前位置前先沿工具Z轴移动指定距离。
- 语法:
DEPART distance
- JOINT: 用于指定机器人应通过关节插值运动到达目标位置。
- 语法:
JOINT joint_values
- SPEED: 设置机器人在运动过程中的最大速度,可以是百分比或绝对值(如毫米/秒或英寸/秒)。
- 语法:
SPEED value%
或SPEED value IPS
或SPEED value MMPS
- ACCEL: 设置机器人的加速度,影响机器人加速到最大速度的快慢。
- 语法:
ACCEL value
- BREAK: 用于中断当前运动,使机器人立即停止。
- 语法:
BREAK
- CPON/CPOFF: 启用或禁用连续路径操作。当禁用时,机器人在每个运动段结束时都会停止。
- 语法:
CPON
或CPOFF
- DURATION: 指定机器人完成一段运动所需的时间,忽略SPEED设置。
- 语法:
DURATION time
- SINGLE/MULTIPLE: 控制机器人是否应该在执行完当前运动后继续执行下一个运动指令。
- 语法:
SINGLE
或MULTIPLE
- FLIP: 翻转工具的方向。
- 语法:
FLIP
- ABOVE/BELOW: 设置机器人在执行运动时是否应该保持工具尖端在目标位置的上方或下方。
- COARSE/FINE: 设置机器人在接近目标位置时的运动精度,粗糙(COARSE)或精细(FINE)。
- NULL/NONULL: 控制机器人是否应该在到达目标位置后执行零位校正。
- BRAKE: 用于在机器人到达目标位置时应用紧急停止或正常停止。
- JUMP: 无条件跳转到程序中的另一个标签位置。
- WAIT: 等待直到满足特定条件或时间。
- REACT: 监控数字输入信号并在状态变化时调用子程序。
- REACTE: 在发生系统错误时调用错误处理程序。
这些指令可以组合使用,以创建复杂的运动序列和条件逻辑,实现精确的机器人控制。在编写V+程序时,应根据具体的应用场景和机器人的工作要求来选择和配置这些指令。
参考程序模板
下面是一个V+程序模板,它结合了多种运动控制指令和逻辑结构,用于模拟一个简单的机器人取放操作场景:
在这个模板中,我们定义了以下内容:
- 全局变量:用于存储零件位置和工具偏移量。
- 工具坐标系:使用
TOOL
指令设置工具的偏移。
- 初始化:使用
ENABLE POWER
和CALIBRATE
指令初始化机器人。
- 程序主体:包含一系列的运动控制指令,如
MOVES
,APPRO
,DEPART
,以及信号触发指令SIGNAL
。
- 条件判断:使用
IF...THEN...END
结构检查机器人是否已校准。
- 错误处理:使用
REACTE
指令定义错误处理程序。
请注意,这个模板是一个示例,实际应用中需要根据具体的机器人模型、工作环境和任务需求进行调整。例如,
HOME_POS
, DEPOSIT_AREA
, GRAB_PART
, 和 RELEASE_PART
需要根据实际的程序逻辑和I/O配置来定义。此外,错误处理程序error_handling_program
也需要根据实际需求编写。来自的gpt的帮助
运动控制指令
- MOVE
- 功能:控制机器人移动到指定位置。
- 语法:
MOVE position
- 示例:
MOVE startPosition
- 说明:
position
可以是预定义的位置变量或具体的坐标值。
- SPEED
- 功能:设置机器人的移动速度。
- 语法:
SPEED value
- 示例:
SPEED 50
- 说明:
value
表示速度值,单位通常为毫米/秒或度/秒。
- ACCEL
- 功能:设置机器人的加速度。
- 语法:
ACCEL value
- 示例:
ACCEL 20
- 说明:
value
表示加速度值。
- DECEL
- 功能:设置机器人的减速度。
- 语法:
DECEL value
- 示例:
DECEL 20
- 说明:
value
表示减速度值。
- APPROACH
- 功能:控制机器人以指定方向和距离接近目标位置。
- 语法:
APPROACH position, distance
- 示例:
APPROACH targetPosition, 50
- 说明:
position
是目标位置,distance
是接近的距离。
- DEPART
- 功能:控制机器人从当前位置按指定方向和距离离开。
- 语法:
DEPART distance
- 示例:
DEPART 50
- 说明:
distance
是离开的距离。
- DRIVE
- 功能:直接控制机器人各个轴的运动。
- 语法:
DRIVE axis, distance
- 示例:
DRIVE 1, 100
- 说明:
axis
是要驱动的轴号,distance
是移动的距离。
其他重要指令
- SIGNAL
- 功能:控制机器人外部设备的状态(如夹爪)。
- 语法:
SIGNAL port
- 示例:
SIGNAL 1
- 说明:
port
表示输出端口号。
- WAIT
- 功能:使程序暂停执行,直到某个条件满足。
- 语法:
WAIT condition
- 示例:
WAIT TIME 5.0
- 说明:
condition
可以是时间、信号状态等。
- DELAY
- 功能:使程序暂停执行指定时间。
- 语法:
DELAY time
- 示例:
DELAY 2.0
- 说明:
time
是暂停的时间,单位为秒。
- 功能:在监控窗口打印消息。
- 语法:
PRINT message
- 示例:
PRINT "Hello, World!"
- 说明:
message
是要打印的字符串或变量。
- CALL
- 功能:调用其他程序或子程序。
- 语法:
CALL programName
- 示例:
CALL initialize()
- 说明:
programName
是要调用的程序名。
- IF...THEN...ELSE
- 功能:条件控制语句,用于执行不同的代码块。
- 语法:
- 示例:
- WHILE
- 功能:循环控制语句,用于重复执行代码块。
- 语法:
- 示例:
示例程序
以下是一个综合使用上述指令的简单示例程序:
🤗 问题处理(ACE软件)
急停报警故障 E5FW
解决办法
把这里面有一个1005打钩的去掉,保存一下
紧急停止故障
截止24.6.17此故障在ACE4.6和4.7无法解决需要升级v+软件
多抓多放问题
需要注意的是此功能要在末端执行器中添加新的端及tcp工具,才可以出现上图的端1、端2等。
上电开机显示未校准3D机器人位置跑到上面
🤗 协作机器人
协作机器人和移动小车的通讯调试
🤗 官网资料
📎 参考文章
相关案例程序
有错误的地方欢迎欧姆龙大佬底部评论区留言,相关机器人案例可发我邮箱[email protected]一起交流,网站内容会持续丰富更新,欢迎收藏关注~
- 作者:Robot_Qu
- 链接:https://robotqu.com/article/omron
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。