Convoyeurs multiples
Epson RC+ prend en charge plusieurs convoyeurs et robots logiques. Vous pouvez utiliser plusieurs robots avec un seul convoyeur.
Cette section décrit un système de convoyeur qui utilise un robot avec deux convoyeurs ou plus.
Suivi de convoyeur pour plusieurs convoyeurs
Cette section décrit un système de convoyeur dans lequel un robot saisit la "Pièce 1" du convoyeur 1 et place les pièces saisies au-dessus des "Pièces 2" sur le convoyeur 2 comme indiqué dans la figure ci-dessous. Dans ce système de convoyeur, chaque convoyeur nécessite un codeur et une caméra (capteur).
Comment utiliser plusieurs convoyeurs
L'utilisation est décrite ci-dessous.
Voir et créer les convoyeurs 1 et 2. (Réglez le robot du côté amont du convoyeur 1.)
Pour [Codeur] et [Séquence vision], définissez les différents numéros et séquences pour chacun des 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"
Calibrez le convoyeur 2.
Vérifiez le fonctionnement du convoyeur 2.
Un exemple de programme est affiché ci-dessous.
Ce programme échantillon reprend automatiquement lorsque le robot suit la pièce hors de la zone de saisie.
Function main
Motor On
Power High
Speed 30
Accel 30, 30
Xqt ScanConveyorStrobed 'Tâche qui enregistre les files d'attente
Xqt PickParts ''Tâche qui suit les pièces (file d'attente)
Fend
Fonction ScanConveyorStrobed
Integer i, j, numFound, state, trigger1, trigger2
Real x, y, u
Boolean found
trigger1 = 10 'Assigne la broche 10 de l'E/S du contrôleur au convoyeur 1
trigger2 = 11 'Assigne la broche 11 de l'E/S du contrôleur au convoyeur 2
Off trigger1 ; Off trigger2
'Désactive le déclencheur de caméra et le déverrouillage du codeur
Do
VRun FindParts1 'Recherche des pièces sur le convoyeur
On trigger1 'Active le déclencheur de caméra et l'E/S de déverrouillage du codeur
Do
VGet FindParts1.AcquireState, état
Loop Until state = 3
VGet FindParts1.Parts.NumberFound, numFound
'Enregistre la pièce qui a été capturée comme une file d'attente
For i = 1 To numFound
VGet FindParts1.Parts.CameraXYU(i), found, x, y, u
Cnv_QueAdd 1, Cnv_Point(1, x, y)
Next i
Off trigger1 'Désactive le déclencheur de caméra et l'E/S de déverrouillage du codeur
Wait 0.1
'Enregistre les pièces (file d'attente) du convoyeur 2
'Recherche des pièces sur le convoyeur
VRun FindParts2
On trigger2 'Active le déclencheur de caméra et l'E/S de déverrouillage du codeur
Do
VGet FindParts2.AcquireState, état
Loop Until state = 3
VGet FindParts2.Parts.NumberFound, numFound
'Enregistre la pièce qui a été capturée comme une file d'attente
For j = 1 to numFound
VGet FindParts2.Parts.CameraXYU(j), found, x, y, u
Cnv_QueAdd 2, Cnv_Point(2, x, y)
Next j
Off trigger2 'Désactive le déclencheur de caméra et l'E/S de déverrouillage du codeur
Wait 0.1
Loop
Fend
Fonction PickParts
OnErr GoTo ErrHandler
Integer ErrNum
MemOff 1; MemOff 2 'Désactive l'E/S mémoire
Jump P1
Do
'Suivi du convoyeur 1
WaitPickup1:
'Active l'E/S mémoire lorsque la phase de suivi du convoyeur 1 démarre
MemOn 1 'Active l'E/S mémoire 1
'Efface les pièces (file d'attente) du côté aval de la limite aval
Do While Cnv_QueLen(1, CNV_QUELEN_DOWNSTREAM) > 0
Cnv_QueRemove 1, 0
Loop
'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 0.1 'Le robot se déplace à la même vitesse que le convoyeur 'pour le Temps d'attente spécifié pour cette pièce
'Efface la pièce saisie (file d'attente)
Cnv_QueRemove 1, All
MemOff 1 'Désactive l'E/S mémoire 1
'Suivi du convoyeur 2
WaitPickup2:
MemOn 2 'Active l'E/S mémoire 2
'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 0.1 'Le robot se déplace à la même vitesse que le convoyeur 'pour le Temps d'attente spécifié pour cette pièce
Wait 0.1 'Le robot se déplace à la même vitesse que le convoyeur 'pour le Temps d'attente spécifié pour cette pièce
'Efface la pièce saisie (file d'attente)
Cnv_QueRemove 2, All
MemOff 2 'Désactive l'E/S mémoire 2
Jump P1
Loop
'Efface les pièces (file d'attente) du côté aval de la zone de saisie
'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
If MemSw(1) = On Then
Cnv_QueRemove 1
EResume WaitPickup1
EndIf
If MemSw(2) = On Then
Cnv_QueRemove 2
EResume WaitPickup2
EndIf
'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