首页 > 文库大全 > 应用文书 > 实习报告

工业机器人系统集成实习报告

工业机器人系统集成实习报告



工业机器人系统集成实习报告

姓名:

班级:

学号:

教师: 冯虎/张颖/徐庆宏

日期: 2021.10.18—2020.11.12

地点: 工程中心5号楼/7B 1楼

成绩:

基于PLC和机器人的装配系统设计

摘要:传统制造业向智能制造业转型升级势在必行。工业机器人技术的发展成了制造业升级转型的助推器。基于PLC控制的工业机器人系统可以使个体机器人通过PLC通信网络连接在一起,不仅改善了工业机器人的柔性特性,还使多个工业机器人协调合作的自动化生产线成为可能,加速了工业机器人产业的发展。在这次的实训中我们主要就围绕了对装配机器人的集成,以及基于PLC的系统的综合设计和仿真运行。在实训中我们主要集成和设计了一个基于PLC和ABB机器人的自动装配系统。

关键词:ABB机器人;PLC;装配系统一 课题基本介绍和可行性分析1.1 课题要求

针对典型工业生产线(工件搬运、装配、或药品、食品分拣等),设计基于PLC和机器人的装配系统,包括传送带、光电检测单元、机器人、PLC、触摸屏等。

设计部分主要包括可行性分析、基于SolidWorks的生产线三维建模和基于PLC和机器人的装配系统设计等。其中基于PLC和机器人的装配系统设计部分包括系统功能说明、总体方案设计、硬件选型与设计(包括硬件选型、PLC的I/O分配、PLC与机器人I/O的电气接线图等)、软件设计(包括PLC程序和机器人程序设计中的程序功能说明、流程图和程序等)、系统分析和设计小结等。

1.2 工业机器人系统

工业机器人一般由执行系统、驱动系统、控制系统、感知系统、决策系统及软件系统组成。执行系统是工业机器人为完成作业,实现各种运动的机械部件。驱动系统为各执行部件提供动力,工业机器人采用的传动方式,通常有液压、气动和电动等几种驱动系统。控制系统对工业机器人实行控制和指挥,使执行系统按规定的要求进行操作。一般它由控制计算机或可编程控制器、电气与电子控制回路、辅助信息和电气器件等组成。

1.3 PLC技术

PLC技术的优点可以分为3个部分:PLC技术的适应性比较先进,可以灵活应用;PLC技术的控制能力强,故而具有较高的可靠性;PLC技术操作简单,应用较为便捷。

1.4 可行性分析

随着工业4.0和工业产业的信息化发展,在工业生产过程中广泛运用自动控制和自动调整系统以代替人工操作和机器体系进行加工生产。在更加高度的自动化场景中,人只是作为间接的照管和监控机械系统的生产情况。在这样的大趋势下,随之被开发出来的各类控制系统包括了PLC等系统。同时在各类传感器和感知设备的发展下,生产加工设施逐渐智能化,加强感知的情况下,也为各类生产过程的自动感知和控制提供了条件。同时,多种多样的智能自动化机械臂也被开发出来。作为具有高度通用性的工业自动化解决方案,各个公司如ABB机器人和NACHI机器人等都针对不同的运用场景推出了多种多样的机器人型号供实业企业来选取。通过对机器人的I/O接口运用和相应程序的编写可以有效实现机器人和自动化系统的有机配合。通过整合PLC,传感器及机械臂我们可以有效实现对整个装配和搬运过程的监控和管理,实现完全的自动化控制。

本次实训中我们计划基于ABB机器人,PLC系统,传感器和传送带等组件组成一个基于PLC的精密光学仪器自动化组装流水线。通过传送带转运工件和成品,使用机械臂抓取和装配所需部件。通过传感器检测部件位置和状态并通过PLC由I/O传递给机械臂。

二 基于SolidWorks的生产线三维建模2.1ABB机器人三维建模

由于后文中使用了ABB机器人的相应配套模拟仿真软件,其数据库中自带有所需要的机器人本体数据和建模等信息。因此在这里略去对下文中所使用的IRB1200机器人的建模工作。

图2.1.1 ABB机器人IRB1200

图2.1.2 参数图

2.2 吸盘三维建模

在装配精密光学仪器时,由于不能对镜片等组件造成损害和刮痕等影响使用的损伤,因此设计了一具气动吸盘来完成对涉及的镜片类工件的抓取和装配工作。通过吸盘来抓取和装配能够有效避免对镜片类组件的损伤。

(1)首先分析吸盘的整体结构,为吸盘绘制出剖面草图。(图2.2.1)

(2)选定轴线后旋成旋转体。(图2.2.2)

(3)在对应位置绘制草图并挖出相应空槽。(图2.2.3)

(4)绘制并拉伸出卡笋。(图2.2.4)

(5)完成吸盘绘制并导出。(图2.2.5)

图2.2.1 剖面图 图2.2.2 旋转体 图2.2.3 空槽草图

图2.2.4 卡笋绘制 图2.2.5 成品图

三 基于PLC和机器人的装配系统设计3.1 系统功能

在装配过程中,机械臂从传送带上抓取底座,搬运到工作台上的装配台凹槽中。随后机械臂换装吸盘吸取位于传送带上的镜片组件,抓取并装配到装配台上的底座中。在完成了对底座的装配后,机械臂再次换装机械爪以将完成装配的组件转运到成品传送带上。至此机械臂完成装配过程并开始下一循环。

PLC在整个系统中负责驱动和协调传感器,传送带电机和以I/O接口与机器人系统进行交流沟通来实现与之的配合。机器人在整个系统中需要通过坐标系中对工件和机械臂抓手的定位来实现对装配过程的精确控制。PLC与机器人通过I/O接口相互传递信息从而实现对整个系统的协调。

3.2 总体方案设计

当工件运行到传送带传感器处时,传感器传递信号,PLC系统则停止相应的传送带并向机械臂发送I/O信号以使之抓取相应的工件,实现机械臂和PLC系统的整体配合和控制,确保装配和转运的过程受控且可靠。

在装配和抓取的过程中,通过示教过程确定的数个标定点可以作为坐标偏移和控制的锚点。通过根据设计参数对坐标进行偏移和操作可以实现较为方便的对机器人控制,减少工作量和误差发生概率。

图3.2.1 工作中的工作站仿真

3.3 硬件选型与设计

3.3.1 硬件选型

在此次的实习中中,我们选用了西门子PLC中央控制器CPU1217C。CPU1217C是西门子公司出品的紧凑型解决方案,带有14个集成式输入/输出以及24V直流电源。

图3.3.1.1 西门子PLC数据

图3.3.1.2PLC中央控制器CPU1217C

在之前的实训中我们有接触过西门子PLC中央控制器CPU1217C。因此较为熟悉对其的编程特性。在过去学习经验的基础上对其进行设计和编程。

3.3.2 硬件设计

图3.3.2.1 硬件接线示意图

图示接线顺序表明了我们对整个系统的设计思路。接入的启停按钮控制其整个系统的启动和停止。基座和部件对应的传感器能够在检测到工件时回传信号。经过PLC接收后控制电机同时向机器人输出I/O信号。机械臂执行完毕后同时向PLC输出I/O使得PLC系统推进下一步运行。

以上功能集成于PLC系统中,通过PLC进行统合管理和协调。

3.4 软件设计

3.4 软件设计

图3.4.1 对PLC输入

图3.4.2 PLC输出

PLC系统程序主要重点在于,位于传送带上的工件是否到达指定位置。当所运输的工程零件到达机器人的工作位置,检测到零件的传感器即向PLC系统传输一信号。此信号使得PLC系统停止相对应的传送带运作,同时向机器人发送一I/O信号,通知机器人对应零件已经到达指定位置。待机器人移动零件到装配空间后,传感器复位的同时PLC系统接收到来自机器人系统的I/O信号。此时PLC系统判断工件已经移动走,系统继续运作传送带使得下一批零部件来到待用位置被传感器检测到。

图3.4.3 PLC程序段1

本段程序主要包括对PLC系统的启动和状态保持。同时编写了停止程序和对传送带的控制。其中通过继电器对部件传送带进行了控制。

图3.4.(4.5.6)PLC程序段2

本段程序主要包括了对传感器输入信号的处理和对机器人I/O信号的发出和接受。同时使用相应的逻辑顺序分析和响应了对应的状态。通过中间继电器结合程序段1对传送带电机的启动停止进行控制。

图3.4.7 机器人工作示意图

机器人程序的主要功能在于通过固定的工程装配顺序实现对成品的组装。在检测到来自PLC系统的I/O信号后,机器人按照程序对运动到指定位置的器件进行抓取或吸取。随后在装配台上进行组装工作和成品的转运搬运。对工件的定位主要依赖示教定位和根据设计数据确定的坐标偏移。具体程序见附录。

3.5 系统分析

ABB机器人IRB1200是根据我们设计指标而选定的能够完成任务而较为经济的机器人型号。相对于其他型号,IRB1200能够有更小的体积,更快的运行速度。从而能够以更高的效率和空间利用率来进行光学仪器的装配工作。这一型号内置的气管结构能够省略在机器人外部布置气管,驱动气动抓手和吸盘的不必要结构,增加系统的集成程度和安全性能,减少安全隐患。PLC系统使用的是先前有过编程经验的CPU1217C,通过24V直流供电,能够提供14路I/O,足以满足我们的需求。同样的,兼具了安全性能和便捷特征,能够适配绝大多数的工程环境,不需要另外加以设计。

四 实习小结

为期四周的实习就这样结束了,这四周让我收获良多。同时我们还学习了PLC软件的安装,也实现了PLC与自动分拣控制系统的调试,最后完成了利用PLC成功控制了自动分拣设备的正常运作。当然其中还学习了画图等一些与自己专业关联的知识。我在实训的过程中,让我学到了许多东西,其中最主要的是PLC设计方法与应用。设计步骤是首先是我们要弄清楚设备的顺序运作,然后结合PLC知识在图纸上画出顺序功能图,将顺序功能图转变为梯形图,之后利用PLC 软件编程。在练习的时候,我们可以实现用编辑好的程序与自动分拣设备进行调试。总的来说,我是较好的完成了既定任务。PLC实训让我了解了plc顺序功能图、梯形图、指令表、外部接线图有了更好的了解,也让我更加了解了关于PLC设计原理与方法。按我的总结来看,有很多设计理念来源于实际,从中找出最适合的设计方法。这次实训脱离不了集体的力量,遇到问题和同学互相讨论交流,同学之间解决不了的问题就去找老师讨论。

为期四周的实习圆满结束,离不开老师的帮助和鼓励。熟练掌握了solidworks等一些基本应用。为以后的学习奠定了基础,是大学生涯中不可或缺的宝贵实习精力。

参考文献

[1]GB/T 32854.1-2016, 工业自动化系统与集成 制造系统先进控制与优化软件集成 第1部分:总述、概念及术语[S].[2]刘增良,刘国亭.电气工程CAD [M].北京: 中国水利水电出版社,2002.

[3]齐占庆,王振臣.电气控制技术 [M].北京: 机械工业出版社,2002.

[4]史国生.电气控制与可编程控制器技术 [M].北京: 化学工业出版社,2003.

[5]郁汉琪.电气控制与可编程序控制器应用技术 [M].南京: 东南大学出版社,2003.

[6]张伟东.传感器在工业自动化领域中的应用[J].装备机械,2003(03):43-45.[7]邓燚祯.PLC控制技术在工业自动化中的应用[J].科技创新导报,2019,16(31):83-84.[8]石文昌.基于SolidWorks的机械零件结构设计与应用[J].科学技术创新,2018(20):188-189.[9]贾瑞匣.应用SolidWorks经验谈[J].中小企业管理与科技(上旬刊),2012(10):288-289.[10]IRB1200数据表等相关ABB公司产品文档.附录

机器人程序:

MODULE Module1

CONST robtarget Target_10:=[[76.022,725.255673406,337.999],[1,0,0,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget Target_10_2:=[[-123.978,725.255673406,337.999],[1,0,0,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget Target_20:=[[456.45,70.290673406,120.36],[1,0,0,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget Target_20_2:=[[356.569903591,711.448808538,120.36],[1,0,0,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget Target_30:=[[649,104.810673406,111.96],[1,0,0,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget Target_30_2:=[[849,104.810673406,111.96],[1,0,0,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget Target_40:=[[464.718,367.689673406,215],[1,0,0,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget Target_50:=[[494.718,367.689673406,215],[1,0,0,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

VAR num a{6,2}:=[[0,0],[-15.00,25.98],[-45.00,25.98],[-60,0],[-45.00,-25.98],[-15.00,-25.98]];

PROC main()

SJZZ;

WHILE 2>1 DO

moveJ offs(Target_20,0,0,100),v800,fine,ZZ;

WaitDI DW1,1;

moveL offs(Target_20,0,0,0),v800,fine,ZZ;

WaitTime 0.1;

setdo ZZ1,1;

WaitTime 1.1;

moveL offs(Target_20,0,0,100),v800,fine,ZZ;

moveJ offs(Target_40,0,0,100),v800,fine,ZZ;

moveL offs(Target_40,0,0,0),v800,fine,ZZ;

WaitTime 0.1;

setdo ZZ1,0;

WaitTime 1.1;

moveL offs(Target_40,0,0,100),v800,fine,ZZ;

HXP;

FOR i FROM 1 TO 5 STEP 2 DO

moveJ offs(Target_30,0,0,100),v800,fine,XP;

WaitDI DW1,2;

moveL offs(Target_30,0,0,0),v800,fine,XP;

WaitTime 0.1;

setdo ZZ2,1;

WaitTime 1.1;

moveL offs(Target_30,0,0,100),v800,fine,XP;

moveJ offs(Target_50,a{i,1},a{i,2},100),v800,fine,XP;

moveL offs(Target_50,a{i,1},a{i,2},0),v800,fine,XP;

WaitTime 0.1;

setdo ZZ2,0;

WaitTime 1.1;

moveL offs(Target_50,a{i,1},a{i,2},100),v800,fine,XP;

ENDFOR

FOR i FROM 2 TO 6 STEP 2 DO

moveJ offs(Target_30_2,0,0,100),v800,fine,XP;

WaitDI DW1,2;

moveL offs(Target_30_2,0,0,0),v800,fine,XP;

WaitTime 0.1;

setdo ZZ2,1;

WaitTime 1.1;

moveL offs(Target_30_2,0,0,100),v800,fine,XP;

moveJ offs(Target_50,a{i,1},a{i,2},100),v800,fine,XP;

moveL offs(Target_50,a{i,1},a{i,2},0),v800,fine,XP;

WaitTime 0.1;

setdo ZZ2,0;

WaitTime 1.1;

moveL offs(Target_50,a{i,1},a{i,2},100),v800,fine,XP;

ENDFOR

HZZ;

moveJ offs(Target_40,0,0,100),v800,fine,ZZ;

moveL offs(Target_40,0,0,0),v800,fine,ZZ;

WaitTime 0.1;

setdo ZZ1,1;

WaitTime 1.1;

moveL offs(Target_40,0,0,100),v800,fine,ZZ;

moveJ offs(Target_20_2,0,0,100),v800,fine,ZZ;

moveL offs(Target_20_2,0,0,0),v800,fine,ZZ;

WaitTime 0.1;

setdo ZZ1,0;

WaitTime 1.1;

moveL offs(Target_20_2,0,0,100),v800,fine,ZZ;

ENDWHILE

ENDPROC

PROC SJZZ()

moveJ offs(Target_10,0,0,100),v800,fine,SJ;

moveL offs(Target_10,0,0,0),v200,fine,SJ;

WaitTime 0.1;

setdo sj0,1;

WaitTime 1.1;

moveL offs(Target_10,0,0,10),v200,fine,SJ;

moveL offs(Target_10,0,-200,10),v200,fine,SJ;

ENDPROC

PROC HXP()

moveJ offs(Target_10,0,-200,10),v800,fine,SJ;

moveL offs(Target_10,0,0,10),v200,fine,SJ;

moveL offs(Target_10,0,0,0),v200,fine,SJ;

WaitTime 0.1;

setdo sj0,0;

WaitTime 1.1;

moveL offs(Target_10,0,0,100),v200,fine,SJ;

moveJ offs(Target_10_2,0,0,100),v800,fine,SJ;

moveL offs(Target_10_2,0,0,0),v200,fine,SJ;

WaitTime 0.1;

setdo sj0,1;

WaitTime 1.1;

moveL offs(Target_10_2,0,0,10),v200,fine,SJ;

moveL offs(Target_10_2,0,-200,10),v200,fine,SJ;

ENDPROC

PROC HZZ()

moveJ offs(Target_10_2,0,-200,10),v800,fine,SJ;

moveL offs(Target_10_2,0,0,10),v200,fine,SJ;

moveL offs(Target_10_2,0,0,0),v200,fine,SJ;

WaitTime 0.1;

setdo sj0,0;

WaitTime 1.1;

moveL offs(Target_10_2,0,0,100),v200,fine,SJ;

moveJ offs(Target_10,0,0,100),v800,fine,SJ;

moveL offs(Target_10,0,0,0),v200,fine,SJ;

WaitTime 0.1;

setdo sj0,1;

WaitTime 1.1;

moveL offs(Target_10,0,0,10),v200,fine,SJ;

moveL offs(Target_10,0,-200,10),v200,fine,SJ;

ENDPROC

PROC Path_10()

MoveL Target_10,v1000,z100,XPWObj:=wobj0;

MoveL Target_10_2,v1000,z100,XPWObj:=wobj0;

MoveL Target_20,v1000,z100,XPWObj:=wobj0;

MoveL Target_20_2,v1000,z100,XPWObj:=wobj0;

MoveL Target_30,v1000,z100,XPWObj:=wobj0;

MoveL Target_40,v1000,z100,XPWObj:=wobj0;

MoveL Target_50,v1000,z100,XPWObj:=wobj0;

ENDPROC

ENDMODULE

相关内容

热门阅读

最新更新

随机推荐