Convoyeur avec robots multiples
Epson RC+ prend en charge plusieurs convoyeurs et robots logiques. Vous pouvez utiliser plusieurs robots avec un seul convoyeur ou plusieurs robots avec plusieurs convoyeurs.
Cette section décrit un système de convoyeur qui utilise deux robots ou plus avec un convoyeur et un système de convoyeur qui utilise un robot avec deux convoyeurs ou plus.
Pour plus de détails sur les robots multiples, reportez-vous au manuel suivant.
"Manuel du contrôleur de robot"
Convoyeur avec robots multiples
Le système multi-robot utilise deux robots ou plus avec un seul convoyeur comme indiqué ci-dessous. Dans ce système, le second robot (en aval) saisit les pièces que le premier robot (en amont) n'a pas collectées.
Bien que le système utilise plusieurs robots, il utilise une seule caméra (capteur), un seul codeur et un seul convoyeur.
Comment utiliser un convoyeur multi-robot
Pour utiliser les convoyeurs multi-robot, réglez les convoyeurs en amont et en aval. Les instructions pour l'utilisation des convoyeurs multi-robot sont décrites ci-dessous.
Voir et créer les convoyeurs 1 et 2. (Réglez le robot côté amont sur Convoyeur 1.)
Pour [Codeur] et [Séquence vision], définissez les mêmes numéros et séquences pour les convoyeurs 1 et 2.
Calibrez le convoyeur 1.
Vérifiez le fonctionnement en vous référant à l’un des éléments suivants :
- Convoyeurs Vision
- Convoyeurs capteur - "Vérifier le mouvement"
Réglez [Convoyeur en aval] sur "2".
Calibrez le convoyeur 2.
Vérifiez le fonctionnement du convoyeur 2.
Effacez toutes les données de la file d'attente enregistrées sur chaque convoyeur.
>Cnv_QueRemove 1,all >Cnv_QueRemove 2,allPlacez la pièce dans la zone de recherche de vision.
Exécutez le programme "ScanConveyorStrobed" pour enregistrer une file d'attente.
Suspendez (HALT) le programme "ScanConveyorStrobed" et déplacez le convoyeur jusqu'à ce que la pièce entre dans la zone de saisie du convoyeur 1.
Arrêtez le programme "ScanConveyorStrobed" et déplacez le convoyeur jusqu'à ce que la pièce entre dans la zone de saisie du convoyeur 2.
Exécutez la commande ci-dessous pour déplacer la file d'attente du convoyeur 1 au convoyeur 2.
>Cnv_QueMove 1,0Saisissez la pièce.
>Jump Cnv_Queget(2)Vérifiez si l'effecteur du robot 2 se trouve au-dessus du centre d'une pièce. Si l'effecteur du robot 2 n'est pas au-dessus du centre de la pièce, effectuez à nouveau la calibration.
Déplacez le convoyeur et vérifiez si le robot suit la pièce. À ce stade, l'effecteur final peut avoir dévié du centre de la pièce. Cela est dû à l'impossibilité de suivre avec précision les changements soudains de vitesse du convoyeur. Cependant, comme le suivi se corrige au fil du temps, cela ne pose pas de problème.
Arrêtez le mouvement de suivi.
>Cnv_AbortTrack
Un exemple de programme est affiché ci-dessous.
Function main
Xqt ScanConveyorStrobed 'Tâche qui enregistre les files d'attente
Xqt PickParts1 'Tâche du robot en amont pour suivre les pièces (file d'attente)
Xqt PickParts2 'Tâche du robot en aval pour suive les pièces (file d'attente)
Fend
Fonction ScanConveyorStrobed
Integer i, numFound, state, trigger
Real x, y, u
Boolean found
trigger = 10 'Assigne la broche 10 de l'E/S du contrôleur
Off trigger 'Désactive le déclencheur de caméra et l'E/S de déverrouillage du codeur
Do
'Recherche des pièces sur le convoyeur
VRun FindParts
On trigger 'Active le déclencheur de caméra et l'E/S de déverrouillage du codeur
Do
VGet FindParts.AcquireState, état
Loop Until state = 3
VGet FindParts.Parts.NumberFound, numFound
'Enregistre la pièce trouvée dans la file d'attente du convoyeur 1
For i = 1 To numFound
VGet FindParts.Parts.CameraXYU(i), found, x, y, u
Cnv_QueAdd 1, Cnv_Point(1, x, y)
Next i
Off trigger 'Désactive le déclencheur de caméra et l'E/S de déverrouillage du codeur
Wait 0.1
Loop
Fend
Fonction PickParts1
OnErr GoTo ErrHandler
Integer ErrNum
Robot 1
Motor On
Power High
Speed 30
Accel 30, 30
Jump P1
WaitParts:
Do
'Attend jusqu'à ce qu'une pièce (file d'attente) entre dans la zone de saisie
Wait Cnv_QueLen(1, CNV_QUELEN_PICKUPAREA) > 0
'Démarre le suivi de la pièce
'Lors de l'utilisation du robot 6 axes
Jump3 Cnv_QueGet(1):Z(0):U(90):V(0):W(180)
'Lors de l'utilisation du robot SCARA
Jump Cnv_QueGet(1)
Wait 1 'Le robot se déplace à la même vitesse que le convoyeur 'pour le Temps d'attente spécifié pour cette pièce
Jump P1 'Déplace la pièce saisie vers un emplacement spécifié
'Efface la pièce saisie (file d'attente)
Cnv_QueMove 1, 0
Loop
'Déplace les pièces (file d'attente) du côté aval de la zone de saisie du convoyeur 1 'vers le convoyeur 2
ErrHandler:
ErrNum = Err
If ErrNum = 4406 Then
Cnv_QueRemove 1, 0
EResume WaitParts
'Lorsqu'une erreur autre que l'erreur de plage de mouvement du suivi de convoyeur se produit.
'Erreur est affiché
Else
Print "Error!"
Print "No.", Err, ":", ErrMsg$(Err, 1)
Print "Line :", Erl(0)
'User error occurred
Error 8000
EndIf
Fend
Function PickParts2
OnErr GoTo ErrHandler
Integer ErrNum
Robot 2
Motor On
Power High
LoadPoints "robot2.pts"
Speed 30
Accel 30, 30
Go P1
WaitParts:
Do
'Attend jusqu'à ce qu'une pièce (file d'attente) entre dans la zone de saisie
Wait Cnv_QueLen(2, CNV_QUELEN_PICKUPAREA) > 0
'Démarre le suivi de la pièce
'Lors de l'utilisation du robot 6 axes
Jump3 Cnv_QueGet(2):Z(0):U(90):V(0):W(180)
'Lors de l'utilisation du robot SCARA
Jump Cnv_QueGet(2)
Wait 1 'Le robot se déplace à la même vitesse que le convoyeur 'pour le Temps d'attente spécifié pour cette pièce
Jump P2 'Déplace la pièce saisie vers un emplacement spécifié
'Efface la pièce saisie (file d'attente)
Cnv_QueRemove 2, 0
Loop
'Efface la pièce saisie (file d'attente)
'Effacer les pièces (file d'attente) du côté aval de la zone de saisie du convoyeur 2
'Reprend automatiquement à partir de l'erreur '"Les données de file d'attente spécifiées sont en dehors de la zone définie"
ErrHandler:
ErrNum = Err
If ErrNum = 4406 Then
Cnv_QueRemove 2, 0
EResume WaitParts
'Erreur autre que '"Les données de file d'attente spécifiées sont en dehors de la zone définie"
'est affiché
Else
Print "Error!"
Print "No.", Err, ":", ErrMsg$(Err, 1)
Print "Line :", Erl(0)
'User error occurred
Error 8000
EndIf
Fend