[PROFACE LT-3300L] Modification inexplicable d'une variable adressée dans la mémoire interne
Posté : 18 août 2016, 12:22
Bonjour à tous,
Je travaille avec des boîtiers Pro-Face LT-3300L qui permettent de contrôler des automates de production de type poka-yoké dans une usine de plasturgie automobile. Les opérateurs placent la pièce nue dans l'automate qui la verrouille. Ils fixent ensuite à la main les composants à leurs emplacements, et lorsque la pièce est valide, l'automate la relâche et les opérateurs passent à la pièce suivante.
Nous produisons de nombreuses pièces différentes et par conséquent nous possédons une vingtaine d'automates différents, adaptés à la géométrie de chaque pièce. Chaque automate est contrôlé par son propre sous-programme. Tous les sous-programme sont rassemblées sur un seul et même programme général, installé sur toutes les LT3300L. Mon objectif est de réaliser un choix automatique du sous-programme. Exemple : lorsque l'on branche le LT3300L sur l'automate #1 et qu'on lance l'IHM, le programme sélectionne automatiquement le sous-programme #1 etc ...
Je n'ai pas écrit le programme moi-même mais l'ai adapté à partir d'une version précédente utilisée dans une autre usine de la même entreprise. Ce système de choix automatique était inclus dans cette version antérieur mais je n'arrive pas à comprendre comment celui-ci fonctionne. Il ne fonctionne que sur certains automates, et j'aimerai comprendre dans le détail de façon à l'adapter sur tous les automates.
Il existe dans le programme GP PRO-EX une variable "Numero_prg" stockée dans la mémoire interne du LT3300L à l'adresse [#INTERNAL]USR00003. Celle-ci détermine le sous-programme à utiliser. Exemple : lorsque Numero_prg = 1, le programme lance le sous-programme #1, correspondant à l'automate #1. Par un mécanisme que je ne comprends pas, la valeur de Numero_prg est automatiquement changée au début de l'exécution du programme. Exemple : quand je branche l'automate #1 au LT3300L la valeur de Numero_prg @ [#INTERNAL]USR00003 est automatiquement changé à 1. Pareil pour l'automate #2 etc ...
Sous GP-PRO EX j'ai regardé la liste des endroits où Numero_prg et [#INTERNAL]USR00003 étaient utilisés mais à aucun moment je n'ai trouvé de bout de logique qui puisse expliquer ce changement. C'est comme si la valeur de la variable était directement modifiée par le LT3300L dans la mémoire interne sans passer par la logique. Comment cela serait-il possible ?
Merci pour votre aide et vos conseils de débuggage !
Je travaille avec des boîtiers Pro-Face LT-3300L qui permettent de contrôler des automates de production de type poka-yoké dans une usine de plasturgie automobile. Les opérateurs placent la pièce nue dans l'automate qui la verrouille. Ils fixent ensuite à la main les composants à leurs emplacements, et lorsque la pièce est valide, l'automate la relâche et les opérateurs passent à la pièce suivante.
Nous produisons de nombreuses pièces différentes et par conséquent nous possédons une vingtaine d'automates différents, adaptés à la géométrie de chaque pièce. Chaque automate est contrôlé par son propre sous-programme. Tous les sous-programme sont rassemblées sur un seul et même programme général, installé sur toutes les LT3300L. Mon objectif est de réaliser un choix automatique du sous-programme. Exemple : lorsque l'on branche le LT3300L sur l'automate #1 et qu'on lance l'IHM, le programme sélectionne automatiquement le sous-programme #1 etc ...
Je n'ai pas écrit le programme moi-même mais l'ai adapté à partir d'une version précédente utilisée dans une autre usine de la même entreprise. Ce système de choix automatique était inclus dans cette version antérieur mais je n'arrive pas à comprendre comment celui-ci fonctionne. Il ne fonctionne que sur certains automates, et j'aimerai comprendre dans le détail de façon à l'adapter sur tous les automates.
Il existe dans le programme GP PRO-EX une variable "Numero_prg" stockée dans la mémoire interne du LT3300L à l'adresse [#INTERNAL]USR00003. Celle-ci détermine le sous-programme à utiliser. Exemple : lorsque Numero_prg = 1, le programme lance le sous-programme #1, correspondant à l'automate #1. Par un mécanisme que je ne comprends pas, la valeur de Numero_prg est automatiquement changée au début de l'exécution du programme. Exemple : quand je branche l'automate #1 au LT3300L la valeur de Numero_prg @ [#INTERNAL]USR00003 est automatiquement changé à 1. Pareil pour l'automate #2 etc ...
Sous GP-PRO EX j'ai regardé la liste des endroits où Numero_prg et [#INTERNAL]USR00003 étaient utilisés mais à aucun moment je n'ai trouvé de bout de logique qui puisse expliquer ce changement. C'est comme si la valeur de la variable était directement modifiée par le LT3300L dans la mémoire interne sans passer par la logique. Comment cela serait-il possible ?
Merci pour votre aide et vos conseils de débuggage !