陈惠鑫
级别: 工控侠客
精华主题: 0
发帖数量: 62 个
工控威望: 2448 点
下载积分: 250 分
在线时间: 51(小时)
注册时间: 2020-02-19
最后登录: 2024-06-07
查看陈惠鑫的 主题 / 回贴
楼主  发表于: 2021-07-03 10:54
本人2年发那科机器人搬送应用经验,+安川motoman+espon+配天机器人+杂七杂八的国产机器人应用经验。
总的来说机器人应用方面用的最多应该还是搬运,像其他细分领域里,焊接,喷涂还有视觉应用,接触比较少,所以可能给不了大家太多的分享。
首先,机器人应用里面就躲不过一个东西,叫坐标系。
何为坐标系,读过书都应该知道,平面里建立一个x方向与y方向垂直,便能形成一个二维的直角坐标系。在二维平面的坐标系上面垂直一个Z方向就得到了一个三维的坐标系。
之前在常州机电做培训的时候,老师们都问过一个问题就是,机器人是靠什么去准确再现位置的。我简单解释说就是靠电机编码器的数值去记录,然后就得到一个新的问题,就是怎么知道它的位置就是原点。机器人本体下面有一个电池盒,电池是可以保存编码器信息的,编码器是绝对式,当电池快没电到时候,需要带电更换电池,以防止掉电失掉数据。编码器数据相当于机器人再现动作的基础。然后就是烦人的坐标系。
回到我们的坐标系,基本有以下几种坐标系:
1.世界坐标/基坐标/底坐标/全局坐标(反正就一个,以第一轴基座中心为原点就是了,有些把世界坐标系分开说是世界坐标规定用户坐标的初始方向,俩坐标是同一个点同一个方向,但有些厂家出厂标定不一样,没办法总有人要特立独行)
2.法兰坐标系(以第六轴法兰中心为原点)
3.工具坐标系/尖端坐标系(以工具/夹持器/焊枪/喷枪/打磨头等最终的中心位置为原点)
4.用户坐标系/方向坐标系/工件坐标系(定义运动方向,有一些把用户跟工件坐标系分开,因为工件坐标系Z轴方向以右手定则确定,用户坐标系可自定义)
然后我们需要知道:
1.世界/基座标一般不需要我们自己标定,因为是系统内设置好的
2.法兰坐标系一般只有一个(双臂的就不知道了,没用过),也不用我们操心
3.工具坐标系(tool)一般需要进行尖端TCP标定也就是需要至少三个不同面的姿态去确定工具中心,通常采用三点/六点/九点法进行。而我比较喜欢在规矩的夹具上面直接通过设计参数去设定tcp(遇到60°安装的或者是特殊角度的工具就老老实实还是三点法吧)
4.用户/工件坐标系,一般也是比较简单的三点法即是原点,X方向点Y方向点,(方向距离越大,XY夹角越接近90度,坐标系越准)
坐标系是机器人应用的基础,接触过这么多的设备,有简单也有复杂的,最开始不会的时候基本都是使用初始化状态的坐标系,即是法兰坐标+世界坐标去做,因为基本都是垂直布局,当你遇到45度布局的设备的时候就gg了,每次都是X+1Y+1,一点点的加,后面学会了坐标系,上来就是先把坐标系设定好了,对点编程的时候就相对轻松很多。
坐标系制定是机器人应用一个基础,也是比较多新手会不太喜欢去使用的一个东西,因为有时候定好点运行的时候发现坐标系调用错了,整个程序就得重来或者重新使用那个坐标系。一般我发现坐标系错了我会试一下是不是某个坐标系,然后偷懒的把坐标系给改成那个坐标系,但这个做法日后别人去读程序的时候就会一脸懵不知道你为什么那样干。所以该有的规矩还是得有,编程就是得逻辑清晰然后多做点备注吧。
坐标系标定好了之后,先别急着去编程,如果说新接触一家机器人厂家,最好先把相应的动作指令熟悉一下。
初次使用发那科机器人的时候我觉得跟三菱的机器人是差不多的,就是直线跟关节,然后后带个速度+截至类型,编程的时候溜得飞起,编完程序你还能一键把相应点位重新按顺序编号,要改哪个点位就点哪里然后选择修改数据就万事大吉。后来遇到了安川机器人就懵了,直接来个movj*****或者movl*****,点位呢没有编号,尴尬的我都不得不吐槽这东西不科学,用久了呢,也就摸出规律了,大概也就是各家人不一样的做法而已。
说到底目前的机器人运动指令无非就是:
MOVL直线运动+点位标签+运动速度+截止类型(+加减速)
MOVJ关节运动+点位标签+运动速度+截止类型(+加减速)
MOVC圆弧运动+点位信息+运动速度+截止类型(+加减速)
每一家人的指令方式都不一样,编程之前最好了解一下指令的构成是怎样的。用习惯了发那科的fine/cnt100,突然来个F100/C50的截止类型,会有个一脸懵的感觉。或者是统一速度的speed=80,变成了speedset/vset,这些都得先提前了解。
经验告诉我,角度变换选关节,因为快,如你需要本体转移90度或者末端工具转180度的时候,关节运动是最快最安全的,因为动作可预见。或者运行到安全点这类外部安全位置的一般都是走关节。迫近与末端执行一般就是使用直线,这样确保准确程度,且这个时候坐标系 的作用就体现出来了,一个合适的坐标系能让你动作调试过程轻松很多倍。当然,焊接工艺比较多还是走复杂曲线,我接触的比较少,焊接是个工艺,为了子孙后代,没想接触。
然后有些特殊应用场景可能会用到码垛拆垛指令,这些指令需要各自去看指令代码说明。初学机器人可能都会在机器人怎么保存数据跟怎么执行动作上面比较难理解,搞两个就知道了。实干才能深刻体会。
然后第三步就是机器人的io操作,首先了解io的手动触发,手动操作下io是如何触发io监控io,这是编程之前需要了解的。例如发那科可以设置快捷键shitf+数字键,安川也可以使用快捷方式触发,配天可以配置FN键,了解之后,对于你的操作会有很多帮助。进入编程io触发,要了解编程指令中io是如何操作的。有些机器人io指令就是O1=ON/O1 ON/ON O1...复杂一点的可能就会pluse脉冲输出或者是在指令后面有其他附加指令。也有些是在机器人动作后面加上动作结束后输出或动作输出前关闭。像发那科是DO1=on,wait DI1=OFF,配天的是SETDO(1,TRUE),WAITUNTIL getdi().IO操作基本会贯彻你应用过程。
到这个过程,基本上一个动作就可以走完了。简单的动作执行,然后触发IO,等待io到位,继续下一步,一个简单的逻辑就完成了。
主菜上完了,该上小菜了。
进入实际编程,我们来说程序执行结构。到上面那一步,我们基本把机器人动作的基础讲完了,点位运动+IO动作,简单演示一个动作流程是没问题了。
最近在看python,python把程序结构分为顺序结构,分支(选择)结构,循环结构,在这里,我觉得可以套用。
顺序结构用于执行动作,流程,工艺。上面说到的简单的点位运行然后执行io操作,可以归类为顺序结构。
分支结构用的比较多还是在工艺选择,流程选择,子程序调用上面,具体体现为,满足条件即跳转。举个例子,机器人一对多设备,运行等待时如果期中一台设备发送了上下料或空闲指令,机器人收到信息后,需要进行设备选择以及动作程序,其他设备后发送信息就得等相关流程处理完才会继续执行该动作。再举个例子,一个动作里面如果有不同的工艺,工艺完成情况会决定相应后续工艺,分支选择便是决定工艺执行的前提。有些机器人分支结构命令为if(条件)then(执行动作),然后动作内部再嵌套一级if判断,最多一般不超过7级。有些机器人则是if(条件成立)(执行动作)else(执行动作)endif,或者是if(条件成立)执行动作elseif(条件成立)(执行动作)elseif(条件成立)(执行动作)endif。有些会直接把elseif简写elif或者其他,这时候厂家手册就很有去看啦。不过我用的比较多还是使用
switch (条件)
  case(条件1)执行动作
  case(条件2)执行动作
  case(条件3)执行动作
def 执行动作
每一家的指令都不一样,但是思想可以归为一类。条件满足执行相应的动作。这就是分支结构的核心。不过使用分支结构的话需要注意一点就是执行结束后需要返回的位置,如果是循序工艺,那可以直接跳转回下一行,如果是动作工艺,那需要返回的有时候会是条件判断的选择行,这个地方需要注意。就像上下料,你判断是上下料了,取完下一步就是上料,如果你跳转回判断机台动作,那铁定出故障,如果你动作做完了,下一步是去放成品,那跳转回去判断下一步工艺应该是符合逻辑的。
循环结构,循环结构和选择结构有些类似,不同点在于循环结构的条件判断和循环体之间形成了一条回路,当进入循环体的条件成立时,程序会一直在这个回路中循环,直到进入循环体的条件不成立为止。
最近在搞PLC,FOR...NEXT..指令。刚开始我觉得独立的程序也可以达到我想要的效果。写了一个累加的程序,从1-50,普通程序花了5秒完成,24行程序,后来用FOR k50然后程序也是差不多的程序逻辑,100ms就出结果,1-1000累加也是100ms,普通程序花了要30秒。后面查查资料,意思就是在一个周期里面它这个程序会根据设定的次数运行相应的次数,所以会快一点。
不过这里用在机器人上面,较多应该还是用在对工艺内动作的选择上面。可能需要多次执行一个动作的时候,或者是判断料号,料量的选择。
循环结构用得最多应该还是在主程序进入后的while(1)以及最后的endwhile结束。
循环结构我用得比较少,因为我一般主程序循环我是使用条件分支进行跳转,终止条件不达到就能一直按照我们设定的流程走下去。
=======================
基础应用到上面这里就差不多完结了。毕竟机器人入门是比较简单的,坐标,动作,逻辑,三剑客熟悉之后,新手跟老鸟的差别就要开始慢慢拉开距离了。
前菜:
之前在做机床上下料的时候,最开始只有几十个料位,对点位还是比较简单,到了后来512个料位,加上64个刀位,一个料位有取料动作跟放料动作,对应取料治具跟放料治具,也就是总的要1024+128个位置要对,然后加上每个位置需要有迫近位,取料位,离开位,也就是(1024+128)*3,这工作量就嘿嘿嘿了,单纯基础的1024个点位就要对两天,对完手都是抖动的,更别说还不知这个数量。所以后来上来先搞坐标系,然后对点的时候使用同一的坐标方向,上下左右前后都统一规定,使用统一的方向进行,后面对点就方便一点。此外摸索规律也很重要,基本动作可以分迫近位,取料位,离开位,那便是取放都可以通用同一种距离,只不过动作反过来进行而已。后面其实就都是只对一个取料点跟放料点,其他都是使用偏移指令进行点位数据的偏移,这样又简单又快捷,只不过前期的坐标系一定要对好还有就是方向要规定好,精度必须保证好。做好这个其实后面工作就解决了大概1/2.调试时间也能减少很多。
偏移指令在大量点位重复动作 的情况下是非常节省人工效率的一个操作方法,但是前提的条件是你对坐标系需要做到比较灵活的应用。不会因为调用出错导致撞机。
小菜:
说到大规模重复动作就不得不说码垛这个指令了,偏移指令还需要进行基础点位的示教。但是机器人就是为了节约时间降低调试难度而升的。所以,当你的动作基本都是重复且距离都是一致的情况,码垛作为一个解决方法,不得不说它真的很省事。仅需要示教三到四个位置,输入码垛行数与列数,运行时候写入寄存器数值,机器人会自动运算进行位置寻找。一个料架128个位置,你只需要进行三到四个位置的对点工作。原先一天的工作量,半小时不到你就做完并验证好了。剩下时间就是放松身心了。不过码垛要求精度的话你就祈祷加工商把精度做到位了,不然可能某个时候你撞机都不知道怎么撞得。
[ 此帖被陈惠鑫在2021-09-25 09:01重新编辑 ]
本帖最近评分记录:
  • 下载积分:+1(宇文芳) 真诚感谢!
  • 下载积分:+1(qj_wgx) 感谢分享!
  • 下载积分:+1(lvpretend) 好贴好贴!
    乌喽牛
    级别: 家园常客
    精华主题: 0
    发帖数量: 654 个
    工控威望: 774 点
    下载积分: 1864 分
    在线时间: 204(小时)
    注册时间: 2020-06-10
    最后登录: 2024-11-26
    查看乌喽牛的 主题 / 回贴
    1楼  发表于: 2021-07-03 22:43
    我做电焊十年,都没听说过哪个焊工影响生孩子了。
    jiangzl725
    级别: 家园常客
    精华主题: 0
    发帖数量: 513 个
    工控威望: 567 点
    下载积分: 4741 分
    在线时间: 122(小时)
    注册时间: 2021-07-04
    最后登录: 2024-11-26
    查看jiangzl725的 主题 / 回贴
    2楼  发表于: 2021-07-20 08:44
        
    宿迁电工
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 1064 个
    工控威望: 1204 点
    下载积分: 2906 分
    在线时间: 398(小时)
    注册时间: 2018-11-30
    最后登录: 2024-11-26
    查看宿迁电工的 主题 / 回贴
    3楼  发表于: 2021-07-20 10:32
    四大家族中,用过ABB和KUKA,主要是搬运,研磨和点胶,焊接和喷涂没搞过。使用感受如下。
    1.ABB的综合性能要远远高于KUKA,ABB的功能指令都是开发好的,编程的时候可以直接用示教器编程调用,不需要硬记指令格式。而KUKA得需要用PC端软件编写。
    2.ABB的运动流畅度要比KUKA好,在特别是在调试研磨程序的时候,机器人的第4,5,6轴切换要比KUKA灵活。
    3.ABB的示教器明显比KUKA的要好,编程的时候,KUKA会出现莫名所以的BUG,这个时候就要进入后台windowsD的平台进行修改。而且KUKA的示教器容易损坏。
    4.ABB的缺点,1.收费的项目太多,诸如,多任务功能都得需要额外花钱买。2.程序保密性比较差。
    本帖最近评分记录:
  • 下载积分:+1(宇文芳) 热心助人!
  • 长三角地区,PLC编程,工业机器人编程
    吸塑机,轴承合套仪程序开发
    专业外协
     TEL:13815796487(微信同号)
    ladyis
    级别: 探索解密
    精华主题: 0
    发帖数量: 95 个
    工控威望: 135 点
    下载积分: 5639 分
    在线时间: 74(小时)
    注册时间: 2020-08-21
    最后登录: 2022-01-20
    查看ladyis的 主题 / 回贴
    4楼  发表于: 2021-07-24 20:52
    感谢大佬分享
    jiangzl725
    级别: 家园常客
    精华主题: 0
    发帖数量: 513 个
    工控威望: 567 点
    下载积分: 4741 分
    在线时间: 122(小时)
    注册时间: 2021-07-04
    最后登录: 2024-11-26
    查看jiangzl725的 主题 / 回贴
    5楼  发表于: 2021-07-27 08:48
        
    荏苒几盈虚
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 401 个
    工控威望: 1398 点
    下载积分: 4657 分
    在线时间: 126(小时)
    注册时间: 2019-05-09
    最后登录: 2024-10-01
    查看荏苒几盈虚的 主题 / 回贴
    6楼  发表于: 2021-07-28 17:05
    挺好,点个赞
    ljb6688
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 1808 个
    工控威望: 1947 点
    下载积分: 113710 分
    在线时间: 1944(小时)
    注册时间: 2009-12-08
    最后登录: 2024-11-26
    查看ljb6688的 主题 / 回贴
    7楼  发表于: 2021-07-30 09:09
    机器人现场调试更是苦逼。因为现场环境高温,高粉尘居多
    电气自动化,智能化控制,数据远传采集。工控元件代理,机器人附件    
    宇文芳
    级别: 家园常客
    精华主题: 0
    发帖数量: 48 个
    工控威望: 745 点
    下载积分: 2056 分
    在线时间: 23(小时)
    注册时间: 2021-06-28
    最后登录: 2024-11-05
    查看宇文芳的 主题 / 回贴
    8楼  发表于: 2021-07-30 09:18
    感謝大大辛苦彙整