当前位置: 首页 > news >正文

Kuka机器人设计通用码垛程序

假设需要一个码垛程序, 从输送线抓到托盘, 托盘每层4个, 需要码5层, 可以用以下程序架构设计:

1, 再config中定义层数cengshu , 每层码垛的个数(码垛的次数)cishu , 每层的高度levelHeight , 码垛放置点的集合putPoint[,] ,预放点1集合prePut1[,], 预放点2集合prePut2[,]

DECL INT cengshu = 0DECL INT cishu = 0DECL INT levelHeight = 200DECL FRAME putPoint[10,10]DECL FRAME prePut1[10,10]DECL FRAME prePut2[10,10]

码垛放件程序

&ACCESS RVO1
&COMMENT put2
DEF put2 ( )
;FOLD INI;FOLD BASISTECH INIGLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )INTERRUPT ON 3 BAS (#INITMOV,0 );ENDFOLD (BASISTECH INI);FOLD USER INI;Make your modifications here;ENDFOLD (USER INI)
;ENDFOLD (INI)IF FALSE THEN;FOLD LIN putBase CONT Vel=2 m/s CPDAT0 Tool[1]:Tool1 Base[0];%{PE}%R 8.3.22,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:putBase, 3:C_DIS C_DIS, 5:2, 7:CPDAT0
$BWDSTART=FALSE
LDAT_ACT=LCPDAT0
FDAT_ACT=FputBase
BAS(#CP_PARAMS,2)
LIN XputBase C_DIS C_DIS
;ENDFOLDENDIFIF (cengshu == 1) OR (cengshu == 2) OR (cengshu == 3) OR (cengshu == 4) OR (cengshu == 5) THENIF cishu == 1 THENputPoint[cengshu,cishu]= XputBaseputPoint[cengshu,cishu].X = putPoint[cengshu,cishu].XputPoint[cengshu,cishu].Y = putPoint[cengshu,cishu].YputPoint[cengshu,cishu].Z = putPoint[cengshu,cishu].Z+(cengshu-1)*levelHeightENDIFIF cishu == 2 THENputPoint[cengshu,cishu]= XputBaseputPoint[cengshu,cishu].X = putPoint[cengshu,cishu].X+10putPoint[cengshu,cishu].Y = putPoint[cengshu,cishu].YputPoint[cengshu,cishu].Z = putPoint[cengshu,cishu].Z+(cengshu-1)*levelHeightENDIFIF cishu == 3 THENputPoint[cengshu,cishu]= XputBaseputPoint[cengshu,cishu].X = putPoint[cengshu,cishu].X+10putPoint[cengshu,cishu].Y = putPoint[cengshu,cishu].Y+10putPoint[cengshu,cishu].Z = putPoint[cengshu,cishu].Z+(cengshu-1)*levelHeightENDIFIF cishu == 3 THENputPoint[cengshu,cishu]= XputBaseputPoint[cengshu,cishu].X = putPoint[cengshu,cishu].XputPoint[cengshu,cishu].Y = putPoint[cengshu,cishu].Y+10putPoint[cengshu,cishu].Z = putPoint[cengshu,cishu].Z+(cengshu-1)*levelHeightENDIFENDIF;shoudong dao preput1 prePut1[cengshu,cishu]= putPoint[cengshu,cishu]prePut1[cengshu,cishu].X = prePut1[cengshu,cishu].X+200prePut1[cengshu,cishu].Y = prePut1[cengshu,cishu].Y+200prePut1[cengshu,cishu].Z = prePut1[cengshu,cishu].Z+200prePut2[cengshu,cishu]= putPoint[cengshu,cishu]prePut2[cengshu,cishu].X = prePut2[cengshu,cishu].X+100prePut2[cengshu,cishu].Y = prePut2[cengshu,cishu].Y+100prePut2[cengshu,cishu].Z = prePut2[cengshu,cishu].Z+100PTP prePut1[cengshu,cishu] C_DISPTP prePut2[cengshu,cishu] C_DIS LIN putPoint[cengshu,cishu] C_DIS$out[1]=FALSE ;fangjianWAIT SEC 0.5PTP prePut2[cengshu,cishu] C_PTP PTP prePut1[cengshu,cishu] C_PTPEND

主程序:

c&ACCESS RVO
&REL 7
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM DISKPATH = KRC:\R1\Program\PRO
DEF test( )
;FOLD INI;%{PE};FOLD BASISTECH INIGLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )INTERRUPT ON 3 BAS (#INITMOV,0 );ENDFOLD (BASISTECH INI);FOLD USER INI;Make your modifications here;ENDFOLD (USER INI)
;ENDFOLD (INI)$out[1]=FALSE$out[2]=FALSE;FOLD PTP HOME  Vel= 100 % DEFAULT;%{PE}%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT
$BWDSTART = FALSE
PDAT_ACT=PDEFAULT
FDAT_ACT=FHOME
BAS (#PTP_PARAMS,100 )
$H_POS=XHOME
PTP  XHOME
;ENDFOLDLOOPFOR cengshu = 1 TO 5FOR cishu = 1 TO 4WAIT FOR $in[1]pick ();FOLD PTP p1 CONT Vel=100 % DEFAULT Tool[1]:Tool1 Base[0];%{PE}%R 8.3.22,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:p1, 3:C_PTP, 5:100, 7:DEFAULT
$BWDSTART=FALSE
PDAT_ACT=PDEFAULT
FDAT_ACT=Fp1
BAS(#PTP_PARAMS,100)
PTP Xp1 C_PTP
;ENDFOLDput2 ();FOLD PTP HOME  Vel= 100 % DEFAULT;%{PE}%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT
$BWDSTART = FALSE
PDAT_ACT=PDEFAULT
FDAT_ACT=FHOME
BAS (#PTP_PARAMS,100 )
$H_POS=XHOME
PTP  XHOME
;ENDFOLDENDFOR
ENDFOR$out[3]=TRUEWAIT SEC 1$out[3]=FALSEENDLOOP END

取件程序:

&ACCESS RVO1
&COMMENT put1
DEF pick ( )
;FOLD INI;FOLD BASISTECH INIGLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )INTERRUPT ON 3 BAS (#INITMOV,0 );ENDFOLD (BASISTECH INI);FOLD USER INI;Make your modifications here;ENDFOLD (USER INI)
;ENDFOLD (INI);FOLD PTP p2 CONT Vel=100 % DEFAULT Tool[1]:Tool1 Base[0];%{PE}%R 8.3.22,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:p2, 3:C_PTP, 5:100, 7:DEFAULT
$BWDSTART=FALSE
PDAT_ACT=PDEFAULT
FDAT_ACT=Fp2
BAS(#PTP_PARAMS,100)
PTP Xp2 C_PTP
;ENDFOLD;FOLD LIN p3 CONT Vel=2 m/s CPDAT0 Tool[1]:Tool1 Base[0];%{PE}%R 8.3.22,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:p3, 3:C_DIS C_DIS, 5:2, 7:CPDAT0
$BWDSTART=FALSE
LDAT_ACT=LCPDAT0
FDAT_ACT=Fp3
BAS(#CP_PARAMS,2)
LIN Xp3 C_DIS C_DIS
;ENDFOLD$OUT[1]=TRUEWAIT SEC 1;FOLD LIN p4 CONT Vel=2 m/s CPDAT0 Tool[1]:Tool1 Base[0];%{PE}%R 8.3.22,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:p4, 3:C_DIS C_DIS, 5:2, 7:CPDAT0
$BWDSTART=FALSE
LDAT_ACT=LCPDAT0
FDAT_ACT=Fp4
BAS(#CP_PARAMS,2)
LIN Xp4 C_DIS C_DIS
;ENDFOLDEND

相关文章:

Kuka机器人设计通用码垛程序

假设需要一个码垛程序, 从输送线抓到托盘, 托盘每层4个, 需要码5层, 可以用以下程序架构设计: 1, 再config中定义层数cengshu , 每层码垛的个数(码垛的次数)cishu , 每层的高度levelHeight , 码垛放置点的集合putPoint[,] ,预放点1集合prePut1[,], 预放点2集合prePut2[,] DEC…...

pandas由入门到精通-数据清洗-扩展数据类型

pandas-02-数据清洗&预处理 扩展数据类型1. 传统数据类型缺点2. 扩展的数据类型3. 如何转换类型文中用S代指Series,用Df代指DataFrame 数据清洗是处理大型复杂情况数据必不可少的步骤,这里总结一些数据清洗的常用方法:包括缺失值、重复值、异常值处理,数据类型统计,分…...

深入理解 Vue Router:构建可靠的前端路由系统

目录 01-什么是前端路由以及路由两种模式实现原理02-路由的基本搭建与嵌套路由模式03-动态路由模式与编程式路由模式04-命名路由与命名视图与路由元信息05-路由传递参数的多种方式及应用场景06-详解route对象与router对象07-路由守卫详解及应用场景 01-什么是前端路由以及路由两…...

Mysql B+数索引结构

一、B树和B树区别 二、 B 树形成过程 三、页分裂过程 3.1 页分裂过程实例 3.1.1 原有数据1、3、5形成如下数据页 3.1.2 先新插入数据4,因为 页10 最多只能放3条记录所以我们不得不再分配一个新页: 新分配的数据页编号可能并不是连续的,也…...

在window上配置NASM

NASM是支持x86、x64架构CPU的汇编器(汇编软件);NASM也支持大量的文件格式,包括Linux,*BSD,a.out,ELF,COFF,Mach−O,Microsoft 16−bit OBJ,Win32以及Win64,同…...

用QT实现MVP模式

近些天用qt 作项目,遇到参数界面.偷闲写个mvp模式示例. mvp模式重要的有两点 1 低耦合: 界面与后端数据类,不直接引用,可方便替换. 2 形成界面驱动-界面更新的闭环.:通过函数指针类技术,让数据自动回流. MVP (Model-View-Presenter) 视图(View): 接…...

(2023)Linux安装pytorch并使用pycharm远程编译运行

(2023)Linux安装pytorch并使用pycharm远程编译运行 安装miniconda 这部分参考我这篇博客的前半部分Linux服务器上通过miniconda安装R(2022)_miniconda 安装r_Dream of Grass的博客-CSDN博客 创建环境 创建一个叫pytorch的环境…...

poi带表头多sheet导出

导出工具类 package com.hieasy.comm.core.excel;import com.hieasy.comm.core.excel.fragment.ExcelFragment; import com.hieasy.comm.core.utils.mine.MineDateUtil; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.*; import org.apache.po…...

RedisDesktopManager(redis客户端,可输入用户名密码)

RedisDesktopManager(redis客户端,可输入用户名密码) Redis桌面管理器(又名RDM) - 是一个用于Windows,Linux和MacOS的快速开源Redis数据库管理应用程序。可以使用url连接或账号密码。 redis设置账号密码后…...

【Adobe After Effects】关于ae点击空格不会播放反而回退一帧的解决方案

最近玩ae的时候遇见了一个小问题,就是有时候敲空格,视频没办法播放,反而会回退一帧,经过摸索发现了一个解决办法: 点击编辑---首选项 然后选择“音频硬件” 然后选择正确的默认输出,点击确定即可...

Linux网络编程:多路I/O转接服务器(select poll epoll)

文章目录: 一:select 1.基础API select函数 思路分析 select优缺点 2.server.c 3.client.c 二:poll 1.基础API poll函数 poll优缺点 read函数返回值 突破1024 文件描述符限制 2.server.c 3.client.c 三:epoll …...

Mybatis系列原理剖析之项目实战:自定义持久层框架

Mybatis系列原理剖析之:项目实战:自定义持久层框架 持久层是JAVA EE三层体系架构中,与数据库进行交互的一层,持久层往往被称为dao层。需要说明的是,持久层的技术选型有很多,绝不仅仅只有mybatis一种。像早…...

阿里云 Serverless 应用引擎 2.0,正式公测!

阿里云 Serverless 应用引擎 SAE2.0 正式公测上线!全面升级后的 SAE2.0 具备极简体验、标准开放、极致弹性三大优势,应用冷启动全面提效,秒级完成创建发布应用,应用成本下降 40% 以上。 此外,阿里云还带来容器服务 Se…...

西北大学计算机考研844高分经验分享

西北大学计算机考研844经验分享 个人介绍 ​ 本人是西北大学22级软件工程研究生,考研专业课129分,过去一年里在各大辅导机构任职,辅导考研学生专业课844,辅导总时长达288小时,帮助多名学生专业课高分上岸。 前情回顾…...

【java并发编程的艺术读书笔记】volatile关键字介绍、与synchronized的区别

volatile的简介 volatile是轻量级锁,只用来修饰变量,保证这个变量在多线程下的可见性以及一致性(一个volatile变量被线程修改时会立刻通知其他所有线程),防止指令重排序,但是并不能保证绝对的线程安全 vol…...

LinkedList的顶级理解

目录 1.LinkedList的介绍 LinkedList的结构 2.LinkedList的模拟实现 2.1创建双链表 2.2头插法 2.3尾插法 2.4任意位置插入 2.5查找关键字 2.6链表长度 2.7遍历链表 2.8删除第一次出现关键字为key的节点 2.9删除所有值为key的节点 2.10清空链表 2.11完整代码 3.…...

再学http-为什么文件上传要转成Base64?

1 前言 最近在开发中遇到文件上传采用Base64的方式上传,记得以前刚开始学http上传文件的时候,都是通过content-type为multipart/form-data方式直接上传二进制文件,我们知道都通过网络传输最终只能传输二进制流,所以毫无疑问他们本…...

使用oracleVM搭建虚拟机

选择新建,点击 取名字,选择你的安装路径,选择你爹镜像光盘,再勾选下面的,表示跳过一些步骤 其他的都可以默认,下一步即可 创建好了,点击设置,改变光驱,硬盘的顺序 等待它…...

深入探讨C存储类和存储期——Storage Duration

🔗 《C语言趣味教程》👈 猛戳订阅!!! ​—— 热门专栏《维生素C语言》的重制版 —— 💭 写在前面:这是一套 C 语言趣味教学专栏,目前正在火热连载中,欢迎猛戳订阅&#…...

医学图像融合的深度学习方法综述

文章目录 Deep learning methods for medical image fusion: A review摘要引言非端到端的融合方法基于深度学习的决策映射基于深度学习的特征提取 端到端图像融合方法基于卷积神经网络(CNN)的图像融合方法单级特征融合方法多级特征融合基于残差神经网络的图像融合方法基于密集神…...

ES6从入门到精通:前言

ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

第八部分:阶段项目 6:构建 React 前端应用

现在,是时候将你学到的 React 基础知识付诸实践,构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段,你可以先使用模拟数据,或者如果你的后端 API(阶段项目 5)已经搭建好,可以直接连…...