导图社区 太阳薄板流程
这是一篇关于太阳薄板流程的思维导图,主要内容包括:四等待0.3S(Waittime 0.3,避免CPU过负荷,三将面板放置缓冲板(rPlaceInBuffer),二机械臂抓取面板(rPickPanel),一初始化(rInitialize)。
编辑于2024-02-27 15:39:20太阳薄板流程
一初始化(rInitialize)
1.检查是否到达Home位置点,(rCheckHomePos)
1)建一个为变量类型的机器人位置点,名为pActualPos(当前点)(VAR robtarget pActualPos)
2)若工业机器人不在Home点(IF NOT CurrentPos(pHome,tGripper) THEN)
1>pActualpos(实际位置)设为机器人当前位置(pActualpos:=CRobT(\Tool:=tGripper\WObj:=wobj0))
2>pActualpos(实际位置点)的Z坐标位置点设为pHomeZ坐标(pActualpos.trans.z:=pHome.trans.z)
3>机械臂直线运动到 pActualpos(当前点)(MoveL pActualpos,v100,z10,tGripper)
4>机械臂直线运动到原点(MoveL pHome,v100,fine,tGripper)
3)机器人在Home点则进行下一步
补充:检测目标是否到原点,比较目标点和工具坐标(bool CurrentPos(robtarget ComparePos,INOUT tooldata TCP))
定义数字型数据变量Counter设为0(VAR num Counter:=0)
定义目标点数据变量ActualPos(VAR robtarget ActualPos)
将ActualPos(实际位置点)设为机器人当前位置(ActualPos:=CRobT(\Tool:=tGripper\WObj:=wobj0))
2.薄板计数数值初始化,设为1(nCount:=1)
3.放气,关闭真空(复位真空信号)(reset do32_VacuumOpen)
4.将抓好信号(bPickOK)设为0(bPickOK:=False)
二机械臂抓取面板(rPickPanel)
1.若抓好信号为0(False)( IF bPickOK=False)
1)机械臂以关节运动到抓取点上方100mm的位置上(MoveJ offs(pPick,0,0,100),vEmptyMax,z20,tGripper\WObj:=WobjCNV)
2)等待产品到位信号为1(WaitDI di01_PanelInPickPos,1)
3)机械臂直线运动到抓取点(MoveL pPick,vEmptyMin,fine,tGripper\WObj:=WobjCNV)
4)将吸盘产生真空并吸住薄板(Set do32_VacuumOpen)
5)等待吸住薄板信号(WaitDI di02_VacuumOK,1)
6)将抓好信号设为1(bPickOK:=TRUE)
7)加载载荷数据(GripLoad LoadFull)
8)机械臂直线运动到抓取点上方100mm的位置上(MoveL offs(pPick,0,0,100),vLoadMin,z10,tGripper\WObj:=WobjCNV)
2.抓好信号不为0,不满足条件
1)清空屏幕(TPERASE)
2)屏幕书写:循环重启错误(TPWRITE "Cycle Restart Error")
3)屏幕书写:循环不能从夹取太阳能薄板开始(TPWRITE "Cycle can't start with SolarPanel on Gripper")
4)屏幕书写:请检查夹具后按下开始按钮(TPWRITE "Please check the Gripper and then press the start button")
5)停止程序运行(stop)
三将面板放置缓冲板(rPlaceInBuffer)
1.若抓好信号为1(IF bPickOK=TRUE THEN)
1)计算放置位置(rCalculatePos)
1>检测产品计数值(TEST nCount)
数值为1
放置位置设为放置基础位置(CASE 1: pPlace:=offs(pPlaceBase,0,0,0))
数值为2
放置位置设为放置基础位置,X轴坐标再偏移145(nXoffset)(CASE 2: pPlace:=offs(pPlaceBase,nXoffset,0,0))
数值为3
放置位置设为放置基础位置,Y轴坐标再偏移148(nYoffset)(CASE 3: pPlace:=offs(pPlaceBase,0,nYoffset,0))
数值为4
放置位置设为放置基础位置,X轴坐标再偏移145(nXoffset)Y轴坐再偏移148(nYoffset)(CASE 4: pPlace:=offs(pPlaceBase,nXoffset,nXoffset,0))
数值为5
放置位置设为放置基础位置,再偏移Z轴坐标6(CASE 5: pPlace:=offs(pPlaceBase,0,0,6))
数值为6
放置位置设为放置基础位置,X轴坐标再偏移145(nXoffset)Z轴坐标为6(CASE 6: pPlace:=offs(pPlaceBase,nXoffset,0,6))
数值为7
放置位置设为放置基础位置,其中Y轴坐标为148(nYoffset)Z轴坐标为6(CASE 7: pPlace:=offs(pPlaceBase,0,nYoffset,6))
数值为8
放置位置设为放置基础位置,其中X轴坐标为145(nXoffset)Y轴坐标为148(nYoffset)Z轴坐标为6(CASE 8: pPlace:=offs(pPlaceBase,nXoffset,nXoffset,6))
若没有其中的数值执行如下(DEFAULT)
清空屏幕(TPERASE)
屏幕书写:产品计算值错误,请检查!(TPWRITE "The CountNumber is error,please check it!")
停止程序运行(stop)
2)机械臂以关节运动移动到放置上方100mm的位置上(MoveJ offs(pPlace,0,0,100),vLoadMax,z50,tGripper\WObj:=WobjBuffer)
3)机械臂以直线运动移动到放置位置(MoveL offs(pPlace,0,0,0),vLoadMin,fine,tGripper\WObj:=WobjBuffer)
4)放下薄板,复位真空信号,将夹具放气,关闭真空(Reset do32_VacuumOpen)
5)等待0.3S( WaitTime 0.3)
6)等待放下薄板信号、真空信号为0(WaitDI di02_VacuumOK,0)
7)加载载荷数据(GripLoad load0)
8)抓好信号设为0(bPickOK:=FALSE)
9)机械臂以直线运动移动到放置上方100mm的位置上(MoveL offs(pPlace,0,0,100),vEmptyMin,z10,tGripper\WObj:=WobjBuffer)
10)产品计数数值加1(nCount:=nCount+1)
11)产品计数数值大于8(IF nCount>8 THEN)
1>将计数数值设为1(nCount:=1)
2>机械臂以关节运动的形式移动到原点位置(MoveJ pHome,v100,fine,tGripper)
12)若产品计数数值不大于8,不满足条件,则跳过
2.抓好信号为0,不满足条件则跳过
四等待0.3S(Waittime 0.3,避免CPU过负荷