PF_Status
Décrit les processus (principalement les processus d’erreur) en fonction de la valeur de retour de la fonction de rappel et de l’état du système (pièces non fournies, etc.).
Syntaxe
Function PF_Status(part ID As Integer, Status As Integer) As Integer
‘(Error processing)
Fend
Paramètres
- ID de pièce
L’ID de pièce (nombre entier compris entre 1 et 32) doit être indiqué ici.
Dans le cas d’une opération à plusieurs pièces, la pièce active est indiquée ici. - Status
L’état est indiqué ici.
Il s’agit de la valeur de retour de la fonction de rappel ou d’une valeur définie par le système (voir Description).
Valeurs de retour
La fonction PF_EXIT est définie chaque fois qu’aucune valeur de retour n’est spécifiée. Cela mettra fin au processus Part Feeding. Veillez à définir une valeur de retour pour éviter cela.
PF_CONTINUE
Poursuit le processus Part Feeding. En principe, cette valeur doit être indiquée.PF_EXIT
Met fin au processus Part Feeding. Lorsque cette valeur est définie, le processus Part Feeding prend fin. Si cette valeur est spécifiée, l’appareil doit être ramené à son état initial (c’est-à-dire, ramener le robot à sa position d’origine, mettre le robot à l’arrêt, etc.).PF_RESTART
Relance le processus Part Feeding à partir de vision.PF_RESTART_ACTIVEPART
Relance le processus Part Feeding à partir de vision. Ne récupérez qu’une seule image et chargez la file d’attente pour la partie active.
Description
Cette fonction s’exécute après les autres fonctions de rappel (à l’exception des fonctions PF_CycleStop et PF_Status).
La valeur de retour de la fonction de rappel qui vient d’être exécutée ou l’erreur survenue lors du processus Part Feeding est attribuée au paramètre Status. Décrit les processus basés sur ces valeurs Status.
PF_CALLBACK_SUCCESS
La fonction de rappel s’est déroulée avec succès. En règle générale, il n’y a rien à traiter.PF_CALLBACK_RESTART
La fonction de rappel PF_Robot s’est terminée avec succès et la valeur de retour est PF_CALLBACK_RESTART. En règle générale, il n’y a rien à traiter.PF_CALLBACK_RESTART_ACTIVEPART
La fonction de rappel PF_Robot s’est terminée avec succès et la valeur de retour est PF_CALLBACK_RESTART_ACTIVEPART. En règle générale, il n’y a rien à traiter.PF_STATUS_NOPART
Cet état indique que les pièces ne sont pas acheminées depuis la trémie. Décrit le processus d’alimentation de la trémie en pièces. En règle générale, il n’y a rien à traiter.PF_STATUS_TOOMANYPART
Cet état indique que la trémie alimente trop de pièces et que celles-ci ne peuvent pas être prélevées. Décrivez la procédure à suivre pour retirer des pièces de la trémie à l’aide d’un appel opérateur, etc. Vérifiez les réglages de la trémie si cet état survient régulièrement.PF_STATUS_BAD_ID
L’ID de pièce spécifié lors de l’exécution de la commande PF_Start n’est pas valide. Assurez-vous d’avoir correctement indiqué l’ID de la pièce enregistrée. Vous avez tenté de démarrer avec plusieurs distributeurs lors d’une opération à plusieurs pièces. Veuillez vérifier les réglages de chaque pièce. Cela met immédiatement fin au processus Part Feeding.PF_STATUS_BAD_PARAMETER
Le paramètre de pièce spécifié lors de l’exécution de la commande PF_Start n’est pas valide. Cela met immédiatement fin au processus Part Feeding.PF_STATUS_CAL_NOT_COMPLETE
PF_Start La pièce spécifiée lors de l’exécution de la commande PF_Start n’a pas terminé le processus d’étalonnage du distributeur. Cela met immédiatement fin au processus Part Feeding.
Pour plus de détails, consultez la section suivante.
CalibrationPF_STATUS_WRONGPART
Les pièces restées sur le distributeur n’ont pas pu être détectées. Vérifiez que la séquence de vision des pièces permet de détecter correctement les pièces. Ou vérifiez s’il y a différents types de pièces ou des pièces endommagées.
Cette valeur Status apparaît après plusieurs tentatives de séparation des pièces, lorsque la séquence Part Blob détecte la présence d’un élément à l’intérieur de la zone de prélèvement, mais que la séquence de pièces ne parvient pas à l’identifier comme une pièce avant ou arrière.PF_STATUS_PARTBLOB_ERROR
La séquence ou l’objet de vision utilisé pour la détection du blob de la pièce n’est pas valide. Cela met immédiatement fin au processus Part Feeding. Vérifiez la séquence et l’objet du blob de la pièce utilisé pour celle-ci.PF_STATUS_PARTSEQ_ERROR
La séquence ou les objets de vision utilisés pour la détection des pièces ne sont pas valides. Cela met immédiatement fin au processus Part Feeding. Vérifiez la séquence et les objets des pièces utilisés pour détecter la pièce.PF_STATUS_ERROR
Une erreur (erreur système) s’est produite lors de l’exécution de la commande PF_Start. Cela met immédiatement fin au processus Part Feeding. Vérifiez que la séquence de vision définie dans Vision fonctionne correctement. Déboguez les fonctions de rappel une par une pour vérifier qu’elles fonctionnent correctement. L’erreur 7730 « The maximum number of robots per feeder has been exceeded. » (Le nombre maximal de robots par distributeur a été dépassé.) peut également se produire lorsque vous tentez de partager un distributeur avec plus de deux robots.
Les processus opérationnels peuvent être définis à l’aide de la valeur de retour de la fonction de rappel Status.
La fonction PF_EXIT est définie chaque fois qu’aucune valeur de retour n’est spécifiée. Cela mettra fin au processus Part Feeding. Veillez à définir une valeur de retour pour éviter cela.PF_STATUS_FEEDERINUSE_ERROR
Le processus Part Feeding a été lancé à plusieurs reprises pour le même distributeur. Le processus d’alimentation est immédiatement interrompu. Le processus Part Feeding déjà en cours se poursuivra. Vérifiez à nouveau le programme.PF_STATUS_PARTNOTENABLED
La pièce est désactivée.
Assurez-vous que l’option Enabled (Activé) est cochée dans le menu Epson RC+ 8.0 - [Tools] (Outils) - [Part Feeding] - [Parts] (Pièces) - [Part**] (Pièce) - [General] (Général).PF_STATUS_PURGENOTENABLED
La fonction PF_Purge a été exécutée, bien que la purge ait été désactivée.
Assurez-vous que l’option Enabled (Activé) est cochée dans le menu Epson RC+ 8.0 - [Tools] (Outils) - [Part Feeding] - [Parts] (Pièces) - [Part**] (Pièce) - [General] (Général).
NOTE
Assurez-vous qu’aucune erreur ne se produise à l’intérieur de la fonction de rappel PF_Status. Si des erreurs surviennent au sein de la fonction PF_Status, celle-ci pourrait être appelée de manière récursive et le traitement des erreurs risquerait de ne pas aboutir.
Il est vivement recommandé de ne pas exécuter les commandes de contrôle du distributeur (PF_Center, PF_CenterByShift, PF_Flip, PF_Shift) au sein de la fonction PF_Status.
PF_Status a pour rôle d’indiquer au système comment procéder une fois l’exécution de la fonction de rappel précédente terminée (c’est-à-dire comment procéder après _Robot, PF_Vision, PF_Control, PF_MobileCam, PF_Feeder). Pour ce faire, il suffit de définir la valeur de retour PF_Status sur l’une des valeurs suivantes : PF_CONTINUE, PF_RESTART, PF_RESTART_ACTIVEPART ou PF_EXIT. Pour plus de détails, consultez l’exemple de programme ci-dessous. Pour plus de détails, consultez l’exemple de programme ci-dessous.
Exemple de programme
Le programme suivant décrit le traitement des erreurs.
L’erreur utilisateur mentionnée dans cet exemple correspond à l’erreur de délai d’attente d’aspiration évoquée dans l’exemple de programme utilisé pour la fonction de rappel Robot.
Si cette erreur se produit, les moteurs du robot sont désactivés.
’ ** User Error **
’ 8001 Suction timeout occurred
Function PF_Status(PartID As Integer, Status As Integer) As Integer
Select Status
Case PF_CALLBACK_SUCCESS
’ Success (do nothing under normal circumstances)
Case PF_CALLBACK_RESTART
’ Restart from vision
PF_Status = PF_RESTART
Exit Function
Case PF_CALLBACK_RESTART_ACTIVEPART
’ Restart from vision –
’ only acquire image and the load queue for Active Part
PF_Status = PF_RESTART_ACTIVEPART
Exit Function
Case PF_STATUS_NOPART
’ No parts in hopper
MsgBox "Hopper empty."
Case PF_STATUS_TOOMANYPART
’ Too many parts in feeder
MsgBox "Too many parts on Feeder."
Case PF_STATUS_BAD_ID
’ The specified part ID does not exist
MsgBox "Bad PartID."
Case PF_STATUS_BAD_PARAMETER
’ Invalid part parameter
MsgBox "Bad parameter."
Case PF_STATUS_CAL_NOT_COMPLETE
’ Calibration not complete
MsgBox "Calibration incomplete."
Case PF_STATUS_WRONGPART
’ There may be a wrong part on the feeder platform.
MsgBox "Wrong Part."
Case PF_STATUS_ERROR
’ Error
MsgBox "Error!! (code: " + Str$(Err) + " ) " + ErrMsg$(Err)
Case PF_STATUS_PARTBLOB_ERROR
’ Part Blob vision error
MsgBox "Part Blob vision error."
Case PF_STATUS_PARTSEQ_ERROR
’ Part Sequence vision error
MsgBox "Part Sequence vision error."
Case PF_STATUS_FEEDERINUSE_ERROR
’ Feeder is already in use
MsgBox "Feeder is already in use."
Case PF_STATUS_PARTNOTENABLED
’ Part is disabled
MsgBox "Part is disabled."
Case PF_STATUS_PURGENOTENABLED
’ Purge is disabled.
MsgBox "Purge is disabled."
Case 8001
’ Example: Suction timeout
MsgBox " Vacuum Error!!"
Motor Off
PF_Status = PF_EXIT
Exit Function
Send
PF_Status = PF_CONTINUE
Fend