创建PF_Robot回调函数

在PF_Robot回调函数中记述机器人拾取与放置部件的运作。该函数按如下所述进行运作。(重复1~7。)

  1. 从部件坐标队列中获取平台上的部件坐标。
    使用PF_QueGet。
  2. 将机器人移至部件位置。
    使用Jump等。(为SCARA型机器人时)
  3. 将吸附置为On等,然后抓取部件。
  4. 将机器人移至部件放置位置。
    使用Jump等。(为SCARA型机器人时)
  5. 将吸附置为Off等,然后释放部件。
  6. 删除1个部件坐标队列中的数据。
    使用PF_QueRemove。
  7. 确认是否产生停止指令。如果产生,则退出循环。
    使用PF_IsStopRequested。
  8. 作为返回值,返回PF_Robot = PF_CALLBACK_SUCCESS。

如下所述为PF_Robot回调函数示例。
另外,由于自动生成的PartFeeding.prg中记述有循环处理与1、6、7的处理,因此会记述剩余处理。

如下所述为程序中使用的标签等。
IO标签: Chuck(部件吸附)、UnVacumm(部件释放)
点标签:PlacePos(放置坐标)

Function PF_Robot(partID As Integer) As Integer

    Do While PF_QueLen(partID) > 0

        ' Pick
        P0 = PF_QueGet(partID)
        Jump P0 ! Wait 0.1; Off UnVacumm !
        On Chuck
        Wait 0.1

        ' Place
        Jump PlacePos
        Off Chuck
        On UnVacumm
        Wait 0.1

        ' Deque
        PF_QueRemove partID

        ' Check Cycle stop
        If PF_IsStopRequested = True Then
            Exit Do
        EndIf

    Loop
    Off UnVacumm
    PF_Robot = PF_CALLBACK_SUCCESS

Fend