ID : 2223
长条工件的编程示例
传感器跟踪时的编程示例如下所示。
以超过跟踪范围的长工件为对象。
如果为长条工件,按照跟踪范围的长度将工件总长分割为N个领域,分别执行常规工件的传感器跟踪。
这个编程示例从Ver1.10.*之后可使用。
应用示例
与常规工件相同,可通过以下3个程序执行长条工件的传感器跟踪。
-
“主程序”
执行与传送带跟踪相关的初始化处理的程序。
-
“工件检测程序”
执行工件位置检测并保存至传送带跟踪缓冲区的程序。
-
“跟踪动作程序”
从跟踪缓冲区读取检测的工件位置,并执行跟踪、挑选动作的程序。
1.主程序(SensorTracking.pcs (PCS:280B))
清空传送带1的跟踪缓冲区,开始传感器发出信号的触发器检测。
TrackInitialize 1, 0
并列执行工件检测程序、跟踪动作程序。
Run Sensor
Run Tracking
2.工件检测程序(Sensor.pcs (PCS:2KB))
检测上升沿。
Wait IO[48] = OFF
Wait IO[48]
将最新的传感器检测坐标(编码器值)添加到N个跟踪缓冲区。
如下图所示,如果按照跟踪范围的长度300[mm],将工件总长为1500[mm]的工件分割为5部分,则“N=5”。
TrackSetSensor 1, I[10], arrayUser
3.跟踪动作程序(Tracking.pcs (PCS:3KB))
通过TrackStart指令,开始传送带跟踪前向初始位置移动。
请注意,在传送带跟踪时,如果执行Move指令等常规动作指令,将中断跟踪动作。
Move P, P[50]
每次检测到工件时,用于执行跟踪、挑选动作的主循环。
将内部I/O的ON信号设定为循环继续的条件,以便可在中途结束循环。
长条工件时,由于将1个工件分割为了N个领域,因此每执行1次传感器检测将进行N次循环。
需事先通过局部变量保持循环次数,以便判断处理到第几个分割领域。
Dim divCount As Integer
divCount = 0
Do
divCount = divCount + 1
If (divCount > I[10]) Then
divCount = 1
End If
P[10] = TrackTargetPos(1, -1, -1, 4)
...
TrackApproach P, P[10], 50
...
LOOP UNTIL IO[128] = ON
循环内的处理。
首先,从传送带跟踪缓冲区调取工件数据,将其设定为跟踪对象工件。
未检测到工件时,在此行待机,直至检测到工件且传送带跟踪缓冲区装满数据。
P[10] = TrackTargetPos(1, -1, -1, 4)
如下图所示,对分割的作业领域中(2)之后的领域执行传感器跟踪时,因工件前端已经超过跟踪范围下游下限,因此无法识别为跟踪对象工件。
需将TrackTargetPos的模式设定(第4自变量)的模式3设定为有效,以识别(2)之后的领域。
通过“TrackTargetPos”指令,仅在设定为跟踪对象工件的状态下,对于位于上图(1)领域的工件前端位置进行机器人跟踪动作。因此,根据当前的分割领域,需将跟踪对象工件向传送带矢量反方向偏移。可通过TrackConveyorVector指令获取传送带矢量。使用可通过TrackCurStarArea指令获取的跟踪范围的长度和当前循环次数计算偏移量。
Dim curDivNo As Integer
curDivNo = (divCount - 1)
Dim trckArea As Variant
Dim trckRange As Integer
trckArea = TrackCurStartArea(1)
trckRange = (trckArea(1) - trckArea(0))
P[10] = P[10] - (convVec * (curDivNo * trackRange))
指示跟踪模式开始。在执行此指令阶段,机器人尚未开始移动。
执行TrackApproach指令等跟踪动作指令并开始初次移动。
跟踪对象工件超过跟踪范围下游下限时,默认将发生错误。
TrackStart 1, 2
如上图所述,对分割的作业领域中(2)之后的领域执行传感器跟踪时,由于工件前端已经超过跟踪范围下游下限,因此需通过TrackStart指令的选项设定(第2自变量)将选项2设定为有效,并事先将此错误的发生设定为无效。
在跟踪对象工件各分割领域的开头位置进入跟踪范围内之前进行等待。
Wait TrackInRange(1, (-trckRange * curDivNo)), 10000, timeoutFlg
在默认情况下,“TrackInRange”指令对跟踪对象工件的开头位置进行判断。需随时在偏移量(第2自变量)中设定到各分割领域开头位置的偏移量,以便对各分割领域的开头位置进行判断。使用可通过TrackCurStarArea指令获取的跟踪范围的长度和当前循环次数计算偏移量。
执行追踪动作的同时向距离跟踪对象工件上方50mm的趋近位置移动,以便与传送带等速。
TrackApproach P, P[10], 50
执行追踪动作的同时向跟踪对象工件接近,以便与传送带等速。
TrackMove L, P[10]
执行追踪动作的同时在工件上描绘四边形,以便与传送带等速。
TrackMove L, P[10] + P(0, 50, 0)
TrackMove L, P[10] + P(-100, 50, 0)
TrackMove L, P[10] + P(-100, -50, 0)
TrackMove L, P[10] + P(0, -50, 0)
TrackMove L, P[10]
执行追踪动作的同时向距离跟踪对象工件上方50mm的位置偏离,以便与传送带等速。
TrackDepart P, 50
指示跟踪模式结束。结束传送带追踪动作并减速停止。
TrackStop
将挑选的工件搬运至排出位置。
Approach P, P[52], 50
ID : 2223