ABB 120 六轴机械手臂编程调试(三)

2023-11-12

下一步进行机械手臂的程序编写

程序只是进行简单的点位运动,实现抓取功能
程序控制的点位表

输入点位 点位描述 输出点位 点位描述
DI5 夹取完成 DO5 夹取物料
DI6 放料完成 DO6 放下物料
DI7 回原点 DO7 设备就绪
DI8 物料到位

程序如下

MODULE MainModule
	CONST robtarget phome:=[[364.35,0.00,594.00],[0.5,0,0.866025,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
    CONST robtarget ppick:=[[364.35,0.00,594.00],[0.5,0,0.866025,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
    CONST robtarget pplace:=[[364.35,0.00,594.00],[0.5,0,0.866025,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
    CONST robtarget pq1:=[[364.35,0.00,594.00],[0.5,0,0.866025,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
    CONST robtarget pq2:=[[364.35,0.00,594.00],[0.5,0,0.866025,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
	VAR num num1:=0;
	PROC main()
		gohome; //1
        WHILE TRUE DO
            IF di7 = 1 THEN //2
                gohome;
            ENDIF
            IF di8 = 1 THEN //3
                Reset do7;
                pick;
            ENDIF
        ENDWHILE
	ENDPROC
    PROC pick()
        MoveJ pq1,v200,fine,tool0;
        MoveJ Offs(ppick,0,0,100),v100,fine,tool0;
        MoveL ppick,v100,fine,tool0;
        Set do5;
        WaitTime 1;  //4
        WaitDI di5,1; //5
        Reset do5;
        Movel Offs(ppick,0,0,100),v100,fine,tool0;
        MoveJ pq1,v200,fine,tool0;
        place;
    endproc
    
    PROC place()
        Movej pq2,v200,fine,tool0;
        MoveJ Offs(pplace,0,0,100),v200,fine,tool0;
        MoveL pplace,v100,fine,tool0;
        Set do6;
        WaitTime 1;
        WaitDI di6,1;
        Reset do6;
        MoveL Offs(pplace,0,0,100),v100,fine,tool0;
        MoveJ pq2,v200,fine,tool0;
        IF di8 = 1 THEN  //6
            pick;
        ENDIF
        MoveJ phome,v200,fine,tool0; //7
    endproc
    
    PROC gohome() //8
        MoveJ phome,v200,fine,tool0;
        reset do5;
        reset do6;
        reset do7;
        Set do7;
    ENDPROC
ENDMODULE

注释

1、

上电程序运行后,执行回原点程序,进行程序的初始化;

2、

控制器在程序运行中控制机器人进行回原点及初始化。

3、

物料到位后,plc控制器给予信号,让机械手臂,执行抓取物料程序(pick)

4、

在抓取物料程序中,先关节运动至过度点pq1.在关节运动至抓取点上方100mm处,直线运动至抓取点(ppick),输出夹取信号,控制器控制气缸夹具对物料进行夹取,延时一秒。

5、

等待信号,等待控制器将物料夹取完成。

6、

在放物料程序中,上方是与取物料同样的控制逻辑,这里到达放物料的pq2过度点后,对于物料是否到位进行了判断,如果物料到位这直接执行取物料程序,直接动作至取物料的pq1点位,以节省时间,优化动作。

7、

放物料完成后,且并没有新的物料到位,则回原点,返回主程序,等待新物料到位后执行取物料程序。

8、

回原点及初始化程序

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ABB 120 六轴机械手臂编程调试(三) 的相关文章

  • 多线程作业及答案

    多线程作业 一 填空题 1 处于运行状态的线程在某些情况下 如执行了sleep 睡眠 方法 或等待I O设备等资源 将让出CPU并暂时停止自己的运行 进入 状态 2 处于新建状态的线程被启动后 将进入线程队列排队等待CPU 此时它已具备了运
  • myeclipse无法打开工作空间

    现象 打开myeclipse工作空间时进度条不动 解决方式 找到工作空间的文件目录 如 D work 打开D work metadata plugins org eclipse core resources projects 目录 查找近期

随机推荐

  • Mysql入门到精通-快速插入1000万条数据(转)

    创建MyISAM模式表方便批量跑数据 CREATE TABLE logs1 id int 11 NOT NULL AUTO INCREMENT logtype varchar 255 DEFAULT NULL logurl varchar
  • SIFT解析(二)特征点位置确定

    最近微博上有人发起投票那篇论文是自己最受益匪浅的论文 不少人说是lowe的这篇介绍SIFT的论文 确实 在图像特征识别领域 SIFT的出现是具有重大意义的 SIFT特征以其稳定的存在 较高的区分度推进了诸多领域的发展 比如识别和配准 上一篇
  • 3月打卡活动第20天 面试题第40题:最小的k个数(简单)

    3月打卡活动第20天 面试题第40题 最小的k个数 简单 题目 输入整数数组 arr 找出其中最小的 k 个数 例如 输入4 5 1 6 2 7 3 8这8个数字 则最小的4个数字是1 2 3 4 解题思路 排序 取前k个值 class S
  • 常用人体模型关节索引

    SMPL 24 joints Cocoplus 19 joints 0 RAnkle 1 RKnee 2 RHip 3 LHip 4 LKnee 5 LAnkle 6 RWrist 7 RElbow 8 RShoulder 9 LShoul
  • 程序员们最恐惧的“代码”,一见就头疼,是老前辈留下来的代码!

    t行业是目前最赚钱的行业 程序员是目前最赚钱的职业之一 也是最容易过劳死的职业之一 虽然程序员们工资都很高 有的还会赚年薪 但是他们的工作真的是非常辛苦 因为程序员经常会熬夜写代码 在电脑前工作 他们脱发秃头的几率也非常高 由于程序员经常在
  • poco源码简单分析

    自动化工具poco源码简单分析 Airtest简介 Airtest是网易游戏开源的一款UI自动化测试项目 目前处于公开测试阶段 该项目分为AirtestIDE Airtest Poco Testlab四个部分 基于python脚本的方式 用
  • 【公告】博客专家 6 月发布原创/翻译文章奖励

    博客专家6月发布原创 翻译文章奖励 CSDN ID 所获奖励 malefactor 图灵社区技术图书 程序员杂志最新期刊 C币100 lmj623565791 图灵社区技术图书 程序员杂志最新期刊 C币100 jiangwei0910410
  • python TypeError: missing 1 required positional argument:'self'

    Python 调用类的函数时报错如下 TypeError seperate data missing 1 required positional argument self 报错原因 train data test data DataCle
  • 对spark dataframe join之后的列值NULL值进行填充为指定数值的操作

    众所周知 两个数据集如A B取JOIN操作的时候 其结果往往会出现NULL值的出现 这种情况是非常不利于后续的分析与计算的 特别是当涉及到对这个数值列进行各种聚合函数计算的时候 针对这种问题 当然从最简单的dataframe map来处理是
  • QThreadPool线程池的原理与使用

    一 为什么需要用线程池 现在所有的高性能服务器程序 几乎都会使用到线程池技术 从而更好且有效的榨干服务器性能 1 开多少个线程可以达到性能最佳 不知道 你有没有这个疑问 这是一种常见的线程使用方式 class MyThread public
  • list集合(接口)

    list集合 显而易见是用来存储数据的 可以把它看作是长度可变的数组 它是有序存储数据的 具有跟数组一样的索引 ArrayList LinkedList Vector Stack都是list接口的实现类 以ArrayList为例说明list
  • 1033 旧键盘打字 (20 分)

    题目 旧键盘上坏了几个键 于是在敲一段文字的时候 对应的字符就不会出现 现在给出应该输入的一段文字 以及坏掉的那些键 打出的结果文字会是怎样 输入格式 输入在 2 行中分别给出坏掉的那些键 以及应该输入的文字 其中对应英文字母的坏键以大写给
  • 基于Redis的BitMap实现签到、连续签到统计(含源码)

    微信公众号访问地址 基于Redis的BitMap实现签到 连续签到统计 含源码 推荐文章 1 springBoot对接kafka 批量 并发 异步获取消息 并动态 批量插入库表 2 SpringBoot用线程池ThreadPoolTaskE
  • mysql日期转换

    1 MySQL中和日期相关的函数 1 1 DATE FORMAT date format 主要用来将日期格式化函数 举例 SELECT DATE FORMAT NOW Y m d 1 2 STR TO DATE str format 主要用
  • 分析pandas的数据,分析某一列数据的长度分布等等

    分析数据 如分析sku的长度 import pandas as pd import numpy as np data file data data zh sku 80k csv 待分析的文件 def ana len file key Non
  • AI绘画:StableDiffusion实操教程-斗破苍穹-云韵-常服(附高清图下载)

    前段时间我分享了StableDiffusion的非常完整的教程 AI绘画 Stable Diffusion 终极宝典 从入门到精通 不久前 我与大家分享了StableDiffusion的全面教程 AI绘画 Stable Diffusion
  • HITICS-2018大作业 hello的一生

    摘 要 本论文详细介绍了hello程序在linux系统中从生成源代码到成功运行完毕被系统回收的整个过程 按照执行的先后顺序模块化介绍了hello c在计算机内部是系统具体执行了什么指令 如何执行的 用到了哪些知识等 本论文参考CSAPP课本
  • linux(centos) 保存退出vi编辑

    保存命令 按ESC键 跳到命令模式 然后 w 保存文件但不退出vi w file 将修改另外保存到file中 不退出vi w 强制保存 不推出vi wq 保存文件并退出vi wq 强制保存文件 并退出vi q 不保存文件 退出vi q 不保
  • Oracle存储过程获取入参出参(顺序,名字,类型,入参/出参)

    调用SQL语句 PROCEDURE NAME为过程名 自行替换要查询的过程名 POS为参数位置 NAME为参数名 TYPE为参数类型 IN OUT为入参 出参 SELECT A POSITION POS A ARGUMENT NAME NA
  • ABB 120 六轴机械手臂编程调试(三)

    下一步进行机械手臂的程序编写 程序只是进行简单的点位运动 实现抓取功能 程序控制的点位表 输入点位 点位描述 输出点位 点位描述 DI5 夹取完成 DO5 夹取物料 DI6 放料完成 DO6 放下物料 DI7 回原点 DO7 设备就绪 DI