Vous êtes sur la page 1sur 397

Cours de formation Programmation ADEPT V+ 1

CHAPITRE 1 INFORMATIONS GENERALES............................................................................................................... 6


ø Manuel d'utilisation et publications connexes...................................................................................................... 6
ø Abréviations ......................................................................................................................................................... 6
II ) MISES EN GARDE (ATTENTION, AVERTISSEMENT, NOTE) .............................................................................................. 7
ø Service assistance-client ...................................................................................................................................... 7
ø Informations de formation.................................................................................................................................... 8
ø Informations d'application ................................................................................................................................... 8
III ) SECURITE ..................................................................................................................................................................... 8
ø Information et formation des utilisateurs de cellules robotisées.......................................................................... 8
ø Dispositifs de sécurité de la cellule robotisée ...................................................................................................... 9
ø Robots commandés par un controlleur................................................................................................................. 9
ø Robots commandés manuellement........................................................................................................................ 9
ø Autres équipements commandés........................................................................................................................... 9
CHAPITRE 2 ARMOIRES DE COMMANDE................................................................................................................ 12
I ) DESCRIPTION ................................................................................................................................................................ 12
ø Smart controller ................................................................................................................................................. 12
ø Contrôlleur MV .................................................................................................................................................. 13
II ) INSTALLATION DE L'INTERFACE UTILISATEUR.............................................................................................................. 15
ø Interface utilisateur graphique utilisant la carte VGB....................................................................................... 16
ø Interface texte par terminal................................................................................................................................ 16
ø Interface graphique utilisant AdeptWindows PC ............................................................................................... 17
ø Connexion d'un PC et d'un contrôleur .......................................................................................................... 18
III ) REGLAGE DES COMMUTATEURS DIP D’UNE CARTE AWC............................................................................................. 19
IV ) REGLAGE DES COMMUTATEURS DIP D’UN SMARTCONTROLLER ................................................................................. 20
CHAPITRE 3 ROBOTS ..................................................................................................................................................... 24
I ) DESCRIPTION GENERALE ............................................................................................................................................... 24
II ) TERMINOLOGIE GENERALE .......................................................................................................................................... 25
ø Socle ................................................................................................................................................................... 25
ø Colonne .............................................................................................................................................................. 25
ø Axe 1................................................................................................................................................................... 25
ø Axe 2................................................................................................................................................................... 25
ø Axe 3................................................................................................................................................................... 26
ø Axe 4................................................................................................................................................................... 26
ø Axe 5................................................................................................................................................................... 26
ø Axe 6................................................................................................................................................................... 26
CHAPITRE 4 MISE EN ROUTE, ETALLONAGE & COMMANDES DY SYSTEME D’EXPLOITATION ......... 30
I ) MISE EN ROUTE ............................................................................................................................................................. 30
ø Comment mettre le robot en marche .................................................................................................................. 34
ø Commandes écran .............................................................................................................................................. 35
ø Syntaxe des commandes - conventions ............................................................................................................... 36
CHAPITRE 5 BOITIER DE COMMANDE MANUELLE............................................................................................. 40
I ) GENERALITES................................................................................................................................................................ 40
II ) PRESENTATION DES TOUCHES DU BOITIER DE COMMANDE MANUELLE ........................................................................ 41
ø Touches utilisateur ............................................................................................................................................. 42
ø Touches de fonctions .......................................................................................................................................... 43
ø Fonction DISP.................................................................................................................................................... 44
ø Fonction CLR ERR............................................................................................................................................. 44
ø Fonction CMD ................................................................................................................................................... 45
ø Fonction PROC SET .......................................................................................................................................... 45
ø Touches Fl, F2, DEV/F3 .................................................................................................................................... 46
ø Touche REC/DONE............................................................................................................................................ 46
ø Saisie et entrée des données .............................................................................................................................. 46
ø Touches d'entrée de données.............................................................................................................................. 47

1
Cours de formation Programmation ADEPT V+ 1

ø Touches de sélection de mode ............................................................................................................................ 48


ø Touche PANIC.................................................................................................................................................... 48
ø Touche RUN/HOLD ........................................................................................................................................... 49
ø Touche COMP/PWR........................................................................................................................................... 50
ø Touche MAN/HALT............................................................................................................................................ 51
ø Touches de commandes manuelles ..................................................................................................................... 52
ø Bandes de vitesse................................................................................................................................................ 53
ø Touche Slow (Lent)............................................................................................................................................. 53
III ) ETATS DU ROBOT ........................................................................................................................................................ 54
ø Etat WOLRD ...................................................................................................................................................... 54
ø Etat outillage(TOOL) ......................................................................................................................................... 55
ø Etat axes (JOINT)............................................................................................................................................... 57
ø Etat libre (FREE) ............................................................................................................................................... 59
CHAPITRE 6 GESTION DE L'INFORMATION ........................................................................................................... 62
I ) FICHIERS - DISQUE ......................................................................................................................................................... 62
ø Charger les données........................................................................................................................................... 62
ø Comment spécifier un nom de fichier ................................................................................................................. 63
ø Chargement de fichier en mémoire .................................................................................................................... 64
ø Effet de la commande LOAD.............................................................................................................................. 64
ø Gestion des fichiers-disque................................................................................................................................. 65
ø Stocker les données ............................................................................................................................................ 65
ø Stockage des programmes .................................................................................................................................. 66
ø Conditions d'erreur ............................................................................................................................................ 66
ø Effets de la commande STORE........................................................................................................................... 66
ø Renommer un fichier-disque............................................................................................................................... 69
ø Effacer un fichier-disque .................................................................................................................................... 71
ø Utilisation des répertoires.................................................................................................................................. 73
ø Visualiser le contenu d’un répertoire................................................................................................................. 74
ø Comment spécifier un nom de sous-répertoire?................................................................................................. 75
ø Comment créer un sous-répertoire..................................................................................................................... 76
ø Effacer un sous répertoire .................................................................................................................................. 76
II ) GESTION DE LA MEMOIRE SYSTEME ............................................................................................................................. 78
ø Afficher le contenu de la mémoire système......................................................................................................... 78
ø Renommer des programmes résidant dans la mémoire système ........................................................................ 78
ø Copie de programmes résidant dans la mémoire système.................................................................................. 79
ø Effacer sélectivement le contenu de la mémoire système ................................................................................... 79
ø Afficher le contenu de la mémoire système......................................................................................................... 81
ø Vider la mémoire système................................................................................................................................... 81
ø Gestion des programmes en mémoire par modules............................................................................................ 82
ø Commandes relatives aux modules .................................................................................................................... 82
CHAPITRE 7 TYPES DE ROGRAMME......................................................................................................................... 84
ø Programme de commande de l’application........................................................................................................ 84
ø Programme de commande du procédé ............................................................................................................... 84
ø Programme de commande.................................................................................................................................. 84
CHAPITRE 8 EDITEUR.................................................................................................................................................... 86
I ) ACCES A L'EDITEUR ....................................................................................................................................................... 86
ø Comment spécifier un nom de programme......................................................................................................... 86
II ) LA FENETRE D’EDITION ................................................................................................................................................ 87
III ) MODES D'EDITION....................................................................................................................................................... 88
IV ) AFFICHAGE A L’ECRAN ............................................................................................................................................... 90
COMMENTAIRES PROGRAMME ........................................................................................................................................... 92
ø Commentaires sur une partie de ligne : ............................................................................................................. 92
ø Commentaire de la ligne de désignation .PROGRAM ....................................................................................... 92
CHAPITRE 9 EXECUTION DU PROGRAMME, PARAMETRES ET VARIABLES BINAIRES SYSTEME ...... 94

2
Cours de formation Programmation ADEPT V+ 1

I ) GENERALITES................................................................................................................................................................ 94
II ) EXECUTION DES PROGRAMMES V+ A PARTIR DU TERMINAL SYSTEME ......................................................................... 94
ø Multi-tâche ou multi-processeur ........................................................................................................................ 95
ø Applications multi-tâches................................................................................................................................... 95
ø Priorite des taches par defaut ............................................................................................................................ 96
ø Contrôle de l’état du système ............................................................................................................................. 97
ø Arrêt des programmes en cours d’exécution...................................................................................................... 98
ø Arrêt provisoire d’un programme ...................................................................................................................... 99
ø Poursuite de programme V+.............................................................................................................................. 99
CHAPITRE 10 TYPE DE DONNEES ............................................................................................................................ 104
II ) REEL .......................................................................................................................................................................... 105
III ) CHAINES ................................................................................................................................................................... 105
IV ) POSITIONS ................................................................................................................................................................ 106
V ) POSITIONS ARTICULAIRES .......................................................................................................................................... 106
VI ) TRANSFORMATIONS ................................................................................................................................................. 107
VII ) TABLEAUX .............................................................................................................................................................. 107
VIII ) INSTRUCTIONS PROGRAMME .................................................................................................................................. 109
ø Affectations....................................................................................................................................................... 109
ø Affectation de réels........................................................................................................................................... 109
ø Affectation de chaînes de caractères................................................................................................................ 110
ø Affectations de positions articulaires ............................................................................................................... 111
ø Affectations de transformations........................................................................................................................ 111
IX ) OPERATIONS SUR LES CHAINES DE CARACTERES ...................................................................................................... 112
ø LONGUEUR D’UNE CHAINE DE CARACTERE........................................................................................... 112
ø EXTRAIRE UN GROUPE DE CARACTER RES D’UNE CHAINE .................................................................... 113
ø CONVERTION DEDECIMAL ASCII ............................................................................................................... 113
CHAPITRE 11 OPERATIONS NUMERIQUES ........................................................................................................... 116
I ) EXPRESSION LOGIQUE ................................................................................................................................................. 116
ø Constante logique............................................................................................................................................. 116
II ) OPERATEURS RELATIONNELS ..................................................................................................................................... 119
III ) OPERATEUR LOGIQUE .............................................................................................................................................. 120
IV ) REPRESENTATION NUMERIQUE ................................................................................................................................. 121
CHAPITRE 12 CLASSIFICATION DES VARIABLES............................................................................................... 124
I ) VARIABLES GLOBALES ................................................................................................................................................ 124
II ) VARIABLES LOCALES ET AUTOMATIQUES .................................................................................................................. 124
NOTA :....................................................................................................................................................................... 124
III ) VISUALISATION DES VARIABLES LOCAL................................................................................................................. 135
CHAPITRE 13 CREATION DES POSITIONS ............................................................................................................. 137
I ) INTRODUCTION ........................................................................................................................................................... 137
II ) TYPES DE POSITION .................................................................................................................................................... 138
ø Variables de transformation/précision............................................................................................................. 138
ø Transformation................................................................................................................................................. 138
ø Points de précision ........................................................................................................................................... 145
III ) CREER ET MODIFIER DES VARIABLES DE POSITION .................................................................................................... 148
ø Comment spécifier un nom de position ............................................................................................................ 148
ø Créer et modifier des variables de position...................................................................................................... 148
ø Créer une transformation................................................................................................................................. 149
ø Créer un point de précision.............................................................................................................................. 151
IV ) OPERATIONS DE POSITIONNEMENT DIVERSES ........................................................................................................... 152
CHAPITRE 14 STRUCTURES DE CONTROLE DES PROGRAMMES.................................................................. 156
BRANCHEMENTS INCONDITIONNELS................................................................................................................... 156
II ) BRANCHEMENTS CONDITIONNELS ................................................................................................................. 157
BOUCLES COMMANDEES......................................................................................................................................... 159

3
Cours de formation Programmation ADEPT V+ 1

BOUCLES PRECONDITIONNELLES ......................................................................................................................... 160


BOUCLES POST CONDITONNELLES ....................................................................................................................... 160
CHAPITRE 15 DEPLACEMENTS DU ROBOT........................................................................................................... 172
I ) TYPES DE TRAJECTOIRES ............................................................................................................................................. 172
ø Déplacements en ligne droite ........................................................................................................................... 172
ø Déplacement en interpolation articulaire ........................................................................................................ 173
INSTRUCTIONS DE DEPLACEMENT .................................................................................................................................... 175
II ) APPROCHE D’UNE POSITION....................................................................................................................................... 176
DEGAGEMENT D’UNE POSITION ....................................................................................................................................... 177
MODIFICATEURS DE DEPLACEMENTS ............................................................................................................................... 178
ø Suspension de l'exécution du programme jusqu'à la fin du déplacement......................................................... 178
ø Suspension de l'exécution du programme jusqu'à la satisfaction d'une condition ........................................... 179
VITESSE D’EXECUTION PROGRAMME ............................................................................................................................... 186
ø Vitesse Moniteur............................................................................................................................................... 186
ø Vitesse Programme........................................................................................................................................... 186
ACCELERATION DECELERATION DES DEPLACEMENTS .................................................................................................... 188
ACCELERATION DECELERATION DES DEPLACEMENTS .................................................................................................... 189
CONTROLE DE STABILITE DU ROBOT EN UN POINT ........................................................................................................... 190
CONTROLE DE LA PRECISION DE POSITIONNEMENT .......................................................................................................... 190
ø LOGIGRAMME DU GENERATEUR DE TRAJECTOIRE .............................................................................. 192
III ) CONTROLE DE LA CONFIGURATION DU BRAS ET DU POIGNET .................................................................................... 192
III ) CONTROLE DE LA CONFIGURATION DU BRAS ET DU POIGNET .................................................................................... 193
CHAPITRE 16 TEMPORISATEURS............................................................................................................................. 196
TIMERS ......................................................................................................................................................................... 196
ø Réglage d’un temporisateur ............................................................................................................................. 196
ø Lecture d’un temporisateur .............................................................................................................................. 196
CHAPITRE 17 LES ENTREES SORTIES T.O.R ......................................................................................................... 200
QUE SONT LES E/S NUMERIQUES ?................................................................................................................................... 200
ø Canaux d'E/S .................................................................................................................................................... 200
ø Bits internes...................................................................................................................................................... 200
ø Représentation des signaux :............................................................................................................................ 200
ø Visualisation de l’état des signaux E/S et bits interne...................................................................................... 201
ACTIVATION DE SORTIES ................................................................................................................................................. 202
LECTURE D’ETAT DES ENTREES ....................................................................................................................................... 202
ACTIVATION D’UN GROUPE DE SORTIE ............................................................................................................................ 204
LECTURE D’ETAT D’UN GROUPE D’ENTREE...................................................................................................................... 205
MISE A L’ETAT BAS DE TOUTES LES SORTIES ................................................................................................................... 207
ø Considérations relatives à la programmation.................................................................................................. 207
CHAPITRE 18 POSITIONS RELATIVES .................................................................................................................... 210
POSITIONS RELATIVES ..................................................................................................................................................... 210
CALCULS DES POSITIONS ................................................................................................................................................. 210
POSITION D'UNE TRANSFORMATION DANS UN SYSTEME DE COORDONNEES DE REFERENCE ............................................. 211
CREATION DE POSITIONS RELATIVES AU MOYEN DE L'INSTRUCTION TRANS .................................................................. 213
TRANS SUR DES POSITIONS FIXES DISCRETES AU MOYEN DE VALEURS GEOMETRIQUES. ................................................ 215
TRANS SUR DES POSITIONS FIXES DISCRETES PAR APPRENTISSAGE DE LA TRANSFORMATION RELATIVE ....................... 217
TRANS DANS UN DEPLACEMENT REPETITIF .................................................................................................................... 218
II ) TRANS DANS UN DEPLACEMENT CIRCULAIRE REPETITIF .......................................................................................... 221
INVERSE D’UNE TRANSFOMATION ................................................................................................................................... 223
III ) APPRENTISSAGE D’UN CENTRE OUTIL .................................................................................................................. 224
TRANSFORMATION TOOL ........................................................................................................................................ 227
CREATION D'UN REPERE DE REFERENCE (SYSTEME DE COORDONNEES DEFINI PAR L'UTILISATEUR)................................. 227
CREATION D'UN REPERE DE REFERENCE (SYSTEME DE COORDONNEES DEFINI PAR L'UTILISATEUR)................................. 228
REPERE DE REFERENCE DEFINI PAR L'UTILISATEUR POUR DES DEPLACEMENTS REPETITIFS DE POSITIONS RELATIVES ..... 235

4
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 19 VARIABLES SYSTEME....................................................................................................................... 238


VARIABLES BINAIRES (SWITCH) ...................................................................................................................................... 238
ACTIVATION/DESACTIVATION DES VARIABLES BINAIRES ................................................................................................ 238
PARAMETRES .................................................................................................................................................................. 240
ø Régler les paramètres....................................................................................................................................... 240
AFFICHER LES REGLAGES DES PARAMETRES.................................................................................................................... 240
CHAPITRE 20 LES INTERRUPTIONS ........................................................................................................................ 242
LE CONCEPT DES INTERRUPTIONS .................................................................................................................................... 242
ø Priorité des interruptions ................................................................................................................................. 242
SURVEILLANCE CONTINUE D’UN SIGNAL EN MODE ASYNCHRONE ................................................................................... 243
CHAPITRE 21 TRAITEMENT D’ERREUR ET DE L’ETAT SYSTEME EN V+.................................................... 250
NUMERO ET MESSAGE D’ERREUR .................................................................................................................................... 252
II ) GESTION D’ETAT DU SYSTEME ................................................................................................................................... 253
SCHEMA DU TRAITEMENT D’ERREUR .................................................................................................................. 255
CHAPITRE 22 PROGRAMMES DE COMMANDE DU SYSTEME D'EXPLOITATION V+ ............................... 258
ø Création d’un programme de commande......................................................................................................... 258
ø Exécution depuis le terminal ............................................................................................................................ 259
ø Exécution automatique..................................................................................................................................... 259
CHAPITRE 23 PROGRAMMATION DU MCP ........................................................................................................... 262
I ) ATTACH DU BOITIER DE COMMANDE MANUELLE ...................................................................................................... 262
II ) ECRITURE SUR LE BOITIER MCP ................................................................................................................................ 264
DETECTION DES ENTREES UTILISATEUR ........................................................................................................................... 264
LECTURE DES ENTREES SUR LE MCP............................................................................................................................... 265
ø Comportement des touches............................................................................................................................... 265
CONTROLE DU POTENTIOMETRE DE VITESSE AU MCP ..................................................................................................... 267
CONTROLE DU POTENTIOMETRE DE VITESSE AU MCP ..................................................................................................... 268
LECTURE DE L'ETAT DU MCP .......................................................................................................................................... 269
LECTURE SUR LE BOITIER MCP ....................................................................................................................................... 272
NUMEROS DES VOYANTS VALIDES ................................................................................................................................... 273
ATTENTE / INTERROGATION DES TOUCHES D’ENTREE DU BOITIER DE COMMANDE MANUELLE ........................................ 273
COMMANDE DU BOITIER DE COMMANDE MANUELLE ....................................................................................................... 274
CODES DE COMMANDE DE L'AFFICHEUR LCD ................................................................................................................. 275
LES DEL DU BOITIER DE COMMANDE MANUELLE ............................................................................................................ 276
MODE REPETITIF DES TOUCHES DU BOITIER DE COMMANDE MANUELLE .......................................................................... 277
CHAPITRE 24 N.F.S. ....................................................................................................................................................... 282
I ) POURQUOI AVOIR CHOISI LE PROTOCOLE NFS?........................................................................................................... 282
II ) COMMENT UTILISER UN ESPACE PARTAGE NFS AVEC UN CONTROLEUR ADEPT?....................................................... 282
ø FSET................................................................................................................................................................. 283
ø NET .................................................................................................................................................................. 284
ø Comment accéder aux espaces disques partagés? .......................................................................................... 284
ø Comment accéder aux espaces disques partager par programme ? ............................................................... 285
ø Problèmes possibles:........................................................................................................................................ 286
CHAPITRE 25 EXEMPLES DE PROGRAMMES....................................................................................................... 288

CHAPITRE 26................................................................................................................................................................... 333

CHAPITRE 27 MESSAGES DU SYSTEME ................................................................................................................. 334


ø Introduction...................................................................................................................................................... 334
ø Liste alphabétique ............................................................................................................................................ 334

5
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 1 INFORMATIONS GENERALES

ø MANUEL D'UTILISATION ET PUBLICATIONS CONNEXES

Adept Technology offre un ensemble complet de publications techniques qui supportent ses produits.
Les publications Adept suivantes peuvent être mentionnées dans cet ouvrage:

Reference guide V+

Operating System reference guide

Guides de l'Utilisateur d'équipements spécifiques

ø ABREVIATIONS

Les abréviations suivantes sont utilisées dans ce manuel Adept.

Abrév. Définition

ASCII American Standard Code for Information Interchange


CPU Unité Centrale
E/S Entrée/Sortie
VJI Joint interface (carte servo)
MCP Boîtier de Commande Manuelle
MSC Contrôleur d'Unités de Disques (dans l'armoire de commande)
OLC Carte de Liaison Externe
RSC Plaque Signalétique du Robot (sur le socle du robot)
SCARA Selective Compliance Assembly Robot Arm
V+ Langage/Système d'Exploitation Evolué de Adept
VFP Vertical Front Panel
CIP Controler interface panel

6
Cours de formation Programmation ADEPT V+ 1

II ) MISES EN GARDE (ATTENTION, AVERTISSEMENT, NOTE)


Il existe trois niveaux de mise en garde dans ce manuel. Par ordre d'importance décroissant

MATTENTION

Risque d'accident corporel ou de dommage matériel sérieux si les mesures


indiquées ne sont pas observées. Une indication "ATTENTION" décrit
généralement le danger potentiel, ses effets possibles, et les mesures à prendre pour
réduire ce danger.

AVERTISSEMENT

Risque de dommage matériel si les actions indiquées ne sont pas observées.

ø SERVICE ASSISTANCE-CLIENT
Appels d'assistance

Adept Technology dispose d'une équipe complète d'assistance au Centre d'Assistance-Client, à son
quartier général de San José, Californie. La ligne d’appel est +(1) 408 432 0888

Adept Technology dispose d'un centre technique européen à Dortmund (Allemagne). La ligne d'appel
assistance est +(49) 231 758940.

Un centre technique en France tel 01 69 19 16 16

Avant d'appeler ce service, préparer les informations suivantes : numéro de série du robot et de
l'armoire de commande, nombre d'heures de fonctionnement de l'armoire de commande. Vous
trouverez ces informations sur leur unité respective.

7
Cours de formation Programmation ADEPT V+ 1

ø INFORMATIONS DE FORMATION
Pour les informations concernant la formation Adept, appelez le (1) 408-434-5024 à San José (USA),
le (49) 231 758940 à Dortmund (Allemagne), le +(39) 575 282622 à Arezzo (Italie) et le +(33) 1 69 19
16 16 à Paris (France).

ø INFORMATIONS D'APPLICATION
Il existe également une ligne réservée à l'assistance aux applications robotiques appelez le (1) 408-
434-5033 à San José (USA), le (49) 231 758940 à Dortmund (Allemagne) ou le (33) 1 69 19 16 16 à
Paris (France).

III ) SECURITE

ø INFORMATION ET FORMATION DES UTILISATEURS DE CELLULES ROBOTISEES


Les cellules robotisées Adept comportent des mécanismes commandés par ordinateur, capables de se
déplacer à grande vitesse et d'exercer une force considérable. Comme toutes les cellules robotisées et
la plupart des équipements industriels, ils doivent être traités avec beaucoup d'attention par l'utilisateur
du système.

F NOTE
Conformément aux définitions RIA (Robotic Industries Association), dans ce manuel, le terme
"utilisateur" désigne la personne ou la société responsable, et "opérateur" la personne qui démarre,
stoppe, ou contrôle le fonctionnement du robot.

Toute personne utilisant les cellules robotisées Adept doit prendre connaissance des recommandations
de cet ouvrage.

Nous vous recommandons de lire la publication ANSI/RIA R15.06-1986, concernant les exigences de
sécurité des cellules robotisées. Cette publication contient des recommandations sur l'installation, les
dispositifs de sécurité, la maintenance, les essais, la mise en service des robots et la formation des
opérateurs. Ce document est disponible auprès de l'ANSI (American National Standards Institute)
1430 Broadway, New York, NY 10018.

8
Cours de formation Programmation ADEPT V+ 1

ø DISPOSITIFS DE SECURITE DE LA CELLULE ROBOTISEE


Les dispositifs de sécurité doivent faire partie intégrante de la conception et de l'installation de la
cellule robotisée, et de la formation des opérateurs ainsi que des procédures de fonctionnement. Les
cellules robotisées Adept possèdent diverses fonctions de communication qui aident l'utilisateur à
développer des dispositifs de sécurité pour le système. Elles incluent les circuits d'arrêt d'urgence et les
lignes d'E/S numériques.

ø ROBOTS COMMANDES PAR UN CONTROLLEUR


Les robots Adept pouvant être commandés automatiquement, le programme qui contrôle le robot peut
provoquer le déplacement du robot à un moment et suivant une trajectoire non anticipés par le
personnel. C'est pourquoi le personnel ne doit pas entrer dans la cellule lorsque le voyant orange
ARM POWER/HIGH POWER (BRAS EN ACTION/PUISSANCE ACTIVEE) et le voyant
blanc(bleu) PROGRAM RUNNING (PROGRAMME EN COURS) sur le panneau AVANT de
l'armoire de commande sont allumés.

ø ROBOTS COMMANDES MANUELLEMENT


Les robots Adept peuvent être également commandés manuellement lorsque le voyant orange
ARM POWER/HIGH POWER du panneau AVANT (VFP ou CIP) de l'armoire de commande
est allumé. A ce moment, le déplacement du robot peut être commandé à partir du terminal ou
du boîtier de commande manuelle. Si vous entrez dans le volume de travail du robot avec ce
voyant allumé, il faut se munir du boîtier de commande manuelle passer la clef en position
" MANUEL " et appuyer sur la touche (MAN/HALT ---MANUEL/STOP). Cela invalide toute
commande de déplacement inattendue du robot, émise par un tiers depuis le clavier du terminal.

ø AUTRES EQUIPEMENTS COMMANDES


En outre, ces systèmes peuvent être programmés pour commander des équipements et dispositifs
autres que le robot. Comme avec le robot, le programme qui contrôle ces équipements peut les
déplacer à un moment non anticipé par le personnel. Il est essentiel que des dispositifs de
sécurité évitent au personnel d'entrer dans le volume de travail lorsque le voyant blanc
PROGRAM RUNNING sur le VFP ou CIP de l'armoire de commande est allumé.

ATTENTION
L'entrée dans la cellule robotisée lorsque le voyant orange ARM POWER/HIGH POWER ou le
voyant blanc PROGRAM RUNNING est allumés risque de vous exposer à un accident corporel
grave.

Adept Technology recommande l'utilisation de dispositifs de sécurité additionnels tels que rideaux
optiques, portes de sécurité, ou tapis tactile pour éviter l'entrée dans la cellule pendant que le voyant
BRAS EN ACTION/PUISSANCE ACTIVEE est allumé. Ces dispositifs peuvent être connectés en
utilisant les circuits d'arrêt d'urgence externe du robot.

9
Cours de formation Programmation ADEPT V+ 1

10
Cours de formation Programmation ADEPT V+ 1

11
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 2 ARMOIRES DE COMMANDE

I ) DESCRIPTION
L'armoire de commande Adept permet de réaliser un environnement en langage V+ qui commande des
équipements externes. L'armoire de commande gère les entrées utilisateur ou de la cellule robotisée,
et génère les sorties utilisateur ou de commande des équipements de la cellule robotisée.

L'armoire de commande inclut le processeur système, les circuits de commande


système, le panneau AR de connexions, les lecteurs de disquette, les connexions d'E/S
numériques et séries, l'alimentation et les amplificateurs qui commandent les moteurs. Un
panneau AV permet d'accéder aux signalisations et à toutes les commandes opérateur.

L'armoire de commande Adept, utilise un système d’exploitation multitâche V+ qui permet l'exécution
simultanée de plusieurs programmes d'application, notamment le programme principal du robot.

ø SMART CONTROLLER

12
Cours de formation Programmation ADEPT V+ 1

ø CONTROLLEUR MV

1.8 m (6 ft) SCSI Interface Cable

MV-10 Controller
With AWC Module Controller Interface Panel (CIP)
Mise sous puissance
Mode manuel mode Auto

AU

Connecteur MCP
Switch réseau Alimentation O/1

13
Cours de formation Programmation ADEPT V+ 1

Slots
Nécessaires

AWCII 40 avec 8 MB de RAM


System AWCII 60 avec 24 MB de RAM
Processor Net - AdeptNet - EthernetNet

Optional Modules
Floppy

Graphics VGB - graphics processor, frame buffer, A-Series color video output -
Module 1024 x 768, keyboard/trackball input
AdeptVision EVI - vision framegrabber, two 1K x 1K frame buffers, supports up to
Interface 4 cameras and 2 strobes
Auxiliary Sys. 030, 040, or 060 - 3 modules max per controller, same specs as main
Processor system processor
AdeptMotion MI-6 - 6 axes motor control per module, up to 4 modules in MV-19
Interface MI-3 - 3 axes motor control per module
Digital DIO - 64 channels - 32 input/32 output, 2 output ranges - 10-15VDC
Input/Output and 15-30VDC, 400 mA max output, 8 modules max per controller
AdeptForce VFI - interface to force-sensing unit, part of AdeptForce VME product,
Interface includes 6-axis force/torque sensing, guarded moves, data collection
Adept Joint VJI / EJI - interface to Adept robots and power chassis, interface to
Interface belt encoders for conveyor tracking.

14
Cours de formation Programmation ADEPT V+ 1

II ) INSTALLATION DE L'INTERFACE UTILISATEUR

Il existe trois options d'interface utilisateur différentes pour les contrôleurs Adept MV :

• Une interface ASCII utilisant un terminal Wyse (ou équivalent)

• Une interface utilisateur graphique utilisant la carte Adept VGB, un moniteur SVGA, un clavier
standard style PC, et un dispositif de pointage série.

• Une interface utilisateur graphique utilisant le logiciel AdeptWindows PC tournant sur un PC


(Windows95 ® , Windows98 ® , ou WindowsNT ® ).

L'installation des trois interfaces opérateur différentes est couverte dans ce chapitre. Il vous suffit de
lire les sections qui concernent le type d'interface que vous installez.

Le type d'interface que V + attend quand il s'initialise dépend des options commandées avec le
système. Si votre système a été commandé avec l'option AdeptWindows PC, V + s'initialise et attend
que l'interface opérateur soit assurée par un ordinateur PC équipé du logiciel Adept Windows PC .

Si votre système n'est pas commandé avec l'option AdeptWindows PC, V + s'initialise et attend que
l'interface opérateur soit faite en utilisant soit :

• Un terminal fourni par l'utilisateur, relié au connecteur RS-232/TERM sur la carte AWC.

• Le moniteur, le clavier et le système de pointage connectés à la carte VGB optionnelle.

(Les systèmes sans l'option AdeptWindows PC sélectionnent automatiquement l'option appropriée


parmi ces deux options, salon le matériel connecté.)

FNOTA :
Le comportement au démarrage du système est déterminé par le commutateur DIP de configuration de
la carte AWC et les réglages des commutateurs DIP du «logiciel» du contrôleur NVRAM. Les
instructions de la présente section supposent que ces deux interrupteurs DIP ont été laissés à leurs
réglages d'usine par défaut. Si vous avez changé ces réglages ou que vous désirez changer le
comportement au démarrage du système, reportez-vous au Guide de l'utilisateur du Contrôleur Adept
MV pour plus de détails sur les réglages des interrupteursAWC DIP et aux Instructions relatives aux
programmes utilitaires Adept pour plus de détails sur les réglages des interrupteurs DIP «logiciels».

15
Cours de formation Programmation ADEPT V+ 1

ø INTERFACE UTILISATEUR GRAPHIQUE UTILISANT LA CARTE VGB

Si vous avez commandé ce type d'interface, la carte VGB est déjà installée. Il n'y a pas de configuration
du matériel ou du logiciel à réaliser. Il suffit d'installer le moniteur, le clavier et le dispositif de
pointage. L'interface utilisateur est disponible dès que vous mettez le système sous tension.

FNOTA :
Le clavier et le moniteur fournis par Adept sont destinés à être utilisés dans des environnements
industriels légers. Dans les situations plus sévères, ils doivent être protégés dans une armoire
appropriée. Cette option n’est pas diponible lors de l’utilisation de carte vision AVI.

ø INTERFACE TEXTE PAR TERMINAL


Avec un système à contrôleur Adept MV n'ayant pas l'une des options d'interface graphique, le client
doit fournir le terminal et le câble pour l'interface avec le contrôleur.
Le terminal doit être un Wyse Modèle 60 ou 75 avec clavier ANSI, ou terminal compatible.
Vous pouvez aussi utiliser un ordinateur avec un logiciel d'émulation terminal approprié.
Pour les ordinateurs compatibles DOS ou Windows, les programmes «Procomm+» ou «Procomm pour
Windows» (disponibles dans de nombreuses boutiques) comprennent une émulation logicielle pour le
Wyse-75.
Ce type d'interface n'est pas adapté à la programmation à base graphique, aux programmes
d'application à base graphique tels qu'AIN, ni aux systèmes équipés de l'option vision.

16
Cours de formation Programmation ADEPT V+ 1

ø INTERFACE GRAPHIQUE UTILISANT ADEPTWINDOWS PC


Le programme AdeptWindows PC OS sur Microsoft Windows ® permet la programmation et le
contrôle complets du robot depuis un ordinateur personnel compatible IBM. L'ordinateur peut être
connecté au contrôleur Adept à l'aide d'un câble série ou d'une liaison Ethernet.
Cette section détaille la connexion simple d'un PC à un contrôleur Adept. Le logiciel AdeptWindows
autorise des installations plus complexes sur un réseau. Pour plus d'instructions sur l'installation et la
configuration d'installation plus complexes, reportez-vous au Guide de l'utilisateur AdeptWindows.
Les instructions ci-après supposent que les interrupteurs DIP de configuration et la partie réseau de la
configuration du système Adept ont été laissés tels quels. L'installation d'une interface utilisateur
AdeptWindows sur base PC implique les étapes suivantes :

1 • Installez le logiciel AdeptWindows PC sur le PC fourni par l'utilisateur.

• Si vous utilisez une connexion Ethernet :

• Réglez l'interface TCP/IP.

• Connectez le contrôleur Adept au PC à l'aide d'un hub réseau fourni par l'utilisateur ou à l'aide d'un
câble de liaison Ethernet croisé. (Ce type de câble est disponible auprès d'Adept).

• Si vous utilisez une connexion série : Connectez le contrôleur Adept au PC à l'aide d'un câble série
standard. Utilisez le port série RS232/TERM de la carte AWC.

Installation du logiciel AdeptWindows


Le logiciel AdeptWindows pour le PC est distribué sur une disquette ou CD ROM. Cette disquette ou
ce CD ROM contient un programme d'installation permettant d'installer de façon appropriée le logiciel
sur le PC. Les programmes ci-après seront installés :

• AdeptWindows PC

• Editeur hors ligne AdeptWindows

• Serveur AdeptWindows DDE

• Serveur AdeptWindows TFTP

Après installation, chacun de ces programmes peut être démarré depuis la barre de menu Windows
Démarrer.

FNOTA :
Toutes les applications ci-dessus sont installées. Toutefois, seul AdeptWindows PC est requis pour
l'interface opérateur.

17
Cours de formation Programmation ADEPT V+ 1

ø CONNEXION D'UN PC ET D'UN CONTROLEUR


La carte AWC peut être connectée au PC à l'aide d'une des trois options de câblage ci-dessous.

Pc vers controleur

Pour créer le réseau représenté ci dessus procédez selon les étapes suivantes :

1. Installez le logiciel AdeptWindows sur le PC. Voir «Installation du logiciel AdeptWindows» dans
votre guide utilisateur « Adept windows ».

2. Si vous effectuez une connexion Ethernet :

Connectez le contrôleur Adept à votre PC à l'aide d'un hub réseau ou d'un câble de liaison ethernet
croissé.

Installez un protocole TCP/IP sur le PC à l'aide de l'adresse IP et du masque de sous-réseau indiqué dans
la Figure 5-4. Voir «Configuration de l'interface TCP/IP (connexion Ethernet)» en page 96 et la
documentation de votre PC pour plus de détails.

Si vous effectuez une connexion série :

Connectez le contrôleur Adept à votre PC à l'aide d'un câble série. Enfichez une extrémité du câble
dans le connecteur RS232/TERM de la carte AWC et l'autre extrémité dans un port série disponible sur le
PC.

Démarrez le contrôleur Adept.

Démarrez le PC.

Démarrez AdeptWindows sur le PC et effectuez la connexion logique avec le contrôleur. Si vous


utilisez une connexion Ethernet :
Sélectionnez l'option File puis Scan Ethernet option. Si la configuration de votre PC est correcte,
vous devez voir l'adresse IP du contrôleur Adept.

18
Cours de formation Programmation ADEPT V+ 1

Sélectionnez File puis Connect via Ethernet. Entrez l'adresse IP du contrôleur et cliquez sur OK.
(Le logiciel AdeptWindows PC vous donne la dernière adresse IP utilisée comme adresse par défaut.)

Si vous effectuez une connexion série :

Sélectionnez File à Connect via COM port.

Sélectionnez le port COM utilisé sur votre PC et appuyez sur OK.

6. La fenêtre moniteur V + s'affiche.

III ) REGLAGE DES COMMUTATEURS DIP D’UNE CARTE AWC


Le tableau ci-dessous présente les options de réglage des DIP de configuration SW1 sur le module
AWC. On doit tout d'abord retirer le processeur AWC du contrôleur pour régler ce DIP de

configuration. Voir la Figure 4-1 pour l'emplacement des DIP de configuration SW1.

Fig 4.1

19
Cours de formation Programmation ADEPT V+ 1

SW4 SW3 SW2 SW1 Intreprétation


ON ON ON ON Carte UC 1, Pas d’amorçcage automatique, tout les autres
réglages selon NVRAM
ON ON ON OFF Carte CPU 1, pas d’amorçage automatique, interface
utilisateur via VGB ou Port Série (utiliser le port série
s’il n’y a pas de VGB ou si elle est désactivée par son
DIP de configuration
ON ON OFF ON Carte CPU1,pas d’aporçage automatique, interface
utilisateur via port série
ON OFF ON ON Carte UC 1, pas d’amoraçage automatique, interface
utilsateur via Ethernet AdeptWindow (Utiliser l’adresse
IP dans la NVRAM)
ON ON OFF OFF Carte UC1, pas d’amorçage automatique, interface
utilsater via AdeptWindows série
OFF ON ON OFF Carte UC 1, pas d’amoraçage automatique, utiliser les
commutateurs de la SIO série pour sélectionner les E/S
OF ON OFF OFF Crte UC1, amorçage automatique, utiliser les
commutateurs de la SIO série pour sélectionner les E/S

Tab 4.2

Amorçage automatique
Pour utiliser la carte AWC dans une configuration d'amorçage automatique, régler les DIP de
configuration SW1 comme suit :

IV ) REGLAGE DES COMMUTATEURS DIP D’UN SMARTCONTROLLER


Le tableau suivant indique les options diponibles pour le commutateur DIP SW1 du SmartController.

20
Cours de formation Programmation ADEPT V+ 1

21
Cours de formation Programmation ADEPT V+ 1

22
Cours de formation Programmation ADEPT V+ 1

23
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 3 ROBOTS

I ) DESCRIPTION GENERALE
Les robots AdeptOne XL, Adept Cobra 600 et Cobra 800 Pack0ne et AdeptThree XL sont des robots
SCARA à quatre axes. Les Axes 1, 2 et 4 ont un déplacement rotatif, l'axe 3 a un déplacement de
translation.

Tous les robots Adept peuvent être reliés aux armoires de commande Adept MV.

24
Cours de formation Programmation ADEPT V+ 1

II ) TERMINOLOGIE GENERALE

ø SOCLE
Le socle est la partie inférieure de tous les robots Adept. Toutes les connexions physiques entre l'unité
mécanique et l'armoire de commande sont situées à l'arrière du socle.

ø COLONNE
La colonne est située immédiatement au-dessus du socle.

ø AXE 1
L'axe 1 permet le déplacement rotatif du bras interne. Le déplacement du bras interne des robots
SCARA Adept est limité à moins de 360°.

ø AXE 2
L'axe 2 est le point de pivotement entre le bras interne et le bras externe. Le déplacement du bras
externe est limité par des butées mécaniques situées en haut du bras interne. Comme pour l'axe 1, son
déplacement sur les robots SCARA Adept est limité à moins de 360°. Ce déplacement peut être
comparé à un coude humain capable d'agir en gaucher ou en droitier.

25
Cours de formation Programmation ADEPT V+ 1

ø AXE 3
L'axe 3 permet le déplacement vertical du fourreau à l'extrémité du bras externe.

ø AXE 4
L'axe 4 permet la rotation du fourreau sur les robots SCARA Adept dans une plage supérieure à 360°.
Ce déplacement peut être comparé à un avant-bras humain lors du serrage ou du desserrage d'un
bouchon à vis, si l'axe 5 n'est pas présent.

ø AXE 5
L'axe 5 est optionnel. Il permet de contrôler le basculement de l'outil sur une plage de +-91°. Ce
déplacement est comparable à celui du poignet humain.

ø AXE 6
L'axe 6 permet la rotation de l'outil lorsque l'axe 5 est installé. Ce déplacement est comparable à celui
de la main humaine lors du serrage d'une petite vis ou du desserrage d'un bouchon à vis de bouteille.

26
Cours de formation Programmation ADEPT V+ 1

27
Cours de formation Programmation ADEPT V+ 1

28
Cours de formation Programmation ADEPT V+ 1

29
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 4 MISE EN ROUTE, ETALLONAGE &


COMMANDES DY SYSTEME D’EXPLOITATION

I ) MISE EN ROUTE
Si votre système possède une armoire de commande Adept, dotée de l'interface graphique utilisateur
carte VGB, il suffit d'allumer l'écran à l'aide du bouton se trouvant en bas à droite du moniteur. Une
fois la mise en route du système terminée, les écrans de mise en route montrés dans les Fig. 3-1 et 3-2
s'affichent.

Dans un système avec l'armoire de commande Adept n’utilisant pas d’interface graphique, mais se
connectant via liaison série, l'écran de mise en route montré dans la Fig. 3-3 s'affiche.

Dans un système possédant une licence AdeptWindows (interface graphique sur PC), il sera nécessaire
de se connecter à un PC muni du logiciel Adept Window via un câble série ou une liaison ethernet.

Le texte exact de ces trois écrans dépend de la version du système d'exploitation et des options
installées de votre système.

Une fois le processus de mise en route (lancement) terminé, le curseur apparaît près de l'invite système
(L'invite du système V+ est un point).

30
Cours de formation Programmation ADEPT V+ 1

31
Cours de formation Programmation ADEPT V+ 1

Figure 3.4 (système sous Adept Windows)

32
Cours de formation Programmation ADEPT V+ 1

Utilisation de l’interface graphique

33
Cours de formation Programmation ADEPT V+ 1

ø COMMENT METTRE LE ROBOT EN MARCHE

Avant qu'un déplacement du robot ne puisse être amorcé, la puissance doit être activée et le robot doit
être étalonné.
En mode automatique
Suivre ces étapes pour activer la puissance en mode automatique au moyen du MCP:

FNOTA :
Si la puissance est activée et qu'on relâche le contacteur d'activation du MCP, le système reconnaît un
signal d'arrêt d'urgence et coupe immédiatement la puissance.

Mettre en position de marche les interrupteurs de mise sous tension sur le contrôleur et sur le châssis
d'alimentation.

Régler l'interrupteur de mise sous tension du système du VFP ou CIP à la position I si il est câblé pour
mettre en marche l'alimentation du système.

Vérifier que tous les boutons d'arrêt d'urgence sont désactivés et que toutes les portes d'accès à la
cellule de travail sont fermées.

MAVERTISSEMENT : Danger de collision


En mode automatique, personne ne doit entrer ni demeurer dans la cellule de travail. Le robot
peut se déplacer à grande vitesse et exercer des forces considérables.

Régler le commutateur de mode à AUTO et l'autre commutateur NET à « 0 ».

Appuyer sur la touche “COMP/PWR” du MCP.

Appuyer sur la touche clignotant “HIGH POWER ON/OFF” du VFP ou CIP.

FNOTA :
En mode automatique, le système d'exploitation V + peut prendre environ huit secondes pour exécuter
la séquence d'activation de la puissance.

34
Cours de formation Programmation ADEPT V+ 1

En mode manuel
Suivre ces étapes pour activer la puissance en mode manuel au moyen du MCP :

FNOTA :
Si la puissance est activée et qu'on relâche le contacteur d'activation du MCP, le système reconnaît un
signal d'arrêt d'urgence et coupe immédiatement la puissance.

Mettre en position de marche les interrupteurs de mise sous tension sur le contrôleur et sur le châssis
d'alimentation.

Régler l'interrupteur de mise sous tension du système du VFP ou CIP à la position I pour mettre en
marche l'alimentation du système.

Vérifier que tous les boutons d'arrêt d'urgence sont désactivés et que toutes les portes d'accès à la
cellule de travail sont fermées.

Régler le commutateur de mode sur MANUAL et l'autre commutateur NET sur « 0 ». Pour plus de
sécurité, retirer les clés des commutateurs à clé.

Appuyer sur la touche “COMP/PWR” du MCP.

Appuyer sur la touche clignotant “HIGH POWER ON/OFF” du VFP ou CIP.

FNOTA :
En mode manuel, le système d'exploitation V + peut prendre environ huit secondes pour exécuter la
séquence d'activation de la puissance.

Pour réactiver la puissance après avoir appuyé sur le bouton d'arrêt d'urgence du MCP, tourner le
bouton d'arrêt d'urgence vers la droite (sens horaire). Le bouton est rappelé par ressort et retournera à
sa position normale. Enfoncer le contacteur d'activation. On peut maintenant réactiver la puissance en
appuyant sur la touche COMP/PWR (groupe de commande de mode) et sur la touche-poussoir HIGH
POWER ON/OFF du VFP ou CIP.

ø COMMANDES ECRAN

35
Cours de formation Programmation ADEPT V+ 1

Les commandes émises après l'invite (.) sont appelées commandes.


Plusieurs d'entre elles ont déjà été utilisées dans cette section. Elles permettent de gérer les fichiers, de
contrôler l'exécution des programmes, d'afficher l'état du système et de modifier les variables et les
paramètres système.

ø SYNTAXE DES COMMANDES - CONVENTIONS


Comme avec tous les langages informatiques, les commandes doivent être entrées suivant un format
précis. Pour rendre la présentation de la syntaxe la plus claire possible, nous avons adopté pour ce
manuel les conventions suivantes (Fig. 3-6) :

· La plupart des mots clés peuvent être entrés soit exactement tel qu'ils sont indiqués dans ce
manuel (montrés en GRAS & MAJUSCULES) soit sous forme abrégée, spécifique au mot clé
concerné.

· Les mots en italique sont remplacés par le nom que vous fournissez. Par exemple, spéc-fich
doit être remplacé par le nom du fichier choisi.

· Les informations entre accolades sont optionnelles. Si vous les omettez, le système prend
celles par défaut.

Argument exigé. Argument utilisateur


Taper exactement requis, spécifié.
comme indiqué.

Chaîne d'arguments utilisateur spécifiés.


Cette virgule est nécessaire. (séparer les arguments par une virgule.)

ACOMMAND 1 {(opt arg) } , req arg {,op_ arg ,..._ , opt-arg }

Argument utilisateur optionnel. La virgule est nécessaire si


des arguments optionnels sont utilisés.

Les parenthèses en gras indiquent que si l'argument est utilisé, les parenthèses sont
nécessaires.

Figure 3-6. Exemple de commande du système d'exploitation

Pour simplifier, les commandes décrites dans ce manuel n'indiquent pas toutes les options disponibles
pour chacune d'entre elles. Voir le Guide de Référence V et V+ pour la description complète de
l'ensemble des commandes.

ÖID Affiche les informations d'identification des composants du système. Ces informations peuvent
être demandées lorsque vous appelez notre Service Client.

36
Cours de formation Programmation ADEPT V+ 1

Exemple :

Ö STATUS Affiche les données d'état du système et les programmes en cours d'exécution.

L'état du robot (étalloné/non calibré), la vitesse de contrôle (valeur), les états du programme (actif, en
cours, en attente).

Exemple :

Ö FREE indique le volume d'espace libre (%) dans la mémoire RAM.

L'espace mémoire dépend du volume de données et des programmes chargés dans la RAM.

Ö TIME Affiche/règle la date et l'heure.

A chaque mise sous tension du système, la date et l'heure s'affichent. Régler la date et l'heure après
l'invite (.) en suivant la commande suivante

TIME dd-mmm-yy hh:mm:ss

où "dd-mmm-yy hh:mm:ss" est remplacé par la date et l'heure. Par exemple,


TIME 18-NOV-90 11:32:00

Chaque fois qu'une commande STORE est émise, le fichier-disque créé comporte la date et l'heure.
La date et l'heure système peuvent être également utilisées pour rechercher et enregistrer des
caractéristiques de fonctionnement.

D'autres commandes seront présentées lorsque cela sera nécessaire au cours de ce manuel.

37
Cours de formation Programmation ADEPT V+ 1

38
Cours de formation Programmation ADEPT V+ 1

39
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 5 BOITIER DE COMMANDE MANUELLE

I ) GENERALITES
Le système Adept permet de contrôler le robot à partir du boîtier de commande manuelle optionnel.

Pour utiliser le boîtier, passer votre main gauche dans l'ouverture gauche du boîtier et, à l'aide
de votre pouce gauche, déplacer les barres de vitesse de déplacement manuel. Utiliser votre
main droite pour toutes les autres fonctions. Les divers groupes de touches du boîtier seront
présentés dans cette section.

40
Cours de formation Programmation ADEPT V+ 1

II ) PRESENTATION DES TOUCHES DU BOITIER DE COMMANDE


MANUELLE
Les principaux groupes de touches du boîtier sont décrits ci-dessous.

41
Cours de formation Programmation ADEPT V+ 1

ø TOUCHES UTILISATEUR
Les touches utilisateur sous l'écran LCD, sans libellé fixe, permettent d'effectuer des choix offerts par
les touches de fonction prédéfinies en-dessous, ou de choisir une option de menu affichée sur l'écran
LCD en appuyant sur la touche correspondante pendant l'exécution du programme d'application (ce
sujet est traité en détail dans le cours de programmation de V/V+).

42
Cours de formation Programmation ADEPT V+ 1

ø TOUCHES DE FONCTIONS
Les touches de fonctions permettent de démarrer des opérations spécifiques.
Elles sont de deux types: Prédéfinis et Programmables.

43
Cours de formation Programmation ADEPT V+ 1

ø FONCTION DISP
La touche de fonction DISP permet d'afficher (de gauche à droite dans la Fig. 4-7) sur le boîtier les
coordonnées d'articulaire, le repère WORLD actuel, l'état du système, l'état des E/S BINAIRES, ou le
DERNIER MESSAGE D'ERREUR.

ø FONCTION CLR ERR


A chaque apparition d'une erreur, le boîtier génère une alarme acoustique, affiche un message
d'erreur clignotant, et allume la LED du bouton CLR ERR.

Appuyer sur le bouton CLR ERR pour continuer l'exécution. Le message d'erreur est
supprimé et le boîtier retourne à son état antérieur à l'erreur.

44
Cours de formation Programmation ADEPT V+ 1

ø FONCTION CMD
La touche de fonction CMD est utilisée (de gauche à droite dans la Fig. 4-9) pour le démarrage
automatique et le stockage sur disque de toute la mémoire (STORE ALL), ou pour activer les
programmes de commandes CMD1 ou CMD2.

ø FONCTION PROC SET


La touche de fonction PROG SET permet de choisir un nouveau programme à exécuter, de régler le
nombre de pas de démarrage, de régler le nombre de cycles de programme à exécuter, de régler la
vitesse de contrôle et (ou) d'initialiser/démarrer un programme d'application résidant en mémoire.

45
Cours de formation Programmation ADEPT V+ 1

ø TOUCHES FL, F2, DEV/F3


Trois touches de fonctions programmables libres (Fl, F2 et DEV/F3) peuvent être utilisées par
n'importe quel programme d'application. Lorsqu'une seconde unité mécanique est connectée à un
contrôleur Adept, la touche DEV/F3 permet de sélectionner le mécanisme.

ø TOUCHE REC/DONE

Mode arrière-plan (Background Mode)


Lorsque le boîtier de commande manuelle est en mode arrière-plan, toutes les LED de fonction
devraient être éteintes. Les LED des touches EDIT, DISP, CLR ERR, CMD et PROC SET devraient
être éteintes, indiquant que le boîtier est en mode arrière-plan. Le mode arrière-plan est le niveau
fondamental de l'arbre de menus du boîtier. Avant de pouvoir exécuter la plupart des programmes
d'application à partir du boîtier, ou de passer en contrôle manuel, le boîtier doit d'abord être en mode
arrière-plan. Si l'une des LED indiquées est allumée, appuyer sur la touche REC/DONE pour
retourner l'affichage en mode arrière-plan (appuyer plusieurs fois si nécessaire).

ø SAISIE ET ENTREE DES DONNEES


La touche REC/DONE se comporte comme la touche Retour du terminal. Lorsque la LED de cette
touche clignote et que les données à entrer sont saisies, appuyer sur la touche REC/DONE pour entrer
les données.

46
Cours de formation Programmation ADEPT V+ 1

ø TOUCHES D'ENTREE DE DONNEES


Les touches d'entrée de données permettent de répondre aux sollicitations affichées sur l'écran LCD du
boîtier de commande manuelle. Ces touches sont: +/Yes, -/No, Del (effacer), les touches numériques
0 à 9, et un point décimal.

47
Cours de formation Programmation ADEPT V+ 1

ø TOUCHES DE SELECTION DE MODE


Les touches de sélection de mode sont les seules touches du boîtier permettant de changer de mode.
Elles sont en rouge pour les identifier facilement.

ø TOUCHE PANIC
La touche PANIC stoppe le programme en émettant une instruction d'arrêt (HALT) et stoppe le robot
en désactivant l'alimentation du bras, ce qui active les freins. La touche PANIC peut être remplacée
dans certaines versions par un bouton d'arrêt d'urgence à enclenchement.

48
Cours de formation Programmation ADEPT V+ 1

ø TOUCHE RUN/HOLD
Jusqu'à la version logicielle 8.1, la touche RUN/HOLD stoppe le robot et interrompt l'exécution du
programme lorsqu'elle est appuyée initialement. Si la touche RUN/HOLD est appuyée et maintenue,
le programme est exécuté jusqu'à ce que la touche RUN/HOLD soit relâchée. Une fois RUN/HOLD
relâchée, le robot stoppe et le programme en cours s'interrompt jusqu'à ce que la touche RUN/HOLD
soit appuyée et maintenue à nouveau.

A partir de la version 8.2, la touche RUN/HOLD a été supprimée en réponse à de nouvelles normes de
sécurité et à l'introduction du bouton-poussoir PROGRAM START sur le panneau AV des armoires
de commande Adept.

49
Cours de formation Programmation ADEPT V+ 1

ø TOUCHE COMP/PWR
Au cas où l'alimentation du bras (ARM POWER) serait désactivée (en appuyant sur PANIC du boîtier
de commande manuelle, ou sur un bouton d'arrêt d'urgence, ou par une condition d'erreur système),

Appuyez sur la touche " COMP/PWR "


Appuyez sur la touche clignotant " HIGN POWER ON/OFF " du CIP

Nota : en mode automatique ou manuel le système d’exploitation V+ peut prendre environ huit
secondes pour exécuter la séquence d’activation de la puissance.

Si le robot n'est pas étalonné et si ARM POWER est activé, le système est en mode non étalonné.
Cela est indiqué par la LED PANIC allumée et les deux LED COMP/PWR et MAN/HALT éteintes.

50
Cours de formation Programmation ADEPT V+ 1

ø TOUCHE MAN/HALT

Stopper l'exécution du programme


La touche MAN/HALT permet de changer l'état utilisé pour déplacer le robot.
La touche MAN/HALT peut également stopper l'exécution du programme à la fin du déplacement en
cours du robot si une instruction programme DETACH n'a pas été exécutée. Elle peut permettre
également d'enregistrer des positions si une instruction DETACH a été exécutée

Sélection de l'état
Les touches actives en mode manuel sont en bleu sur le boîtier. Le mode manuel est fréquemment
utilisé pour déplacer le robot vers des positions. Le système doit être en mode manuel pour choisir les
différents systèmes de coordonnées disponibles, utilisés dans les déplacements commandés
manuellement.

En mode manuel, toutes les instructions de mouvement émises à partir du clavier du terminal système
n'ont aucun effet sur l'unité mécanique commandée.

Le mode manuel est accessible uniquement à partir du mode ordinateur (COMP). Si toutefois ARM
POWER est désactivé (la LED du bouton PANIC est éteinte),

- Appuyer sur la touche COMP/PWR pour demander d’activer l'alimentation du bras,


- Appuyer sur la touche clignotante “HIGH POWER ON/OFF” du CIP.

NOTA : En mode manuel, le système d'exploitation V + peut prendre environ huit secondes pour
exécuter la séquence d'activation de la puissance.,

- Ensuite, appuyer sur le bouton MAN/HALT pour mettre le système en mode manuel. Si le système
est bien en mode manuel:

La LED de la touche MAN/HALT est allumée, et l'une des LED du mode manuel est
également allumée (les LED "mode manuel" indiquent le type de déplacement manuel choisi:
WORLD, TOOL, JOINT, ou FREE).

Le système reste en mode manuel jusqu'à ce que ARM POWER soit désactivé ou la touche
DIS/PWR appuyée.
Le système est en état WORLD lorsque le mode manuel est entré pour la première fois après la mise

51
Cours de formation Programmation ADEPT V+ 1

sous tension du système. Une fois en mode manuel, appuyer sur la touche MAN/HALT
successivement pour choisir l'état (WORLD>TOOL->JOINT->FREE et retour à WORLD). Si vous
quittez puis ré-entrez en mode manuel (sans mettre le système hors tension), le dernier état activé est
choisi automatiquement.

ø TOUCHES DE COMMANDES MANUELLES


La rangée de touches sur le côté droit sont les touches de commandes manuelles. Une fois en mode
manuel, ces touches permettent de choisir l’axe ou les axes de déplacement du robot: X/1, Y/2, Z/3,
RX/4, RY/5, RZ/6. Ces touches seront décrites dans les états du robot.

52
Cours de formation Programmation ADEPT V+ 1

ø BANDES DE VITESSE
Les bandes de vitesse servent à commander la vitesse et le sens de déplacement du robot.
Les axes qui se déplacent lorsque les bandes de vitesse sont enfoncées dépendent de l’état sélectionné
par la touche MAN/HALT. On appuie sur les bandes de vitesse avec le pouce gauche. Lorsqu'on
appuie sur les bandes de vitesse près des extrémités extérieures, le robot se déplace plus rapidement;
lorsqu'on appuie près du centre, le robot se déplace plus lentement. La vitesse maximale du robot en
mode manuel est de 250 mm par seconde (10 pt/s).

ø TOUCHE SLOW (LENT)


La touche SLOW permet de choisir entre deux plages de vitesses différentes des barres de vitesse.
Vous pouvez choisir une vitesse de déplacement normale ou très lente.

53
Cours de formation Programmation ADEPT V+ 1

III ) ETATS DU ROBOT

ø ETAT WOLRD
Tout déplacement est parallèle aux coordonnées universelles (WORLD). Vue de dessus, la rotation
positive du préhenseur s'effectue dans le sens contraire des aiguilles d'une montre. Toute la
préhension se limite à appuyer/relâcher la bande de vitesse + ou –

WORLD State (Four Axis SCARA)

54
Cours de formation Programmation ADEPT V+ 1

ø ETAT OUTILLAGE(TOOL)
Tout déplacement est parallèle aux coordonnées d'outil (TOOL). X+ Tool est aligné avec la rainure
rotative dans le flasque. Vue de dessus, la rotation positive du préhenseur s'effectue dans le sens
horaire.

TOOL State (Four-Axis SCARA)

55
Cours de formation Programmation ADEPT V+ 1

Etat outil robot 6 axes

56
Cours de formation Programmation ADEPT V+ 1

ø ETAT AXES (JOINT)


Le déplacement rotatif s'effectue autour des axes 1, 2 et 4. Vue de dessus, la rotation positive des axes
1 et 2 s'effectue dans le sens contraire des aiguilles d'une montre. Vue de dessus, la rotation positive
de l'axe 4 s'effectue dans le sens horaire. Le déplacement positif de l'axe 3 s'effectue vers le bas

Dans l'état JOINT (articulaire), seul l'axe sélectionné se déplace. Une fois qu'on a étalonné le robot,
qu'on a sélectionné le mode manuel et qu'on a réactivé la puissance, on peut sélectionner le mode
articulaire.

Appuyer sur la touche MAN/HALT pour activer le MCP.

Le mode du MCP est correct quand :

La DEL sur la touche MAN/HALT est allumée. Si elle n'est pas allumée, appuyer sur la touche
MAN/HALT.

Une des DEL d'état manuel est aussi allumée (les DEL d’état manuel) indiquent le type de
déplacement manuel qui a été sélectionné, soit WORLD, TOOL, JOINT ou FREE).

Appuyer sur la touche MAN/HALT (voir Figure 4-5) plusieurs fois, jusqu'à ce que la DEL JOINT
s'allume. Quand la DEL sur la touche MAN/HALT et la DEL JOINT sont allumées, l'état JOINT
(articulaire) est sélectionné et on doit sélectionner le déplacement d'un axe en particulier.

Etat JOINT (Four-Axis SCARA)

57
Cours de formation Programmation ADEPT V+ 1

Free State

58
Cours de formation Programmation ADEPT V+ 1

ø ETAT LIBRE (FREE)


Tout axe individuel peut être libre à tout moment sauf exceptions suivantes: les axes 1 & 2 (plan X/Y)
sont libérés en appuyant soit sur la touche X/1 soit sur la touche Y/2. L'axe 3 peut chuter en raison de
la gravité.

59
Cours de formation Programmation ADEPT V+ 1

60
Cours de formation Programmation ADEPT V+ 1

61
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 6 GESTION DE L'INFORMATION

I ) FICHIERS - DISQUE

Les fichiers - disque stockent les informations de production.

Le principe du fichier - disque est ce qui différencie le plus les systèmes d'exploitation Adept des
autres systèmes d'exploitation. Dans la plupart des systèmes d'exploitation, un fichier-disque contient
un seul programme exécutable, un même document texte, ou un même type de données. Avec les
systèmes d'exploitation Adept, un fichier-disque peut contenir plusieurs types d'informations, les plus
communes étant les programmes et les valeurs des variables globales.

A mesure que vous vous familiariserez avec la structure de fichiers des systèmes d'exploitation Adept,
rappelez-vous que lorsque vous chargez ou stockez un fichier, vous ne chargez/stockez pas
nécessairement un même type d'informations.

ø CHARGER LES DONNEES

Le chargement de données, telles que programmes, positions et autres données dans la mémoire
système à partir d'une disquette, doit généralement être effectué avant d'exploiter le robot en
automatique.

62
Cours de formation Programmation ADEPT V+ 1

ø COMMENT SPECIFIER UN NOM DE FICHIER

Les fichers-disque des systèmes d'exploitation Adept doivent répondre aux exigences suivantes:

· Le nom du fichier doit comporter entre 1 et 8 caractères suivis d'un point (.), puis d'une
extension de 1 à 3 caractères.

· Le nom peut inclure n'importe quels caractères du clavier à l'exception de l'astérisque (*) et
d'un blanc ().

· Le nom ne peut inclure qu'un seul point (.). Le point désigne la fin du nom et le début de
l'extension.

· Le point et l'extension peuvent être omis dans la plupart des cas ; le système d'exploitation
fournit le point et l'extension par défaut (V2).

63
Cours de formation Programmation ADEPT V+ 1

ø CHARGEMENT DE FICHIER EN MEMOIRE

Ö LOAD ….

La commande du système d'exploitation LOAD charge le contenu d'un fichier-disque (tous les
programmes, positions et autres types de données) dans la mémoire système, à partir d'un lecteur de
disquettes.

La syntaxe de la commande LOAD est:


LOAD spec_fich

spec_fich est la voie (lecteur) et le nom du fichier-disque à charger.

Conditions d'erreur
Si le fichier-disque n'existe pas dans le lecteur spécifié, ou si la disquette n'est pas insérée dans le
lecteur spécifié, un message d'erreur s'affiche.

ø EFFET DE LA COMMANDE LOAD

Figure 4-3 Chargement sans conflit

64
Cours de formation Programmation ADEPT V+ 1

Figure 4-4 Conflits et écrasements pendant le chargement

Les programmes chargés à partir d’un fichier-disque N’ECRASERONT PAS les programmes du
même nom présents dans la mémoire système.

Les positions réelles et chaînes chargées à partir d’un fichier-disque ECRASERONT les positions
réelles et les chaînes du même nom présentes dans la mémoire système.

ø GESTION DES FICHIERS-DISQUE


Pour modifier les informations contenues dans un fichier-disque, ce dernier doit être chargé dans la
mémoire système en utilisant la commande LOAD. Une fois les données chargées dans la mémoire
système, elles peuvent être modifiées, mais leur modification n'apparaît que dans la mémoire système
et non dans le fichier-disque.

Il existe plusieurs méthodes pour sauvegarder les données modifiées sur fichier-disque. Ces méthodes
sont les suivantes:

ø STOCKER LES DONNEES


Si des positions doivent être réenseignées au robot ou si des données d'un autre type doivent être
rendues permanentes, les données dans la mémoire système doivent être sauvegardées dans un fichier-
disque avant d'exploiter le robot avec un autre programme ou de désactiver le système.

65
Cours de formation Programmation ADEPT V+ 1

ø STOCKAGE DES PROGRAMMES

Ö STORE …..

La commande STORE sauvegarde le contenu de la mémoire système (tous les programmes, positions
et autres types de données) dans un fichier sur disque dur ou disquette.
La syntaxe complète de la commande STORE est:

STORE spec_f ich = nom prog, . . . nom prog

spec_fich est la voie (lecteur) et le nom du fichier-disque à créer. Si vous omettez


la voie, le système d'exploitation prend l'unité de disque par défaut. Si
vous omettez l'extension de fichier, le système ajoute l'extension ".V2".

nom_prog,...,nom_prog est une liste des programmes que vous souhaitez stocker dans
le fichier-disque; les sous-programmes ou les variables globales
consultés par ces programmes seront aussi stockés. Si cette liste est
omise, tous les programmes (plus les sous-programmes et les variables
globales) résidant dans la mémoire système seront stockés dans le
fichier-disque.

ø CONDITIONS D'ERREUR
Si le fichier-disque nommé est actuellement sur la disquette spécifiée, ou si le lecteur spécifié ne
contient pas de disquette, un message d'erreur s'affiche.

ø EFFETS DE LA COMMANDE STORE

Les fichiers-disque existant ne sont JAMAIS écrasés

Fig 4-6 La commande store ne provoque jamais d’écrasement

66
Cours de formation Programmation ADEPT V+ 1

Exemple de stockage

STORE D :fichier = a.Programme, b.programme

FIG 4-7 Stockage d’un fichier-disque sur le disque dur

La commande moniteur STORE ci-dessus provoque le stockage des programmes


" a.programme ", "b.programme " (avec tous les sous programmes et variables désignés par ces
programmes) sur le disque dur " C: ", dans le fichier-disque nommé " FICHIER.V2 "

Un message d’erreur apparaît si le programme nommé ou un sous programme désigné n’existe pas
dans la mémoire système.

Fig 4-8 tentative de stockage d’un programme inexistant

Un message d’erreur apparaît également si le fichier-disque nommé existe déjà sur le disque nommé.
Pour des raisons de sécurité, le système d’exploitation Adept ne permet pas l’écrasement manuel ou
automatique des fichiers-disque

67
Cours de formation Programmation ADEPT V+ 1

Store C :new_file.v2=b.programme

Commande complémentaire STORE


il existe quatre formes complémentaires de la commande STORE :

STOREL Stocke dans un fichier-disque seulement les données de POSITION désignées


par le ou les programmes nommés. Sauf spécification contraire, l’extension " .LC " sera ajoutée aux
fichiers-disques créés au moyen de la commande STOREL.

STOREP Stocke dans un fichier-disque seulement les PROGRAMMES et les SOUS-


PROGRAMMES désignés par le ou les programmes nommés. Sauf spécification contraire, l’extension
" .PG " sera ajoutée aux fichiers-disque créés au moyen de la commande.

STORER Stocke dans un fichier-disque seulement les variables REELLES désignées par
le ou les programmes nommés. Sauf spécification contraire, l’extension " .RV " ou " .RL " sera ajoutée
aux fichiers-disque crées au moyen de la commande STORER.

STORES Stocke dans un fichier-disque seulement les CHAINES DE CARACTERES


désignées par le ou les programmes nommés. Sauf spécification contraire, l’extension " .ST " sera
ajoutée aux fichiers-disque créés au moyen de la commande STORES.

68
Cours de formation Programmation ADEPT V+ 1

ø RENOMMER UN FICHIER-DISQUE
Utiliser la commande FRENAME pour modifier le nom du fichier-disque original. Utiliser ensuite la
commande STORE pour stocker les programmes, sous-programmes, positions et autres types de
données dans le fichier-disque avec le nom original.

Ö FRENAME

FRENAME permet de modifier le nom d'un fichier-disque existant en lui donnant un nom qui n'existe
pas avant d'émettre cette commande.

La syntaxe de la commande FRENAME est:

FRENAME voie nouveau_fichier = ancien_fichier

voie est remplacé par l'unité de disques (A:, D:, ou NFS>PC:) dans laquelle
vous souhaitez sauvegarder le fichier. Si voie est omis, le système prend
l'unité par défaut (D:).

Nouveau_fichier est le nouveau nom du fichier-disque. Vous devez spécifier


l'extension du nom de fichier.

Ancien_fichier est l'ancien nom du fichier-disque. Vous devez spécifier


l'extension du nom de fichier. Ce fichier doit se trouver dans le lecteur
spécifié par la voie

69
Cours de formation Programmation ADEPT V+ 1

Notons que seul le nom du fichier est changé et non son contenu.

Notons également que la commande FRENAME exige que les fichiers-disques restent dans la même
voie.

70
Cours de formation Programmation ADEPT V+ 1

ø EFFACER UN FICHIER-DISQUE
Utiliser la commande FDELETE pour effacer le fichier-disque original. Utiliser ensuite la commande
STORE pour stocker les programmes, positions et autres types de données dans le fichier-disque avec
le nom original.

Ö FDELETE

FDELETE permet d'effacer un fichier-disque existant.

La syntaxe de la commande FDELETE est:

FDELETE voie spéc_fich

voie est remplacé par l'unité de disques (A:, D:, ou NFS>PC/:) ou se trouve le
fichier à effacer. Si voie est omis, le système prend l'unité par défaut
(A:).

Spéc_fich est le nom du fichier-disque à effacer. Vous devez spécifier l'extension


du nom de fichier. L'astérisque (*) est un caractère joker qui peut être
utilisé dans la spéc-fich.
Le système demande confirmation avant d'exécuter la commande FDELETE.
ARE YOU SURE (Y or N)

Répondre par "Y" pour exécuter l'effacement. L'effacement est définitif ; il n'existe aucun moyen pour
récupérer le fichier effacé. Répondre par "N" ou appuyer sur la touche Retour ("N" est par défaut)
pour annuler la commande.

FDELETE mon-fichier.v2

71
Cours de formation Programmation ADEPT V+ 1

Figure 5-11. Effacer un fichier (FDELETE)


Attention : un fichier effacé ne peut pas être récupéré.

72
Cours de formation Programmation ADEPT V+ 1

ø UTILISATION DES REPERTOIRES


Pour faciliter l'accès aux données de production, il est très important de structurer vos fichiers-disque
dans le système Adept.

V+ utilise une structure hiérarchique de fichiers traditionnelle. Un répertoire central se trouve en haut
de la hiérarchie à partir duquel sont créés et imbriqués les sous-répertoires.

73
Cours de formation Programmation ADEPT V+ 1

ø VISUALISER LE CONTENU D’UN REPERTOIRE

Ö FDIRECTORY OU LS

La syntaxe de la commande FDIRECTORY est:

FDIR voie

voie est remplacé par l'unité de disques (A:, D:, ou NFS>PC ::) à partir de
laquelle vous souhaitez visualiser le contenu. Si voie est omis, le
système prend l'unité par défaut (D:).
Dans l’exemple au dessous on se trouve sous la racine du disque dur D:\.
Ensuite tous les fichiers et répertoires sont rangés sous forme de tableau comme suit:

Indique les répertoires en inscrivant la


lettre D en face. S’il n’y a rien c’est un
fichier.

Indique la date de
ndique le nom du fichier Indique l’espace mémoire que création du fichier ou du
ou du répertoire prend un fichier en octets. répertoire.

Enfin le système retourne l’espace libre et l’espace total du disque dur:


7508/15684 sectors unused/total

74
Cours de formation Programmation ADEPT V+ 1

Ö LS

L'affichage de la liste des fichiers se trouvant sur disquette peut vous aider à gérer vos données
système.
La syntaxe de la commande CD est:

LS voie

voie est remplacé par l'unité de disques (A:, nfs>source :, ou D:) dont vous
souhaitez obtenir la liste des fichiers. Si voie est omise, le système prend
l'unité par défaut (D:).

ø COMMENT SPECIFIER UN NOM DE SOUS-REPERTOIRE?

Les sous-répertoires des systèmes d'exploitation Adept doivent répondre aux exigences suivantes:

Le nom du sous-répertoire doit comporter entre 1 et 8 caractères.

Le nom peut inclure n'importe quel caractère du clavier à l'exception de l'astérisque (*), du point (.),
ou d'un blanc ( ).

Chaque fois que le terme voie est utilisée dans ce manuel, un sous-répertoire peut être indiqué dans la
voie.

Attribuer un répertoire de données par défaut

Si la voie de la commande de gestion de fichiers n'est pas complète, le système prend l'unité/répertoire
par défaut. A la mise sous tension du système, l'unité/répertoire par défaut est A: l'unité/répertoire par
défaut peut être défini(e) temporairement à l'aide de la commande CD.

La commande

CD D:\programs\Tâche-2\

Crée temporairement le sous-répertoire "Tâche2" comme unité par défaut. Toute commande
CD, STORE, LOAD, etc., émise ensuite sans spécification d'unité ou de voie sera exécutée dans le
sous-répertoire " Tâche2 ".

75
Cours de formation Programmation ADEPT V+ 1

ø COMMENT CREER UN SOUS-REPERTOIRE

Les sous-répertoires des systèmes d'exploitation Adept doivent répondre aux exigences suivantes:

ø EFFACER UN SOUS REPERTOIRE


Vous effacez un sous-répertoire à l'aide d'une forme spéciale de la commande
FIDIRECTORY.

Pour effacer un sous-répertoire, ce dernier doit être vide de tous fichiers et sous-répertoires.

76
Cours de formation Programmation ADEPT V+ 1

Afficher le contenu de fichiers-disques

Ö FLIST

FLIST permet d’afficher à l’écran le contenu d’un fichier-disque ASCII.


La syntaxe de la commande FLIST est :

FLIST chemin spec_fich

Chemin désigne l’unité de disque (A,D : ou NFS>PC :) où se trouve le fichier


dont on souhaite afficher le contenu. Si chemin est omis, le système
prend l’unité par défaut.

Spec_fich est le nom du fichier-disque dont on souhaite afficher le contenu.


L’extension du fichier-disque doit être spécifiée si elle est différente de
.V2 .

Si le fichier-disque n’existe pas, un message d’erreur apparaît et aucun contenu n’est indiqué.

Exemple d’utilisation de la commande FLIST :

FLIST fichier.v2

Provoque l’affichage à l’écran du contenu du fichier-disque " FICHIER.V2 " résidant sur le
disque C :

77
Cours de formation Programmation ADEPT V+ 1

II ) GESTION DE LA MEMOIRE SYSTEME


Pour faciliter l'accès aux données de production, il est très important de structurer la mémoire système.
D’une façon logique dans le système Adept afin de faciliter l’accès aux données de production.

ø AFFICHER LE CONTENU DE LA MEMOIRE SYSTEME

Ö DIRECTORY

La commande moniteur DIRECTORY affiche à l'écran les noms de tous les programmes résidant
dans la mémoire système, y compris les programmes protégés.
Lorsqu'un programme n'est pas protégé, la ligne descriptive complète PROGRAM est affichée, y
compris tout commentaire pouvant se trouver sur cette ligne.
Exemple :
La commande DIRECTORY 1

affiche à l'écran les noms de tous les programmes non protégés résidant dans la
mémoire système avec la ligne descriptive complète PROGRAM, y compris tout
commentaire pouvant se trouver sur cette ligne.

ø RENOMMER DES PROGRAMMES RESIDANT DANS LA MEMOIRE SYSTEME

Ö RENAME

La commande RENAME permet de modifier le nom d'un programme existant en lui donnant un
nouveau nom avant l'émission de cette commande.
La syntaxe de la commande RENAME est :

RENAME nouveau_programme=ancien_programme

Nouveau_programme est le nouveau nom du programme, qui n'existe pas encore dans
la mémoire programme.

Ancien_programme est l'ancien nom du programme, qui réside déjà dans la mémoire
programme.
Notez que seul le nom du programme est changé et non son contenu.

78
Cours de formation Programmation ADEPT V+ 1

ø COPIE DE PROGRAMMES RESIDANT DANS LA MEMOIRE SYSTEME

Ö COPY

La commande COPY permet de copier un programme existant. Ceci peut s'avérer utile lors de la
création d'un nouveau programme similaire à un programme existant ou basé sur celui-ci. Cette
commande ne supprime pas le programme existant de la mémoire système et ne change pas son nom.
La syntaxe de la commande COPY est :

COPY nouveau_programme= ancien_programme

nouveau_programme est le nom du nouveau programme à créer.

Ancien_programme est le nom de l'ancien programme à copier .


Si le nom du nouveau programme existe déjà, ou si l'ancien programme n'existe pas, un message
d'erreur apparaît et aucune copie n'est réalisée.

Exemple :
copy a1.principal = a.principal

copie le programme "a.principal" en le nommant "a1.principal".

ø EFFACER SELECTIVEMENT LE CONTENU DE LA MEMOIRE SYSTEME

Ö DELETE

La commande DELETE permet d'effacer un type de données spécifiées, résidant dans la mémoire
système.
La syntaxe complète de la commande DELETE est :

DELETEx nom, nom,…


x peut être omis ou correspondre à "L ", "P', "R " ou "S" pour spécifier le type des données à
effacer.
nom, nom , ...est la liste des données (une donnée au moins doit être spécifiée) du
même type à effacer.

Le système demande confirmation avant d'exécuter la commande DELETE.

ARE YOU SURE (Y or N)

Répondre par "Y" pour exécuter l'effacement. En cas de fausse manoeuvre, il est possible de récupérer
les données en exécutant la commande LOAD du fichier-disque. Répondre par "N" ou appuyer sur la
touche Retour ("N" est la réponse par défaut) pour annuler la commande.

79
Cours de formation Programmation ADEPT V+ 1

Il existe cinq formes de la commande DELETE :

DELETE En l'absence du caractère optionnel après DELETE, cette opération efface les
PROGRAMMES et les SOUS-PROGRAMMES appelés par le ou les PROGRAMMES nommés
dans la liste, ainsi que toutes les variables de POSITIONS, REELLES et CHAINES DE
CARACTERES utilisées.

DELETEL Efface seulement les variables de posision désignées dans la liste.

DELETEP Efface seulement les PROGRAMMES nommés dans la liste ainsi que les SOUS
PROGRAMMES appelés par ceux-ci.

DELETER Efface seulement les variables REELLES désignées dans la liste.

DELETES Efface seulement les variables CHAINES DE CARACTERES désignées dans la liste.

80
Cours de formation Programmation ADEPT V+ 1

ø AFFICHER LE CONTENU DE LA MEMOIRE SYSTEME

Ö LIST

la commande LIST permet d'afficher à l'écran la liste des données du type spécifié résidant dans la
mémoire système.
La syntaxe complète de la commande LIST est :

LISTx nom, nom …


x peut être omis ou correspondre à "L", "P", "R" ou "S" pour spécifier le type des données à
afficher .

nom.nom … ...est la liste des données du même type à afficher à l'écran. En l'absence
de cette liste, toutes les données du type spécifié résidant dans la
mémoire système seront affichées.

Il existe quatre formes de la commande LIST :

LISTP a.main.program affiche tous les pas du programme "a.main.program", un programme non
protégé résidant dans la mémoire système.

LISTLaffiche les variables POSITIONS soit toutes celle présente dans la mémoire système, soit
celles désignées par la ou les POSITION nommées dans la liste

LISTR affiche toutes les variables REELLES soit toutes celle présente dans la mémoire
système, soit celles nommées dans la liste.

LISTS affiche toutes les variables CHAINE DE CARACTERES, soit toutes celle présente dans la
mémoire système, soit celles nommées dans la liste.

ø VIDER LA MEMOIRE SYSTEME

La commande ZERO supprime tout ce qui réside dans la mémoire système.

81
Cours de formation Programmation ADEPT V+ 1

ø GESTION DES PROGRAMMES EN MEMOIRE PAR MODULES


Dans les systèmes d'exploitation Adept , un module est un groupe de programmes, résidant dans la
mémoire système, que l'on peut désigner sous un nom unique. Les modules sont créés
automatiquement par la commande LOAD lorsqu'un fichier-disque est lu à partir d'un disque. Chacun
des programmes de la mémoire système ne peut appartenir qu'à un seul module au plus.

ø COMMANDES RELATIVES AUX MODULES


MDIRECTORY nom-module

Lorsque nom-module est omis, l'écran affiche la liste des noms des modules se trouvant actuellement
dans la mémoire système.

Lorsque nom-modu1e est spécifié, l'écran affiche la liste des programmes se trouvant dans le module
nommé.

MODULE nom_module nom_programme, ...

Cette commande permet de créer un nouveau modu1e, d'ajouter des programmes supplémentaires dans
un module existant ou de classer des programmes à l'intérieur d'un module en les annexant à la fin du
module. Tout programme résidant dans la mémoire système ne peut être attribué qu'à un seul module à
la fois. Lorsque l'on annexe un programme principal à un module, tous les sous-programmes désignés
par ce programme doivent être annexés manuellement.
Lors de la création d'un nouveau module, le nom du premier programme est utilisé comme nom du
module.

Cette commande permet également de redisposer les programmes à l’intérieur du module. Les
programmes nommés seront placés à la fin du module, le dernier programme nommé occupant la
dernière position dans le module.

DELETEM nom_module

Cette commande permet de supprimer un module et tous les programmes de la mémoire système
associés à celui-ci. Il ne supprime cependant pas les sous-progammes désignés par tout programme
supprimé, sauf lorsque les sous-programmes sont contenus dans le module concerné. Les variables
désignées par les programmes supprimés restent.

STOREM fichier.ext = nom module

Cette commande permet de créer un fichier-disque qui contient tous les programmes (seulement leur
code, à l'exclusion des positions, réels ou chaînes désignés) existants dans le module nommé. Ces
programmes sont stockés dans le même ordre que celui où ils sont placés dans le moduIe. Un fichier-
disque ne peut contenir qu'un seul module.

82
Cours de formation Programmation ADEPT V+ 1

83
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 7 TYPES DE ROGRAMME

Un programme V+ se compose d'un ensemble d'instructions qui sont interprétées par le système Adept
pour déplacer une unité mécanique, activer des signaux d'entrées/sorties, effectuer des calculs,
enregistrer des données et afficher des informations.

ø PROGRAMME DE COMMANDE DE L’APPLICATION


Un programme de commande du robot est un programme V+ qui commande directement le robot. Il
peut contenir n'importe quelle instruction du programme V+.

ø PROGRAMME DE COMMANDE DU PROCEDE


Un programme de commande du procédé est un programme V+ pouvant être exécuté de façon
asynchrone, indépendamment du programme de commande du robot et simultanément à celui-ci. Les
programmes de commande de procédé sont souvent mis en œuvre pour contrôler et commander des
périphériques par l'intermédiaire des lignes de communication série ou des signaux d'entrées/sorties
"Tout Ou Rien ". Ils peuvent également commander indirectement le robot.

ø PROGRAMME DE COMMANDE
Un programme de commande est un programme V+ composé entièrement de commandes au lieu
d'instructions programme .

84
Cours de formation Programmation ADEPT V+ 1

85
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 8 EDITEUR

I ) ACCES A L'EDITEUR

Ces trois types de programmes sont créés, édités et modifiés à l'aide de l'éditeur pleine page SEE. On
accède à l'éditeur SEE par la commande.

SEE nom_programme

nom_programme étant le nom du programme à éditer.

Si nom_programme ne se trouve pas dans la mémoire système,une invite au bas de l'écran demande
s'il faut le créer :

“nom_programme “ doesn’t exist. Create it ? Y/N.

La réponse "Y" provoque la création du programme et le curseur de l'éditeur SEE se place en haut de
la fenêtre d'édition, en introduisant automatiquement à la ligne de désignation du programme

.PROGRAM nom_programme ( )

et la création du programme peut alors commencer. La réponse "N" ou une pression sur la touche
" Retour " entraîne le retour à l'invite système et le programme nommé n'est pas créé.
Si nom-programme est omis, on accédera au dernier programme édité ou exécuté.

ø COMMENT SPECIFIER UN NOM DE PROGRAMME


Les noms des programmes Adept doivent répondre aux exigences suivantes :

Un nom de programme doit comporter de 1 à 15 caractères.


Le premier caractère doit être une lettre de l'alphabet (A à Z).
Les caractères suivants peuvent être alphabétiques (A à Z), numériques (0 à 9),un tiret bas (-) ou un
point(.), quelle que soit la combinaison. Aucun autre caractère n'est autorisé (en particulier, les signes
arithmétiques (*, -, +,/) ou l'espace ( ).

86
Cours de formation Programmation ADEPT V+ 1

II ) LA FENETRE D’EDITION
Les détails de la fenêtre de l’éditeur SEE sont indiqués ci-dessous

Curseur

.PROGRAM

Nom_programme ------ STEP 2 of 1 --------- Commande mode

Nom du programme en cours d’édition nombre de lignes ds le progr taille presse papier

Le curseur se trouve sur cette ligne du programme mode d’édition

87
Cours de formation Programmation ADEPT V+ 1

III ) MODES D'EDITION


L'éditeur SEE possède trois modes d'édition: Commande, Insertion et Remplacement.
Le mode Commande est le mode initial d'accès à l'éditeur. Ce mode ne permet pas d'introduire
du texte ou du code programme mais seulement des commandes d'éditeur particulières.
Le mode Insertion permet d'introduire du texte ou du code programme à un emplacement
quelconque d'un programme; le caractère frappé est introduit à l'emplacement du curseur puis le
curseur et le reste du code existant sont repoussés vers la droite.
Le mode Remplacement permet de remplacer du texte existant par un nouveau texte; le caractère
frappé remplace le caractère situé sous le curseur puis le curseur est repoussé vers la droite.
Action des touches de fonction

Touches de Action
fonctions
F2 Création d’un nouveau programme/ou appelle d’un programme
F3 Va au programme appelé par l’instruction CALL
SHIFT+F3 Basculement entre les programmes dans la pile

F4 Sortie de l’éditeur

F6 annulation de la modification ou suppression en cours


SHIFT+F6 Rafraîchissement de la visualisation à l’écran
F7 Lancement de la recherche d’une chaîne de caractères
SHIFT+F7 Lancement du remplacement d’une chaîne de caractères par une autre
F8 Répétition de la derniere opération “recherche ou remplacement”

F9 Copier dans le presse papier


SHIFT+F9 Couper dans le presse papier
F10 Coller une ligne (supprime la ligne du presse papier)
SHIFT+F10 Coller tout le contenu du presse papier(supprime la ligne du presse papier)
F12 Mode replace

88
Cours de formation Programmation ADEPT V+ 1

Quelques erreurs usuelles

1 Si l’écran affiche
ILLEGAL PROGRAM STATEMENT *
Appuyez sur F6

2 Si l’écran affiche
CANNOT EXIT WHILE LINES ATTACHED *
Appuyez sur:

# ESC K

Ou # représente le nombre de lignes actuellement présentes dans le presse papier. Ce nombre


est affiché dans l’angle inférieur droit de l’écran.

89
Cours de formation Programmation ADEPT V+ 1

IV ) AFFICHAGE A L’ECRAN

: TYPE ….

L'instruction TYPE provoque l'affichage d'informations sur le terminal

La syntaxe de l'instruction TYPE est :

: TYPE sortie, sortie,...

sortie peut être soit une valeur littérale, chaîne de caractères ou réelle, soit une
variable chaîne de caractères ou réelle, soit une commande désignatrice
de format. Une ligne vierge est affichée en l'absence de sortie .

Les désignateurs de commande de format le plus fréquemment utilisés sont :

/Cn Passer à n lignes au dessous du curseur

/Un Déplacer le curseur vers le haut de n lignes

/Xn Déplacer le curseur vers la droite de n espaces

/S Annule le "Retour Chariot" généré par une commande

/F6.3 formatage du type d’affichage d’une variable

Affiche le message : BONJOUR à partir de la 10 colonne de l’écran.

90
Cours de formation Programmation ADEPT V+ 1

: PROMPT …

L'instruction PROMPT provoque l'affichage d'informations sur le terminal et attend une réponse de
l'utilisateur. Cette réponse sera affectée à la ou aux variables nommées.
La syntaxe de l'instruction PROMPT est :

: PROMPT sortie, variable

sortie est une chaîne de caractères (valeur ou variable). Une ligne vierge est
affichée en l'absence de sortie, mais l'utilisateur ne doit pas moins
introduire une réponse.

variab1e est une seule variable chaîne de caractères ou bien une ou plusieurs
variables réelles. Si la réponse de l'utilisateur comporte plus d'une
variable pour une seule sortie, celui-ci peut séparer les entrées par une
virgule (,) ou un espace ( ). L'utilisateur termine sa réponse par une
pression sur la touche "Retour".
Le formatage de sortie pour cette instruction est seulement réalisable comme suit :

PROMPT $ENCODE (désignateurs format) + $sortie, variable

Où la fonction $ENCODE peut intégrer les désignateurs de format et la sortie en une chaîne unique,
remplaçant la sortie normale.

EXEMPLE

91
Cours de formation Programmation ADEPT V+ 1

COMMENTAIRES PROGRAMME
Tous les commentaires programme commencent par un point virgule (;) ; ils sont composés de texte en
caractères minuscules et majuscules et, comme toutes les lignes de programme, ne doivent par
dépasser 70 caractères afin de faciliter leur lecture.

Commentaires sur une ligne entière :

Après le point-virgule, insérer un blanc puis le texte du commentaire,


La ligne de commentaire est précédée et suivie d'une ligne vierge,
La ligne de commentaire est tabulée à l'intérieur de la structure de commande du programme.

ø COMMENTAIRES SUR UNE PARTIE DE LIGNE :


Séparés de l'instruction programme par au moins un espace ; dans la mesure du possible, ils doivent
être alignés verticalement par rapport aux commentaires d'une ligne adjacente, le texte du
commentaire commence immédiatement après le point-virgule, sans insertion d'un espace.

ø COMMENTAIRE DE LA LIGNE DE DESIGNATION .PROGRAM


La ligne de désignation .PROGRAM peut contenir un commentaire spécial, ne dépassant pas 60
caractères, qui sera affiché à chaque rappel d'un répertoire de la mémoire système.

Figure 5-37. Exemple de commentaires programme

92
Cours de formation Programmation ADEPT V+ 1

93
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 9 EXECUTION DU PROGRAMME,


PARAMETRES ET VARIABLES BINAIRES SYSTEME

I ) GENERALITES
Avant de pouvoir exécuter un programme V+, il doit résider dans la mémoire système. Un
programme V+ ne peut pas être exécuté à partir d'un fichier-disque contenant le(s) programmes), les
positions et autres types de données à charger.

Après avoir chargé un fichier dans la mémoire système, l'exécution du programme est démarrée à
partir du clavier du terminal système, du boîtier de commande manuelle, ou du panneau AVANT de
l'armoire de commande.

II ) EXECUTION DES PROGRAMMES V+ A PARTIR DU TERMINAL SYSTEME

Ö EXECUTE ….

L'exécution du programme est démarrée à partir du clavier du terminal système en utilisant la


commande EXECUTE (le sélecteur à clé de l'armoire de commande doit être sur la position ROBOT
pour exécuter un programme à partir du terminal système).
La syntaxe de base de la commande EXECUTE est:

EXECUTE programme,nombre cycle, pas_depart

programme est le programme dont vous souhaitez démarrer l'exécution en appuyant


sur la touche Entrée/Retour. Si programme est omis, le dernier
programme exécuté est réexécuté.

Nombre_cycle est un chiffre optionnel, qui indique combien de fois le programme


doit être répété. Si nombre cycle est omis, le programme est exécuté une
fois. La valeur –1 commande la répétition illimitée de l’exécution du
programme, qui ne pourra être arrêtée seulement par une situation
d’erreur, un arrêt d’urgence ou l’introduction d’une commande d’arrêt au
clavier.

Pas_depart est un chiffre optionnel, qui indique le numéro du pas du programme à


partir duquel celui-ci est exécuté. Si pas_depart est omis, le programme
démarre au pas n°1

94
Cours de formation Programmation ADEPT V+ 1

ATTENTION
Faire très attention lorsque l’on spécifie un pas de départ autre que le pas n° 1. En effet, toutes
les conditions logicielles et matérielles de départ au pas voulu doivent être satisfaites pour éviter tout
risque d’accident matériel ou corporel.

ø MULTI-TACHE OU MULTI-PROCESSEUR
Multi-tâche désigne la capacité d’un seul processeur à exécuter plusieurs programmes simultanément.

Au niveau de la programmation, V+ permet à l’utilisateur d’écrire des programmes multi-tâche, qui


sont exécutés par la carte processeur système.

Multi-processeur désigne les systèmes où plusieurs processeurs se partagent la tâche d’exécuter


plusieurs programmes simultanément (multi-traitement)

A niveau système, l’armoire adept effectue des multi traitements au moyen des processeurs montés sur
la carte processeur système, les carte servo, etc ..

Le système d’exploitation V+ dispose d’un environnement multi-tâche flexible, permettant l’exécution


simultanée d’un maximum de 27 tâches.

ø APPLICATIONS MULTI-TACHES
La tâche principale de l’armoire d’un robot est de commander celui-ci. Elle peut néanmoins réaliser
simultanément d’autres fonctions utiles, par exemple :

Communications avec un ordinateur central


Communication avec l’armoire d’un autre robot.
Exécution de fonctions et calculs de vision.
Commande de dispositifs externes comme des systèmes de distribution ou de convoyeurs.
Supervision des entrées / sorties binaires.
Gestion d’une interface utilisateur.
Exemple

Prog. Robot gestion des io Gemma

Tache 0 Tache 1 Tache 3

95
Cours de formation Programmation ADEPT V+ 1

ø PRIORITE DES TACHES PAR DEFAUT

96
Cours de formation Programmation ADEPT V+ 1

ø CONTROLE DE L’ETAT DU SYSTEME

Ö STATUS num

Cette commande permet de retourner du système (état du robot, le pourcentage de la vitesse


d’exécution du programme ainsi que l’état des différentes taches).

Num est un chiffre correspondant au numéro de la tâche dont on veut connaître la liste
des programmes appelés par ordre d’exécution. Si num est omis la page
ci-dessous sera affichée.

. Robot power off: Il n’y a pas de puissance


sur le robot.
Not calibrate: Le robot n’est pas calibré.
Indique le pourcentage de
Comp mode: Le robot est en mode
la vitesse d’exécution du
AUTOMATIC Taille de la
programme robot.
Manual mode: Le robot est en mode pile
MANUEL

Nom du programme
Indique les numéros principal exécuté par Numéro de ligne
de tâches qui sont en la tâche. du programme.
fonction ou qui ont
été en fonction. Nom du programme
en cours d’exécution
Etat de la tâche
Program running: La tâche est active.
Program WAIT: La tâche est en attente.
Not active: La tâche est inactive.
Abort: La tâche est interrompue

97
Cours de formation Programmation ADEPT V+ 1

ø ARRET DES PROGRAMMES EN COURS D’EXECUTION


Pour arrêter prématurément un programme en cours, entrer la commande du système d'exploitation:

Ö ABORT num

Num est un chiffre correspondant au numéro de la tâche que l’on désire


arrêter, Si num est omis le programme en cours d’exécution dans la tache
numéro 0 sera arrêté.

Le système d'exploitation Adept fournit une invite spéciale avec astérisque immédiatement avant le
mot ABORT. Après avoir appuyé sur Entrée/Retour, le robot stoppe à la fin du déplacement en cours
et le programme est arrêté prématurément.

Exemple :

Sur votre système vous avez les tâches 0 et 2 qui sont actives, pour les arrêter tapez:

Après avoir validé la commande a 2 le système indique le pas sur lequel le programme s’est arrêté (
ex.go, à la ligne 94 ) la date et l’heure de l’arrêt(le 23 Juillet 1999, à 11 heures 08 secondes).

Pour la tâche 0 il n’est pas nécessaire d’indiquer le numéro de la tâche, par défaut il interrompt la
tâche 0.

98
Cours de formation Programmation ADEPT V+ 1

ø ARRET PROVISOIRE D’UN PROGRAMME

Ö PAUSE

Provoque une interruption puis suspend l’exécution du programme. Cette commande


peut être utilisée, par exemple, pour arrêter provisoirement un programme pendant que
l’on contrôle la valeur de variables.

ø POURSUITE DE PROGRAMME V+
Pour faire repartir un programme interrompu, introduire la commande:

Ö PROCEED num

Cette commande provoque le redémarrage du programme au pas suivant celui sur lequel il
avait été interrompu.

Num est un chiffre correspondant au numéro de la tâche que l’on désire


redémarrer, Si num est omis le programme dans la pile de la tâche
numéro 0 sera redémarré.

Ö RETRY num

Cette commande provoque le redémarrage du programme au pas sur lequel il avait été
interrompu.

Num est un chiffre correspondant au numéro de la tâche que l’on désire redémarrer, Si
num est omis le programme dans la pile de la tâche numéro 0 sera
redémarré.

99
Cours de formation Programmation ADEPT V+ 1

: RUNSIG

RUNSIG numero-sig

Mise à l'état "haut" ou "bas" du signal binaire spécifié aussi longtemps que l'exécution de la tâche
programme appelante se poursuit.

PARAMETRE
numero-sig Expression en valeur réelle, variable ou constante, spécifiant l'un des
signaux de sortie ( ou un signal logiciel interne) devant être commandé.

Le signal sera mis à l'état "haut" pendant l'exécution du programme si la valeur est positive.

Une valeur négative entraîne la mise à l'état "bas" du signal pendant l'exécution du programme, puis sa
mise à l'état "haut" lorsque l'exécution s'arrête.

Si aucun signal n'est spécifié, tout RUNSIG activé pour la tâche sera annulé.

100
Cours de formation Programmation ADEPT V+ 1

NOTES

101
Cours de formation Programmation ADEPT V+ 1

102
Cours de formation Programmation ADEPT V+ 1

103
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 10 TYPE DE DONNEES

Les données utilisées de façon répétitive par un programme sont souvent stockées dans la mémoire
système. On peut estimer que les données de la mémoire système se trouvent dans une boîte, à laquelle
on accède par un nom défini par l'utilisateur.

Figure 5-23. Types de données V+

Ces boîtes sont souvent appelées variables, car leur contenu peut changer ou varier de temps en temps.

Comment spécifier un nom de variable


Tous les noms des variables Adept doivent répondre aux exigences suivantes :

Le nom de la variable doit comporter de 1 à 15 caractères.


Le premier caractère doit être une lettre de l'alphabet (A à Z).
Les caractères suivants peuvent être alphabétiques (A à Z), numériques (0 à 9), un tiret bas (-) ou un
point(.), quelle que soit la combinaison. Aucun autre caractère n'est autorisé (en particulier, les signes
arithmétiques (*, -, +, /) ou l'espace ( )).

De plus, deux des types de données ci-dessus possèdent un préfixe particulier ($, #).

104
Cours de formation Programmation ADEPT V+ 1

II ) REEL
Cette variable peut contenir des nombres pouvant être utilisés pour des calculs mathématiques. La
taille de chaque variable "réel" est de 4 octets. Les variables "réel" peuvent être interprétées en tant
que réels, nombres entiers, valeurs logiques ou valeurs ASCII .

Une variable peut être definie entre:


-16,777,216 et 16,777,215

Une variable réelle simple précision est définie entre


+- 3.4*10E38

Une variable réelle double précision est définie entre


+-1,8*10E307

III ) CHAINES
Cette variable peut contenir n'importe quelle combinaison de caractères ASCII, de caractères
alphabétiques (A à Z), de caractères spéciaux (-'!@ # $ %~& ()-=+[]{}\ ; : ,< >/ ?') et de nombres qui
ne peuvent être utilisés dans des opérations mathématiques (0 à 9). Chacune des touches possibles du
clavier est autorisée, à l'exception des guillemets (II). Chaque variable "chaîne" est d'une taille fixe de
128 octets, quelle que soit la taille effective de la chaîne.

Restriction le caractère ASCII 34 (“) ne peut être utilisé dans une variable chaîne.

105
Cours de formation Programmation ADEPT V+ 1

IV ) POSITIONS
Les variables “position” représentent un moyen de désigner les positions du robot par leur nom.
V ) POSITIONS ARTICULAIRES
Cette variable représente les positions exactes de chaque articulation du robot. Ces variables exigent 4
octets par articulation du robot.

Figure 5-26. Exemples de variables "Position articulaire"

Le nom de la position articulaire doit être précédé du caractère ( # ).

106
Cours de formation Programmation ADEPT V+ 1

VI ) TRANSFORMATIONS
Cette variable représente la position et l'orientation de l'outil du robot en coordonnées cartésiennes. La
taille de chaque variable transformation tt est de 48 octets.

VII ) TABLEAUX
En plus des "boîtes" individuelles de mémoire, il est possible de regrouper des boîtes de mémoire de
trois façons.

Figure 5.28 Exemple de tableau unidimentionnel

Exemple d’affectation

Affectation de variables

Reseau[2] = 36
Reseau[3] = 20

Affecte la valeur 36 dans la case numéro 2 et la valeur 20 dans la case numéro 3 du tableau uni-
dimentionnel réseau[]
Le nombre entre crochets définit l’indice du tableau.

Affectation de chaîne de caractères

$texte[1]= “bonjour”
$texte[2]= “bonsoir”

107
Cours de formation Programmation ADEPT V+ 1

Fig 5.29 exemple de tableau bidimentionnel

108
Cours de formation Programmation ADEPT V+ 1

VIII ) INSTRUCTIONS PROGRAMME


Les instructions programme indiquent au processeur du système les actions à effectuer.

ø AFFECTATIONS
Il faut utiliser une instruction d'affectation pour créer une variable ayant un nom défini par l'utilisateur
et contenant une valeur. Toutes les variables doivent être affectées avant de pouvoir être prises en
compte.

ø AFFECTATION DE REELS

Number = 25

Height = number

Part_part=number + 25

Number = number + 75

Figure 5-31. Exemples d'affectation de réels

On peut affecter aux réels des valeurs littérales, d'autres variables, des expressions associant des
valeurs littérales et des variables. il est possible d'affecter à une variable réelle une expression appelant
cette même variable qui peut prendre alors une nouvelle valeur.

109
Cours de formation Programmation ADEPT V+ 1

ø AFFECTATION DE CHAINES DE CARACTERES

$string = “adept”

$name = $string

$part= “H”+”4”

$part=$part +”-“+”k”

Figure 5-32. Exemples d'affectation de chaînes de caractères

On peut affecter aux chaînes de caractères des valeurs littérales placées entre guillemets ("), d'autres
variables, une expression (appelée concaténation, n'utilisant que le signe "+") associant librement des
valeurs littérales placées entre guillemets (") ou des variables. il est possible d'affecter à une chaîne de
caractères une expression appelant cette même chaîne qui prendra alors une nouvelle valeur .

110
Cours de formation Programmation ADEPT V+ 1

ø AFFECTATIONS DE POSITIONS ARTICULAIRES

SET #start = #PPOINT(135,jt2,75,90)

SET #start_up = #start

SET #start = #PPOINT(-45,90,jt3,45)

Fig 5-33 Exemples d’affectations de positions articulaires

ø AFFECTATIONS DE TRANSFORMATIONS

SET pick = TRANS(450,y_val,708,0,180,-45)

SET pick_up = pick

Set pick = TRANS(250,525,850,0,180,roll)

Fig 5-34 Exemple d’affectations de transformations

111
Cours de formation Programmation ADEPT V+ 1

IX ) OPERATIONS SUR LES CHAINES DE CARACTERES


Les opérations sur les chaînes peuvent être composées de n’importe quelle combinaison de valeurs
littérales placées entre guillemets (“ “), de variables de chaînes ou de fonctions spéciales de chaînes.
Seul l'opérateur de concaténation (+) peut être utilisé dans les opérations sur les chaînes.
Conversions de variables
Il est possible de convertir toutes les variables d'un type de données en un autre type de données.
Certaines de ces conversions sont plus faciles que d'autres, et certaines sont plus usuelles que d'autres.
Les deux conversions les plus communément utilisées sont indiquées ci -dessous :

Conversion d’une chaine de caracteres en réel

VAL et $ENCODE

Real = VAL(“123 ELM St.”)

$String = $ENCODE(100)

fig 5-36 Conversion chaine-réel et réel-chaine

ø LONGUEUR D’UNE CHAINE DE CARACTERE

: LEN

Permet de retourner la longueur d’une chaîne de caractères.

112
Cours de formation Programmation ADEPT V+ 1

ø EXTRAIRE UN GROUPE DE CARACTERES D’UNE CHAINE

: $MID

Retourne la chaîne de caractères contenue dans la chaîne de caractères d’entrée..


La syntaxe est :

$MID (string, first_char, num_chars)

ø CONVERTION DEDECIMAL ASCII

: $CHR
Retourne le caractère correspondant à la valeur ASCII du réel.

Exemple

Affiche TATA à l’écran.

113
Cours de formation Programmation ADEPT V+ 1

114
Cours de formation Programmation ADEPT V+ 1

115
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 11 OPERATIONS NUMERIQUES

Les opérations numériques sont définies au moyen d'opérateurs mathématiques

( ) intérieur en premier

* / MOD de gauche à droite

+ - de gauche à droite

Figure 5-35. Ordre de priorité des opérateurs mathématiques

Exemple:
Dans les exemples ci-dessous le résultat dans X est toujours le même:

X=3
X =6 / 2
X = SQRT(9)
X = SQR(2) – 1
X = 9 MOD 6

I ) EXPRESSION LOGIQUE
Le V+ ne possède pas d’expression logique (Booleen) spécifique. Toute variable numérique ou
expression peut être utilisée en tant que donnée logique. V+ considère 0 comme étant la valeur fausse
et toute autre valeur vraie.

ø CONSTANTE LOGIQUE
Il existe 4 constantes logiques, TRUE et ON dont la valeur est –1, et FALSE et OFF dont la valeur
est 0. Ces constantes peuvent être utilisées à tout moment .Une variable ,valeur ou expression logique
peut être utilisée chaque fois que cela est nécessaire.

Dans l’exemple suivant une entrée est testée, si elle est activée, la variable dio.test retourne une valeur
vraie et le test IF est valide.

116
Cours de formation Programmation ADEPT V+ 1

117
Cours de formation Programmation ADEPT V+ 1

118
Cours de formation Programmation ADEPT V+ 1

II ) OPERATEURS RELATIONNELS
Les opérateurs relationnels sont utilisés pour comparer deux éléments entre eux afin d'obtenir une
valeur logique VRAI ou FAUX. Cette comparaison peut être effectuée sur toute combinaison des
éléments suivants: variables réelles et valeurs littérales numériques, ou sur toute combinaison de
variables et de valeurs littérales de chaînes de caractères.
Le résultat d’une opération contenant un opérateur relationnel sera toujours ou –1 (TRUE) ou 0
(FALSE).
Le V+ utilise les opérateurs de test standard du tableau ci dessous:

Table Opérateur de test


Symbole Fonction
== Egale à
< Inférieur à
> Supérieur à
<= ou =< Inférieur ou égale à
>= ou => Supérieur ou égale à
<> Different de

Exemple :

X est égal à 6 et Y est égal à 10, le résultat des différentes opérations suivantes sera –1 (TRUE)

X<Y
Y>=X
Y<>X

Les résultats des opérations suivantes sera 0 (FALSE)


X>Y
X<> 6
X == Y

Notez la différence entre l’opérateur d’affectation = et l’opérateur de comparaison ==:


Z=X==Y

Z sera affecté du résultat du test d’égalité entre X et Y soit 0 (FALSE)

119
Cours de formation Programmation ADEPT V+ 1

III ) OPERATEUR LOGIQUE


Les opérateurs logiques sont utilisés pour comparer au moins deux relations ou conditions entre elles
afin d'obtenir une valeur logique VRAI ou FAUX.

Symbole Effet
AND Les deux expressions doivent être = à vrai
pour que le résultat soit vrai.
OR Au moins une des expressions doit être
vrais pour que le résultat soit vrai.
NOT Complemente l’expression ou la valeur
XOR L’une des expressions doit être vrai et
l’autre fausse pour que le résultat soit vrai.

Exemple :

Si X = 6 et Y = 10 le résultat des opérations suivantes sera –1 (TRUE)

NOT (X ==7)
(X > 2 ) AND ( Y =< 10 )

Le résultat des opérations suivantes est 0 (FALSE)

(X<3) AND (Y> 20)

120
Cours de formation Programmation ADEPT V+ 1

IV ) REPRESENTATION NUMERIQUE
Les valeurs numériques peuvent être représentées sous forme de notation décimale standard ou sous
forme de notation scientifique comme nous le montre le tableau ci-dessous.
Les valeurs numériques peuvent être représentées sous forme Octales, Hexadécimales et Binaires

Prefixe Exemple Représentation


-193 Décimal
^B ^B1001 Binaire (Max 8 bits)
^ ^346 Octal
^H ^H23FF Hexadécimal
^D ^D20000000 Double précision

121
Cours de formation Programmation ADEPT V+ 1

122
Cours de formation Programmation ADEPT V+ 1

123
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 12 CLASSIFICATION DES VARIABLES

I ) VARIABLES GLOBALES
Les variables globales sont les variables par défaut, elles sont disponibles à tout moment pour tout
programme en mémoire. Cependant, elles peuvent être modifiées ou altérées par inadvertance, ou
générer des conflits avec des programmes exécutés simultanément dans la même tache ou une tache
parallele.

II ) VARIABLES LOCALES ET AUTOMATIQUES


Les variables locales et automatiques sont particulières à un programme et ne sont donc disponibles
pour aucun autre programme. On les utilise pour éviter le risque de conflit de variables.
Les variables locales et auto doivent être déclarées dans la première ligne de code exécutable. Les
commandes LOCAL ou AUTO peuvent êtres précédées seulement de la ligne de désignation du
programme, de lignes de commentaires ou de lignes vierges.

.PROGRAM principal( )
LOCAL i, start, $nam., loc[ ], num

Les variables Locales et Auto sont definies une fois pendant l’exécution du programme et leur valeur
reste preservées apres des appel successifs de sous-programmes.

NOTA :
Si une variable LOCAL est declarée dans un programme utilisé par plusieurs taches en même temps
ou s’il est appelé récursivement par la même tache, il y aura partage de cette variable pour chaque
intance de programme.
Les variables AUTO permettent d’eviter cette situation.

Les variables locales doivent être transférées pour permettre aux autres programmes ou sous-
programmes d’accéder à ces variables.

124
Cours de formation Programmation ADEPT V+ 1

On utilise l’instruction CALL pour transférer/recevoir des variables vers ou depuis les sous
programmes.

CALL sous_programme ($nom, loc[],num)

Les parenthèses dans la ligne de désignation du sous_programme servent à transférer/recevoir la liste


des variables.

.PROGRAM sous_programme ($chaine, pt[], var)

Les variables étant transférées par référence, il n’est pas nécessaire d’utiliser le même nom de variable
pour le transfert et la réception de variables. Cependant, les variables doivent être du même type et
l’ordre de transfert/réception doit être préservé.

Exemple :

EXPLICATION DU RESULTAT DE L’EXECUTION

.Program a.main()
; A= 100 car la valeur " réelle " dans cette adresse mémoire n’a pas été modifiée

Program a.sub(n)
; n = 100 car les deux références A et n pointent à la même adresse mémoire

125
Cours de formation Programmation ADEPT V+ 1

EXPLICATION DU RESULTAT DE L’EXECUTION

.Program a.main()
; A= 100 ->car la valeur " réelle " dans cette adresse mémoire n’a pas été modifiée par le sous-
programme.
; n -> est indéfinie car cette variable est locale au sous programme a.sub(), elle n’est donc pas connue
dans ce programme.

Program a.sub(n)
; n = 100 car les deux références A et n pointent à la même adresse mémoire.

126
Cours de formation Programmation ADEPT V+ 1

EXPLICATION DU RESULTAT DE L’EXECUTION

.Program a.main()
; A= 1100 ->car la valeur " réel " dans cette adresse mémoire a été modifiée par le sous-programme
; n -> est indéfinie car cette variable est locale au sous programme a2.sub(), elle n’est donc pas
connue dans ce programme

Program a2.sub(n)
; n = 1100 car les deux références A et n pointent à la même adresse mémoire.

127
Cours de formation Programmation ADEPT V+ 1

EXPLICATION DU RESULTAT DE L’EXECUTION

.Program b.main()
; A= 100 ->car la valeur " réelle " dans cette adresse mémoire n’a pas été modifiée par le sous-
programme
; temp=1100 -> lorsque cette variable global a été modifiée dans le sous-programme b.sub()

Program a.sub(n)
; n = 100 car les deux références A et n pointent à la même adresse mémoire qui n’a pas été modifiée
; TEMP=1100 lorsque cette variable globale a été modifiée

128
Cours de formation Programmation ADEPT V+ 1

EXPLICATION DU RESULTAT DE L’EXECUTION

.Program c.main()
; A= 100 ->car la valeur réelle dans cette adresse mémoire n’a pas été modifiée par le sous-programme
; temp -> est indéfinie car cette variable est locale au sous programme a.sub(), elle n’est donc pas
connue dans ce programme

Program a.sub(n)
; n = 100 car sa valeur est passée par référence mais pas modifiée
; temp=1100 lorsque sa valeur est modifiée

129
Cours de formation Programmation ADEPT V+ 1

EXPLICATION DU RESULTAT DE L’EXECUTION


.Program d.main()
; A= 100 ->car la valeur " réelle " dans cette adresse mémoire n’a pas été modifiée par le sous-
programme
; N -> est indefinie car cette variable est locale au sous programme d.sub()
; temp -> est indéfinie car cette variable est locale au sous programme a.sub(), elle n’est donc pas
connue dans ce programme

Program a.sub(n)
; temp = 100 lorsque ‘n’ est copié dans ‘temp’
; n=1100 lorsque sa valeur de ‘a’(n) est ajoutée a 1000
;n=100 lorsque ‘temp’ est copié dans ‘n’

130
Cours de formation Programmation ADEPT V+ 1

EXPLICATION DU RESULTAT DE L’EXECUTION

.Program e.main()
; total= 300 ->car la valeur " réelle " dans cette adresse mémoire est le résultat de la somme de
A+B traité par le sous programme.

Program a.sub(n1,n2,somme)
; n1 = 100 car la valeur est passée par référence correspond au contenu de l’adresse de A
; n2 = 200 car la valeur passée par référence correspond au contenu de l’adresse de B
; somme =300 lorsque sa valeur est modifiée.

131
Cours de formation Programmation ADEPT V+ 1

EXPLICATION DU RESULTAT DE L’EXECUTION


Tâche 1 tâche 3
.Program f.main() .Program f.main

L’adresse mémoire de la variable A est partagée par les deux tâches qui exécutent le même
programme
Si la tâche 1 est démarrée après la tâche 3 le système recommence à compter à partir de 100
Si la tâche 3 est démarrée après la tâche 1 le système recommence à compter à partir de 100

EXPLICATION DU RESULTAT DE L’EXECUTION


Tache 1 Tâche 3
.Program f.main() .Program f.main

132
Cours de formation Programmation ADEPT V+ 1

Pour chaque exécution du programme dans une tâche différente une adresse mémoire de la variable A
est exploitée.

Si la tâche 1 est démarrée après la tâche 3 la tâche 3 continue d’incrémenter sa variable A


normalement
Si la tache 3 est démarrée après la tâche 1 la tache 1 continue d’incrémenter sa variable A
normalement

133
Cours de formation Programmation ADEPT V+ 1

EXPLICATION DU RESULTAT DE L’EXECUTION


.Program f.main()

134
Cours de formation Programmation ADEPT V+ 1

; la variable tab[2] aura la nouvelle valeur 1000 car le contenu de son adresse a été modifié par le s/p
; la chaîne $tab2[1] est modifiée par le sous-programme avec la valeur " bonsoir "
Program f.sub(n)
; $val[1] à $val[3] contiennent les valeurs de $tab[1]à $tab[2]
; n2 -> est égale à 1000

III ) VISUALISATION DES VARIABLES LOCAL

Les variables locales n'étant pas disponibles pour la mémoire globale, leurs valeurs ne sont pas
stockées sur disque. Pour visualiser l'état d'une variable locale, on utilise la commande moniteur
LISTR suivi du symbole "@"+ le numero de la tache d’utilisation de la variable, puis du nom du
programme qui désigne la variable locale et, enfin, de la variable elle même.

L l S T L @ tache p r i n c i p a l variable,variable,variable...

L l S T R @ tache p r i n c i p al variable,variable,variable...

L l S T S @ tache p r i n c i p al variable,variable,variable...

135
Cours de formation Programmation ADEPT V+ 1

136
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 13 CREATION DES POSITIONS

I ) INTRODUCTION
L'objectif essentiel du langage V+ est de commander des unités mécaniques. Cette section décrit les
types de positions V+ et comment elles sont associées à l'espace dans lequel se déplace l'unité
mécanique.

Le langage V+ permet une grande souplesse de commande des actions d’un robot. Ce langage de
programmation permet de concevoir des programmes qui transforment le robot en un dispositif à
apprentissage et répétition. Cependant, pour assurer une souplesse maximale de la commande des
déplacements du robot, Adept a choisi l’approche qui consiste à faire dire par le programmeur au robot
la manière (le programme) et où ce dernier doit fonctionner (les positions).

Il existe plusieurs méthodes pour mémoriser la position d’un robot, toutes ces méthodes spécifient une
position par une variable. Le moyen le plus courant consiste à utiliser le robot pour ce faire. Dans ce
cas, le robot mémorise sa position et l’orientation de l’outil monté en bout de bras.

Après avoir mémorisé une position, le robot peut revenir à la position apprise avec l’orientation
initiale ou une orientation différente. En raison de cette possibilité de retour à une position apprise
avec une orientation différente, l’orientation de l’outil en bout de bras doit être spécifiée.

137
Cours de formation Programmation ADEPT V+ 1

II ) TYPES DE POSITION

ø VARIABLES DE TRANSFORMATION/PRECISION
Une position peut être spécifiée en utilisant soit une variable de transformation, comprenant six
composantes, soit un point de précision en spécifiant l'état dans lequel devraient être les axes
lorsqu'une certaine position est atteinte.

ø TRANSFORMATION
La variable de position Adept de base (la variable de transformation) est un ensemble de six
composantes, chacune identifiant individuellement une position dans l'espace cartésien et l'orientation
de l'outil en bout de bras à cette position.

Les six valeurs d’une transformation sont désignées ci-dessous, les caractères en minuscules
représentant : y = lacet ; p = tangage ; r = roulis

X Y Z y p r
145 -145 750 0 180 45

Position Orientation

138
Cours de formation Programmation ADEPT V+ 1

Les trois premières composantes d'une variable de transformation sont les valeurs des points sur les
axes X, Y et Z. Pour les robots SCARA Adept, l'origine de l'espace cartésien est le socle du robot (ou
système de coordonnées universelles (WORLD). L'axe Z+ pointe vers le haut en passant par le milieu
de la colonne du robot. L'axe X+ pointe vers l'avant du robot, et l'axe Y+ pointe vers la gauche
lorsque vous vous tenez derrière le robot.

139
Cours de formation Programmation ADEPT V+ 1

Les trois autres composantes d'une variable de transformation spécifient l'orientation de l'outil en bout
de bras ou ce qui peut être considéré comme étant le repère de référence local.

Ces trois autres composantes sont le lacet, le basculement et le roulis. Pour les robots SCARA Adept,
l'origine de ce second espace cartésien est l'outil en bout de bras (ou système de coordonnées d'outil).
Généralement, l'axe Z+ pointe vers le bas; toutefois, s'il existe un cinquième axe (Axe 5), il peut
pointer dans d'autres directions. L'axe X+ peut tourner autour de l'axe Z pour pointer dans n’importe
quelle direction en restant toujours en angle droit par rapport à l'axe Z+. L'axe Y+ peut également
tourner autour de l'axe Z pour pointer dans n'importe quelle direction en restant toujours en angle droit
par rapport aux axes Z et X.

140
Cours de formation Programmation ADEPT V+ 1

ROULIS
On entend par "roulis" la rotation autour de l'axe Z de ce repère de référence local (TOOL). La Fig.
7-5 montre un repère de référence local dans l'espace cartésien principal (WORLD) du robot; le roulis
s'effectue dans cet espace. Dans un robot Adept sans cinquième axe (Axe 5) fixé à l'extrémité du
fourreau, la rotation du fourreau correspond à la composante roulis d'une variable de transformation.
Si le robot Adept était équipé d'un cinquième axe muni d'un préhenseur rotatif, la rotation de ce
dernier correspondrait à la composante roulis.

141
Cours de formation Programmation ADEPT V+ 1

BASCULEMENT
On entend par “basculement” le mouvement de déviation, de haut en bas, autour de l’axe Y du repère
de référence local (TOOL). Fig 7.6 montre le repère de référence local dévié de 25°. La déviation
d’un cinquième axe correspond à la composante basculement.

142
Cours de formation Programmation ADEPT V+ 1

LACET
On entend par "lacet" la rotation du repère de référence local parallèle à l'axe Z du repère de référence
principal (WORLD). Cette rotation ne s'effectue pas autour de l'axe Z du repère de référence
principal mais est centrée à l'origine du repère de référence local (TOOL). Le cylindre dans la Fig. 7-
7 représente l'axe du lacet. Notons qu'il est parallèle à l'axe Z du repère de référence principal mais est
centré à un point quelconque dans cet espace.

Notons que lorsque l'axe Z du repère de référence principal et l'axe Z du repère de référence local sont
parallèles, le roulis et le lacet produisent un déplacement dans le même plan, bien que les deux
déplacements pourraient être dans des directions identiques ou opposées. Lorsqu'un robot Adept
possède un cinquième axe, la rotation du fourreau correspond à la composante lacet.

143
Cours de formation Programmation ADEPT V+ 1

La Fig. 7-8 montre les composantes lacet, basculement et roulis d'une variable de transformation.
Notez la trajectoire suivie par le repère de référence local lorsque la composante basculement de la
variable de transformation dévie l'outil en bout de bras qui était parallèle à l'axe Z du repère de
référence principal.

144
Cours de formation Programmation ADEPT V+ 1

ø POINTS DE PRECISION
Si, dans votre application, l'angle de rotation (d'axe) est un élément critique, vous devez spécifier vos
positions en tant que "Points de Précision"

Dans tous les types de robot, les composantes d’un point en coordonnées articulaires représentent les
valeurs angulaires ou linéaires des différents axes.

JT1 JT2 JT3 JT4


45 -45 123 0

Dans un robot SCARA, un point en cordonnées articulaires comporte quatre valeurs ou plus en
fonction du nombre d’axes du robot.

145
Cours de formation Programmation ADEPT V+ 1

Un point de précision d'un robot SCARA Adept possède au moins quatre valeurs et peut en avoir
davantage selon le nombre d'axes de l'unité mécanique.

Axe 1
L'axe 1 permet la rotation du bras interne, limitée à moins de 360° pour les robots SCARA Adept.

Axe 2
L'axe 2 est le point de pivotement entre le bras interne et le bras externe. Le déplacement du bras
externe est limité par des butées mécaniques situées en haut du bras interne. Comme pour l'axe 1, le
déplacement pour les robots SCARA Adept est limité à moins de 360'. Ce déplacement peut être
comparé à un coude capable d'agir dans une configuration à gauche ou à droite.

Axe 3

146
Cours de formation Programmation ADEPT V+ 1

L'axe 3 permet le déplacement vertical du fourreau à l'extrémité du bras externe.

Axe 4
L'axe 4 permet la rotation du fourreau des robots SCARA Adept sur une plage supérieure à 360°. Ce
déplacement peut être comparé à un avant-bras humain lors du serrage ou du desserrage d'un bouchon
à vis, si l'axe 5 n'est pas présent.

147
Cours de formation Programmation ADEPT V+ 1

III ) CREER ET MODIFIER DES VARIABLES DE POSITION

ø COMMENT SPECIFIER UN NOM DE POSITION


Les noms de position doivent répondre aux exigences suivantes:

· Le nom de la position doit comporter entre 1 et 15 caractères.

· Le premier caractère doit être un caractère alphabétique (A à Z).

· Les caractères suivants peuvent être alphabétiques (A à Z), numériques (0 à 9), un tiret bas
" _ " ou un point (.).

Si la position doit être un point de précision, le nom doit être précédé par un signe #, non compté dans
la longueur du nom de la position.

Si la position doit être une transformation, aucun caractère ne doit préfixer le nom.

ø CREER ET MODIFIER DES VARIABLES DE POSITION

Ö HERE

La méthode la plus directe pour créer une variable de position consiste à placer l'unité mécanique sur
la position à enregistrer comme variable de position, et d'entrer la commande du système
d'exploitation suivante
HERE nom_pos

Nom_pos est le nom de la variable de la position.

Ö POINT

La commande POINT permet de créer des variables de position sans nécessairement disposer d’un
robot. Il faut cependant procéder très attentivement lors de la création de points sur lesquels le robot ne
s’est jamais placé. La commande POINT est plus souvent utilisée pour modifier une position existante
ou pour créer un correcteur d’outil.
POINT nom_pos

Nom_pos est le nom de la variable de la position.

148
Cours de formation Programmation ADEPT V+ 1

ø CREER UNE TRANSFORMATION

Ö HERE d

A Lorsque cette commande est validée la transformation enregistrée correspond à la position


actuelle du bras robot et les coordonnées correspondantes sont affichées à l’écran.

B Si cette position convient appuyer à nouveau sur la touche " return " pour valider sinon
modifier directement les cordonnées que l’on désir comme montré ci dessous.
Chaque cordonnée doit être séparée par une virgule, si une valeur ne doit pas être saisie tapez
une virgule à sa place.

pour la position du robot montrée ci-dessous, créerait une transformation ayant les valeurs suivantes:

x y z y p r

300 300 377 0 180 171.871

En millimètres En degrés

149
Cours de formation Programmation ADEPT V+ 1

Les composantes Z, lacet et basculement de pick ne sont pas montrés dans le graphique
bidimensionnel ci-dessus.

Si la composante Z d'une transformation

Pick
X Y Z y p r
566 0 750 018 0 135

est suffisamment importante pour atteindre l'enveloppe de travail en partant du socle, la composante
roulis se base sur l'orientation suivante par rapport au socle du robot.

150
Cours de formation Programmation ADEPT V+ 1

ø CREER UN POINT DE PRECISION

Ö HERE #a

Pour la position du robot montrée ci-dessous créerait un point de précision ayant les valeurs suivantes:
#a
Jt1 Jt2 Jt3 Jt4
42.781 19.129 10 53.781

En degrés En millimètres En degrés

La composante Axe 3 de #a n'est pas montrée dans le graphique bidimensionnel ci-dessus.

151
Cours de formation Programmation ADEPT V+ 1

IV ) OPERATIONS DE POSITIONNEMENT DIVERSES

Ö WHERE

génère un affichage statique de la position actuelle du robot.

La commande du système d'exploitation

Ö WHERE 1

Génère un affichage dynamique de la position actuelle du robot.

Cette commande du système d'exploitation peut être terminée en maintenant appuyée la touche CTRL
(contrôle) et en appuyant sur la lettre C.

La commande du système d'exploitation WHERE 1 a le même effet que la touche de fonction


prédéfini DISP. Appuyer ensuite sur la touche utilisateur JOINT VALUES ou WORLD
LOCATION.

152
Cours de formation Programmation ADEPT V+ 1

153
Cours de formation Programmation ADEPT V+ 1

154
Cours de formation Programmation ADEPT V+ 1

155
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 14 STRUCTURES DE CONTROLE DES


PROGRAMMES

BRANCHEMENTS INCONDITIONNELS

F GOTO Etiquette

Branchement inconditionnel à l'étiquette spécifiée, non au numéro du pas du programme.

Les étiquettes doivent être introduites dans le programme de façon explicite. Les étiquettes de rang
faible doivent se trouver au début du programme et celles de rang fort vers la fin du programme. Les
incréments entre étiquettes doivent être d'au moins 10, un incrément de 100 étant communément
utilisé.

Les étiquettes doivent être des nombres entiers, allant de 0 à 32 767.

F CALL sous_programme(var,var2,…)

a. Les sous-programmes sont créés et édités comme les autres programmes.

b. L'exécution du programme est déroutée vers le sous_programme nommé.

c. L'exécution du programme revient au programme appelant au pas suivant


l'instruction CALL.

Les sous-programmes peuvent être imbriqués.

Figure 5-40. Exemple CALL

156
Cours de formation Programmation ADEPT V+ 1

II ) BRANCHEMENTS CONDITIONNELS

F IF relation GOTO label


Branchement à l'étiquette spécifiée si la relation est VRAIE.

Passage à l'instruction suivante si la relation est FAUSSE.

F IF relation THEN
….
ELSE
….
END

L'instruction ELSE et le code associé ne sont pas obligatoires.

Si la relation est jugée VRAIE, le groupe d’instruction THEN est exécuté.

Si la relation est jugée FAUSSE, l'exécution du programme se poursuit par l'instruction qui suit
l'instruction END, ou par l'exécution du groupe d'instructions ELSE (s'il existe).

157
Cours de formation Programmation ADEPT V+ 1

F CASE value OF
VALUE 1 :
….
VALUE 2,3,4:
….
ANY
….
END

Définit une table de "vérité" permettant d’évaluer une valeur spécifique par rapport à de nombreuses
autres pour rechercher une équivalence.

Permet d’évaluer un groupe de codes par rapport à plusieurs valeurs. Les deux sont nécessaires dans la
déclaration VALUE pour indiquer l’arrêt des évaluations.

L’instruction ANY n’est pas obligatoire.

Le END de la structure de commande doit être introduit de façon explicite.

158
Cours de formation Programmation ADEPT V+ 1

BOUCLES COMMANDEES

F FOR valeur-initial TO valeur_final STEP pas


…..
END

Exécute un groupe d'instructions un certain nombre de fois.

L'indice est défini une seule fois sur la valeur-initiale, lors de l'accès initial à la structure de
commande.

c. L'indice est ensuite contrôlé dans l'instruction FOR à chaque passage de la boucle.
* Si la valeur STEP (optionnelle) est positive (+) ou omise, la comparaison

indice > valeur finale

Est effectuée

* Si la valeur STEP (optionnelle) est négative (-), la comparaison

indice < valeur finale

est effectuée.

Lorsque le résultat de la comparaison est FAUX, le corps de la boucle FOR est exécuté et la
comparaison ci-dessus est effectuée de nouveau.

Lorsque le résultat de la comparaison est VRAI, l'exécution du programme se poursuit par


l’instruction qui suit l'instruction END.

L'indice change au retour à l'instruction FOR. Le changement à chaque passage de la boucle est positif
(+1) sauf si la valeur optionnelle STEP est utilisée pour spécifier une valeur positive ou négative
différente.

FOR i = 1 TO 10 ; i est incrémenté de 1


FOR i = l TO 50 STEP 5 ; i est incrémenté de 5
FOR i =5 0 TO 1 STEP -1 ; i est décrémenté de 1

Le END de la structure de commande doit être introduit de façon explicite.

159
Cours de formation Programmation ADEPT V+ 1

BOUCLES PRECONDITIONNELLES

F WHILE condition DO
…..
END

Dans une boucle pré-conditionnée, l'exécution de la séquence à répéter n'est pas garantie car la
condition introduite est évaluée avant l'accès à la boucle.

Si la condition est jugée VRAIE, la séquence est exécutée.

Si la condition est jugée FAUSSE, l'exécution du programme se poursuit par l'instruction qui suit
l'instruction END.

Le END de la structure de bouclage doit être introduit de façon explicite.

Figure 5-50. Exemple de boucle WHILE/DO

BOUCLES POST CONDITONNELLES

FDO
….
UNTIL condition

Une boucle post-conditionnée est toujours exécutée une fois, après quoi la condition introduite est
évaluée.

Si la condition est jugée VRAIE, la boucle est terminée et l'exécution du programme se


poursuit par l'instruction qui suit l'instruction END.

Si la condition est jugée FAUSSE, la boucle est exécutée de nouveau.

160
Cours de formation Programmation ADEPT V+ 1

Figure 5-51.. Exemple de boucle DO/UNTIL

161
Cours de formation Programmation ADEPT V+ 1

.PROGRAM goto()

; ABSTRACT: demonstration de l'utilisation de l'instruction goto


;
; INPUT PARMS:
;
; OUTPUT PARMS:
;
; SIDE EFFECTS:
;
; DATA STRUCT:
;
; MISC:
;
;* Copyright (c) 1998 by {company name}
;---------------------------------------------------------

LOCAL ctr ; déclaration d'une variable local


ctr = 0 ; initialisation de la variable

TYPE /C23, /X10, "ce programme montre le principe d'une boucle infinie", /C2
TYPE /X10, "Ce programme ne pourra etre arrete que par une commande 'ABORT' "

100 ctr = ctr+1 ;incrément du compte


TYPE /X15, "compter = ", ctr ;affichage de l'etat du compteur
WAIT.EVENT , 1 ;attente de 1 seconde
GOTO 100 ;retour au label 100
RETURN

.PROGRAM goto1()

; ABSTRACT: demonstration de l'utilisation de l'instruction goto dans une


; une structure avec branchement conditionnel
; INPUT PARMS:
;
; OUTPUT PARMS:
;
; SIDE EFFECTS:
;
; DATA STRUCT:
;
; MISC:
;
;* Copyright (c) 1998 by {company name}
;---------------------------------------------------------
TYPE /C24, /U20
10 PROMPT "Entrez un numero entre 1 et 100: ", $num

IF (VAL($num) < 1) OR (VAL($num) > 100) THEN ;test si la reponse est entre 1 et 100

TYPE /B, /C1, " * reponse non valide *", /C1


GOTO 10 ; retour au label 10
END

TYPE /C1, "Vous avez saisie la valeur : ", num, /C4 ; affiche la valeur saisie en cas de
succes
RETURN

162
Cours de formation Programmation ADEPT V+ 1

.
PROGRAM call()

; ABSTRACT: ce programme montre l'utilisation de l'appel de sous


; programmes avec passage d'arguments
; INPUT PARMS:
;
; OUTPUT PARMS:
;
; SIDE EFFECTS:
;
; DATA STRUCT:
;
; MISC:
;
;* Copyright (c) 1998 by {company name}
;---------------------------------------------------------

LOCAL $chaine ;déclaration d'une variable local chaine

PROMPT "saisir une chaîne de caractère : ", $chaine

; appel d'une fonction de centrage de texte


CALL centre.chaine($chaine, 20)
RETURN

.PROGRAM centre.chaine($string, ligne)


; ABSTRACT: sous programme permettant de centrer le texte sur 80 colonnes
;
; INPUT PARMS: $string , chaine a centre
; ligne , posittion de la ligne d'affichage
; OUTPUT PARMS:
; SIDE EFFECTS:
; DATA STRUCT:
;; MISC:
;
;* Copyright (c) 1998 by {company name}
;---------------------------------------------------------
LOCAL longueur, espace

longueur = LEN($string) ; determine le nombre de caractere de la chaine


espace = (40-longueur/2) ; determine le nombre d'espace devant preceder le texte

FOR i = 1 TO ligne ; decalage de n lignes vers le bas


TYPE
END

FOR i = 1 TO espace ; boucle permettant de positionner le pointeur pour


TYPE /X1, /S ; le debut d'ecriture
END

TYPE $string ;ecriture du texte au centre


RETURN

163
Cours de formation Programmation ADEPT V+ 1

.PROGRAM if.then.1()

; ABSTRACT: ce programme montre l'utilisation de la structure IF...THEN...ELSE


; l'operateur saisi un nombre, ce nombre est tester pour traiter le cas
; inferieur ou superieur
; INPUT PARMS:
;
; OUTPUT PARMS:
;
; SIDE EFFECTS:
;
; DATA STRUCT:
;
; MISC:
;
;* Copyright (c) 1998 by {company name}
;---------------------------------------------------------

TYPE /C25, /U10 ; positionnement du curseur

10 PROMPT "Entrez un numero entre 1 et 100: ", $num

;test si la reponse est entre 1 et 10

IF (VAL($num) < 1) OR (VAL($num) > 100) THEN


TYPE /B, /C1, " * reponse non valide *", /C1
GOTO 10 ; retour au label 10 pour reposer la question
END

;test si la reponse est inferieur ou superieur 50

IF VAL($num) <= 50 THEN


TYPE /C2, num, " Est inferieure a 50" ; condition vraie
ELSE
TYPE /C2, num, " Est superieure a 50" ; condition fausse
END
RETURN

164
Cours de formation Programmation ADEPT V+ 1

.PROGRAM if.then.2()

; ABSTRACT: montre l'utilisation de iF..THEN...ELSE et INRANGE


; cree une transformation en utilisant les entrees de l'operateur
; INPUT PARMS:
;
; OUTPUT PARMS:
;
; SIDE EFFECTS:
;
; DATA STRUCT:
;
; MISC:
;
;* Copyright (c) 1998 by {company name}
;---------------------------------------------------------
LOCAL prise, $x, $y, $z, $ya, $p, $r
10 TYPE /C24, /U20, "saisir les valeurs de creation de la transformation ", /C1

PROMPT "saisir la valeur de X : ", $x


PROMPT "saisir la valeur de Y : ", $y
PROMPT "saisir la valeur de Z : ", $z
PROMPT "saisir la valeur de yaw : ", $ya
PROMPT "saisir la valeur de pitch : ", $p
PROMPT "saisir la valeur de roll : ", $r

TYPE /C2, "les positions sont creees, appuyez sur <CR> pour tester cette position"

; creation de la transformation equivalente


SET prise = TRANS(VAL($x),VAL($y),VAL($z),VAL($ya),VAL($p),VAL($r))
; sous programme de test
CALL test.loc(prise, ok)
IF ok == FALSE GOTO 10 ; si le test n'est pas positif on recommence
RETURN

.PROGRAM test.loc(loc, ok)


; ABSTRACT: sous programme de test utilisant une structure IF.. ELSE.. END
;
; INPUT PARMS: loc transformation a tester
; ok resultat du test
; OUTPUT PARMS:
;
; SIDE EFFECTS:
;
; DATA STRUCT:
;
; MISC:
;
;* Copyright (c) 1998 by {company name}
;---------------------------------------------------------
IF INRANGE(loc) == 0 THEN ; si cette condition est vrai
TYPE /C2, " position valide"
ok = TRUE ; test ok
MOVE loc
ELSE ; sinon
TYPE /C5, "position non valide"
ok = FALSE ;test pas ok
END
RETURN

165
Cours de formation Programmation ADEPT V+ 1

.PROGRAM case.1()

; ABSTRACT: Exemple de structure CASE utilisant GOTO


; l'operateur a trois choix possible dans un menu
; INPUT PARMS:
;
; OUTPUT PARMS:
;
; SIDE EFFECTS:
;
; DATA STRUCT:
;
; MISC:
;
;* Copyright (c) 1998 by {company name}
;---------------------------------------------------------
LOCAL $reponse

; affichage du menu
100 TYPE /C24, /U20, "*************************************************"
TYPE /C1, /X30, "MENU PRINCIPAL"
TYPE /C1, /X30, "CHOIX NUM 1:"
TYPE /C1, /X30, "CHOIX NUM 2:"
TYPE /C1, /X30, "FIN 0:"
TYPE /C2, /X10, " saisir un nombre entre 0 et 2 ", /S
;saisie de la reponse
PROMPT "", $reponse
;test de la reponse et traitement

CASE VAL($reponse) OF
VALUE 0:
TYPE /C25, u15, "Vous avez choisi de quitter. le programme est termine"
HALT
VALUE 1: ;choix num 1
CALL case.sub($reponse) ; appel de sous programme

VALUE 2: ;choix num 2


CALL case.sub($reponse) ; appel de sous programme

ANY ; pour tout autre cas


TYPE /C25, /U20, "********************************** Entree non valide
*********************"
TYPE /C2, " nouvel essai"
GOTO 100
END ; fermeture du CASE
RETURN

.PROGRAM case.sub($ans)
; ABSTRACT: affiche le resultat du choix pendant 1 seconde puis
; affiche un autre message de retour au programme principal pendant 1.5
; INPUT PARMS: $ans selection de l'operateur
;
; OUTPUT PARMS:
;
; SIDE EFFECTS:
;
; DATA STRUCT:
;
; MISC:
;
;* Copyright (c) 1998 by {company name}
;---------------------------------------------------------
TYPE /C24, /U20, "vous avez choisi le programme", $ans
WAIT.EVENT , 1
TYPE /C2, " Retour au programme principal dan 1.5 secondes "
WAIT.EVENT , 1.5
RETURN

166
Cours de formation Programmation ADEPT V+ 1

.PROGRAM for.loop()

; ABSTRACT: exemple de structure FOR... END


; l'operateur definit la valeur limite de repetition d'une boucle
; la valeur courante est affichee a l'ecran
; INPUT PARMS:
;
; OUTPUT PARMS:
;
; SIDE EFFECTS:
;
; DATA STRUCT:
;
; MISC:
;
;* Copyright (c) 1998 by {company name}
;---------------------------------------------------------
LOCAL limite, i
TYPE /C24, /U20, "saisir le nombre boucle a executer ", /S
PROMPT "", limite

; boucle for
FOR i = 0 TO limit
TYPE "boucle numero :", i
END ; fermeture de la boucle FOR
TYPE /C2, "nombre de boucle execute :", i
RETURN

.PROGRAM while.do()
; ABSTRACT: exemple de structure conditionnelle WHILE.. DO.. END..
; on test l'etat d'une variable pour entrer dans la boucle
; INPUT PARMS:
;
; OUTPUT PARMS:
;
; SIDE EFFECTS:
;
; DATA STRUCT:
; MISC:
;* Copyright (c) 1998 by {company name}
;---------------------------------------------------------
LOCAL $reponse, fin

fin = FALSE ;initialise la variable de sortie


WHILE fin == FALSE DO
; affichage du menu
TYPE /C24, /U20, "*************************************************"
TYPE /C1, /X30, "MENU PRINCIPAL"
TYPE /C1, /X30, "CHOIX NUM 1:"
TYPE /C1, /X30, "CHOIX NUM 2:"
TYPE /C1, /X30, "FIN 0:"
TYPE /C2, /X10, " saisir un combre entre 0 et 2 ", /S
;saisie de la reponse
PROMPT "", $reponse
;test de la reponse et traitement
CASE VAL($reponse) OF
VALUE 0:
TYPE /C25, u15, "Vous avez choisi de quitter. le programme est termine"
fin = TRUE ; permet de sortir de la boucle while
VALUE 1: ; choix num 1
CALL case.sub($reponse) ; appel de sous programme

VALUE 2: ; choix num 2


CALL case.sub($reponse) ; appel de sous programme

ANY ; pour tout autre cas


TYPE /C25, /U20, "********************************** Entree non valide
*********************"
TYPE /C2, " nouvel essai"
WAIT.EVENT , 1 ; affiche le message pendant 1 seconde
; puis retourne au menu principal
END ; fermeture du CASE
END ; fermeture de la boucle WHILE
RETURN

167
Cours de formation Programmation ADEPT V+ 1

.PROGRAM while.do.move()

; ABSTRACT: exemple d'utilisation d'une structure conditionnelle WHILE... DO... END


; execute un cycle si une entree est presente et tant qu'elle est presente
; INPUT PARMS:
;
; OUTPUT PARMS:
;
; SIDE EFFECTS:
;
; DATA STRUCT:
;
; MISC:
;
;* Copyright (c) 1998 by {company name}
;---------------------------------------------------------
WHILE SIG(1006) DO
MOVE prise
BREAK
MOVE pose
BREAK
END
RETURN

.PROGRAM do.until()

; ABSTRACT: exemple d'utilisation de la structure post-conditionnelle DO... UNTIL


; execute un cycle au moins une fois quelque soit l'etat d'une entree et
; renouvelle le cycle que si l'entree est active
; INPUT PARMS:
;
; OUTPUT PARMS:
;
; SIDE EFFECTS:
;
; DATA STRUCT:
;
; MISC:
;
;* Copyright (c) 1998 by {company name}
;---------------------------------------------------------
DO
MOVE prise
BREAK
MOVE pose
BREAK
UNTIL SIG(1006)
RETURN

168
Cours de formation Programmation ADEPT V+ 1

.PROGRAM do.until.menu()

; ABSTRACT: exemple de structure conditionnelle DO.. UNTIL..


; on execute au moins une fois le menu et on en sort que si l'operateur
; selectionne la valeur 0
; INPUT PARMS:
;
; OUTPUT PARMS:
;
; SIDE EFFECTS:
;
; DATA STRUCT:
;
; MISC:
;
;* Copyright (c) 1998 by {company name}
;---------------------------------------------------------
LOCAL $reponse
DO
; affichage du menu

TYPE /C24, /U20, "*************************************************"

TYPE /C1, /X30, "MENU PRINCIPAL"


TYPE /C1, /X30, "CHOIX NUM 1:"
TYPE /C1, /X30, "CHOIX NUM 2:"
TYPE /C1, /X30, "FIN 0:"
TYPE /C2, /X10, " saisir un nombre entre 0 et 2 ", /S

;saisie de la reponse
PROMPT "", $reponse

;test de la reponse et traitement


CASE VAL($reponse) OF
VALUE 0:
TYPE /C25, u15, "Vous avez choisi de quitter. le programme est termine"
HALT
VALUE 1: ;choix num 1
CALL case.sub($reponse) ; appel de sous programme

VALUE 2: ;choix num 2


CALL case.sub($reponse) ; appel de sous programme

ANY ; pour tout autre cas


TYPE /C25, /U20, "********************************** Entree non valide
*********************"
TYPE /C2, " nouvel essai"

END ; fermeture du CASE


UNTIL VAL($reponse) == 0 ; fermeture de la boucle DO/UNTIL
RETURN

169
Cours de formation Programmation ADEPT V+ 1

170
Cours de formation Programmation ADEPT V+ 1

171
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 15 DEPLACEMENTS DU ROBOT

I ) TYPES DE TRAJECTOIRES

ø DEPLACEMENTS EN LIGNE DROITE


Ce type de déplacement permet une interpolation linéaire de la trajectoire de l'outil entre
l'emplacement actuel et l'emplacement spécifié. Les modifications de configuration ne sont pas
autorisées.

Figure 7-1. Déplacement en ligne droite

Si le robot ne peut atteindre l'emplacement voulu car la trajectoire en ligne droite passe par un élément
matériel connu du robot (colonne centrale du robot SCARA), ou si le robot n'est pas dans la
configuration correcte, le robot n'effectuera pas le déplacement. Il est possible de commander la
trajectoire du monte et baisse/de l'outil.

172
Cours de formation Programmation ADEPT V+ 1

ø DEPLACEMENT EN INTERPOLATION ARTICULAIRE


Il permet un déplacement à l'emplacement voulu en calculant les nouveaux angles des articulations et
en déplaçant les articulations sur ces angles sans interpolation de trajectoire particulière. Les
modifications de configuration sont autorisées.

Si le robot ne peut atteindre l’emplacement voulu car il n'est pas dans la configuration correcte, le
robot n'effectuera pas le déplacement.
Chaque articulation se déplace de la valeur minimale nécessaire pour atteindre l'emplacement voulu.
Une exception à cette règle est lorsque l'articulation 4 rencontre une butée en tournant de la valeur
minimale ; dans ce cas, l'articulation tourne dans la direction opposée pour atteindre l'emplacement
voulu.

173
Cours de formation Programmation ADEPT V+ 1

Lorsque d’utilisation de position transformation, les robots SCARA se déplace en gardant leur
configuration de départ tant qu’un changement de configuration ne sera pas demandé. Les positions de
transformation dépendent essentiellement de la position et de l’orientation du tool flange.

174
Cours de formation Programmation ADEPT V+ 1

INSTRUCTIONS DE DEPLACEMENT

: MOVE pt MOVES pt

Cette instruction de mouvement déclenche un déplacement sur un emplacement spécifié.

pt est un point en coordonnées articulaires ou une transformation se


trouvant actuellement dans la mémoire système.

Il peut s'agir d'un déplacement en ligne droite: MOVES


Ou d'un déplacement en interpolation articulaire : MOVE

Exemple :

MOVE prise
MOVE pose

Les instructions programme ci-dessus provoque le déplacement suivant :

pose
prise

il peut s'agir d'un déplacement en ligne droite: MOVES ou d'un déplacement à interpolation articulaire
: MOVE

Le robot prendra la position et l'orientation de l'emplacement tel qu'il a été créé.

MOVE prise MOVE pose

175
Cours de formation Programmation ADEPT V+ 1

II ) APPROCHE D’UNE POSITION

: APPRO

Cette instruction de mouvement déclenche l'approche d'un emplacement spécifié suivant l'axe Z outil.
La syntaxe pour s'approcher d'un emplacement est :

APPROS nom emplacement, hauteur_destination

Il peut s'agir d'un déplacement en ligne droite: APPROS


Ou d'un déplacement en interpolation articulaire : APPRO

nom-emplacement est un point en coordonnées articulaires ou une transformation, se


trouvant actuellement dans la mémoire système.

Hauteur_destination est au-dessus (+) ou en dessous (-) de l'emplacement le long de


l'axe Z du repère au moment où l'emplacement a été "défini.

APPRO est toujours relatif à l'orientation d'un emplacement.

Dans l’exemple ci dessous on montre l’utilisation d’un déplacement sans approche du point et d’un
déplacement avec approche du point.

MOVE prise APPRO Prise,50


MOVE place MOVE prise
BREAK
SIG 33

176
Cours de formation Programmation ADEPT V+ 1

DEGAGEMENT D’UNE POSITION

: DEPART

Cette instruction de déplacement déclenche l'éloignement d'un emplacement spécifié suivant l'axe Z
outil.
La syntaxe pour s'éloigner d'un emplacement est :

DEPARTS hauteur_destination
Il peut s'agir d'un déplacement en ligne droite: DEPARTS
Ou d'un déplacement à interpolation articulaire : DEPART
hauteur-destination est au-dessus (+) ou en dessous (-) de la position actuelle de
l'outil et le long de l'axe Z outil et ne dépend pas de l'orientation d'un
emplacement connu ou nommé. L'emplacement actuel est simplement
l'endroit où le robot se trouve au moment où cette instruction est
exécutée.

DEPART est toujours relatif à l'orientation de l'outil au moment où l'instruction est exécutée.

Exemple :

DEPART 50

177
Cours de formation Programmation ADEPT V+ 1

MODIFICATEURS DE DEPLACEMENTS

ø SUSPENSION DE L'EXECUTION DU PROGRAMME JUSQU'A LA FIN DU


DEPLACEMENT

: BREAK

Cette instruction produit deux effets :


L'exécution du programme de commande des déplacements est suspendue jusqu'à ce que le robot
atteigne sa destination en cours. Le processeur du système doit recevoir un signal "déplacement
terminé" en provenance des cartes servo avant de traiter la ligne d'instructions suivante.

L'interpolateur de trajectoire continu entre le déplacement précédent et le déplacement suivant est


interrompu. Les deux déplacements ne peuvent fusionner en une seule trajectoire continue.

Pt_A Pt_c Pt_A Pt_c

Pt_b Pt_b

Exemple d’un déplacement avec interruption Exemple d’un déplacement sans interruption
de la trajectoire continue sur le point " Pt_b ", de la trajectoire sur le point " Pt_b ".
l’affichage du texte se produit seulement après L’affichage se produit avant la fin du
stabilisation sur le point " Pt_b " . mouvement, pas d’interruption du
déplacement en cours.

178
Cours de formation Programmation ADEPT V+ 1

: BRAKE

Cette instruction produit les effets suivants :


Le robot ralentit immédiatement jusqu'à l'arrêt, puis commence le déplacement suivant (sans
attendre que les erreurs de position reviennent à zéro).

L'exécution du programme n'est pas suspendue.

ø SUSPENSION DE L'EXECUTION DU PROGRAMME JUSQU'A LA SATISFACTION


D'UNE CONDITION

: WAIT condition

Cette instruction place le programme dans une "boucle d'attente" jusqu'à ce que la condition soit
VRAIE.

Cette condition peut être une relation explicite (a > b) ou un numéro de signal "Tout Ou Rien".

Exemple :

WAIT SIG(1002) ; attend que l’entrée numéro 1002 soit active

: DELAY

L'instruction DELAY est traitée comme une instruction de mouvement. Elle est interprétée comme
"SE DEPLACER ICI" et les codeurs doivent donc être activés et lisibles.

DELAY secondes
secondes peut être inférieur à l'unité; cependant, un temps inférieur à 0,016
entraînera toujours un retard de 16 millisecondes
Cette instruction produit les effets suivants :

Toute commande de la pince, en attente, a lieu pendant l'exécution de l'instruction DELAY

Toute variable binaire provisoire de la trajectoire ayant été spécifiée est effacée après l'expiration
de DELAY.

Toute modification de configuration en attente est annulée.

Si l'instruction est suivie d'un BREAK, le signal "déplacement terminé" ne sera pas transmis avant
l'expiration du retard introduit, à +-0,016 seconde près. Dans le cas contraire, le processeur du
système continue le traitement.

179
Cours de formation Programmation ADEPT V+ 1

EXEMPLE CREATION D’UN PROGRAMME

180
Cours de formation Programmation ADEPT V+ 1

181
Cours de formation Programmation ADEPT V+ 1

182
Cours de formation Programmation ADEPT V+ 1

183
Cours de formation Programmation ADEPT V+ 1

NOTE

184
Cours de formation Programmation ADEPT V+ 1

NOTE

185
Cours de formation Programmation ADEPT V+ 1

VITESSE D’EXECUTION PROGRAMME

: SPEED …

La vitesse de déplacement est définie par l'association d'une commande de réglage de la vitesse
moniteur et d'une commande programme de réglage de la vitesse programme.

ø VITESSE MONITEUR

Etant une commande, le réglage SPEED est introduit après l'invite moniteur.
SPEED facteur-vitesse
Les valeurs possibles de facteur-vitesse sont :

Minimum = 0,000001
Maximum = Faire très attention lorsque la valeur dépasse 100
Vitesse nominale = 100
Valeur par défaut
À la mise en marche = 50 (la moitié de la vitesse nominale)

Toute instruction de déplacement déjà traitée ne sera pas affectée par cette commande.

ø VITESSE PROGRAMME

: SPEED

L’instruction SPEED est utilisée aussi bien en tant que commande qu’instruction programme elle
peut également être utilisée en tant que fonction.
La syntaxe quand elle est utilisé en tant que commande est :
SPEED facteur_de_vitesse

Cette vitesse d’exécution programme correspond à la vitesse de référence.


Instruction programme est :

SPEED facteur_vitesse,unités ALWAYS


Cette vitesse programme sera un pourcentage d’exécution de la vitesse définit dans la fenêtre
moniteur.

186
Cours de formation Programmation ADEPT V+ 1

Les valeurs possibles de facteur_vitesse et facteur_vitesse_r sont :

Minimum = 0,000001
Maximum = Faire très attention lorsque la valeur dépasse 100
Vitesse nominale = 100
Valeur par défaut
À la mise en marche = 50 (la moitié de la vitesse nominale)

facteur_vitesse est la valeur, variable ou expression à utiliser comme nouvelle


vitesse.

Facteur_vitesse_r est une valeur, variable ou expression optionnelle (disponible


seulement dans les systèmes d exploitation Adept versions 10.0 et
ultérieures)à utiliser en liaison avec les DEPLACEMENTS EN
LIGNE DROITE pour commander la vitesse de rotation de l'outil peut
seulement RALENTIR la vitesse de rotation, jamais l'accélérer.

unités est un paramètre optionnel : IPS (pouces par seconde) ou MMPS


(millimètres par seconde). Ce paramètre convertit facteur vitesse en
une vitesse linéaire de l'outil, qui est exacte lorsque la vitesse
moniteur est à 100 et fonctionne seulement en DEPLACEMENTS EN
LIGNE DROITE.

ALWAYS est un qualificatif optionnel qui détermine les valeurs par défaut
facteur_vitesse et facteur_vitesse_r. du programme pour toute
instruction de déplacement qui ne comporte pas un réglage de vitesse
particulier. Le ALWAYS facteur_vitesse reste valide jusqu'à
l'application d'un autre ALWAYS .

SPEED 100 ALWAYS est pris systématiquement au déclenchement de l'exécution du programme.

Les vitesses programme peuvent commander seulement le déplacement suivant, ou un déplacement


quelconque ne comportant pas un facteur_vitesse particulier.

Fonction :
Vit = SPEED(1)
Retourne une variable correspondant à la vitesse moniteur actuel dans la variable vit

Ex :

187
Cours de formation Programmation ADEPT V+ 1

Vit =SPEED(2)
Retourne une variable correspondant a la vitesse programme définie par la dernière
instruction " SPEED val ALWAYS " dans la variable vit

Exemple 1 Réglage de la vitesse programme par défaut

Exemple 2 -Une seule instruction de déplacement comporte un réglage de vitesse


particulier

Exemple 3 -Chaque instruction de déplacement comporte un réglage de vitesse


particulier

188
Cours de formation Programmation ADEPT V+ 1

ACCELERATION DECELERATION DES DEPLACEMENTS

: ACCEL

ACCEL permet de définir l’accélération et la décélération des mouvements robot.

La syntaxe de cette instruction est :

ACCEL acceleration, deceleration

Acceleration est la valeur, variable ou expression à utiliser comme nouvelle


accélération.

Deceleration est la valeur, variable ou expression à utiliser comme nouvelle


décélération.

Les accélérations programme commandent tous les déplacements suivants

Fonction :

acc = ACCEL(1)

Retourne une variable correspondant à l’accélération actuelle dans la variable " acc "

dec =ACCEL(2)

Retourne une variable correspondant a la décélération actuel dans la variable " dec "

Vitesse
Courbe de vitesse
À SPEED 200 et ACCEL 100,100

Courbe de vitesse
À SPEED 100 et ACCEL 100,100

Courbe de vitesse
À SPEED 100 et ACCEL 50,50

Temps pour accelerer Temps pour décélérer


a accel 100 à accel 100

189
Cours de formation Programmation ADEPT V+ 1

CONTROLE DE STABILITE DU ROBOT EN UN POINT

: NULL

Commande au système V+ d’attendre que le robot soit stabilisé à sa position finale.

: NONULL

Commande au système de ne pas attendre que le robot soit stabilisé à sa position finale. Ceci
permet des déplacements plus rapides.

Always est un qualificatif optionnel qui determine le mode par défaut dans le
programme pour toute instruction ne comportant pas de réglage
NULL ou NONULL particulier. Le always reste valide jusqu'à
l’application de l’instruction inverse avec ALWAYS.

NOTA

NULL ALWAYS est pris systématiquement à la mise en route du système.


Ces variables binaires sont fonctionnelles seulement lorsque la trajectoire continue est hors
fonction.

CONTROLE DE LA PRECISION DE POSITIONNEMENT

: FINE

Commande au système V+ d’activer la fonction de haute précision. Seules les petites erreurs de
positions finales des articulations sont alors autorisées. Ceci augmente le temps de cycle.
La syntaxe de l’instruction est :

FINE val ALWAYS

Val expression en valeur réelle librement définissable indiquant le nombre


de pas codeurs d’erreurs limites désirés.

190
Cours de formation Programmation ADEPT V+ 1

: COARSE

Commande au système V+ d’activer la fonction de basse précision. Des erreurs plus importantes
sur les positions finales des articulations sont alors autorisées.
syntaxe de l’instruction est :

COARSE val ALWAYS

Val expression en valeur réelle librement définissable indiquant le nombre


de pas codeurs d’erreurs limites désirés.

ALWAYS est un qualificatif optionnel qui détermine la valeur par défaut du


mode de contrôle de trajectoire des erreurs de tolérance pour toutes
les instructions ne comportant pas de réglage FINE ou COARSE
particulier

NOTA

NULL ALWAYS est pris systématiquement à la mise en route du système.


Ces variables binaires sont fonctionnelles seulement lorsque la trajectoire continue est hors
fonction.

Diamètre de positionnement possible en fonction des paramètres de contrôle de position.

191
Cours de formation Programmation ADEPT V+ 1

ø LOGIGRAMME DU GENERATEUR DE TRAJECTOIRE

III ) MOVE A

CP activé CP désactivé

CPON CPOFF

SANS BREAK AVEC BREAK

SANS NULL AVEC NULL

FINE
COARSE

192
Cours de formation Programmation ADEPT V+ 1

CONTROLE DE LA CONFIGURATION DU BRAS ET DU POIGNET

LEFTY

Commande une configuration en bras gauche du robot lors du mouvement suivant.

NOTA : Ce changement de configuration ne peut pas être fait pendant en mouvement en ligne
droite (cartesien)

RIGHTY

Commande une configuration en bras droit du robot lors du mouvement suivant.

NOTA : Ce changement de configuration ne peut pas être fait pendant en mouvement en ligne
droite (cartesien)

ABOVE

Commande une configuration avec le coude du robot vers le bas lors du mouvement suivant.

NOTA : Ce changement de configuration ne peut pas être fait pendant en mouvement en ligne
droite (cartesien)

BELOW

Commande une configuration avec le coude du robot vers le haut lors du mouvement suivant.

NOTA : Ce changement de configuration ne peut pas être fait pendant en mouvement en ligne
droite (cartesien)

MULTIPLE always

Permet une rotation complete du poignet robot lors du mouvement suivant.

SINGLE always

Limite la rotation du poignet entre -180° et 180°

193
Cours de formation Programmation ADEPT V+ 1

194
Cours de formation Programmation ADEPT V+ 1

195
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 16 TEMPORISATEURS

TIMERS

: TIMER (temporisateur)

V+ comporte 18 temporisateurs intégrés numérotés –1,-2 et 0 à 15, destinés à retarder


différentes opérations.

ø REGLAGE D’UN TEMPORISATEUR


Les temporisateurs numérotés de 1 à 15 sont des temporisateurs utilisateur, qui peuvent être
initialisés à une valeur donnée. Le plus souvent, le temporisateur est initialisé à ZERO, ceci étant
réalisé immédiatement avant le déclenchement du processus à temporiser.

Syntaxe :

TIMER( num_tempo) = valeur_temps

EXEMPLE : initialisation d’un temporisateur à zéro

ø LECTURE D’UN TEMPORISATEUR


N’importe quel temporisateur peut être lu à tout moment. Le temporisateur numéroté 0 est un
temporisateur systeme, qui peut seulement être lu mais jamais initialisé au moyen d’une instruction.

Syntaxe :

Variable = TIMER (num_tempo)

EXEMPLE :
Réglage d’un temporisateur à ZERO puis temporisation du déplacement vers B

196
Cours de formation Programmation ADEPT V+ 1

: WAIT.EVENT

Cette instruction permet de suspendre pendant un temps donné l’exécution du programme.


Cette instruction est plus efficace que l’attente générée par l’instruction WAIT car la tâche n’a pas
besoin de boucler pour tester la valeur d’un timer.
La syntaxe de l’instruction est :

WAIT.EVENT , temps

Temps est une variable définissant la durée d’attente à générer.

: WAIT

Cette instruction permet de suspendre pendant 16 ms l’exécution du programme, cette instruction


s’utilise surtout pour liberer du temps processeur lors d’un fonctionnement en muti taches.
La syntaxe de l’instruction est :

WAIT

197
Cours de formation Programmation ADEPT V+ 1

198
Cours de formation Programmation ADEPT V+ 1

199
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 17 LES ENTREES SORTIES T.O.R

QUE SONT LES E/S NUMERIQUES ?


Pour contrôler la cellule robotisée et pouvoir recevoir les signaux des entrées des interrupteurs,
détecteurs et autres dispositifs de la cellule, l'armoire de commande utilise des E/S numériques
comme interface entre le processeur système et l'extérieur.

ø CANAUX D'E/S
Le système d'E/S numériques peut gérer jusqu'à 512 entrées et sorties physiques. Chaque carte
d'E/S numériques DIO du système gère 32 entrées et 32 sorties, le BUS DEVICENET vous permet
d'ajouter des cartes additionnelles afin de répondre aux impératifs de votre application. Les signaux
logiciels attribuables aux canaux d'E/S sont désignés comme suit:

Circuits de signaux de sortie 0001-0512


Circuits de signaux d'entrée 1001-1512

Pour désigner les signaux de sortie, il suffit d'utiliser le numéro du canal. Pour désigner des
signaux d'entrée, il suffit d'inclure un 1 avant le numéro à trois chiffres du canal approprié.

ø BITS INTERNES
En plus des signaux d’E/S, il existe un certain nombre de bits internes. Ces bits internes font
office de variable booléennes globales, pouvant agir sur la totalité des sous-programmes ou, même,
sur la totalité des programmes multi-tâches.

Plage de bits internes :2001 – 2512

ø REPRESENTATION DES SIGNAUX :


Les signaux sont représentés par les symboles suivants :

1 = ON
2 = OFF
-= non configuré

200
Cours de formation Programmation ADEPT V+ 1

ø VISUALISATION DE L’ETAT DES SIGNAUX E/S ET BITS INTERNE

Ö IO

Cette commande permet d’afficher l’état des groupes de signaux et de bits en dynamique.

IO 0 permet d’afficher seulement le groupe des signaux d’entrée

IO 1 Permet d’afficher seulement le groupe des signaux de sortie

IO 2 permet d’afficher seulement le groupe des bits internes

Pour annuler la commande moniteur, appuyer simultanément sur les touches CRT et C

EXEMPLE :

IO

0032 – 0001 0000 0000 0000 0000 0101 1100 1100 0010

1032 – 1001 0000 0000 0000 0000 0101 1100 1100 0011

IO 2

2032 – 0001 0000 0000 0000 0000 0101 1100 0000 0011
2064 – 2033 0000 0000 0000 0000 0101 1000 1100 0011
2096 – 2065 0000 0000 0000 0000 0101 1100 1100 0010
2128 – 2097 0000 0000 0000 0000 0101 1100 1100 0011
2160 – 2129 0000 0000 0000 0000 0101 1100 1100 0000
2192 – 2161 0000 0000 0000 0000 0101 1000 1100 0011
2224 – 2193 0000 0000 0000 0000 0101 1100 1100 0011
2256 – 2225 0000 0000 0000 0000 0101 0100 1100 0011
2288 – 2257 0000 0000 0000 0000 0101 1100 1100 0010
2320 – 2289 0000 0000 0000 0000 0101 0100 1100 0011
2352 – 2321 0000 0000 0000 0000 0101 1100 1100 0010
2384 – 2353 0000 0000 0000 0000 0101 1000 1100 0011
2416 – 2385 0000 0000 0000 0000 0101 1000 1100 0011
2448 – 2417 0000 0000 0000 0000 0101 1000 1100 0011
2480 – 2449 0000 0000 0000 0000 0101 1000 1100 0011
2512 – 2481 0000 0000 0000 0000 0101 1000 1100 0011

Affichage écran IO

201
Cours de formation Programmation ADEPT V+ 1

ACTIVATION DE SORTIES

: SIGNAL numero_sig, ...,numero_sig

Mise à l'état "haut" ou "bas" de signaux de sorties binaires externes ou de signaux logiciels internes
(non applicable aux signaux d'entrées extrêmes).

PARAMETRES

numero-sig Expression en valeur réelle, variable ou constante, correspondant à un


numéro de signal de sortie binaire ou de signal logiciel interne.

Valeur positive (TRUE) Mise du signal à l'état haut.


Valeur négative (FALSE) Mise du signal à l'état bas.
Valeur nulle Ignoré.

EXEMPLES

Couper le signal "alimentation" (en supposant que l’alimentation’ soit positif, mettre en fonction la
sortie 4).

SIGNAL -alimentation, 4

Couper le signal de sortie 1, mettre en service le signal de sortie 4 et le signal 2010.

SIGNAL -1, 4, 2010

LECTURE D’ETAT DES ENTREES

: SIG(numero_sig, ..., numero_sig)

Renvoi le résultat du ET logique de l'état des signaux binaires indiqués.

PARAMETRE

Numerosig Expression en valeur réelle, variable ou constante, correspondant à un


numéro de signal d'entrée/sortie binaire ou de signal logiciel interne.

Une valeur négative indique une logique négative (FALSE) pour ce signal.

Si un seul numero_sig est spécifié, seul son état est renvoyé.

202
Cours de formation Programmation ADEPT V+ 1

EXEMPLE

Supposons que les signaux d'E/S binaires suivants soient installés et possèdent les valeurs indiquées
:

SIGNAL 1001 TRUE


SIGNAL 1004 FALSE

Alors, les références des fonctions SIG ci-dessous renverront les valeurs indiquées :

SIG(1001) ; renvoie –1 (TRUE)


SIG(1004) ; renvoie 0 (FALSE)
SIG(-1004) ; renvoie –1 (TRUE)
SIG(1001, 1004) ; renvoie 0(FALSE)
SIG(1001, -1004) ; renvoie –1 (TRUE)

CONSEILS ET DETAIL DE MISE EN OEUVRE

On peut utiliser seulement des signaux binaires qui sont effectivement installés et configurés.

Lorsque le signe d'un "numero_sig" est positif, le signal est interprété comme TRUE s'il possède
une valeur haute.

Lorsque le signe d'un "numero_sig" est négatif, le signal est interprété comme TRUE s'il possède
une valeur basse.

SIG considère toujours qu'un "numero_sig" de valeur nulle est TRUE, c'est-à-dire SIG(o) = -1.0.

203
Cours de formation Programmation ADEPT V+ 1

ACTIVATION D’UN GROUPE DE SORTIE

: BITS 1_signal, nombre_signx = valeur

Passage à 1 ou 0 d'un groupe de signaux binaires sur la base d'une valeur décimale, binaire,
hexadécimale ou octale.

PARAMETRES

1er-signal Expression en valeur réelle définissant le signal de rang le moins


élevé concerné.

nombre-signx Expression en valeur réelle, optionnelle, spécifiant le nombre de


signaux concernés. Valeur par défaut : 1.

Maximum : 8.

Valeur Expression en valeur réelle, définissant la valeur à attribuer aux


signaux spécifiés. Si la représentation binaire de la valeur comporte
plus de bits que nombre-signx .1, seuls les nombre-signx les plus
petits seront concernés. Cette valeur réelle est arrondie à un nombre
entier .

EXEMPLES

Définir les signaux de sortie externes 1-8 (8 bits) à la représentation binaire de la constante 255,
c'est-à-dire 11111111. Ainsi, les signaux 1-8 seront mis en fonction.

BITS 1,8 = 255

Pour définir les lignes de sortie extemes aux états suivants :

Etat 1 0 1 1 0
Signal 15 14 13 12 11

BITS 11,5 = 22 ; Décimal


BITS 11,5 = ^B10110 ; Binaire
BITS 11,5 = ^H16 ; Hexadécimal
BITS 11,5 = ^26 ; Octal

Pour définir les sorties externes 1 à 25 à l'état bas :

204
Cours de formation Programmation ADEPT V+ 1

FOR nn=1 to 25
Bits nn,1=0
END

CONSEILS ET DETAILS DE MISE EN OEUVRE

On peut référencer des signaux de sortie binaires externes, ou des signaux logiciels internes.

On ne peut définir plus de huit signaux à la fois.

LECTURE D’ETAT D’UN GROUPE D’ENTREE

: BITS(ler_signal, nombre_signx)

Lecture de signaux binaires multiples et renvoi de la valeur correspondant à leur état.

PARAMETRES

1er_-signal Expression en valeur réelle définissant le signal de rang le moins


élevé à lire.

nombre-signx Expression en valeur réelle, optionnelle, spécifiant le nombre de


signaux concernés. Valeur par défaut : 1.

Maximum : 8.

EXEMPLES

Supposons que les états des signaux d'entrée suivants soient présents :
Signal 1008 1007 1006 1005 1004 1003 1002 1001
Etat 1 1 O 1 0 1 1 0

Le pas de programme

X = BITS( 1003,4 )

Affectera alors une valeur 5 à la variable X.

Affichage des états des signaux logiciels, du "premier" au "dernier" :

205
Cours de formation Programmation ADEPT V+ 1

206
Cours de formation Programmation ADEPT V+ 1

CONSEILS ET DETAILS DE MISE EN OEUVRE

On peut référencer des signaux d’entrée ou de sortie binaires externes, ou des signaux logiciels
internes.

On ne peut lire plus de huit signaux à la fois.

On peut lire n'importe quel groupe de huit signaux maximum, à la condition que tous les signaux
du groupe soient configurés et utilisables par le système.

MISE A L’ETAT BAS DE TOUTES LES SORTIES

: RESET

Passe toutes les sorties à l’état bas.

ø CONSIDERATIONS RELATIVES A LA PROGRAMMATION

Sauf si l’utilisateur dédie une tache à chaque processus devant être commandé, il est souvent
nécessaire de laisser une tâche balayer de façon continue, sans jamais s’arrêter pour attendre un
processus ou un dispositif matériel particulier.

Dans ce cas, on peut mettre en œuvre une technique pilotée par les états.

Par exemple, le segment de programme suivant attend une autre tâche pour déclencher la
surveillance d’un élément matériel pendant un intervalle donné :

Alors que le segment de code de la page suivante permet l’exécution du balayage continu :

207
Cours de formation Programmation ADEPT V+ 1

208
Cours de formation Programmation ADEPT V+ 1

209
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 18 POSITIONS RELATIVES

POSITIONS RELATIVES
Chaque transformation utilisée jusqu'ici dans ce cours était une transformation relative au système
de coordonnées de référence, appelé repère cartésien (WORLD). Cette section traite les
transformations relatives à une autre transformation ou à un autre repère. Ces transformations
relatives peuvent être créées par apprentissage avec le robot, ou en connaissant la géométrie d'une
transformation et en utilisant les valeurs géométriques pour faire calculer la nouvelle transformation
relative par le logiciel. Cette manière de créer et d'utiliser des transformations peut s'avérer très
utile lorsque l'on travaille avec une géométrie fixe, par exemple des positions fixes discrètes ou une
action répétitive sur une palette.

CALCULS DES POSITIONS

: DISTANCE

L'instruction programme

DISTANCE(nom_position,nom_position)
Détermine la distance, en ligne droite, en millimètres, entre les deux positions nommées. Cette
mesure est fonction de la précision du robot dans le système de coordonnées de référence dans
lequel les positions se trouvent.
Les indications nom_position doivent être des transformations, non des points en coordonnées
articulaires. Ils doivent posséder des coordonnées en X, en Y et en Z.
Les deux positions peuvent être indiquées dans n'importe quel ordre.

Exemple: Trouver la distance entre deux positions

Prise_pose = DISTANCE(prise,pose)

210
Cours de formation Programmation ADEPT V+ 1

POSITION D'UNE TRANSFORMATION DANS UN SYSTEME DE


COORDONNEES DE REFERENCE
On peut obtenir les coordonnées en X, en Y et en Z d'une position dans un système de coordonnées
de référence à l'aide des instructions programme ci-dessous :

: DX(nom_position)

: DY(nom_position)

: DZ(nom_position)

Les indications nom_position doivent être des transformations et non des points en coordonnées
articulaires. lis doivent posséder des coordonnées en X, en Y et en Z.

Exemple: Trouver les valeurs de déplacement de la position prise :

Coordonnée en X de ‘prise’ -> DX(prise)

Coordonnée en Y de ‘prise’ -> DY(prise)

Coordonnée en Z de ‘prise’ -> DZ(prise)

Après exécution de cette opération, on peut effectuer d'autres analyses sur les positions, par
exemple :

Déterminer la position ayant les coordonnées en X, les coordonnées en Y et les coordonnées en Z


les plus élevées.

Si les positions doivent être utilisées pour déterminer un angle d'orientation par rapport à un repère
de référence, la différence entre les coordonnées en X et la différence entre les coordonnées en Y.
peuvent fournir les informations permettant de déterminer cet angle d'orientation.

La position d'une transformation par rapport à l'autre dans le système de coordonnées de référence.

Ces instructions ne renvoient aucune information concernant les valeurs de "lacet", "tangage" ou
"roulis" de la position.

211
Cours de formation Programmation ADEPT V+ 1

: DECOMPOSE

DECOMPOSER une transformation ou un point en coordonnées articulaires

Cette instruction programme permet d'extraire les coordonnées de l'un ou l'autre type de variable de
position.
La syntaxe de cette instruction est :

DECOMPOSE nom_tableau[index]=nom_position

nom_tableau est un tableau de valeurs réelles qui comporte les coordonnées de la


position.

[index] est un nombre entier optionnel, qui identifie l'indice du premier


élément du tableau qui contiendra la première coordonnée de la
position. Le premier indice du tableau par défaut est zéro. Les
crochets [ ] signalant l'emploi d'un tableau sont obligatoires, même
s'ils ne contiennent aucune valeur index.

TRANSFORMATION POINT EN COORDONNEES


ARTICULAIRES

Indice Indice
Tableau Tableau
1 Valeur de x 1 Valeur de jt1
2 Valeur de y 2 Valeur de jt2
3 Valeur de z 3 Valeur de jt3
4 Valeur de yaw 4 Valeur de jt4
5 Valeur de pitch 5 Valeur de jt5
6 Valeur de roll 6 Valeur de jt6

Figure 9-1. Types de tableaux DECOMPOSE

Si la position est une transformation, les six éléments du tableau correspondent aux six valeurs: X,
Y, Z, yaw, pitch, roll.

Si la position est un point en coordonnées articulaires, les éléments du tableau correspondent aux
valeurs articulaires de la position, en commençant par la première articulation et en poursuivant
pour englober les valeurs de toutes les articulations, concernées.

212
Cours de formation Programmation ADEPT V+ 1

CREATION DE POSITIONS RELATIVES AU MOYEN DE L'INSTRUCTION


TRANS

: TRANS

L'instruction programme TRANS permet de créer des transformations relatives par le logiciel, si
les conditions suivantes sont respectées :

Une transformation ayant une orientation parallèle à la géométrie de la carte connue réside dans la
mémoire système.

Les coordonnées des positions relatives à la carte sont connues.

NOTA : on peut modifier l'orientation de l'outil entre la transformation connue et toute


transformation relative créée par TRANS.

Dans le schéma ci-dessus, n'importe laquelle des positions peut être créée et mémorisée par
apprentissage à l'aide du robot, par acquisition depuis un système de vision ou téléchargée depuis
un système de CAO .
Si les coordonnées du repère propre à la carte sont connues, si l'orientation de chaque position
relative est également connue et si l'orientation de la position de référence est parallèle aux repères
de la carte, alors les coordonnées des positions relatives sont connues.

Les coordonnées de la position " r1 " située dans le coin en haut à gauche de la carte seront
déterminées par apprentissage à l'aide du poignet robot. Lors de la création de " r1 " , les
coordonnées OUTIL (l'orientation de l'outil) doivent être parallèles au repère géométrique qui sera
utilisé pour créer les positions relatives dans le logiciel.

213
Cours de formation Programmation ADEPT V+ 1

Valeurs de positions relatives dans le repère OUTIL

Les distances et directions, parallèlement au repère OUTIL, entre le composant connu " r1 ".. et les
composants relatifs " r2, r3, r4 ", ainsi que l'orientation des composants relatifs, sont :

De Vers Dir X Dir y Dir Z yaw pitch roII


r1 r2 0mm -325m 0mm 0° 0° 0°
rl r3 200mm -425m 0mm 0° 0° 90°
r1 r4 300mm 275m 0mm 0° 0° -30°

Toutes les coordonnées spécifiées dans l'instruction programme TRANS sont parallèles au repère
OUTIL défini lors de l'apprentissage de " r1 " et sont repérées positivement ou négativement à
partir de cette origine.

Les coordonnées ci-dessus supposent que la carte est plate dans le plan X/Y du repère OUTIL et
que tous les composants sont à la même hauteur sur la carte, ce qui n'implique aucune variation
dans la direction Z.

214
Cours de formation Programmation ADEPT V+ 1

La syntaxe générale de cette instruction programme est :

TRANS(dir_x,dir_y,dir_z,lacet,tangage, roulis)

Les valeurs réelles : dir x dir-y dir-z

sont les valeurs et la direction de TRANS parallèlement au repère outil tel que
défini à la position connue " r1 " .

Les valeurs réelles : lacet, tangage , roulis

sont les coordonnées de l'orientation de l'outil par TRANS à partir de la position


connue " r1 "

Noter que l'orientation de la carte ne doit pas nécessairement être parallèle au repère cartésien. Seul
le repère OUTIL doit être aligné par rapport aux valeurs géométriques connues de la carte.

TRANS SUR DES POSITIONS FIXES DISCRETES AU MOYEN DE


VALEURS GEOMETRIQUES.
En utilisant les coordonnées du schéma précédent, les instructions ci-dessous créeront dans le
logiciel les transformations relatives nécessaires à la définition de la position et de l'orientation des
composants " r2, r3, r4 " :

SET r2 = rl:TRANS(0,-325,0,0,0,0)
SET r3 = rl:TRANS(200,-425,0,0,0,90)
SET r4 = rl:TRANS(300,275,0,0,0,-30)

Transformations connues et relatives par TRANS

215
Cours de formation Programmation ADEPT V+ 1

Si la carte est ultérieurement repositionnée par rapport à sa position d'origine, il suffira d'apporter
deux modifications :

Aligner le repère OUTIL par rapport à la position courante de la carte

Effectuer un nouvel apprentissage de la position de référence.

Lorsque le programme est réexécuté, les instructions TRANS recréent les positions relatives " r2,
r3, r4 " sur la base de la nouvelle position et de la nouvelle orientation de la position " r1 "

Noter que les valeurs des orientations sont toujours indiquées parallèlement au repère OUTIL
propre à la position de référence.

L'instruction programme TRANS permet de modifier librement l'orientation de l'outil entre la


position connue et n'importe laquelle des positions relatives.
La seule difficulté de cette méthode est l'alignement du repère OUTIL par rapport aux valeurs
géométriques connues.

216
Cours de formation Programmation ADEPT V+ 1

TRANS SUR DES POSITIONS FIXES DISCRETES PAR APPRENTISSAGE DE


LA TRANSFORMATION RELATIVE

La technique ci-dessus ne peut être mise en œuvre si l'on connaît les coordonnées relatives des
positions des composants " r2, r3, r4 " . Si ce n'est pas le cas, une autre méthode consiste, après
apprentissage de la position de référence, à placer le robot sur les positions relatives et à effectuer
l'apprentissage de celles-ci relativement à la position connue.
La syntaxe de la commande HERE pour chaque position relative est :

HERE r1:r2
HERE r1:r3
HERE r1:r4

Ceci crée les transformations relatives " r2, r3, r4 " quelles que soient l'orientation et la distance des
positions relatives par rapport à la position connue " rl " et crée également l'orientation adéquate à
chaque emplacement relatif.

r1 est aligné par rapport à la carte r1 N'est PAS aligné par rapport à la carte

Figure 9-13. Positions relatives apprises

Lorsque rl est aligné par rapport à la carte :

De Vers Dir X Dir y Dir Z yaw pitch rol1


rl r2 0mm -325m 0mm 0° 0° 0°
r1 r3 200mm -425m 0mm 0° 0° 90°
r1 r4 300mm 275mm 0mm 0 0° -30°

Lorsque rl n'est pas aligné par rapport à la carte :

De Vers Dir X Dir y Dir Z yaw pitch ro11


rl r2 84mm 314m 0mm 0° 0° 15°
rl r3 303mm -359m 0mm 0° 0° 105°
r1 r4 218mm 343m 0mm 0° 0° -15°

217
Cours de formation Programmation ADEPT V+ 1

TRANS DANS UN DEPLACEMENT REPETITIF

Lorsque l'on travaille avec un mouvement répétitif, l’instruction TRANS peut être incorporée à une
structure de contrôle en boucle si l'on sait que les valeurs dimensionnelles géométriques restent
constantes.

218
Cours de formation Programmation ADEPT V+ 1

L'apprentissage du centre de la palette comme position connue permet de minimiser toute erreur
pouvant se trouver dans les valeurs dimensionnelles géométriques constantes.

Le centre de la palette est la transformation de référence

Le logiciel devient très simple si les positions peuvent être ordonnées d'une manière logique pour
produire un déplacement répétitif.

219
Cours de formation Programmation ADEPT V+ 1

Exemple: Créer 25 transformations relatives à partir d'une position connue au centre de la palette.

Les boucles FOR imbriquées font que l'instruction TRANS recalculera de façon répétitive une
nouvelle transformation prise. Le produit des valeurs dimensionnelles géométriques constantes
(dir_x et dir_y) par les indices d'incrémentation (x et y) créera l'ensemble des 25 transformations
sur la palette.

Noter que la position centre sera utilisée comme prise pour la 13ème itération des boucles FOR
emboîtées, avec X= 0 et Y= 0.

220
Cours de formation Programmation ADEPT V+ 1

II ) TRANS DANS UN DEPLACEMENT CIRCULAIRE REPETITIF

On peut également obtenir d'autres types de déplacements. Un déplacement circulaire peut être
réalisé par l'intermédiaire de différentes techniques mais celle décrite ci-dessous met
particulièrement en évidence la manière dont fonctionne le "générateur de trajectoires du robot".
Le point, central est la position de référence pour le déplacement circulaire ci-dessous.

Le centre de la palette est la transformation connue

Noter que l'orientation de la position connue est que l'axe X doit être orienté vers le trou n°l. Une
droite passant par le centre du cercle et le trou n 01 doit être parallèle à deux des bords de la palette.
L'orientation dans le repère OUTIL peut être crée en alignant le repère OUTIL par rapport à l'un
ou l'autre de ces deux bords.

La technique mise en œuvre consiste à réaliser d'abord une rotation à partir de la position
connue, puis à calculer le rayon du cercle.

Les deux valeurs de mesure nécessaires sont :

*L'angle de rotation, en degrés. Calcul : 360° / 25 = 14,4°.


*Le rayon, en millimètres. Utiliser l'instruction DISTANCE.

221
Cours de formation Programmation ADEPT V+ 1

Mesures de l’angle de rotation et du rayon

Exemple: Créer 25 transformations relatives à partir de la position connue située au centre de la


palette.

Noter que la position cercle sera utilisée seulement comme point de référence au centre du cercle,
aucune pièce ne s'y trouvant. Noter aussi que la rotation doit être réalisée avant le déplacement
radial, faute de quoi les positions relatives se situeraient toutes sur la même localisation avec une
rotation différente pour chacune.

222
Cours de formation Programmation ADEPT V+ 1

INVERSE D’UNE TRANSFOMATION


INVERSE …

La fonction inverse retourne une transformation dont la représentation est l’inverse mathématique
de la transformation passé par référence.

EXEMPLE

Dans le cas ci-dessus on pourrait se repositionner sur le point loc_a en recalculant ce point à partir
de loc_c et loc_b comme suit :

Set loc_a = loc_c :INVERSE(loc_b)

223
Cours de formation Programmation ADEPT V+ 1

III ) APPRENTISSAGE D’UN CENTRE OUTIL

Si les dimensions de la pince sont inconnues (pince déportée) il peut être très utile de connaître le
centre outil de cette pince. Une méthode très simple pour apprendre le centre outil consiste en
l’utilisation de transformation relative.

Dans l’exemple ci-dessous la transformation " ref_loc " est connue, cependant les dimensions de la
pince ne sont pas connues. Il ne sera donc pas possible de commander un déplacement du bras
robot avec un positionnement de la pince sur le point " ref_loc ".

Dans l’exemple ci-dessous le type de produit à prendre ne nécessite aucune orientation de la pince,
l’apprentissage du vecteur " grip_1 " permettant de définir les dimensions de la pince se fera
comme suit.

Positionner manuellement la pince dont on désir connaître les caractéristiques sur la pièce à
prendre.

224
Cours de formation Programmation ADEPT V+ 1

Enregistrement de la transformation " grip_1"

HERE ref_loc :grip_1

Change? .ç
X Y Z y p r
-50. 0.0000 -100. 0.000 0.000 0.000

Les valeurs de la transformation (X, Y, Z, yaw, pitch, roll) seront crées pour " grip_1 " elles
constituerons la valeur d’offset à ajouter à la position du TOOL FLANGE du robot.

L’offset actuel devra être inversé pour être utilisé dans une fonction de somme vectorielle.

225
Cours de formation Programmation ADEPT V+ 1

Inversion de la transformation " grip_1 " (résultat sur la figure de gauche)

DO SET grip_1=INVERSE(grip_1)
Visualisation du résultat.

LISTL grip_1

X Y Z y p r
50.000 0.000 100.000 0.000 0.000 0.000

La même procédure pourra être utilisé pour la seconde pince.

Cette opération permet de n’apprendre qu’une transformation de positionnement du bras


robot, seule la transformation relative à chaque pince devra être connue pour les opérations de
prise et dépose.

Exemple
La prise de pièces avec la pince N°1 se fera comme suit :
TOOL grip_1
MOVE ref_loc

La prise de pièces avec la pince N°2 se fera comme suit :


TOOL grip_2
MOVE ref_loc :grip_2

226
Cours de formation Programmation ADEPT V+ 1

TRANSFORMATION TOOL

TOOL trans

Transfert le système de coordonnées TOOL à l’extrémité de n’importe quel outil

Trans nom de la transformation qui décrit l’offset depuis le TOOL


FLANGE

Si la transformation trans est omise, le TOOL sera réinitialisé à une valeur NULL

ATTENTION

Chaque utilisation de l’instruction TOOL génère un BREAK lors de l’utilisation de mouvement en


trajectoire continue.

Exemple

227
Cours de formation Programmation ADEPT V+ 1

CREATION D'UN REPERE DE REFERENCE (SYSTEME DE


COORDONNEES DEFINI PAR L'UTILISATEUR)

FRAME

L'instruction programme FRAME permet de créer un repère de référence défini par l'utilisateur,
possédant un système de coordonnées.
On peut aligner le repère OUTIL par rapport au système de coordonnées défini par l'utilisateur de
sorte que les instructions programme TRANS soient exécutées avec une plus grande précision lors
de l'alignement des transformations relatives.
Cette instruction créée un système de coordonnées en utilisant seulement les localisations de quatre
positions, sans utiliser leurs orientations.

La syntaxe générale de cette instruction programme est :

FRAME(depart_x, dir_x, dir_y, origine)


Les transformations :
depart-x
dir-x
dir-y
origine

Sont les quatre positions nécessaires pour créer le repère de référence défini par l’utilisateur.

228
Cours de formation Programmation ADEPT V+ 1

Quatre positions pour créer un FRAME

Le traitement de l'instruction FRAME ( de gauche à droite) implique la détermination des


informations d’orientation et de position du système de coordonnées comme suit :

Une droite entre depart_x et dir_x détermine deux éléments :

Cette droite sera parallèle au futur axe X du système de coordonnées. Elle pourrait devenir cet axe
x.
Le sens allant de départ_x vers dir_x définit la direction POSITIVE de l'axe x

Une droite tracée perpendiculairement à la droite ci-dessus et dirigée vers dir_y détermine trois
éléments :
Cette droite sera parallèle au futur axe y du système de coordonnées. Elle pourrait devenir cet axe
Y.
Le sens allant vers dir_y définit la direction POSITIVE de l'axe Y.
La direction POSITIVE de l'axe Z est également connue. Utiliser l'axe X, l'axe Y et la règle de la
main droite pour obtenir un repère direct.

On connaît maintenant l'orientation du système de coordonnées.


L'origine correspond aux valeurs nulles des axes X, Y et Z.
On connaît maintenant la position du système de coordonnées.

229
Cours de formation Programmation ADEPT V+ 1

A l'intérieur d'un programme, cette instruction serait de la forme :

: SET pos_repere= FRAME(depart_x, dir_x, dir_y, origine)

Repère de référence définie par l'utilisateur pour des positions relatives fixes discrètes.
On peut toujours utiliser les trous de montage de la carte pour créer le système de coordonnées
défini par l'utilisateur, s'il existe toujours une position homogène par rapport aux positions fixes
discrètes.
Les positions des trous de montage de la carte " loc_1, loc_2,loc_3 " peuvent être définies par
apprentissage. Celles-ci pourront être utilisées dans l'instruction programme FRAME pour créer un
repère à partir duquel les positions relatives seront définies à l'aide de l'instruction TRANS.

Une droite tracée entre loc_1 et loc_2 définit l'orientation POSITIVE de l'axe x

Une droite tracée perpendiculairement à la droite ci-dessus et dirigée vers 100-3 détermine
l'orientation POSITIVE de l'axe y et par conséquent celle de l'axe z.

230
Cours de formation Programmation ADEPT V+ 1

On connaît maintenant l'orientation du système de coordonnées.

Détermination de l’orientation d’un repère

On peut également utiliser le trou de montage " loc_1 " comme " origine " du repère.

L'origine correspond aux valeurs nulles des axes X, Y et Z.

On connaît maintenant la position du système de coordonnées.

231
Cours de formation Programmation ADEPT V+ 1

Détermination de la position d’un repère

L'instruction permettant de créer le système de coordonnées défini par l'utilisateur serait :

SET carte = FRAME(loc_l, loc_2, loc_3, loc_l)

Si les coordonnées par rapport à la carte sont connues, si l'orientation du FRAME est parallèle aux
coordonnées de la carte et si l'on connaît également l'orientation de chaque position relative, alors le
programme peut déterminer les positions par des TRANS relativement à FRAME.

SET rl = carte:TRANS(275,0,0,0,0,90)

SET r2 = carte:TRANS(600,0,0,0,0,90)

SET r3 = carte:TRANS(700,200,0,0,0,180)

SET r4 = carte:TRANS(0,300,0,0,0,60)

232
Cours de formation Programmation ADEPT V+ 1

Valeurs de positions relatives fixes discrètes en coordonnées FRAME

Si la .carte est ultérieurement repositionnée par rapport à sa position d'origine, il suffira d'apporter
une modification :

Effectuer un nouvel apprentissage des trous de montage de la carte "loc_l, loc_2, loc_3 "
pour permettre à l'instruction FRAME de recréer le repère défini par l'utilisateur. Lorsque les
positions relatives seront créées dans le logiciel, elles seront définies par rapport au nouveau repère
défini par l’utilisateur.

233
Cours de formation Programmation ADEPT V+ 1

Noter que les coordonnées géométriques nécessaires sont toujours indiquées parallèlement au
système de coordonnées FRAME à l'origine.

L'instruction programme TRANS permet de modifier librement l'orientation de l'outil entre la


position connue et n'importe laquelle des positions relatives.

234
Cours de formation Programmation ADEPT V+ 1

REPERE DE REFERENCE DEFINI PAR L'UTILISATEUR POUR DES


DEPLACEMENTS REPETITIFS DE POSITIONS RELATIVES

On peut utiliser certains des trous de déplacement répétitifs pour créer le système de coordonnées
défini par l'utilisateur.
Les positions des trous " loc_l , loc_2, loc_3 peuvent être obtenues par apprentissage, puis utilisées
dans l'instruction programme FRAME pour créer un repère à partir duquel les positions relatives
seront obtenues par TRANS.

Une droite tracée entre loc-l et loc-2 définit l'orientation POSITIVE de l'axe x

Une droite tracée perpendiculairement à la droite ci-dessus et dirigée vers loc_3 détermine
l'orientation POSITIVE de l'axe Y et l'orientation POSITIVE de l'axe Z.

On connaît maintenant l'orientation du système de coordonnées.

L'origine correspond aux valeurs nulles des axes X,Y et Z.

On connaît maintenant la position du système de coordonnées.

Détermination de l'orientation et de la position d'un repère

L'instruction permettant de créer le système de coordonnées défini par l'utilisateur serait :

235
Cours de formation Programmation ADEPT V+ 1

: SET palette = FRAME(loc_l, loc_2, loc_3, origine)

L'apprentissage du centre de la palette comme origine de FRAME permet de minimiser toute erreur
pouvant se trouver dans les valeurs dimensionnelles géométriques constantes.

Détermination de l'orientation et de la position d'un repère

Exemple: Créer 25 transformations relatives sur chaque palette à partir de l'origine de FRAME au
centre de chaque palette.

236
Cours de formation Programmation ADEPT V+ 1

NOTE

237
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 19 VARIABLES SYSTEME

Le système d'exploitation Adept possède plusieurs variables système qui affectent le traitement de
l'exécution. Il existe deux types de variables système: les variables binaires et les paramètres.

VARIABLES BINAIRES (SWITCH)


Les variables binaires sont des variables système qui peuvent prendre deux états - 1 ou 0. On dira
également qu'elles sont activées (ENABLE) ou désactivées (DISABLE).

ACTIVATION/DESACTIVATION DES VARIABLES BINAIRES


Les variables binaires sont réglées dans les programmes d'application ou après l'invite système en
utilisant les commandes d'écran ENABLE ou DISABLE.

La syntaxe de ces commandes est:

ENABLE switch

DISABLE switch

Switch est remplacé par l'une des variables binaires indiquées dans le Tabl. 6-1.

Visualiser l'état ("0" ou "1") des variables binaires

Pour voir l'état de toutes les variables binaires, émettre la commande

SWITCH

Après l'invite système.

238
Cours de formation Programmation ADEPT V+ 1

Tabl.e 6-1. Variables système binaires

Variable sys. bin Par défaut Effet


BELT 0 (Dis) A "1", active la fonction suivi de convoyeur de
V+
CP 1 (En) A "0", invalide le traitement du déplacement
en trajectoire continue.
DRY.RUN 0 (Dis) A "1", force le système à ne pas envoyer de
commandes au robot. Utile pour mettre au
point les sections de non déplacement du
programme.
INTERACTIVE 1 (En) A "0", certains sous-programmes de
confirmation sont invalidés et les messages
d'erreurs ne sont pas affichés à l'écran.
MESSAGES 1 (En) A "0", la sortie des commandes d'écran
exécutées avec l'instruction MCS est
supprimée.
MCS.MESSAGES Dis A "0", la sortie des commandes d'écran
exécutées avec l'instruction MCS est
supprimée.
POWER 0(DIS) Spécifie si les moteurs de l'unité mécanique
doivent être mis sous tension.
RETRY 0 (DIS) A "0", la touche PROGRAM START ne peut
pas être utilisée pour reprendre un programme
interrompu (voir le guide de l'utilisateur de
l'armoire de commande pour des informations
sur PROCRAM START).
SET.SPEED 1 (En) A "0", la vitesse de contrôle ne peut pas être
réglée à partir du boîtier de commande
manuelle.
TRACE 0 (Dis) A "1", le système affiche chaque ligne du
programme avant de l’exécuter. Utilisée pour
la mise au point (débogage).
UPPER 1 (En) A "1", les comparaisons de chaînes ne font pas
la distinction entre majuscules et minuscules.

239
Cours de formation Programmation ADEPT V+ 1

PARAMETRES
Les paramètres affectent le système pratiquement de la même manière que le font les variables
binaires, excepté le fait que les paramètres peuvent avoir une plage de valeurs, et pas simplement
être à "0" ou à "l”

ø REGLER LES PARAMETRES


Les paramètres sont réglés en entrant la commande du système d'exploitation:

Ö PARAMETER parameter name = value

nom-paramètre est remplacé par le nom du paramètre à régler.


Le terme valeur est remplacé par la nouvelle valeur que le paramètre doit avoir.

AFFICHER LES REGLAGES DES PARAMETRES


Pour afficher la liste des paramètres, émettre la commande du système d'exploitation:

Ö PARAMETER

Pour voir la valeur d'un seul paramètre (V.HAND.TIME par exemple), entrer la commande du
système d'exploitation.

PARAMETER TERMINAL

Tabl. 6-2. Paramètres système

Paramètre Par défaut Effet

BELT.MODE 0 Règle les caractéristiques du suivi de convoyeur


BELT.ZERO.COUNT 4,000 Règle le nombre d'impulsions du codeur entre les
impulsions de l'indexage d'origine pour tous les
codeurs de chaîne.

HAND.TIME 0.05 Règle le délai entre une instruction OPENI,


CLOSEI, ou RELAXI et l'instruction suivante.
KERMIT.RETRY 15 Règle le délai de retentative du protocole de
communication Kermit.

KERMIT.TINMEOUT 8 Règle le délai d'exécution du protocole de


communication Kermit.
TERMINAL 4 Définit certaines caractéristiques du terminal

240
Cours de formation Programmation ADEPT V+ 1

EXEMPLE :

Test de l’absence d’arret d’urgence, pour la mise sous puissance et l’etallonagde du robot s’il
n’estpas deja ettaloné.

241
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 20 LES INTERRUPTIONS

LE CONCEPT DES INTERRUPTIONS

Une fonction particulièrement puissante de V+ est sa capacité à répondre à un événement (comme


une condition d'erreur ou un signal exteme) au moment de sa survenance, sans qu'il soit nécessaire
d'incorporer des instructions de test répétitif.

Sous réserve d'activation correcte, V+ émettra une interruption suite à un événement en appelant un
programme spécifié, tout comme si une instruction CALL avait été exécutée.

On dit qu'un tel programme est appelé de façon asynchrone, puisque son exécution n'est pas
synchronisée avec le déroulement normal du
Programme.

Le traitement asynchrone est activé par les instructions programme REACT, REACTE et
REACTI.

ø PRIORITE DES INTERRUPTIONS


Il est parfois nécessaire de retarder le traitement d'une interruption jusqu'à ce qu'une section critique
d'un programme soit terminée. De plus, certains événements étant plus importants que d'autres, il
est parfois nécessaire de privilégier certaines interruptions par rapport aux autres.

Un sous-programme d'interruption est appelé seulement si la priorité du programme est inférieure à


celle de l'interruption. Si la priorité du programme est supérieure ou égale à celle de l'interruption,
l'exécution du sous-programme d'interruption est retardée jusqu'à ce que la priorité du programme
en cours chute. Le programme principal de commande du robot fonctionnant normalement à une
priorité nulle et la priorité d'interruption minimale étant égale à l'unité, le programme principal peut
normalement être interrompu par n'importe quelle interruption.

La priorité du programme peut être augmentée ou réduite par l'instruction programme LOCK et sa
valeur déterminée par la fonction PRIORITY. Lorsque la priorité du programme est augmentée à
une valeur donnée, toutes les interruptions ayant une priorité égale ou inférieure sont inactivées.

Lorsqu'un sous-programme d'interruption est appelé, la priorité du programme est automatiquement


calée sur la priorité de l'interruption, évitant ainsi qu'il soit interrompu par une autre interruption
d'une priorité égale ou inférieure. Lors de l'exécution de l'instruction RETURN dans le sous-
programme d'interruption, la priorité du programme est recalée automatiquement sur le niveau qui
existait avant la survenance de l'interruption.

242
Cours de formation Programmation ADEPT V+ 1

NOTA

Ne pas confondre "priorité du programme" avec "priorité des tâches ". La priorité des tâches régit le
traitement des différentes tâches du système. La priorité du programme régit l'exécution des
programmes à l'intérieur d'une tâche de programme. La priorité des programmes est décrite en
détail ci-dessous

SURVEILLANCE CONTINUE D’UN SIGNAL EN MODE ASYNCHRONE

: REACT

REACT numero_sig, programme, priorite


Lancement de la surveillance continue d'un signal binaire spécifié et déclenchement automatique de
l'appel d'un sous-programme en cas de transition adéquate du signal.

PARAMETRES

numero_sig Expression en valeur réelle représentant le signal à surveiller. Le


numéro du signal doit se situer entre 1001 et 1016 (signaux d'entrée
externes) ou 2001 à 2008 (signaux logiciels internes). (Les signaux
logiciels peuvent ainsi être utilisés dans une tâche parallèle pour
interrompre le programme de commande du robot et inversement.) Si
le numéro du signal est positif, V+ recherche une transition de l'état
" off " à l'état "on" ; si "numero-sig'. Est négatif, V+ recherche
une transition de l'état " on " à l'état " off ".

programme Nom du sous-programme à appeler en cas de transition adéquate du


signal.

priorite Expression en valeur réelle, librement définissable, indiquant


l'importance relative de cette interruption selon l'explication ci-après.
La valeur de cette expression est interprétée sous la forme d'un
nombre entier, qui peut aller de 1 à 127. Si cet argument est admis, sa
valeur par défaut est 1.

Lors de la détection de la transition du signal spécifié, V+ émet une interruption qui permet de
TERMINER LE DEPLACEMENT EN COURS DU ROBOT.

243
Cours de formation Programmation ADEPT V+ 1

EXEMPLE

244
Cours de formation Programmation ADEPT V+ 1

: REACTI

REACTI numero_sig, programme, priorite


Lancement de la surveillance continue d'un signal binaire spécifié. Arrêt automatique du
déplacement en cours du robot en cas de transition adéquate du signal et déclenchement (éventuel)
de l'appel à un sous-programme.

PARAMETRES

numero_sig Expression en valeur réelle représentant le signal à contrôler. Le


numéro du signal doit se situer entre 1001 et 1016 (signaux d'entrée
extemes) ou 2001 à 2008 (signaux logiciels internes). Les signaux
logiciels peuvent ainsi être utilisés dans une tâche parallèle pour
interrompre le programme de commande du robot et inversement.

Programme Nom, librement définissable, du sous-programme à appeler en cas de


transition adéquate du signal.

Priorite Expression en valeur réelle, librement définissable, indiquant


l'importance relative de cette interruption selon l'explication ci-après.
La valeur de cette expression est interprétée sous la forme d'un
nombre entier, qui peut aller de 1 à 127. Valeur par défaut: 1.

EXEMPLE

L'instruction ci-dessous déclenche la surveillance du signal d'entrée externe 1001. Le déplacement


du robot est stoppé immédiatement pour tout changement d'état du signal de " ON " à " OFF " le
signal étant spécifié comme valeur négative. Une dérivation au programme "alarme" surviendra si
la priorité du programme chute en dessous de 10 (s'il n'est pas déjà à ce niveau ou en dessous de
celui-ci).

: REACTI –1001, alarme

245
Cours de formation Programmation ADEPT V+ 1

CONSEILS ET DETAILS DE MISE EN OEUVRE

On peut surveiller simultanément n'importe lesquels des 16 premiers signaux externes (1001-1016)
configurés comme entrées.

Les interruptions sont déclenchées par les TRANSITIONS des signaux, non par des niveaux.

Le signal doit rester stable pendant au moins 18 millisecondes pour garantir la détection d'une
transition.

ON

OFF

0.018 secondes
Transition sur front montant et stable

0.018 secondes
Transition sur front descendant et stable

Lorsque l'on arrive à une instruction RETURN à l'intérieur du sous-programme, l'instruction


suivante exécutée sera celle suivant la dernière instruction traitée avant le déclenchement du
programme d'interruption.

La surveillance du signal se poursuit jusqu'à l'un des événements suivants :

246
Cours de formation Programmation ADEPT V+ 1

Annulation du mode de surveillance asynchrone

: IGNORE signal

Annulation de l'effet d'une instruction REACT ou REACTI.

PARAMETRE

Signal Le numéro du signal doit se situer entre 1001 et 1016 (signaux


d'entrée externes) ou 2001 à 2008 (signaux logiciels internes).

EXEMPLES

Si une transition du signal survient entre les points 1 et 2 le programme sera interrompu et la
routine alarme sera exécutée.
Si une transition du signal 1001 survient après le point 2 l’évolution du programme continuera
normalement.

CONSEILS ET DET AILS DE MISE EN OEUVRE

Seuls les signaux d'E/S binaires installés et configurés comme entrées peuvent faire l'objet d'une
surveillance pour interruption.

L'instruction IGNORE doit être exécutée par la même tâche programme que celle qui a exécuté
l'instruction REACT ou REACTI que l'on souhaite annuler.

Cette instruction ne produit aucun effet si une valeur nulle est spécifiée.

247
Cours de formation Programmation ADEPT V+ 1

248
Cours de formation Programmation ADEPT V+ 1

249
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 21 TRAITEMENT D’ERREUR ET DE L’ETAT


SYSTEME EN V+

: REACTE

Normalement, lorsqu’une erreur survient pendant l’exécution d’un programme de commande robot,
le programme s’arrête et un message d’erreur est affiché sur le terminal du système.

Cependant, si on a utilisé l’instruction REACTE pour activer un programme de traitement des


erreurs, V+ appellera ce programme en tant que sous programme au lieu de terminer le programme
principal.

REACTE nom_programme
Lance la surveillance des erreurs robot pouvant survenir lors de l’exécution du programme de
commande du robot (tache 0)

PARAMETRE

Nom_programme Nom librement définissable du programme devant être appelé


en cas de survenance d’une erreur programme. Si aucun programme
n’est spécifié, le REACT précédent est annulé et tout message
d’erreur en attente est effacé.

NOTA

L'objectif principal de l'instruction REACTE est de permettre un arrêt ordonné du système


lorsqu'une erreur imprévue survient. Par exemple, en cas de défaut matériel du robot, un
programme REACTE peut activer les lignes des signaux de sortie externes de manière à arrêter les
équipements périphériques. L'emploi de l'instruction REACTE dans d'autres buts (comme la
remise en marche automatique) doit se faire avec des précautions extrêmes.

250
Cours de formation Programmation ADEPT V+ 1

EXEMPLE

CONSEILS ET DETAILS DE MISE EN OEUVRE

La priorité du programme est montée à 254 à l'appel du programme de traitement des erreurs,
inactivant ainsi tous les programmes d'interruption.

REACTE ne peut être exécuté dans une tâche parallèle.

REACTE ne réagit pas aux erreurs d'exécution des tâches parallèles.

L'exécution du programme s'arrête si une erreur survient alors que le système est en train de traiter
une erreur antérieure.

Le programme de traitement des erreurs peut contenir une instruction RETURN. A son exécution,
le programme tentera de réexécuter l'instruction ayant provoqué l'erreur. Noter que ceci peut
produire une boucle infinie si l'erreur continue de survenir.

Si le programme d'interruption se termine par une instruction RETURNE, l'exécution du


programme suspendu en dernier reprendra au pas QUI SUIT l'instruction ayant provoqué l'appel du
programme.

Une fois déclenché (par une erreur), le traitement des erreurs est désactivé automatiquement. Donc,
il faut exécuter une autre instruction REACTE si le traitement des erreurs doit se poursuivre.

Une instruction DETACH pour le robot (unité logique numéro 0) est effectivement exécutée avant
l'accès au programme de traitement des erreurs. Donc, une instruction ATTACH doit être exécutée
pour permettre au programme de commande du robot de reprendre.

251
Cours de formation Programmation ADEPT V+ 1

NUMERO ET MESSAGE D’ERREUR

: ERROR

Renvoi le numéro d’une erreur récente ayant provoqué l’arrêt de l’exécution du programme ou
entraîné un interruption REACTE.

La syntaxe de l’instruction est

ERROR (tache,selection)

PARAMETRE

Tache Expression en valeur réelle, dont la valeur sélectionne la source du


code d’erreur, comme suit :

-1 Renvoi le numéro de l’erreur la plus récente du programme dans


lequel la fonction ERROR est exécutée.

0 Renvoi le numéro de l’erreur la plus récente du programme de


commande robot.

>1 Renvoi le numéro de l’erreur la plus récente de la tâche


correspondante.

Selection Expression en valeur réelle, librement définissable dont la valeur sélectionne


l’information d’erreur à renvoyer. Valeur par défaut 0.

0 Renvoi le numéro d’erreur de la plus récente erreur d’execution du


programme ( à l’exeption des erreurs d’E/S)

CONSEILS ET DETAILS DE MISE EN OEUVRE

1. Cette fonction est particulièrement utile dans le programme appelé par une fonction REACTE,
pour déterminer la raison du déclenchement de REACTE.

2 La fonction ERROR ne signale pas les erreurs signalées par la fonction IOSTAT.

252
Cours de formation Programmation ADEPT V+ 1

: $ERROR

$ERROR (code erreur)

Renvoi le message d’erreur associé au code d’erreur donné.

PARAMETRE
code-erreur Expression en valeur réelle, dont la valeur (négative) définit une
situation d’erreur.
EXEMPLES

Le code ci-dessous peut être utilisé dans un sous-programme de traitement d’erreur REACTE :

Le segment de programme ci-dessous affiche un message d’erreur si une erreur d’E/S survient :

II ) GESTION D’ETAT DU SYSTEME

: STATE

Retourne des informations d’état de l’ensemble robot.


La syntaxe de l’instruction est :
STATE( select)

Select=1 Si le résultat de cette test est 8, les variateur sont sous puissance mais
le robot n’est pas " Calibré "

Si le résultat de ce test est 5 le robot est en cours de " Calibration ".


.
select = 9 retourne le temps restant avant la fin du mouvement en seconde. Zero
indique qu’aucun mouvement n’est en cours.

select= 10 retourne le pourcentage de mouvement effectué. Une valeur de 100


indique qu’aucun déplacement n’est en cours. STAT(10) augmente au
cour de chaque déplacement démaré jusqu'à la fin de celui ci ou de
l’execution d’un nouveau déplacement.
D’autres informations sont disponibles, voir le guide V+.

253
Cours de formation Programmation ADEPT V+ 1

EXEMPLE

254
. PROGRAM a.main() . PROGRAM err.react
REACTE err.react SIGNAL s.reacti
s.reacti=2005 WAIT
SIGNAL –s.reacti Reacte err.react
WAIT RETURNE
Priorite=1
REACTI s.reacti,err.reacti,priorite
WHILE TRUE DO
APPROS point_1,50
MOVE point_1
BREAK . PROGRAM err.reacti()
DEPARTS 50 AUTO dest.loc, num.err
.PROGRAM ARRET.U()
PROMPT " Désactiver les APPROS point_2,50
MOVE point_2 SET dest.loc=DEST
AU puis ENTER ",dd
BREAK Num.err=ERROR(-1,0)
DO
DEPARTS CASE num.err OF
SCHEMA DU TRAITEMENT D’ERREUR

ENABLE POWER
END VALUE –908 :
UNTIL SWITCH(POWER)
Signal –s.reacti
ATTACH
WAIT
RETURN
Priorite=priorite+1
REACTI s.reacti,err.reacti,priorite
Cours de formation Programmation ADEPT V+ 1

CALL arret.u()
MOVE dest.loc
Priorite=priorite-1
REACTI s.reacti,err.reacti,priorite

RETURN
END

255
Cours de formation Programmation ADEPT V+ 1

256
Cours de formation Programmation ADEPT V+ 1

257
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 22 PROGRAMMES DE COMMANDE DU


SYSTEME D'EXPLOITATION V+

Les commandes V+ peuvent être combinées à un programme spécial appelé programme de


commandes. Pratiques, ces programmes permettent d'exécuter une séquence de démarrage ou des
tâches au niveau du système répétées régulièrement. Une utilisation possible pourrait être le
démarrage du processus d'initiation et de calibrage à partir d'un programme de commandes puis de
demander la date et l'heure actuelles.

Un programme de commandes peut être également utilisé pour exécuter d'autres programmes. Un
exemple d'utilisation pourrait être le chargement de fichiers-disque contenant des programmes,
positions et autres types de données que l'armoire de commande devra utiliser pour commander le
robot ou la cellule robotisée.

ø CREATION D’UN PROGRAMME DE COMMANDE


Utiliser l’éditeur V+
Les programmes de commandes sont crées exactement comme les programmes usuels.
Regle d’utilisation
Chaque ligne du programme doit commencer par MC, suivi d’un espace et de la commande à
exécuter.
Les instructions programme peuvent être utilisées en les faisant précéder de DO
EXEMPLE:

MC DO TYPE " Bonjour "


1. Les opérations logiques, comme les dérivations et les boucles sont impossibles. Seule
l’exécution séquentielle est autorisée.

Les commandes d’entrée utilisées dans les programmes MC ne délivrent pas d’invites interactives ;
par exemple, DELETE,CALIBRATE et POINT fonctionnent différemment.
Les commentaires et les lignes vierges sont admises, sauf lorsque l’on utilise les commandes
suivantes :

STORE ; LOAD ; FDIR ; FDEL ; FRENAME ; FCOPY ; FLIST ; EXECUTE


La commande ZERO est interdite.

EXEMPLE :
Programme de commande AUTO :

258
Cours de formation Programmation ADEPT V+ 1

ø EXECUTION DEPUIS LE TERMINAL


Pour assurer l’exécution à partir du terminal systèeme, utiliser la commande:

COMMANDS nom_programme

Le Programme doit résider dans la mémoire RAM avant de lancer l’instruction COMMANDE.

Le programme s’arrête lorsque :

La fin du programme est atteinte


Un autre programme MC est lancé
Une erreur survient
On introduit (Ctrl)C au terminal pour stopper le traitement du programme.

ø EXECUTION AUTOMATIQUE
Le nom du fichier programme doit être AUTO
Le programme doit être stocké dans un fichier appelé AUTO.V2
Le fichier doit résider sur le disque sélectionné par défaut.
Le switch système de démarrage AUTO doit être actif (voir configuartion des switches page 19)
Le système démarre alors automatiquement à la mise sous tension et exécute les commandes se
trouvant dans le programme AUTO.

259
Cours de formation Programmation ADEPT V+ 1

260
Cours de formation Programmation ADEPT V+ 1

261
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 23 PROGRAMMATION DU MCP

Cette section donne une description générale des stratégies de programmation de l'afficheur, des
voyants et des touches d'entrée du boîtier de commande manuelle. La programmation du boîtier de
commande manuelle exige une connaissance de base de la programmation V+. Ce chapitre traite
des instructions utilisées spécifiquement pour le boîtier de commande manuelle.

L’afficheur du MCP est un afficheur à cristaux liquides (LCD) de 2 lignes de 80 caractères en tout.
Les instructions ATTACH, DETACH, WRITE et READ, permettent d'effectuer les opérations
d'écriture et de lecture sur cet afficheur. Ce chapitre décrit les possibilités de ces instructions
applicables à la programmation du MCP.

I ) ATTACH DU BOITIER DE COMMANDE MANUELLE

Pour qu'un programme d'application puisse communiquer avec le MCP , ce dernier doit d'abord être
attaché au moyen de l'instruction ATTACH. Le numéro d'unité logique du MCP est 1. L'instruction
ci-dessous prépare le MCP aux communications :

: ATTACH(l)

Si le terminal système ou le boîtier de commande manuelle étaient attachés au moment de l'arrêt de


l'exécution d'un programme, ils sont réattachés automatiquement si l'exécution de ce programme est
reprise au moyen des commandes RETRY, SSTEP ou XSTEP .

Le boîtier de commande manuelle (unité logique 1) doit avoir été attaché :


Pour permettre d'envoyer du texte à l'afficheur,
Pour permettre de traiter une instruction KEYMODE,
Pour permettre la lecture des touches en mode clavier ou en mode spécial (voir KEYMODE).

Comme avec tous les autres dispositifs attachés par un programme, le MCP doit être détaché
lorsque le programme a fini d'utiliser le MCP. L'instruction ci-dessous permet de libérer le MCP :

262
Cours de formation Programmation ADEPT V+ 1

: DETACH(1)

En cas d'arrêt anormal de l'exécution d'un programme (c'est-à-dire pour toute autre cause que
HALT , PAUSE ou STOP), tous ses dispositifs y restent attachés, à l'exception du terminal et du
boîtier de commande manuelle qui sont détachés.

Si la tâche reprend par la suite, le programme réattache automatiquement le terminal et le boîtier de


commande manuelle s'ils étaient attachés avant l'interruption.

Si le MCP a été attaché par un programme d'application, l'utilisateur peut interagir avec le boîtier de
commande manuelle sans placer le sélecteur à clé sur la position "PENDANT".

263
Cours de formation Programmation ADEPT V+ 1

II ) ECRITURE SUR LE BOITIER MCP

: WRITE

Les instructions ci-dessous permettent d'afficher un message d'accueil sur les deux lignes de
l'afficheur du boîtier de commande manuelle :

Noter que la deuxième instruction d'écriture utilise le qualificatif /S. Ce qualificatif supprime les
caractères retour chariot-saut ligne "CR> <LF" qui sont normalement envoyés par l'instruction
d'écriture. Si ce qualificatif avait été omis, la première ligne affichée aurait été écrasée. Les codes
de commande du boîtier de commande manuelle sont décrits en détail dans cette section. Ces codes
commandent la position du curseur, les voyants du MCP et l'interprétation des pressions sur les
touches. Ces codes sont envoyés au boîtier de commande manuelle au moyen de l'instruction
WRITE. Le qualificatif « /S « , doit être transmis avec ces instructions pour éviter d'écraser
l'affichage du boîtier de commande manuelle.

DETECTION DES ENTREES UTILISATEUR


Les entrées en provenance du boîtier de commande manuelle peuvent être reçues de deux
façons différentes :

Une série de pressions sur les touches d'entrée de données peut être lue. On utilise l'instruction
READ pour ce type d'entrée.

Une seule pression sur l'une quelconque des touches peut être détectée. Ces pressions uniques sur
une touche peuvent être contrôlées selon trois modes différents :

Les touches peuvent être contrôlées comme les touches d'un clavier normal.

Les touches peuvent être contrôlées en mode "tout ou rien » ("on" ou « off"). L'état de la touche
change à chaque pression sur celle-ci.

Les touches peuvent être contrôlées en mode "niveau". L'état de la touche est considéré être " on "
seulement pendant que la touche est enfoncée.

On utilise la fonction PENDANT() pour détecter les pressions sur les touches dans ce
mode. On utilise l'instruction KEYMODE pour définir le comportement des touches.

264
Cours de formation Programmation ADEPT V+ 1

LECTURE DES ENTREES SUR LE MCP

ø COMPORTEMENT DES TOUCHES

: KEYMODE premiere_touche, derniere_touche = mode, reglage

Définition du comportement d'un groupe de touches du boîtier de commande manuelle.

PARAMETRES

Premiere_touche Expression en valeur réelle qui défini t le numéro de la première


touche de l'ensemble de touches concernées.

derniere_touche Expression optionnelle en valeur réelle qui définit le numéro de


la dernière touche de l'ensemble de touches concernées. Une seule
touche est concernée en l'absence de cette valeur.

Mode Expression en valeur réelle qui définit le mode touches à mettre en


œuvre pour l'ensemble de touches spécifiées. Ce mode doit avoir l'une
des trois valeurs suivantes :

MODE TYPE DE TOUCHE INITIALEMENT


0 Clavier Off
1 Tout ou rien On
2 niveau on

Réglage Expression optionnelle en valeur réelle, applicable seulement lorsque


le mode " tout ou rien " a été sélectionné. Cette valeur détermine le
réglage initial qui s'appliquera aux touches programmées.

EXEMPLE

Les arguments de l'instruction KEYMODE indiquent que les touches 1 à 5 du boîtier de


commande manuelle doivent être configurées en mode "clavier". L'argument "0" de la fonction
PENDANT() indique que la première pression sur l'une quelconque des touches configurées

265
Cours de formation Programmation ADEPT V+ 1

comme touches "clavier" doit être renvoyée.

CONSEILS ET DETAILS DE MISE EN OEUVRE

Les différents modes des touches sont décrits ci-dessous :

0 Mode clavier

Les touches programmées dans ce mode fonctionnent de façon similaires à celles d'un clavier de
terminal.

Un programme peut utiliser la fonction PENDANT(0) pour demander le numéro de la prochaine


touche enfoncée. Le programme attendra alors que l'une des touches programmées en MODE
CLAVIER soit enfoncée. Le numéro de la touche est renvoyé. La frappe par avance est impossible.
Une erreur est renvoyée si le boîtier de commande manuelle n'est pas en mode USER.

Les pressions individuelles sur les touches du MCP sont détectées au moyen de la fonction
PENDANT(). L'interprétation de la pression sur une touche est déterminée par l'instruction
KEYMODE. Le mode par défaut est "clavier". Si une .instruction PENDANT () demande une
entrée de type clavier, le numéro de la première pression sur une touche de type " clavier " sera
renvoyé. Les numéros des touches du MCP sont indiqués dans les pages suivantes. Le code ci-
dessous permet de détecter la première touche utilisateur enfoncée :

1 Mode tout ou rien

L'état de la touche peut être lu "au vol". Lorsque l'utilisateur appuie sur une touche configurée dans
ce mode, l'état interne de la touche maintenu par V+ change et l'état de la DEL de la touche (le cas
échéant) change également. La DEL est allumée lorsque la touche est à l'état ON. L'état de la
touche est disponible même lorsque le boîtier de commande manuelle n'est pas en mode USER,
mais seulement si le boîtier de commande manuelle est attaché.

La fonction PENDANT() doit spécifier la touche à contrôler pour pouvoir détecter les pressions sur
les touches en mode tout ou rien ou niveau.

Lorsqu'une touche est configurée tout ou rien, son état est maintenu à "ON" (-1) ou "OFF" (0). Cet
état bascule à chaque pression sur la tourne. Si la touche comporte une DEL, l'état de celle-ci
bascule également. Le code ci-dessous place la touche "REC/DONE" en mode tout ou rien et attend
une pression sur la touche "REC/DONE":

266
Cours de formation Programmation ADEPT V+ 1

EXEMPLE:

Les arguments de KEYMODE indiquent que la touche 8 du MCP (la touche "REC/DONE") est
configurée comme touche tout ou rien. L'argument de PENDANT() indique qu'il faut lire l'état de
la touche 8 du MCP.

2 Mode niveau
Le niveau actuel de la touche est maintenu par le boîtier de commande manuelle et peut être lu "au
vol". Si le boîtier de commande manuelle n'est pas en mode USER, le niveau renvoyé pour la
touche est zéro. L’état de la touche est ON seulement pendant qu'elle est maintenue enfoncée. Ceci
est utile, par exemple, pour commander le curseur. La valeur renvoyée n'est pas valable si le boîtier
de commande manuelle n'est pas attaché.

Lorsqu'une touche a été configurée sur le mode niveau, son état reste à "on" aussi longtemps que la
touche est maintenue enfoncée. Son état reste à "off" lorsqu'elle n'est pas enfoncée. Le code ci-
dessous utilise les touches 2, 4, 6 et 8 pour déplacer le curseur sur l'écran du terminal. Les touches
sont configurées en mode niveau, de sorte que le curseur se déplace aussi longtemps que ces
touches restent enfoncées.

EXEMPLE

267
Cours de formation Programmation ADEPT V+ 1

CONTROLE DU POTENTIOMETRE DE VITESSE AU MCP

Le potentiomètre de vitesse du MCP renvoie une valeur allant de -128 à 127 en fonction de
l'emplacement sur lequel on appuie. Un argument "-2" à la fonction PENDANT() permet de
renvoyer la valeur du potentiomètre. Le code ci-dessous permet d'afficher l'état du potentiomètre de
vitesse.

La touche " SLOW " permet de modifier la valeur renvoyée. Le code ci-dessous comprime de 50%
la plage des valeurs renvoyées lorsque l'état de la touche " SLOW " est " ON " :

268
Cours de formation Programmation ADEPT V+ 1

LECTURE DE L'ETAT DU MCP

: PENDANT

Renvoie l'entrée du boîtier de commande manuelle.

PARAMETRE
Selection Expression en valeur réelle, dont la valeur sélectionne le type des
informations renvoyées.

Selection = 0

Renvoi du numéro de la touche de la prochaine touche enfoncée en mode "clavier". L'exécution du


programme est suspendue jusqu'à la première pression sur une touche en mode "clavier". Une
erreur survient si aucune touche n'est programmée dans ce mode. Ce mode de fonctionnement exige
que le boîtier de commande manuelle soit attaché.

Selection = -1

Renvoi du numéro de la touche de la prochaine touche enfoncée en mode "spécial". L'exécution du


programme est suspendue jusqu'à la première pression sur une touche du mode demandé. Une
erreur survient si aucune touche n'est programmée dans ce mode.

Selection = -2

Renvoie les valeurs actuelles du potentiomètre de vitesse, entre -128 (décimal) et 127 (décimal).

Selection = -3

Renvoie le mode d'affichage actuellement activé dans le boîtier de commande manuelle. Ceci peut
être utilisé, par exemple, pour déterminer l'état de la commande manuelle avant de tenter de
l'attacher. Les chiffres affichés doivent être interprétés comme suit :

Valeur retournée INTERPRETATION


1 Affichage fonctions (par ex., DISP)
2 Affichage de fond
3 Affichage d'erreurs

EXEMPLES
Cet exemple définit les touches utilisateur en mode "clavier", puis attend que l'une d'elles soit
enfoncée :

269
Cours de formation Programmation ADEPT V+ 1

L'exemple ci-dessous définit la touche REC/DONE en mode "niveau" et établit une boucle jusqu'à
ce que cette touche soit enfoncée :

CONSEILS DE MISE EN OEUVRE

La valeur renvoyée dépend du paramètre " selection " comme suit :

Selection > 0

Renvoie immédiatement une valeur qui reflète l'état actuel de la touche ayant le numéro donné, au
moment où la fonction est appelée. L'état de la touche est fonction du mode défini pour cette
touche.
En mode "clavier" ou "niveau ", une valeur ON ( -1.0) indique que le boîtier de commande
manuelle est attaché en mode USER et que la touche est enfoncée. Une valeur OFF (0.0) indique
que le boîtier de commande manuelle n'est pas attaché en mode USER ou que la touche n'est pas
enfoncée. La valeur renvoyée n'est pas significative si le boîtier de commande manuelle n'est pas
attaché.

En mode "tout ou rien", une valeur ON (-1.0) indique que la touche est "on" et une valeur OFF
(0.0) que la touche est "off". Cette valeur est significative seulement si le boîtier de commande
manuelle est attaché. Même si le boîtier de commande manuelle n'est pas en mode USER, la valeur
renvoyée reflète précisément l'état de la touche.

NOTA
Lorsque " selection " est égal à 36 (ce qui désigne la touche "SLOW"), la valeur renvoyée indique

270
Cours de formation Programmation ADEPT V+ 1

l'état en cours du "mode lent", c'est-à-dire tel qu'indiqué par la DEL de la touche. La touche
"SLOW" est toujours en mode "tout ou rien" et la commande KEYMODE n'a aucun effet sur elle.

271
Cours de formation Programmation ADEPT V+ 1

LECTURE SUR LE BOITIER MCP

: READ

L'instruction READ accepte les entrées des "touches de données" (1, 2, 3,4, 5, 6, 7, 8, 9,
0, ,+, -) du boîtier de commande manuelle. Avec une instruction READ / un <CR-LF>
doit indiquer la fin de l'entrée des données. Sur le MCP / cette séquence est envoyée par
la touche "REC/DONE" (qui équivaut à la touche <entrée> ou <retour> d'un clavier
normal). La touche "DEL" fonctionne comme la touche " retour arrière " d'un clavier
normal et supprime les pressions de touches non entrées. L'instruction READ ne
reconnaît aucunes des autres touches du boîtier de commande manuelle. Les touches de
fonction prédéfinies sont actives et peuvent être utilisées pendant qu'un programme
attaché attend une entrée.

La ligne d'instructions :

READ(l) $reponse

Provoque une pause du programme en attente d'une entrée en provenance du boîtier de commande
manuelle. L'utilisateur termine l'entrée en appuyant sur la touche "REC/DONE". L'entrée est
mémorisée dans la variable en chaîne "$reponse". L’entrée peut être mémorisée en tant que variable
réelle mais les touches " + " et " -" ne doivent alors pas être utilisées comme entrée.

Disposition des touches du MCP

272
Cours de formation Programmation ADEPT V+ 1

NUMEROS DES VOYANTS VALIDES

NUMERO ET POSITION DE LA TOUCHE

1 Touche utilisateur 1 (à l'extrême droite)


2 Touche utilisateur 2
3 Touche utilisateur 3
4 Touche utilisateur 4
5 Touche utilisateur 5 (à l'extrême gauche)
8 Touche REC/DONE
9 T ouche Fl
10 Touche F2
11 Touche F3

ATTENTE / INTERROGATION DES TOUCHES D’ENTREE DU BOITIER DE


COMMANDE MANUELLE

Une méthode facile pour déterminer quelle touche du boîtier de commande manuelle est enfoncée
par l'opérateur consiste à utiliser une instruction telle que :

Choix = PENDANT ( 0 )

A la prochaine pression sur une touche, la valeur de celle-ci sera attribuée à la variable "choix".
Cependant, cette instruction entraîne l'attente indéterminée du programme jusqu'à ce qu'une des
touches du boîtier de commande manuelle soit enfoncée. Les appels au sous-programme REACTI
devront également attendre l'enfoncement d'une touche.

Lorsqu'il n'est pas désirable d'arrêter l'exécution du programme, on peut utiliser les instructions :

Les instructions désignées par les points sont exécutées lorsque la touche.num.l est enfoncée, dans
le cas contraire, l'exécution du programme se poursuit sans interruption.

La technique de contrôle sans attente des touches du boîtier de commande manuelle décrite ci-
dessus devient fastidieuse si l'on doit contrôler de nombreuses touches. Dans ce cas, la structure
CASE est plus efficace :

273
Cours de formation Programmation ADEPT V+ 1

Du point de vue de la programmation, il est judicieux de contrôler l'état du MCP avant d'y effectuer
un ATTACH. L'instruction :

etat.actuel = PENDANT(-3)

Renvoie une valeur, interprétée comme suit :

Indique que l'une des touches de fonction prédéfinie a été enfoncée.


Indique que le MCP est en mode "de fond" (non attaché à un programme d'application).
Indique qu'une erreur est affichée.
Indique que le MCP est en mode USER (attaché à un programme d'application).

COMMANDE DU BOITIER DE COMMANDE MANUELLE

Le MCP réagit à un certain nombre de codes de commande qui influent sur l'afficheur LCD, sur
l'option de répétition des touches du boîtier et sur les DEL correspondant aux touches du boîtier.
Les codes de commande sont envoyés comme valeurs ASCII, en utilisant l'instruction WRITE. La
méthode normale d'envoi des codes de commande consiste à utiliser la fonction $CHR() pour
convertir un code de commande en sa valeur ASCII.

274
Cours de formation Programmation ADEPT V+ 1

CODES DE COMMANDE DE L'AFFICHEUR LCD

Pour vider l'affichage et placer le curseur au centre de la ligne supérieure, émettre l'instruction :

: WRITE(l) $CHR(12) , $CHR(18), $CHR{20) , /S

$CHR(12) efface l'affichage du boîtier et place le curseur à la position 1


$CHR(18) indique que la prochaine valeur reçue doit être interprétée comme une position de
curseur.
$CHR(20) indique que le curseur doit se placer sur la position 20. "/S" doit être annexé à
l'instruction WRITE, faute de quoi un <CR LF> sera envoyé. Noter que l'emploi du code de
commande 18 permet de positionner le curseur sans aucun effet sur le texte existant.

Le code ci-dessous place le texte "SORTIR " au milieu de la ligne inférieure et fait clignoter ce
texte.

$CHR(22) indique au boîtier de commande manuelle de commencer une série de positions


clignotantes commençant à l'emplacement actuel du curseur et s'étendant sur le nombre de positions
spécifié par le code de commande suivant.
$CHR( 4) Ce code entraîne le clignotement de tout texte placé aux positions 58-62 jusqu'à l'envoi
d'une instruction annulant le clignotement.

: WRITE(l) $CHR(18), $CHR(58), $CHR(23) , $CHR(4) ,/S

$CHR(23) indique au boîtier de commande manuelle d'annuler une série de positions clignotantes
commençant à l'emplacement actuel du curseur et s'étendant sur le nombre de positions spécifié par
le code de commande suivant $CHR(4).

Exemple de programme d'écriture de texte à la ligne et colonne désirée:

275
Cours de formation Programmation ADEPT V+ 1

LES DEL DU BOITIER DE COMMANDE MANUELLE

Les DEL des touches utilisateur, des touches de fonction et de la touche " REC/DONE " peuvent
être allumées (en continu ou de façon intermittente). Le code ci-dessous place le texte " CLEAR "
et " EXIT " au dessus des deux premières touches utilisateur, allume la DEL placée sur
périphérique de raccordement la première touche utilisateur et fait clignoter le voyant de la
deuxième touche utilisateur :

$CHR(9) tabule le curseur sur la position de la touche utilisateur suivante.


$CHR(31) allume une DEL. La DEL de la touche à allumer est spécifiée par le code de commande
suivant. $CHR(30) déclenche le clignotement d'une DEL. Les touches utilisateur, les touches " F "
et la touche REC/DONE sont les seules touches dont les DEL sont programmables.

276
Cours de formation Programmation ADEPT V+ 1

MODE REPETITIF DES TOUCHES DU BOITIER DE COMMANDE


MANUELLE

Normalement, les touches du boîtier de commande manuelle configurées en tant que touches
"clavier" sont des touches répétitives, c'est-à-dire que des pressions de la touche sont enregistrées
aussi longtemps que la touche est maintenue enfoncée. La fonction "répétitive" peut être désactivée,
ce qui demande à l'utilisateur d'effectuer une pression distincte sur la touche pour chaque pression
de touche qu'il désire enregistrer. L'instruction ci-dessous désactive la fonction "répétitive" de la
touche point (.) :

: WRITE(l) $CHR(25), $CHR(55)

La fonction "répétitive" est activée par la commande :

: WRITE(l) $CHR(24) , $CHR(55)

277
Cours de formation Programmation ADEPT V+ 1

Code commande du boîtier de commande manuel


Codes de commande sur un octet
Code Fonction
1 (inutilisé)
2 Activation du mode de clignotement pour les caractères suivants
3 Désactivation du mode de clignotement pour les caractères suivants (les
caractères continuent de clignoter s'ils apparaissent à une position de
clignotement définie par le code 22)
4 Affichage du curseur (rendre le curseur visible)
5 Masquage du curseur (rendre le curseur invisible)
6 (inutilisé)
7 Bip sonore
8 Retour arrière (ignoré si le curseur est sur la position du caractère 1)
9 Tabulation jusqu'à la touche utilisateur suivante
10 Saut ligne (déplacement vers le bas à la même position, défilement si sur ligne 2
11 Tabulation verticale ( déplacement vers le haut à la même position, sans
défilement)
12 Curseur en position initiale et effacement écran (annule toute position
clignotante mais n'a aucun effet sur le "mode de clignotement" défini par le code 2)
13 Retour chariot (passage à la colonne 1 de la ligne en cours )
14 Curseur en position initiale (passage à la position du caractère 1)
15 Effacer entre la position du curseur et la fin de la ligne
Codes de commande sur deux octets
Code Fonction Deuxième code
16 (inutilisé)
17 (inutilisé)
18 Positionner curseur Position du curseur (1-80)
19 (inutilisé)
20 (inutilisé)
21 (inutilisé)
22 Activer positions de clignotement à partir de Nombre de positions de
l'emplacement actuel du curseur clignotement (1-80)
23 Désactiver positions de clignotement à partir de Nombre de positions de
l'emplacement actuel du curseur clignotement (1-80)
24 Activation du mode répétitif d'une touche Numéro de la touche
25 Désactivation du mode répétitif d'une touche Numéro de la touche
26 (inutilisé)
27 (inutilisé)
28 Extinction d'une DEL de la touche du boîtier Numéro du voyant*
29 (inutilisé)
30 Clignotement d’une DEL de la touche du boîtier Numéro du voyant*
31 Allumage continu d'une DEL de la touche du boîtier Numéro du voyant*
*Seulement applicable aux touches utilisateur, touches "F" et touche REC/DONE

278
Cours de formation Programmation ADEPT V+ 1

NOTES

279
Cours de formation Programmation ADEPT V+ 1

NOTES

280
Cours de formation Programmation ADEPT V+ 1

281
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 24 N.F.S.

NFS (Network File Server) est un protocole Client / Serveur fonctionnant sous TCP/IP permettant
au serveur de partager un espace disque et aux clients d'y avoir accès.
La principale utilisation du protocole NFS avec les contrôleurs Adept est de permettre l'échange de
fichiers entre les contrôleurs des robots et des ordinateurs de type PC.
Pour effectuer cette tâche il est indispensable d'installer un logiciel dit "serveur NFS" sur les PC
destinés à partager leurs espaces disque. Si vous disposez du kit AdeptWindows PC, un serveur
NFS est inclut dans le package, sinon vous pouvez vous en procurer un auprès d'un revendeur de
logiciels informatique. Adept recommande d'utiliser le logiciel OmniNFS de Xlink (
http://www.xlink.com/ ).

I ) POURQUOI AVOIR CHOISI LE PROTOCOLE NFS?


L'un des point fort de NFS est sa transparence. Avec NFS il n'y a pas de différence entre les espaces
disques locaux et les espaces disques partagés provenant d'un serveur NFS.

II ) COMMENT UTILISER UN ESPACE PARTAGE NFS AVEC UN


CONTROLEUR ADEPT?
Chaque contrôleur est équipé d'un client NFS. Ce client est un logiciel résidant dans le système
d'exploitation V+ qui a pour objet de se connecter à un serveur NFS pour accéder à ses ressources
partagées.
Pour initialiser l'accès aux espaces disques partagés il faut "monter" un disque externe depuis le
client (contrôleur Adept). Le terme de "monter" signifie que le logiciel client NFS va demander
l'autorisation au serveur NFS de bien vouloir lui laisser accéder à ses ressources partagées.
Pour monter un espace disque partagé, il faut tout d'abord identifier l'ordinateur équipé du serveur
NFS. Pour ce faire il faut relever son adresse IP.

282
Cours de formation Programmation ADEPT V+ 1

Exemple de fenêtre affichant l'adresse IP d'un


ordinateur fonctionnant sous Windows NT

Une fois que l'on connaît l'adresse IP du serveur NFS il faut créer un "alias" sur le contrôleur
Adept. L'alias est raccourci permettant de ne pas avoir a ressaisir l'adresse IP complète à chaque
fois que l'on a besoin de spécifier un équipement présent sur un réseau TPC/IP. La commande
moniteur pour créer cet alias est:

ø FSET
FSET TCP /NODE 'pc' /ADDRESS 192 168 142 103

La signification de la commande est:


FSET -> Fait
TCP -> Sur TCP/IP
/NODE 'pc' -> Un alias nommé pc
/ADDRESS 192 168 142 103 -> Ayant l'adresse IP 192.168.142.103

ATTENTION: dans la commande moniteur il ne faut pas mettre de point entre les différents
champs de l'adresse IP!

Une fois l'alias créé il faut maintenant monter l'espace disque partagé. Pour ce faire il faut entrer la
commande moniteur suivante:

FSET NFS /MOUNT 'xc' /NODE 'pc' /PATH 'c:\'

La signification de la commande est:


FSET -> Fait
NFS -> Sur NFS
/MOUNT 'xc' -> Un disque externe dont le nom est 'xc'
/NODE 'pc' -> Localisé sur le serveur dont l'alias est 'pc'
/PATH 'c:\' -> Correspondant à l'espace partagé 'c:\' du serveur
Une fois cette commande exécutée un nouvel espace disque est disponible. Pour visualiser les
espace disques montés par NFS, il faut saisir la commande:

283
Cours de formation Programmation ADEPT V+ 1

ø NET
Cette commande permet entre autre de voir les différents disques montés ainsi que l'état des options
TCP/IP du contrôleur. L'exécution de la commande NET provoque l'affichage suivant:

TCP/IP: UP -> TCP/IP fonctionne


NFS: UP -> NFS fonctionne

Local IP address: Adresse IP du contrôleur Adept

Mount : nom de partage du disque NFS


Node : nom de l'alias du serveur NFS
Path: espace partagé du serveur NFS

Dans cet exemple il y a 3 espaces partagés


actuellement montés sur le contrôleur. Ces

ø COMMENT ACCEDER AUX ESPACES DISQUES PARTAGES?


Les espaces disques partagés sont utilisable au même titre que les disques locaux (A:, B:,C:, D:).
Afin de pouvoir distinguer un disque local d'un espace disque partager on spécifie le préfixe DISK>
pour les disques locaux et le préfixe NFS> pour les espaces disques partagés. Par exemple pour voir
le contenu de l'espace disque partagé C on va utiliser la commande moniteur suivante:

FDIR NFS>C:\

Pour copier le fichier auto.v2 placé dans le répertoire \APPLI\ du disque D:\ local vers l'espace
disque partagé C on utilisera la commande moniteur:

FCOPY NFS>C:\AUTO.V2=DISK>D:\APPLI\AUTO.V2

Pour définir l'espace disque partagé C comme répertoire par défaut on utilisera la commande
moniteur:

CD NFS>C:\

Pour revenir sur le disque local D: on saisira:

CD DISK>D:\

284
Cours de formation Programmation ADEPT V+ 1

ø COMMENT ACCEDER AUX ESPACES DISQUES PARTAGER PAR PROGRAMME ?


.PROGRAM mount()

$nom.noeud = "pcd" ; nom du noeud


$nom.disque = "xxc" ; nom du disque logique
$voie = "c:\" ; voie d'acces sur le disque logique
$ip.address = "192 168 142 102" ; adresse IP du PC avec NFS serveur

ATTACH (lun, 4) "tcp"


IF IOSTAT(lun) < 0 THEN
TYPE "erreur d'attach tcp1: ", $ERROR(IOSTAT(lun))
END
FSET (lun) "/node "+"'"+$nom.noeud+"'"+" /address "+$ip.address
IF IOSTAT(lun) < 0 THEN
TYPE "erreur d'attach tcp2: ", $ERROR(IOSTAT(lun))
END

; monte l'unitee logique selectionee


ATTACH (lun, 4) "nfs"
IF IOSTAT(lun) < 0 THEN
TYPE "erreur d'attach nfs3: ", $ERROR(IOSTAT(lun))
END

; test si le disque est deja monte


FOPEND (lun) $nom.disque+":\*.*"

; si pas deja monte, monte le disque


IF IOSTAT(lun) < 0 THEN
FSET (lun) "/mount "+"'"+$nom.disque+"'"+" /node "+"'"+$nom.noeud+"'"+" /path "+"'"+$voie+"'"
IF IOSTAT(lun) < 0 THEN
TYPE "erreur d'attach nfs4: ", $ERROR(IOSTAT(lun)), IOSTAT(lun)
END
END

FCLOSE (lun)
DETACH (lun)

285
Cours de formation Programmation ADEPT V+ 1

ø PROBLEMES POSSIBLES:

Si dans la définition des paramètres TCP/IP de votre serveur NFS vous avez définit un serveur
DNS ou DHCP il faut créer un alias pour les différents robots qui doivent se connecter sur le
serveur. Pour créer un alias depuis Windows il suffit de modifier le fichier "hosts.sam" en ajoutant
des lignes de définition pour chaque contrôleur Adept. Une fois les lignes ajoutées il faut
sauvegarder le ficher sans aucune extension le nom du fichier devient donc: "HOSTS".
Exemple de fichier HOSTS Windows:

# Copyright (c) 1994 Microsoft Corp.


#
# This is a sample HOSTS file used by Microsoft TCP/IP for Chicago
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host

192.168.142.155 robot1 # robot de vissage


192.168.142.156 robot2 # robot d'assemblage

286
Cours de formation Programmation ADEPT V+ 1

287
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 25 EXEMPLES DE PROGRAMMES


.PROGRAM a.vp1_cls() ;

; Exemple de programme V+

;* Version V1.0

;* Copyright (c) 1998 by Adept Technology, Inc.

;*****************************************************************************
;* *
;* The information set forth in this document is the property of *
;* Adept Technology, Inc. *
;* *
;* and is to be held in trust and confidence. Publication, *
;* duplication, disclosure, or use for any purpose not expressly *
;* authorized by Adept Technology, Inc. in writing is prohibited. *
;* *
;* The information in this document is subject to change without *
;* notice and should not be construed as a commitment by *
;* Adept Technology, Inc. *
;* *
;* Adept Technology, Inc. *
;* makes no warranty as to the suitability of this material for *
;* use by recipient, and assumes no responsibility for any *
;* consequence resulting from such use. *
;* *
;*****************************************************************************

; DESCRIPTION:
;
; Ceci est l’entete du programme exemple developper pour la
; formation V+
;
; GLOBAL utilisation de ce programme:
;
; a.vp1_cls ; ce programme d’entete
;
; AUTHOR:
;
; Adept Training Department (980810)
;
; CHANGES:
;
; NONE
;
;----------------------------------------------------------------------------

CALL vp1_main()

RETURN

.END

288
Cours de formation Programmation ADEPT V+ 1

.PROGRAM vp1_main() ;Programme principal

; ABSTRACT: Ceci est le modul principal de l’application.


; Le code fait appel a diverse xoux routine qui affiche un menu principal
; et demande a l’utilisateur de saisir sont choix
; Apres un choix valide la sous routine appropriee
; sera appelle.
; A la fin de la sous routine le menu pricipal sera a nouveau affiché.
; cette boucle se repetera jusqu'à ce que l’operateur choisis de sortir
; au menu.
; INPUT PARM:
; AUCUN
; OUTPUT PARM:
; AUCUN
;
; SIDE EFFECTS:
;
; MISC: Tles position suivantes doivent être crée avant l’execution de ce programme.
;
; #start
; loc1
; loc2
;
;* Copyright (c) 1998 by Adept Technology, Inc.
;-----------------------------------------------------------------------------

AUTO $error
AUTO choice, run, quit

; boucle temps que l’utilisateur ne choisi pas « quit «


DO

; boucle jusqu'à ce que "run" ou "quit" soient selectionné.

DO

; affiche le menu à l’ecran

CALL vp1_menu.output(min, max)

; attend la saisie de l’utilisateur

CALL vp1_menu.input(min, max, choice, run, quit)


UNTIL run OR quit

; boucle temps que "run" est VRAI

WHILE run DO

; traitement de la selection

CASE choice OF
VALUE 1: ;si la reponse est 1
CALL vp1_pnp() ;appel du PROGRAMME vp1_pck.n.plc.
run = FALSE
VALUE 2: ; si la reponse est 2
CALL vp1_cycle.time() ;appel du PROGRAMME vp1_cycle.time.
run = FALSE
END
END
UNTIL quit

; affiche le message de sortie.

TYPE /C2, /X11, "*** Fin du programme ***", /C2

RETURN
.END

289
Cours de formation Programmation ADEPT V+ 1

.PROGRAM vp1_menu.input(min, max, choice, run, quit) ;attends le choix de l’operateur

; ABSTRACT: cette routine attends la saisie au clavier de l’utilisateur


; depuis le menu principal.
; La saisie est testee et retournee au programme appellant si
; correcte.
; si le choix n’est pas valide ce programme boucle jusaqu’a ce que le
; choix soit valide.
;
; INPUT PARAM: min: choix minimum valide
; max: choix maximum valide
;
; OUTPUT PARAM: choice: choix de l’utilisateur
; run: choix valid
; quit: fin menu
;
; SIDE EFFECTS: NONE
;
; MISC: NONE
;
;* Copyright (c) 1998 by Adept Technology, Inc.
;---------------------------------------------------------

AUTO $ans

; init des variables choice, run, quit, $ans

choice = FALSE
run = FALSE
quit = FALSE

PROMPT , $ans

; test de la reponse

choice = ASC($ans)-48

IF (choice > min-1) AND (choice < max+1) THEN


run = TRUE
ELSE
TYPE /C1, /X10, "*** Chois incorrect... ***"
WAIT.EVENT , 2
END

IF choice == 0 THEN
run = FALSE
quit = TRUE
END

RETURN

.END

290
Cours de formation Programmation ADEPT V+ 1

.PROGRAM vp1_menu.output(min, max) ;module d’affichage du menu

; ABSTRACT: ce module affiche le menu a l’ecran


;
; INPUT PARAM: NONE
;
; OUTPUT PARAM: min: choix mini
; max: choix maxi
;
; SIDE EFFECTS: NONE
;
; MISC: NONE
;
;* Copyright (c) 1998 by Adept Technology, Inc.
;---------------------------------------------------------

; affiche le titre du menu

TYPE /C45, /U40, /X15, "*** MENU PRINCIPAL ***"


; affiche le menu

TYPE
TYPE /X15, "0 => FIN
TYPE /X15, "1 => appel programme prise depose"
TYPE /X15, "2 => appel programme d’affichage tp cycle"
TYPE

; nombre de choix dans le menu

min = 0
max = 2

; demande a l’utilisateur de fair sont choix

TYPE /X15, "Votre choix: ", /S

RETURN

.END

291
Cours de formation Programmation ADEPT V+ 1

.PROGRAM vp1_pnp() ;module de prise et depose

; ABSTRACT: ce modul permet de prendre et de deposer une piece


;
;
; INPUT PARAM: NONE
;
; OUTPUT PARAM: NONE
;
; SIDE EFFECTS:
;
; MISC: Les positions suivantes doivent êtres definies avant l’utilisation
; de ce programme.
; loc1
; loc2
;
;* Copyright (c) 1998 by Adept Technology, Inc.
;---------------------------------------------------------

CALL vp1_move.start()

; vas au point loc1

OPENI
APPRO loc1, 30
MOVE loc1
CLOSEI
DEPART 30
APPRO loc2, 30
MOVE loc2
OPENI
DEPART 30

; deplace la piece du point loc2 vers loc1

OPENI
APPRO loc2, 30
MOVE loc2
CLOSEI
DEPART 30
APPRO loc1, 30
MOVE loc1
OPENI
DEPART 30

.END

292
Cours de formation Programmation ADEPT V+ 1

.PROGRAM vp1_move.start() ;Routine de degagement de l’axe

; ABSTRACT: Cette routine reduit la vitesse programme et remonte l’axe Z


; puis deplace le robot a la position #start.
; La vitesse programme est ensuite reinitialisé a sa valeur d’origine
;
; INPUT PARAM: NONE
;
; OUTPUT PARAM: NONE
;
; SIDE EFFECTS: The Z-height used in this example is 330 mm and is
; for an Adept 550 Robot. This value may be different
; for other robots.
;
; MISC: The following locations must be defined before this
; application will run:
; #start
;
;* Copyright (c) 1998 by Adept Technology, Inc.
;---------------------------------------------------------

; Capture the current permanent program speed & lower the speed

perm.speed = SPEED(2)
SPEED 20 ALWAYS

; Raise the quill to the max height

DEPART 330-DZ(HERE)

; Move the robot to the #start location

MOVE #start

; Reset the permanent program speed

SPEED perm.speed ALWAYS

; Return to the calling routine

RETURN

.END

293
Cours de formation Programmation ADEPT V+ 1

.PROGRAM vp1_cycle.time() ;Cycle time optimization

; ABSTRACT: This subroutine picks a part from the pick location


; then places the part at the place location. After
; placing the part, the robot departs.
;
;
; INPUT PARAM: NONE
;
; OUTPUT PARAM: NONE
;
; SIDE EFFECTS: The locations listed below must be defined so that
; the robot will not crash into fixtures, tooling, ect.
;
; MISC: The following locations must be defined before this
; application will run:
; #start
; loc1
; loc2
;
;* Copyright (c) 1998 by Adept Technology, Inc.
;---------------------------------------------------------

AUTO $d

; Type sub-menu title to screen.

TYPE /C45, /U40, /X15, "*** ADEPT V+ PROGRAMMING II TRAINING CLASS ***"
TYPE /X15, "Cycle Time Optimization Workshop (Version 1.0)", /C1
TYPE /X15, " Copyright 1998 by Adept Technology, Inc.", /C1

TYPE /X15, " This program is not functional at this time."


TYPE /X15, " Press ENTER to return to the main menu.", /S

PROMPT , $d

; Return to the calling routine

RETURN

.END

294
Cours de formation Programmation ADEPT V+ 1

a.vp1_cl
Menu Program Exemple :LOGIGRAMME

CALL menu.main CALL p1_menu.output

CALL vp1_menu.input

CASE

OUI choix ==
NON
fin = TRUE

OUI choix ==
NON
CALL PROGRAM
vp1_pnp

OUI choix ==
NON
CALL
PROGRAM

ANY

UNTIL
fin

fin =
TRUE
Retour au
Systeme

295
Cours de formation Programmation ADEPT V+ 1

Exemple 2

L’exemple suivant permet de metre en œuvre une application simple en muti tache soit :

Tache0 Tache 1 Tache 3 Tache 6

Programme de mvt Programme de Programme de gestion Programme de gestion


robot : GEMMA des io du putpitre

A) En cas de deafut systeme Permet une mise sous permet de traiter des Affiche les differents menu
ex. arret d’urgence le prog. puissance du robot et un evennements sur des IO et de choix.
est interrompu et le module ettalonage en cas de perte de de les interpretés. Affiche les messages
« err.r.reacti » est executé. puissance. d’erreur
Le redemarge du cycle en Visualisation de la selection
mose manuel ou auto sera Permet de selectionner le du commutateur en AUTO,
autorisé par le module mode auto par basculement voyant clignotant attente
GEMMA d’un commutateur et de passage efectif en Auto par
valider ce mode par pression le GEMMA pour voyant fix
B) Le mode de marche sur le BP dcy Visualisation commutateur
definit par le GEMMA en pas à pas ( voyant pap
permet soit de lancer ce Permet de selectionner le clignotant)
module en auto, soit en pap. mode pap par basculement
Une pression sur le BP pap du commutateur Visualisation defaut de
fait evoluer le robot en pas a AUTO/MANU puissance (voyant AU
pas clignottant)

296
Cours de formation Programmation ADEPT V+ 1

297
Cours de formation Programmation ADEPT V+ 1

298
Cours de formation Programmation ADEPT V+ 1

299
Cours de formation Programmation ADEPT V+ 1

300
Cours de formation Programmation ADEPT V+ 1

301
Cours de formation Programmation ADEPT V+ 1

302
Cours de formation Programmation ADEPT V+ 1

303
Cours de formation Programmation ADEPT V+ 1

304
Cours de formation Programmation ADEPT V+ 1

305
Cours de formation Programmation ADEPT V+ 1

Exemple 3 : Gestion du Flex Feeder

Le principe est celui de la gestion asynchrone via 3 taches :


Le programme principal suivant, sera exécuté dans une tache disponible, il exécutera dans deux
autres tache les programmes de gestion tapis (flx.m.main) et gestion ascenseur (flx.m.lift).
Ce programme permet d’informer la vision que la séquence indexage du tapis de vision est terminé,
elle permet également de demander une nouvel sécance d’indexage du tapis vision (aménage de
pièces).
ATTENTION : les variables glogale utilises dans ce programme doivent être affectés avant toutes
execution, voir le programme géneral Flex3

306
Cours de formation Programmation ADEPT V+ 1

307
Cours de formation Programmation ADEPT V+ 1

308
Cours de formation Programmation ADEPT V+ 1

309
Cours de formation Programmation ADEPT V+ 1

310
Cours de formation Programmation ADEPT V+ 1

311
Cours de formation Programmation ADEPT V+ 1

312
Cours de formation Programmation ADEPT V+ 1

313
Cours de formation Programmation ADEPT V+ 1

LISTE DES FONCTIONS V+


Version 11.3 – 13.0

ABORT task_num Arrête l’exécution d’une tâche en cours de fonctionnement. page 98

ABOVE Commande un changement de configuration du robot lors du prochain


mouvement, de manière à avoir le coude de celui-ci au dessus de la ligne
allant de l’épaule au poignet.

ABS (value) Retourne la valeur absolue.

ACCEL (profile) acceleration, deceleration


Donne les valeurs de profile, d’accélération et de décélération pour les
prochains mouvements. Page 189

ACCEL (select) Retourne les réglages de profile, d’accélération et de décélération actuels


ainsi que leurs valeurs maximales. page

AIO.IN (channel, gain)


Lecture d’un des canaux d’une des cartes d’entrées/sorties analogiques

AIO.INS (channel) Teste si un canal d’entrée/sortie est installé.

AIO.OUT channel = value


Ecrit une valeur sur un des canaux des cartes d’entrées/sorties analogiques.

ALIGN Aligne l’axe Z du repère outil avec l’axe du repère WORLD le plus proche.

ALTER (control) Dx, Dy, Dz, Rx, Ry, Rz


Spécifie la magnitude de la variation à apporter au calcul en temps réel de la
trajectoire.

ALTOFF Interdit la modification en temps réel de la trajectoire. (mode “alter”).

ALTON (lun) mode


Autorise la modification en temps réel de la trajectoire (mode “alter”), et
spécifie son mode de fonctionnement.

...ALWAYS Utilisé en conjonction avec certaines instructions pour les rendre


permanentes. page186
... value AND value ...
Retourne le résultat d’un ET logique entre les deux variables. Page 116

ANY Signale le début de l’exécution alternatif d’un groupe d’instructions dans une structure de
type CASE.

APPRO location, distance


APPROS location, distance
Commande le déplacement du robot vers une position relative au point à
atteindre.Page 176

314
Cours de formation Programmation ADEPT V+ 1

ASC (string, index) Retourne la valeur ASCII d’un caractère spécifique d’une chaîne de
caractères.

ATAN2 (value_1, value_2)


Retourne la valeur de l’angle dont la tangente est égale à la valeur :
value_1/value_2.

ATTACH (lun, mode) $device


Rend accessible le périphérique pour une utilisation ultérieure dans le
programme.page 262

AUTO type variable, ..., variable


Déclare une variable temporaire qui sera automatiquement créée dans la
pile lorsque le programme sera exécuté.page 124

AUTO.POWER.OFF
Autorise ou pas le V+ à couper la puissance lors de certaines erreurs.

... value BAND value ...


Retourne le résultat d’un ET binaire entre les deux variables.

BASE X_shift, Y_shift, Z_shift, Z_rotation


Décale et tourne la position relative du repère WORLD par rapport à la base
du robot.

BASE Retourne la valeur courante du décalage du repère WORLD par rapport à la


base du robot.

BCD (value) Convertit une valeur réelle au format BCD (Binary Coded Decimal).

BELOW Commande un changement de configuration du robot lors du prochain


mouvement de manière à avoir le coude de celui-ci au dessous de la ligne
allant de l’épaule au poignet.
...BELT Contrôle la fonction de suivi de convoyeur.

BELT (%belt_var, mode)


Retourne des informations relatives au convoyeur utilisé lors de l’utilisation
du suivi de convoyeur.

... BELT.MODE Détermine les caractéristiques du mode de fonctionnement du suivi de


convoyeur en V+.

BITS first_sig, num_sigs = value


Active un groupe de signaux digitaux en fonction d’une valeur. Page 204

BITS (first_sig, num_sigs)


Retourne la valeur d’un groupe de signaux digitaux. Page 205

BMASK (bit, bit, ..., bit)

315
Cours de formation Programmation ADEPT V+ 1

Crée un masque bit à bit.

... value BOR value ...


Retourne le résultat d’un OU binaire entre les deux paramètres.

BRAKE Arrête le mouvement en cours d’exécution.

BREAK Suspend l’exécution du programme jusqu’à la fin du mouvement en cours.

BSTATUS Retourne l’état du suivi de convoyeur.

... value BXOR value ...


Retourne le résultat d’un OU exclusif binaire entre deux variables.

SCALE(transformation BY value)
SHIFT(transformation BY value, value,value)
Complément de la syntaxe des instructions SCALE et SHIFT.

CALIBRATE mode, status


Commande la prise d’origine machine du robot (POM).

CALL program(arg_list)
Suspend l’exécution du programme le temps de l’exécution du sous-
programme.

CALLP var(arg_list)
Appelle un programme par l’adresse de son pointeur.
CALLS string(arg_list)
Appelle un programme par le nom contenu dans la chaîne de caractères.

CASE value OF Définit une structure de test à choix multiples.

$CHR (value) Retourne le caractère correspondant à la valeur ASCII du réel.

CLEAR.EVENT task, flag, processor


RAZ de l’événement associé à la tâche spécifiée.

CLOSE
CLOSEI Ferme le préhenseur du robot.

COARSE tolerance ALWAYS


Active la précision d’arrêt grossière.

... COM value ... Retourne le complément binaire de la variable.

CONFIG (select) Retourne l’état de la configuration géométrique du robot ou l’état du


contrôle de l’asservissement.

COS(value) Retourne le cosinus de la valeur.

316
Cours de formation Programmation ADEPT V+ 1

... CP Contrôle l’état de la fonction de déplacement continu (CONTINUOUS


PATH).

CPOFF ALWAYS Instruction commandant au robot de stabiliser sa position à la fin du


prochain mouvement.

CPON ALWAYS Instruction commandant au robot de ne pas stabiliser sa position à la fin du


prochain mouvement.

CYCLE.END task_num, stop_flag


Instruction commandant l’arrêt de l’exécution d’une tâche et qui suspend
l’exécution du programme jusqu’à l’arrêt de la tâche à arrêter.

DBLB ($string, first_char)


Convertit une chaîne de caractères codée au format 8 bytes IEEE en un réel
double précision.

$DBLB (value)
Convertit un réel double précision en une chaîne de caractères codée au
format 8 bytes IEEE.

DCB (value)
Convertit une valeur binaire codée en BCD en une valeur entière.

... DECEL.100 [robot_num]


Autorise ou pas l’utilisation de la valeur 100 comme valeur maximum pour
l’accélération et la décélération.

$DECODE ($string_var, string_exp, mode)


Extrait la partie de la chaîne de caractères encadrée par un jeu de caractères.

DECOMPOSE array_name[index] = location


Extrait les valeurs réelles définissant une variable de type position.

$DEFAULT () Retourne la chaîne de caractère correspondant au périphérique, à l’unité de


sauvegarde et au chemin par défaut.

DEFBELT %belt_var = nom_trans, belt_num, vel_avg, scale_fact


Définit une variable de type suivi de convoyeur.

DEF.DIO signal = address, type


Assigne un numéro de base de signal à une carte d’entrées / sorties non
Adept.

DEFINED (var_name)
Détermine si une variable est définie.

DELAY time
Arrête le mouvement du robot durant le temps spécifié.
DEPART distance

317
Cours de formation Programmation ADEPT V+ 1

DEPARTS distance
Commande un mouvement de recul du robot de la distance spécifiée.

DEST Retourne la transformée correspondant à la position vers laquelle le robot se


déplace.

DETACH ( logical_unit)
Détache le périphérique spécifié au programme.

DEVICE ( type, unit, error, p1, p2, ... ) out[i], in[j], out_trans, in_trans
Envoi une commande ou des données à un périphérique externe et retourne
des données depuis ce périphérique.

DEVICE (type, unit, error, p1, p2,... )


Retourne une valeur réelle depuis un périphérique externe.
DEVICES (type, unit, error, p1, p2, ...) $out, $in
Envoi un groupe de commandes ou de données à un périphérique externe et
retourne des données depuis ce périphérique.

DISABLE switch, ..., switch


Désactive un ou plusieurs SWITCH système.

DISTANCE (location, location)


Retourne la distance entre deux transformées.

DO Début d’une structure de type DO …. UNTIL.

DOS string, error Exécute l’instruction programme contenue dans la chaîne de caractères.

DRIVE joint, change, speed


Déplace un des axes du robot.

...DRY.RUN Contrôle si le V+ peut commander le déplacement du robot.

DURATION time ALWAYS


Détermine le temps minimum du prochain déplacement.

DURATION (select)
Retourne le temps minimum du déplacement déterminé par l’instruction
DURATION.
DX (location)
DY (location)
DZ (location)
Retourne la composante X, Y ou Z de la transformée.

ELSE Sépare une structure de contrôle IF ...THEN en deux


groupes d’instructions.

ENABLE switch, ..., switch


Active un ou plusieurs SWITCH système.

318
Cours de formation Programmation ADEPT V+ 1

$ENCODE (output_specification, output_specification, ... )


.Retourne une chaîne de caractères créée à partir des variables d’entrées.

END Marque la fin d’une structure de contrôle.

.END Marque la fin d’un programme.


ERROR (task_num, select)
Retourne le numéro de l’erreur ayant provoqué une interruption de type
REACTE.

$ERROR (error_code)
Retourne la chaîne de caractères associée à un numéro d’erreur.

ESTOP Génère un arrêt d’urgence logiciel.

EXECUTE /C task_num program(param_list), cycles, step, priority[i]


Commande l’exécute d’un programme.

EXIT count Commande la sortie de " count " structures de contrôle.

FALSE Retourne la valeur utilisée par le V+ correspondant au NON


logique.

FCLOSE (logical_unit)
Ferme le fichier disque, la fenêtre graphique ou l’icône graphique ouverte
sur l’unité logique.

FCMND (logical_unit, command_code) $ out_string, $in_string


Génère une commande spécifique à l’unité logique.

FDELETE (logical_unit) object


Efface le fichier disque spécifié, la fenêtre graphique ou l’icône graphique
spécifiée.

FEMPTY (logical_unit)
Vide le tampon interne utilisé dans le cas d’écriture dans un fichier disque
ou une fenêtre graphique en forçant l’écriture dans le fichier ou la fenêtre.

FINE tolerance ALWAYS


Active la précision d’arrêt précise.

FLIP Commande un changement de configuration du robot


lors du prochain mouvement de manière à ce que l’angle de " pitch " du
poignet ait une valeur négative.

FLTB (string, first_char)


Convertit une chaîne de caractères codée en 4 bytes au format IEEE en un
réel simple précision.

319
Cours de formation Programmation ADEPT V+ 1

$FLTB (value) Convertit un réel simple précision en une chaîne de caractères codée sur 4
bytes au format IEEE.

FOPEN (logical_unit, mode) attribute_list


Crée et ouvre une fenêtre graphique ou une connexion TCP, ou ouvre une
fenêtre graphique existante pour un accès de lecture / écriture.

FOPEN_ (lun, record_len, mode) file_spec


Ouvre un fichier disque pour des opérations de lectures seules, de lecture et
d’écriture....

FOR loop_var = initial TO final STEP increment


Exécute un groupe d’instructions un certain nombre de fois.

FORCE._ Instruction retournant l’état et commandant le fonctionnement


de l’option AdeptForce.

FRACT (value) Retourne la partie décimale d’un réel.

FRAME (location_1, location_2, location_3, location_4)


Retourne la transformée définie par quatre positions.

FREE (memory, select)


Retourne la taille de la mémoire disponible.

FSEEK (logical_unit, record_number)


Positionne le pointeur d’accès dans un fichier à accès aléatoire.

FSET (logical_unit) attribute_list


Active ou modifie les attributs d’un port série, d’une fenêtre graphique,
d’un port réseau..

GAIN.SET set, motor


Choisit un type de réglage d’asservissement pour un ou plusieurs axes.

GARC (lun, mode) xc, yc, radius, ang0, angn


Trace un cercle ou un arc de cercle sur une fenêtre graphique.

GCHAIN (lun) x, y, points, direction[index]


Trace une suite de points sur une fenêtre graphique de manière à créer une
figure complexe.

GCLEAR (lun) Efface la fenêtre graphique courante.


GCLIP (lun) x, y, dx, dy
Définit la zone d’affichage sur la fenêtre graphique courante.

GCOLOR (lun) foregrnd, backgrnd


Définit la couleur d’affichage et la couleur de fond pour les prochains
affichages.

320
Cours de formation Programmation ADEPT V+ 1

GCOPY (lun) x, y = src_x, src_y, dx, dy


Copie un région de la fenêtre graphique vers une autre région de la même
fenêtre graphique.

GET.EVENT (task) Retourne les événements .définis pour la tâche spécifiée

GETC (lun, mode) Retourne le BYTE correspondant au dernier caractère reçu dans l’unité
logique spécifiée.

GETEVENT (lun, mode) events[index]


Retourne les informations lues dans une fenêtre graphique ou au terminal.

GFLOOD (logical_unit) x, y
Remplit de la couleur par défaut une région de la fenêtre graphique.

GGETLINE (logical_unit) $data[index], num.pix = x, y, nx


Retourne l’état des pixels situés sur un segment de droite de la fenêtre
graphique.

GGET.LINE (logical_unit) $data[index], num.pix = x, y, nx


Retourne l’état des pixels situés sur un segment de droite de la fenêtre
graphique.

GICON (lun, mode) x, y, $name, index


Affiche un symbole prédéfini (ICONE) dans une fenêtre graphique.

GLINE (lun) x0, y0, xn, yn


Affiche un segment de droite sur la fenêtre graphique.

GLINES (logical_unit, mode) points, coord[offset,index]


Affiche plusieurs segments de droite sur la fenêtre graphique.

GLOBAL type variable, ..., variable


Déclare des variables globales ainsi que leur type.

GLOGICAL (logical_unit) code, planes


Définit le type de l’opération logique à effectuer entre les nouveaux
affichages graphiques et ceux existants.

GOTO label Effectue un saut inconditionnel à un label.

GPANEL (lun, mode) x, y, dx, dy


Affiche un rectangle avec les bords ombrés.

GPOINT (lun) x, y Affiche un pixel sur la fenêtre graphique.

GRECTANGLE (lun, mode) x, y, dx, dy


Affiche un rectangle sur la fenêtre graphique.

321
Cours de formation Programmation ADEPT V+ 1

GSCAN (lun) lines, data[offset,index]


Affiche un certain nombre de lignes horizontales pour former une figure
complexe sur la fenêtre graphique.

GSLIDE (lun, mode) id = x, y, length, max_pos, arrow_inc, handle


Affiche un potentiomètre linéaire sur la fenêtre graphique.

GTEXTURE (lun) mode, pattern


Active le mode opaque ou transparent pour les prochains affichages
graphiques.

GTRANS (lun, mode) array[,]


Change le facteur d’échelle, tourne ou déplace l’origine du repère graphique
de la fenêtre..

GTYPE (lun, mode) x, y, $text, font_numb, path, rotation


Affiche une chaîne de caractères sur la fenêtre graphique.

HALT Arrête l’exécution du programme.

HAND Retourne l’état de préhenseur.

... HAND.TIME Détermine le temps d’action du préhenseur lors de l’utilisation des


instructions CLOSEI, OPENI et RELAXI.

HERE location_var Assigne la position courante du robot à la variable de position.

HERE Retourne la transformée correspondant à la position courante du robot.

HOUR.METER Retourne la valeur du compteur horaire du robot.


ID (component, device, board)
Retourne la valeur identifiant la configuration du robot.

$ID (select) Retourne la chaîne de caractères identifiant le robot.

IDENTICAL (location, location)


Détermine si deux transformées sont strictement identiques.

IF logical_expr GOTO label


Effectue un saut vers le label si le résultat de l’équation est vrai.

IF logical_expr THEN
Exécute le groupe d’instructions suivant si le résultat de l’équation est vrai.

IGNORE signal Annule l’effet d’une instruction REACT ou REACTI.

INRANGE (location)
Retourne une valeur identifiant la possibilité du robot à atteindre une
position.

322
Cours de formation Programmation ADEPT V+ 1

INSTALL password, op
Installe ou supprime une option logicielle.

INT (value) Retourne la partie entière d’un réel.

INTB ($string, first_char)


Convertit une chaîne de caractères codée sur 2 bytes au format IEEE en un
entier binaire signé codé sur 16 bits.

$INTB (value) Convertit un entier binaire signé codé sur 16 bits en une chaîne de
caractères codée sur 2 bytes au format IEEE.

... INTERACTIVE Active ou désactive les confirmations lors de l’exécution de certaines


commandes.

INT.EVENT source, level


Envoi un événement à la tâche courante dès qu’une interruption prédéfinie
est active sur le bus VME.

INVERSE(transformation) Retourne la transformée inverse d’une transformée. Page 223

IOGET_ (address, type, cpu)


Retourne le contenu de l’adresse mémoire spécifiée d’un périphérique
présent sur le bus VME.

$IOGETS (address, length, type, cpu)


Retourne la chaîne de caractères contenue à l’adresse mémoire spécifiée
d’un périphérique présent sur le bus VME.

IOPUT_ address, type, cpu = value


Ecrit une valeur à l’adresse mémoire d’un périphérique présent sur le bus
VME.

IOSTAT (lun, mode)


Retourne le résultat de la dernière opération de lecture ou d’écriture sur le
périphérique.

IOTAS (address, type, cpu)


Contrôle l’accès à un périphérique partagé sur le bus VME.

SPEED value IPS ALWAYS


Spécifie que l’unité de vitesse est en pouces par seconde (Inches Per
Seconde).

... KERMIT.RETRY
Détermine le nombre maximum d’essais que le driver KERMIT peut
effectuer avant de reporter une erreur.

323
Cours de formation Programmation ADEPT V+ 1

... KERMIT.TIMEOUT
Détermine le paramètre de délais que le driver de protocole KERMIT
enverra au serveur.

KEYMODE first_key, last_key = mode, setting


Détermine le fonctionnement d’un groupe de touches du boîtier
d’apprentissage (MCP). Page265

KILL task_number Vide la pile d’exécution d’une tâche et ferme l’accès aux périphériques
ouverts.

LAST (array_name[])
Retourne l’index le plus élevé d’un tableau.

LATCH (select) Retourne la transformée correspondant à la position du robot lors de


l’interruption provoquée par la fonction GUARDED-MOVE de l’option
AdeptForce ou par une entrée rapide.

LATCHED (select) Retourne l’état de la configuration de la fonction GUARDED-MOVE de


l’option AdeptForce ou de l’entrée d’interruption.

LEFTY Commande un changement de configuration du robot lors du prochain


mouvement, de manière à avoir le bras du robot configuré comme celui
d’un bras gauche humain.

LEN (string) Retourne le nombre de caractères d’une chaîne de caractères.


Page112

LNGB ($string, first_char)


Convertit une chaîne de caractères codée en 4 bytes en un entier binaire
signé codé sur 32 bits.

$LNGB (value) Convertit un entier binaire signé codé sur 32 bits en une chaîne de
caractères codée sur 4 bytes.

LOCAL type variable, ..., variable


Déclare une variable permanente définie uniquement durant l’exécution de
ce programme. Page 124

LOCK priority Définit le niveau de priorité minimum pour l’appel des interruptions de type
REACT ou REACTI.

MAX (value, ..., value)


Retourne la valeur la plus grande parmi la liste des valeurs.

MC monitor_command
Introduit une commande moniteur dans un fichier de commande.

... MCP.MESSAGE
Contrôle la manière dont les messages d’erreur sont affichés lorsque le

324
Cours de formation Programmation ADEPT V+ 1

contrôleur n’est pas en mode manuel.

MCS string Introduit une commande moniteur dans un programme V+.

... MCS.MESSAGE Active ou désactive l’affichage sur l’écran terminal des commandes MCS.

... MESSAGES Active ou désactive l’affichage de l’instruction TYPE.

$MID (string, first_char, num_chars)


Retourne la chaîne de caractères contenue dans la chaîne de caractères
d’entrée..

MIN (value, ..., value)


Retourne la valeur la plus petite parmi la liste des valeurs.

SPEED value MMPS ALWAYS


Spécifie que l’unité de vitesse est en millimètres par seconde. Page 186

... value MOD value ...


Retourne le modulo des deux paramètres.

... MONITORS
Active ou désactive l’utilisation de plusieurs fenêtres moniteur.

MOVE location Commande le déplacement du robot vers la position Page 175


MOVES location Commande le déplacement du robot vers la position en ligne droite. Page
175

MOVEF location, depart_clr, appro_clr,depart_tqe, horiz_accel_tqe,horiz_decel_tqe,


appro_tqe, model

MOVESF location, depart_clr,


appro_clr,depart_tqe,horiz_accel_tqe,horiz_decel_tqe, appro_tqe,
model
Commande le déplacement du robot sur un cycle de prise et dépose en
trois segments à la vitesse la plus rapide.
MOVET location, hand_opening
MOVEST location, hand_opening
Commande le déplacement du robot vers la position et active
simultanément le préhenseur..

MULTIPLE ALWAYS
Autorise une rotation complète sur les axes du robot..

NETWORK (component,code)
Retourne l’état du réseau et l’adresse IP du robot.

NEXT count Effectue un saut inconditionnel vers la fin de la structure de contrôle.

NOFLIP Commande un changement de configuration du robot lors du prochain

325
Cours de formation Programmation ADEPT V+ 1

mouvement de manière à ce que l’angle de " pitch " du poignet ait une
valeur positive.

NONULL ALWAYS
Instruction .commandant au programme de ne pas stabiliser la position du
robot à la fin du mouvement. Page 190

NOOVERLAP ALWAYS
Génère une erreur programme si le prochain mouvement doit effectuer une
rotation sur un des axes robot de plus de 180°.

NORMAL (transformation_value)
Calcule la transformée corrigée de toute erreur mathématique.

... NOT value ... Calcule un NON logique.

... NOT.CALIBRATED
Retourne l’état de calibration des robots connectés au système ou décalibre
les robots.

NULL ALWAYS Commande au programme d’attendre la stabilisation du robot à la fin du


mouvement. Page 190

NULL Retourne la transformée nulle ayant toutes ses composantes égales à


0.

OFF Idem FALSE.

ON Idem TRUE.
OPEN
OPENI Ouvre le préhenseur du robot.

... value OR value ... Retourne le résultat d’un .OU logique entre les deux variables

OUTSIDE (low, test, high) Test si la variable est hors des deux limites.

OVERLAP ALWAYS Désactive la fonction NOOVERLAP pour le prochain mouvement.

PACK string_array[index], first_char, num_chars = string


PACK string_var, first_char, num_chars = string
Remplace une chaîne de caractères dans un tableau de chaînes de caractères,
ou dans une chaîne de caractères.
PARAMETER parameter_name = value
PARAMETER parameter_name[ index] = value
Change la valeur d’un paramètre système.

PARAMETER (parameter_name)
PARAMETER (parameter_name[index])
Retourne la valeur d’un paramètre système. Page 240
PAUSE Stoppe l’exécution du programme. Page 99

326
Cours de formation Programmation ADEPT V+ 1

PAYLOAD value, motor


Ajuste l’asservissement d’un axe robot en fonction de la charge
transportée..

#PDEST Retourne une variable de position articulaire correspondant à la position


vers laquelle le robot se déplace.

PENDANT (select) Retourne une entrée du boîtier d’apprentissage. Page 264

PI Retourne la valeur de la constante mathématique pi (3.1415926…).

#PLATCH (select) Retourne une variable de position articulaire correspondant à la position du


robot lors de l’interruption provoquée par la fonction GUARDED-MOVE
de l’option AdeptForce ou par une entrée rapide..

POS (search_string, sub_string, start)


Retourne la position d’une chaîne de caractères dans une autre chaîne de
caractères.

... POWER Contrôle la puissance du robot.

#PPOINT (j1_value, j2_value, j3_value, j4_value, j5_value, j6_value)


Retourne une variable de position articulaire correspondant à la position de
chaque articulation du robot.

PRIORITY Retourne l’état de la priorité minimum dans le programme.

.PROGRAM program_name(argument_list) ;comment


Définit le nom du programme à passer en argument lors de l’appel.

PROMPT output_string, variable_list


Affiche une chaîne de caractères à l’écran et attend une réponse au clavier.
Page 91

RANDOM Retourne une valeur pseudo aléatoire.

REACT signal_num, program, priority


Active la surveillance d’une entrée. Dès que l’entrée est présente le
programme est appelé de manière asynchrone. Page 243

REACTE program_name Active la surveillance d’erreur. Dès qu’une erreur apparaît, le


programme est appelé de manière asynchrone. Page 250

REACTI signal_num, program, priority


Active la surveillance d’une entrée. Dès que l’entrée est présente, le
mouvement en cours du robot est arrêté et le programme est appelé de
manière asynchrone. Page 245

327
Cours de formation Programmation ADEPT V+ 1

READ (lun, record_num, mode) var_list


Lit un champ dans un fichier ouvert ou un périphérique. Pour un
périphérique, AdeptNet lit une chaîne de caractères d’une connexion TCP..

READY Déplace le robot à la position READY.


RELAX
RELAXI Met à l’échappement les préhenseurs du robot.

RELEASE task Autorise la prochaine tâche à fonctionner.

RESET Met à zéro toutes les sorties digitales. Page 207

... RETRY Contrôle si le bouton " PROGRAM START " autorise le redémarrage
du programme.

RETURN Termine l’exécution du programme (routine).

RETURNE Termine l’exécution du programme de traitement d’erreur appelé avec


la fonction REACTE.

RIGHTY Commande un changement de configuration du robot lors du prochain


mouvement, de manière à avoir le bras du robot configuré comme celui
d’un bras droit humain.

... ROBOT [index] Active ou désactive un ou plusieurs robots.

ROBOT.OPR Exécute des opérations spécifiques au robot sélectionné.

RUNSIG signal_num Active la sortie tout au long de l’exécution de la tâche . Page 100

RX (angle)
RY (angle)
RZ (angle) Retourne la transformée correspondant à l’orientation. page
211

SCALE (transformation BY scale_factor)


Retourne la transformée correspondant à la transformée d’origine dont les
paramètres de position sont mis à l’échelle.

... SCALE.ACCEL [robot_num]


Active ou désactive l’accélération proportionnelle à la vitesse programmée.

... SCALE.ACCEL.ROT [robot_num]


Spécifie si SCALE.ACCEL prend en compte l’accélération de rotation
cartésienne lors d’un déplacement en ligne droite.

... SCREEN.TIMEOUT
Définit le temps de TIME-OUT pour éteindre le moniteur graphique.

328
Cours de formation Programmation ADEPT V+ 1

SEE (lun) prog_spec, step


Appelle l’éditeur de programme graphique.

SELECT device_type = unit


Choisit le numéro du périphérique à utiliser dans la tâche courante.

SELECT (device_type, mode)


Retourne le numéro du périphérique utilisé dans la tâche courante.

SET location_var = location_value


Définit une position. Page 107

SET.EVENT task, flag, processor


Définit un événement associé à une tâche.

#SET.POINT Retourne la dernière position articulaire calculée par le générateur de


trajectoire.

... SET.SPEED Définit si la vitesse moniteur peut être changée à l’aide du boîtier
d’apprentissage.

SETBELT %belt_var = expression


Définit la valeur de l’offset codeur en fonction de la valeur de la variable.

SETDEVICE (type, unit, error, command) p1, p2, ...


Initialise un périphérique ou un ensemble de paramètres d’un périphérique.

SHIFT (transformation BY x_shift, y_shift, z_shift)


Retourne une transformée égale à la transformée d’origine décalée de la
valeur de décalage sur chaque axe.

SIG (signal_num, ..., signal_num)


Retourne le résultat d’un ET binaire entre l’état des signaux définis entre
parenthèses. Page 202

SIG.INS (signal_num)
Retourne TRUE ou FALSE selon que le numéro du signal est défini ou pas.

SIGN (value) Retourne 1 si value est positif et –1 si value est négatif. Page 202

SIGNAL signal_num, ..., signal_num


Active ou désactive les signaux. Page 202

SIN (value) Retourne la valeur du sinus de value.

SINGLE ALWAYS Limite la rotation du poignet entre +180° et –180°.

SOLVE.ANGLES o.jts[o.idx], o.flags, error = trans, i.jts[i.idx],i.flags


Calcule la position articulaire équivalente à la transformée.

329
Cours de formation Programmation ADEPT V+ 1

SOLVE.FLAGS (joints[index])
Retourne la configuration géométrique du robot correspondant aux
positions articulaires.

SOLVE.TRANS transform, error =joints[index]


Calcule la transformée équivalente à la position articulaire.

SPEED speed_factor, r_speed_factor units ALWAYS


Définit la vitesse nominale pour le prochain déplacement. Page 186

SPEED (select) Retourne un des facteurs de vitesse.

SPIN speeds[index] Commande la rotation d’un ou de plusieurs axes à la vitesse spécifiée.

SQR (value) Retourne le carré de la value.

SQRT (value) Retourne la racine carré de value.

STATE (select) Retourne des informations d’état de l’ensemble robot. Page 253

STATUS (program_name) Retourne l’état du programme. Page 97

STOP Termine l’exécution du programme.

STRDIF ($a, $b) Compare deux chaînes byte par byte pour les classer.

SWITCH switch_name = value


SWITCH switch_name[index] = value
Active ou désactive un switch système. Page 238

SWITCH (switch_name)
SWITCH (switch_name[index])
Retourne l’état d’un switch système.

$SYMBOL ( pointer) Retourne le symbole caractérisé par l’adresse du pointeur.

SYMBOL.PTR ( string, type)


Détermine l’adresse du pointeur d’un symbole.

TAS (variable, new_value)


Retourne l’état d’une variable réelle et lui assigne une nouvelle valeur. Les
deux actions ont effectuées un même cycle CPU

TASK (select, task_num)


Retourne des informations sur une tâche.

... TERMINAL Détermine la manière dont le V+ va réagir avec le terminal.

TIME time_string Initialise la date et l’heure.

330
Cours de formation Programmation ADEPT V+ 1

TIME (string, select)


Retourne un entier correspondant à la date ou à l’heure.

$TIME (date, time) Retourne une chaîne de caractères correspondant à la date ou à l’heure.

TIMER timer_number = time_value


Initialise une temporisation système à une certaine valeur. Page 196

TIMER (timer_number)
Retourne la valeur en seconde d’une temporisation système. Page 196

TOOL transformation_value
Définit la transformée correspondant à la position du centre d’outil par
rapport au flasque de fixation de l’outil. Page 227

TOOL Retourne la valeur courante de la transformée de la position du centre


d’outil. Page 227

TPS Retourne le nombre d’impulsion que l’horloge du système effectue


chaque seconde.

... TRACE Contrôle l’affichage des pas programme sur l’écran du terminal.

TRANS (X_value, Y_value, Z_value, y_value, p_value, r_value)


Retourne la transformée correspondant aux coordonnées entre parenthèses.
Page 213

TRANSB (string, first_char)


Convertit en chaîne de caractères codée sur 48 bytes en une transformée.

$TRANSB (transformation)
Convertit une transformée en une chaîne de caractères codée sur 48 bytes.

... TRUE ... Retourne la valeur correspondant au OUI logique. Page 120

$TRUNCATE (string)
Retourne la chaîne de caractères correspondant aux caractères de la chaîne
d’origine placés à droite du caractère ASCII NULL.

TYPE output_specification, ..., output_specification


Affiche à l’écran les spécifications décrites dans " output_specification ".
page 90

UNIDIRECT directions[index]
Spécifie qu’un axe ne tourne que dans une seule direction.

$UNPACK (string_array[index], first_char, num_chars)


Extrait une chaîne de caractères à partir d’un tableau de chaînes de 128

331
Cours de formation Programmation ADEPT V+ 1

caractères

UNTIL expression Indique la fin d’une structure de contrôle de type DO…UNTIL.

... UPPER Contrôle si les caractères majuscules sont traités comme les caractères
minuscules.

VAL (string) Retourne la valeur représentée dans la chaîne de caractères.


Page 113

VALUE expression_list:
Indique la valeur à tester dans une structure de contrôle de type
CASE…OF. Page 158

WAIT condition Met le programme en attente jusqu’à ce que la condition soit vraie. Page
197

WAIT.EVENT mask, timeout


Suspend l’exécution du programme jusqu’à l’arrivée d’un événement ou
durant un certain temps. Page 197

WHILE condition DO
Début de la structure de contrôle WHILE…DO. Page 160

WINDOW %belt_var = location, location, program, priority


Définit la fenêtre de travail d’un convoyeur.

WINDOW (transformation, time, mode)


Retourne la position relative de la transformée par rapport au convoyeur.

WRITE (lun, record_num, mode) format_list


Ecrit un enregistrement dans un fichier ouvert ou sur tout autre
périphérique. Pour un périphérique AdeptNet écrit une chaîne de caractères
sur une connexion TCP ouverte et attachée. Page 264

... value XOR value ...


Retourne le résultat d’un OU exclusif entre les deux paramètres. Page 120

332
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 26

333
Cours de formation Programmation ADEPT V+ 1

CHAPITRE 27 MESSAGES DU SYSTEME

ø INTRODUCTION
Lorsqu'on utilise le système V + , il est possible que des erreurs de logiciel ou de matériel se
produisent. Par exemple, si l'on ne saisit pas les commandes ou les instructions correctement, V +
les rejette. Généralement, le système affiche un message indiquant l'erreur sur le terminal pour que
l'utilisateur la corrige.

ø LISTE ALPHABETIQUE
Cette section présente tous les messages d'erreur produits par V + , explique leur signification et les
mesures à prendre. Cette liste inclut également une série de messages d'information que V + affiche
dans certaines situations. Presque tous les messages de V + comportent un code numérique
permettant d'identifier le message à l'intérieur d'un programme V + . Les fonctions ERROR et
IOSTAT permettent de retourner ce code d'erreur. La chaîne $ERROR permet de retourner le
message d'erreur correspondant à un code d'erreur. Le code d'erreur de chaque message apparaît
dans la marge droite pour tous les messages ayant un code. Pour plus de commodité, la seconde
section de cette annexe indique toutes les erreurs V + par ordre de code numérique. Cette section
décrit tous les messages V + . Chaque description comprend le texte du message, son code d'erreur,
une explication de la cause probable du message et suggère la mesure à prendre.

**** Si le système comporte plusieurs robots et qu'un


message d'erreur associé à un robot particulier s'affiche, le numéro
du robot (Robot #) figure dans le message d'erreur.

334
Cours de formation Programmation ADEPT V+ 1

Aborted (–400)
Explication : La dernière commande saisie ou le programme en cours
d'exécution a été abandonné(e) par l'opérateur. *Are you sure (Y/N)? (10)
Action de l'utilisateur : Aucune. Explication : La commande demandée aura un effet important sur l'état du
système et V + veut savoir si vous voulez
*Already attached to logical unit* (–515) réellement l'exécuter.
Explication : Un programme a exécuté plusieurs instructions ATTACH pour Action de l'utilisateur : Pour que V + poursuive, taper o, puis appuyer sur
une unité logique donnée, sans exécuter Enter. Pour annuler la commande, taper n, puis
d'instruction DETACH entre les deux. (Le appuyer sur Enter, ou appuyer simplement sur
programme demeure lié à l'unité logique à la suite Enter.
de l'erreur.)
Action de l'utilisateur : Vérifier la logique du programme et supprimer les *Arithmetic overflow* (–409)
instructions ATTACH redondantes. Explication : Le résultat du calcul est en dehors de la plage permise des
variables numériques, ou V + a rencontré un
*Ambiguous AUTO invalid* (–477) nombre non compris dans la plage permise des
Explication : En quittant l'éditeur des programmes, V + a rencontré une entiers lors de la conversion d'une valeur
variable automatique de type indéfini. Le système numérique en nombre décimal, hexadécimal ou
ne peut déterminer s'il s'agit d'une variable réelle octal, ou en valeur logique. Les valeurs logiques
ou d'une transformée. Les variables automatiques utilisent des entiers à 32 bits, bien que la plupart
ne peuvent être ambiguës étant donné que leur des instructions qui nécessitent des arguments à
espace mémoire requis doit être connu avant de nombres entiers acceptent des entiers de 16 bits
les désigner. seulement. De plus, la grandeur des variables
Action de l'utilisateur : Ajouter le paramètre de spécification de type REAL numériques doit se situer dans une plage
ou LOC à l'instruction AUTO qui déclare la d'environ 5.4E-20 à 9.2E+18.
variable, ou référencer la variable dans une Action de l'utilisateur : Modifier le programme comme requis.
instruction de telle sorte que son type soit clair.
*A scratch frame store is needed (use VSELECT)* (–756)
*Ambiguous name* (–453) Explication : VCORRELATE transmet ce message d'erreur lorsqu'il effectue
Explication : L'abréviation utilisée pour la dernière commande, instruction une recherche hiérarchique d'échelle de gris ou
ou dernier nom défini par le système n'est pas une recherche binaire et qu'aucune mémoire vidéo
assez longue pour identifier l'opération prévue. de travail n'est disponible.
Action de l'utilisateur : Saisir à nouveau la dernière ligne avec une Action de l'utilisateur : Utiliser VSELECT pour rendre inopérante une
abréviation plus longue. mémoire vidéo virtuelle d'une mémoire vidéo
physique différente de celle recherchée.
*AOI not defined* (–752)
Explication : On a tenté de placer un outil vision à l'aide d'une AOI (zone
d'intérêt) qui n'a pas été définie. *Attempt to modify active belt* (–614)
Action de l'utilisateur : Définir l'AOI à l'aide de l'instruction VDEF.AOI.

335
Cours de formation Programmation ADEPT V+ 1

Explication : Une instruction qui modifiera le numéro du convoyeur démarrage automatique peuvent nécessiter une
actuellement suivi par le robot a été exécutée. intervention de l'utilisateur.
Action de l'utilisateur : Modifier le programme pour ne pas modifier le
numéro pendant que le robot le suit.
♦ Le robot peut commencer à se déplacer au cours de la procédure de
*Attempt to redefine variable class* variable_name (–470) démarrage automatique. Si nécessaire, on peut
Explication : Lors de la sortie de l'éditeur, la variable nommée a été détectée arrêter le robot en appuyant sur le bouton
à deux des endroits suivants : la liste des EMERGENCY STOP du contrôleur, ou sur le
arguments .PROGRAM, une instruction AUTO, bouton PANIC du boîtier de commande manuelle.
une instruction LOCAL ou une instruction
GLOBAL. *Backplane E-STOP detected by CPU* (–630)
Action de l'utilisateur : Modifier le programme pour inclure la variable à un Explication : Le système AdeptMotion a détecté une erreur ou un problème
seul de ces endroits. qui a déclenché le signal BRKSTOP sur le bus
VME. Si l'on rencontre cette erreur, cela signifie
*Attempt to redefine variable type* variable_name (–469) qu'il y a un signal BRAKE-ESTOP transitoire ou
Explication : Si l'on édite un programme, la dernière ligne saisie contient une un problème soit sur la carte d'interface de
référence à une variable qui est incohérente avec mouvement soit sur le module AWC.
son utilisation ailleurs dans le programme. Action de l'utilisateur : Corriger le problème qui fait que le système d'axes
L'erreur probable est la confusion entre une signale cette erreur .
variable de position et une variable numérique. Si
l'on vient de quitter l'éditeur, la variable nommée *Bad block in disk header* (–523)
est en conflit avec la variable globale existante. Explication : Au cours du formatage du disque, un bloc défectueux a été
Action de l'utilisateur : Si la nouvelle utilisation de la variable est correcte, détecté dans la zone d'en-tête du disque.
supprimer toutes les références à la variable L'opération de formatage a été interrompue et le
incorrecte, puis saisir à nouveau l'instruction qui a disque est inutilisable.
provoqué l'erreur. Si la nouvelle utilisation est Action de l'utilisateur : Saisir à nouveau la commande FORMAT — Si
incorrecte, utiliser un autre nom de variable. S'il y l'erreur persiste, changer de disquette.
a conflit avec une variable globale, utiliser la
commande DELETE_ pour supprimer la variable, *Bad camera calibration* (–726)
ou faire de la variable en conflit une commande Explication : Une instruction VPUTCAL a servi à transmettre les données
AUTO ou LOCAL pour le programme. d'étalonnage de la vision au système AdeptVision,
et un élément ou plusieurs éléments de données
Auto Startup... (Aucun) est erroné.
Explication : La procédure de démarrage automatique est amorcée. (Pour Action de l'utilisateur : S'assurer que le programme lit les données
plus de détails, voir la section sur les programmes d'étalonnage à partir d'un fichier de données
de commande.) valide, ou de l'assertion de valeurs correctes par le
Action de l'utilisateur : Aucune pour ce message, mais les commandes programme.
subséquentes du programme de commande de

336
Cours de formation Programmation ADEPT V+ 1

*Bad grip definition* (–721) L'étiquette peut être absente ou avoir été mal
Explication : L'instruction DEFGRIP a été exécutée avec des paramètres tapée lors de sa définition ou sur sa référence.
incorrects. Action de l'utilisateur : Vérifier les Action de l'utilisateur : Vérifier la définition et la référence de l'étiquette.
paramètres DEFGRIP. Les positions précisées par
les transformées ne doivent pas être trop * Breakpoint at (task) program_name, step n (17)
éloignées du prototype, et la largeur et la hauteur Explication : Un point d'interruption a été rencontré avant le pas indiqué.
des rectangles de la pince ne doivent pas être trop (Toute sortie associée à ce point d'interruption est
importantes. Une trop grande distance est une affichée sous le message ci-dessus.)
distance supérieure à la largeur de deux images. Action de l'utilisateur : Saisir une commande PROCEED (CTRL+P),
RETRY, SSTEP(CTRL+Z), ou XSTEP
*Belt not enabled* (–615) (CTRL+X) pour reprendre l'exécution du
Explication : Une opération du robot qui faisant référence à un convoyeur en programme. Sinon, saisir toute autre commande.1
mouvement a été tentée alors que la fonction de Les touches de commande CTRL+P, CTRL+X et
suivi du convoyeur n'était pas activée. CTRL+Z ne peuvent être utilisées que si le
Action de l'utilisateur : Saisir la commande ENABLE BELT et retenter débougueur de V + est en mode moniteur.
l'opération.
*Breakpoint not allowed here* (–380)
*Belt servo dead* (–617) Explication : On a tenté de définir un point d'interruption avant la première
Explication : Le processeur de convoyeur ne répond pas aux commandes de instruction exécutable d'un programme.
V+. Action de l'utilisateur : Saisir une nouvelle commande de point d'interruption
Action de l'utilisateur : Après avoir sauvegardé les programmes, mettre le en précisant un pas après la première instruction
contrôleur hors tension et le remettre sous tension. exécutable, c'est-à-dire, après l'instruction
Si l'erreur se répète, contacter le service après- .PROGRAM, toute instruction AUTO et LOCAL,
vente Adept. et tous les commentaires et lignes vierges au
début du programme.
*Belt window violation* (–616)
Explication : On a prévu un déplacement du robot qui l'entraîne hors de la *Calibration program not loaded* (–425)
fenêtre du convoyeur, ou le robot a quitté la Explication : Un programme requis pour l'étalonnage n'a pas été chargé à
fenêtre convoyeur lors du suivi de celui-ci. partir du disque. Cette erreur se produit
Action de l'utilisateur : Modifier le programme pour que le robot ne se généralement si certains programmes
déplace pas en dehors de la fenêtre du convoyeur. d'étalonnage n'ont pas été mis en mémoire, et si la
Consulter le paramètre BELT.MODE et commande ou l'instruction CALIBRATE est
l'instruction WINDOW pour différentes méthodes émise avec un mode d'entrée ne permettant pas
de définition de la fenêtre du convoyeur. leur chargement automatique.
Action de l'utilisateur : Réémettre la commande ou l'instruction
*Branch to undefined label* Step nnn (–412) CALIBRATE dans le mode approprié. Le mode
Explication : Une instruction du programme fait référence à une étiquette de par défaut nul provoque le chargement
programme qui n'est pas définie dans ce dernier. automatique des programmes requis du disque par

337
Cours de formation Programmation ADEPT V+ 1

la commande ou l'instruction CALIBRATE, puis Explication : La carte d'interface vision ne répond pas à une commande du
la suppression des programmes. système de vision.
Action de l'utilisateur : S'assurer que la carte d'interface vision est bien
*Calibration sensor failure* Mtr n (–1106) installée. Après avoir sauvegardé tous les
Explication : Pendant l'étalonnage, le capteur d'étalonnage du moteur indiqué programmes et les prototypes, mettre le
n'a pu être lu correctement. Cela signifie que le contrôleur hors tension et le remettre sous tension.
déplacement du robot est bloqué ou qu'une erreur Si le problème persiste, contacter le service après-
s'est produite au niveau du matériel. vente Adept.

Action de l'utilisateur : Réessayer la commande ou l'instruction *Camera not running* (–705)


CALIBRATE après s'être assuré que le robot n'est Explication : Une tentative de traitement d'une opération du système de
pas bloqué. Si le problème persiste, contacter le vision a eu lieu alors que la caméra ne
service après-vente Adept. fonctionnait pas (line vision seulement).

*Camera already off* (–719) Action de l'utilisateur : Saisir une commande VPICTURE ON et reprendre
Explication : Une opération VPICTURE pour mettre la caméra hors tension l'opération qui a échoué.
a été lancée alors que la caméra était déjà hors
tension (line vision seulement). *Cancelled* (–358)
Action de l'utilisateur : Modifier le programme pour supprimer les Explication : Un opération de l'éditeur, du programme débogueur ou du
instructions VPICTURE OFF redondantes. boîtier de commande a été interrompue du fait de
l'opérateur.
*Camera already running* (–714) Action de l'utilisateur : Il s'agit généralement d'un message d'information
Explication : Une opération VPICTURE pour mettre la caméra sous tension pour confirmer l'annulation de l'opération.
a été lancée alors que la caméra était déjà en
marche (line vision seulement). *Can't access protected or read-only program* (–310)
Action de l'utilisateur : Modifier le programme pour supprimer les Explication : Une tentative de modification d'un programme protégé ou non
instructions VPICTURE ON redondantes, ou modifiable a eu lieu. Ces programmes ne peuvent
saisir une instruction VPICTURE OFF. être modifiés.
Action de l'utilisateur : Aucune.
*Camera disconnected* (–710) *Can't ALTER and track belt* (–626)
Explication : Le matériel de l'interface vision indique que la caméra n'est pas Explication : Un mouvement de convoyeur a été spécifié en mode ALTER,
connectée. Action de l'utilisateur : Vérifier la ou une tentative d'activation du mode ALTER a
caméra et son câblage afin de s'assurer qu'ils sont eu lieu pendant que le robot sélectionné procédait
connectés correctement. Si le problème persiste, au suivi d'un convoyeur. Ces deux opérations sont
consulter le manuel du système vision. interdites car le suivi de convoyeur et le mode
ALTER ne peuvent s'exécuter simultanément.
*Camera interface board absent* (–722) Action de l'utilisateur : Désactiver le mode ALTER ou interrompre le suivi
de convoyeur.

338
Cours de formation Programmation ADEPT V+ 1

Explication : Une tentative d'utiliser une commande de l'éditeur SEE a eu


*Can't change modes while task running* (–361) lieu mais cette commande ne peut être utilisée une
Explication : Une commande a été émise pour passer du mode de débogage fois l'éditeur lancé à l'aide d'une instruction SEE.
du moniteur au mode débogage de l'éditeur Action de l'utilisateur : Saisir une autre commande ou quitter l'éditeur et
pendant le débogage de la tâche de programme. saisir une nouvelle commande à partir du
On ne peut passer au mode débogage de l'éditeur moniteur V + .
que lorsque la tâche correspondante est arrêtée.
Action de l'utilisateur : Interrompre l'exécution de la tâche de programme en *Can't exit while lines attached* (–355)
cours de débogage, ou continuer sans utiliser le Explication : Une tentative d'arrêt de l'exécution de l'éditeur a eu lieu avec
mode débogage de l'éditeur. des lignes encore présentes dans la mémoire
tampon. Celle-ci doit être vide pour pouvoir
*Can't create new slide bar* (–557) quitter l'éditeur.
Explication : On a tenté de créer une nouvel ascenseur dans la barre de Action de l'utilisateur : Utiliser la commande SHIFT+Copy pour transférer le
défilement horizontale ou verticale. Les contenu de la mémoire tampon dans le
ascenseurs ne doivent être créés que dans la programme en cours. On peut également utiliser
fenêtre principale, bien qu'ils puissent apparaître la commande ESC+K pour supprimer les lignes
dans les barres de titres de menus. de la mémoire tampon (la commande 99 ESC+K
Action de l'utilisateur : Modifier les arguments de l'instruction GSLIDE pour permet de supprimer jusqu'à 99 lignes de la
pouvoir créer un ascenseur dans la fenêtre. mémoire tampon).

*Can't create program in read-only mode* (–364) *Can't find calibration program file* (–426)
Explication : Une tentative d'édition d'un programme en mode lecture seule a Explication : Lors du traitement d'une commande ou d'une instruction
eu lieu, mais le programme n'existe pas. d'étalonnage CALIBRATE, le système V + n'a pu
Action de l'utilisateur : Si le nom du programme a été saisi de façon trouver le programme utilitaire d'étalonnage dans
incorrecte, saisir à nouveau la commande avec le le fichier CAL_UTIL.V2.
bon nom. Ne pas choisir l'accès en lecture seule Action de l'utilisateur : Restaurer le fichier manquant du disque de
(avec /R) pour la création d'un programme. distribution V + vers le répertoire \CALIB\ sur
l'unité locale ou sur le disque du système.
*Can't delete .PROGRAM statement* (–350)
Explication : Une tentative de suppression de l'instruction .PROGRAM a eu *Can't go on, use EXECUTE or PRIME* (–313)
lieu lors de la modification d'un programme. Explication : Une tentative de poursuivre l'exécution d'un programme
Action de l'utilisateur : Pour modifier l'instruction .PROGRAM, remplacez- terminé ou arrêté à cause d'une instruction HALT
la par une autre instruction .PROGRAM. Pour a eu lieu. Normalement, lorsqu'un programme a
supprimer des lignes au début du programme, terminé tous ses cycles, une erreur se produit si
passer à la ligne 2 avant d'émettre les commandes l'on saisit la commande PROCEED, RETRY ou
de suppression. XSTEP (ou si l'on appuie sur le bouton
RUN/HOLD du boîtier de commande).
*Can't execute from SEE program instruction* (–362)

339
Cours de formation Programmation ADEPT V+ 1

Action de l'utilisateur : À l'aide de la commande EXECUTE ou PRIME, ou Action de l'utilisateur : Arrêter le programme en cours, puis réessayer
de la fonction PRIME du boîtier de commande, l'opération.
redémarrer le programme à partir de l'instruction
voulue. *Cartesian control of robot not possible* (–635)
Explication : Un programme a tenté de commander le déplacement rectiligne
*Can't interpret line* (–450) d'un robot qui ne supporte pas ce type de
Explication : V + n'a pu interpréter la dernière commande ou instruction déplacement.
saisie. Action de l'utilisateur : Modifier le programme pour utiliser un déplacement
Action de l'utilisateur : Vérifier l'orthographe et l'utilisation, et saisir à avec axes interpolés.
nouveau la ligne. S'il y a eu erreur de chargement
à partir du disque, éditer les programmes affectés Change? (11)
pour corriger les lignes indiquées — elles ont été Explication : Il est possible de modifier la valeur de position créée à l'aide de
converties en lignes erronées. la commande HERE ou POINT.
Action de l'utilisateur : Saisir les nouveaux éléments voulus, séparés par des
*Can't mix MC & program instructions* (–414) virgules, ou appuyer sur RETURN si on ne veut
Explication : Une instruction a été lue au cours du traitement d'un apporter aucune modification. ...,
programme de commandes, ou une instruction change to : (Aucun)
MC a été lue dans un programme normal. Explication : Lors d'une opération de remplacement de chaîne, l'éditeur SEE
Action de l'utilisateur : Editer le programme de commandes pour pouvoir demande quelle est la chaîne de remplacement.
utiliser la commande DO pour inclure Action de l'utilisateur : Saisir la chaîne de remplacement. Si l'on appuie
l'instruction, ou supprimer l'instruction MC du simplement sur RETURN, la chaîne à rechercher
programme normal. est effacée (une chaîne à blanc sera utilisée pour
le remplacement).
*Can't open vision window for read/write* (–734)
Explication : On a tenté d'ouvrir la fenêtre de vision en mode lecture- *Character not in font* (–742)
écriture, mais le système de vision effectue un Explication : Dans une chaîne de caractères devant être lue ou affectée par le
traitement critique qui l'empêche d'ouvrir la système de reconnaissance optique des caractères
fenêtre. (OCR), un ou plusieurs caractères ne sont pas
Action de l'utilisateur : Modifier le programme pour qu'il tente plus tard la dans la définition de la fonte utilisée.
commande FOPEN, ou spécifier /WRITEONLY Action de l'utilisateur : Redéfinir la fonte pour inclure le ou les caractère(s)
si aucune lecture n'est prévue. manquant(s).

*Can't start while program running* (–312) *Collision avoidance dead-lock* (–647)
Explication : Une tentative de lancer l'exécution d'un programme à l'aide du Explication : Deux robots avec détecteur de collision se bloquent
boîtier de commande manuelle a eu lieu alors mutuellement le passage. Aucun des deux ne peut
qu'un programme s'exécutait déjà comme tâche se déplacer tant que l'autre ne s'est pas dégagé de
n°0. son passage. Action de l'utilisateur : Modifier le

340
Cours de formation Programmation ADEPT V+ 1

programme d'application pour empêcher cette Explication : Une tentative de lancer l'exécution d'un programme ou
situation de blocage. d'AMORCER un programme à partir de de la
fenêtre du moniteur ou du terminal de commande
Command? (Aucun) a eu lieu alors que le contrôleur n'était pas en
Explication : Une commande étendue de l'éditeur SEE a été émise à l'aide de mode automatique.
la commande X. Action de l'utilisateur : Sélectionner le mode automatique à l'aide du
Action de l'utilisateur : Saisir la commande étendue désirée, ou appuyer sur commutateur du panneau avant, ou en activant le
RETURN pour annuler la demande. commutateur approprié sur le panneau de
commande personnalisé. Réintroduire la
*Communication time-out* (–531) commande précédente.
Explication : Une opération d'E/S n'a pas été effectuée dans le délai alloué.
Pour la transmission de données, le périphérique *Controller not in manual mode* (–304)
de communication à distance n'a pas accusé Explication : Une tentative d'effectuer une opération pour laquelle le
réception de toutes les données transmises. contrôleur doit être en mode manuel a eu lieu,
Action de l'utilisateur : S'assurer que le périphérique communique mais ce dernier n'est pas en mode manuel. S'il n'y
normalement. S'assurer que les connexions du a pas de panneau avant connecté, le système
périphérique à distance fonctionnement assume que le contrôleur est en mode
normalement. automatique.
Action de l'utilisateur : Sélectionner le mode manuel à l'aide du commutateur
*Communications overrun* (–524) du panneau avant, ou à l'aide du commutateur
Explication : Des données ont été reçues sur une unité d'E/S plus rapidement approprié sur le panneau de commande
que la capacité de traitement de V + , et certaines personnalisé. Relancer l'opération précédente.
des données ont été perdues. Ceci ne se produit
que sur la ligne d'interface série ou sur le réseau. *Controller not in network mode* (–317)
Action de l'utilisateur : Modifier le programme pour un entretien plus Explication : Une tentative d'utiliser une ligne série configurée réseau a eu
fréquent de l'unité d'E/S, ajouter un protocole lieu, mais le contrôleur n'est pas en mode réseau.
d'authentification, ou ralentir la vitesse de S'il n'y a pas de panneau avant branché, le
transmission vers V + . système assume que le contrôleur est en mode
local.
*COMP mode disabled* (–603) Action de l'utilisateur : Sélectionner le mode réseau à l'aide du commutateur
Explication : La commande saisie requiert que le robot soit commandé par le du panneau avant, ou à l'aide du commutateur
contrôleur, mais le mode COMPUTER n'a pas été approprié sur le panneau de commande
sélectionné sur le boîtier de commande. personnalisé. Relancer l'opération précédente.
Action de l'utilisateur : Sélectionner le mode COMP sur le boîtier de
commande, ou autoriser le mode DRY.RUN du *Controller overheating* (–631)
terminal, puis redonner la commande. Explication : Le capteur de température du bloc d'alimentation du contrôleur
*Controller not in automatic mode* (–303) a détecté une surchauffe. La haute puissance est
coupée.

341
Cours de formation Programmation ADEPT V+ 1

Action de l'utilisateur : S'assurer que les ventilateurs du contrôleur


fonctionnent et ne sont pas obstrués. Vérifier la *Data checksum error* (–510)
propreté des filtres du ventilateur. Mettre le Explication : Une erreur a été détectée lors du transfert des données vers une
contrôleur hors tension pour qu'il refroidisse. unité externe ou en provenance de celle-ci.
Action de l'utilisateur : Relancer le transfert. Si le problème persiste,
*Control structure error* (–473) contacter le service après-vente Adept.
Explication : Le système a trouvé une structure de contrôle incomplète au
cours de l'exécution du programme. *Data error on device* (–522)
Action de l'utilisateur : Editer le programme pour corriger la structure de Explication : Le système a détecté une erreur en tentant de lire les données
contrôle. d'une unité externe, peut-être à cause d'une
disquette endommagée ou mal formatée.
*Control structure error * Step nn (–472) Action de l'utilisateur : Réessayer de lire les informations. Veiller à utiliser la
Explication : V + a détecté une structure de contrôle incomplète ou bonne disquette, à bien l'insérer dans le lecteur et
incohérente au pas spécifié en quittant l'éditeur de vérifier qu'elle est bien formatée. (Ne pas oublier
programmes, en chargeant un programme ou en que le formatage d'une disquette efface la totalité
traitant une commande BPT. de son contenu.)
Action de l'utilisateur : Editer le programme pour corriger la structure de
contrôle. Il est possible que l'erreur ne se trouve *Data overflow* (–755)
pas au pas mentionné. Si l'erreur se produit à la Explication : Le matériel de corrélation binaire de vision a détecté plus de
suite d'une commande BPT, taper dir /? pour concordances dans la zone de recherche qu'il ne
repérer les programmes non exécutables et et qui peut en traiter.
risquent de contenir l'erreur de structure de Action de l'utilisateur : Effectuer la recherche dans une zone plus petite ou
contrôle. redéfinir le modèle binaire pour qu'il contienne
des signes plus distinctifs.
*Correlation template too big* (–754)
Explication : Un modèle de corrélation de vision trop gros a été défini. *Device error* (–660)
Action de l'utilisateur : Redéfinir un modèle plus petit. Explication : Le système a détecté une erreur sur un périphérique tel que l'un
de ceux spécifiés dans la dernière instruction
Cursor at column n (Aucun) DEVICE ou SETDEVICE. L'erreur dépend du
Explication : La commande étendue WHERE de l'éditeur SEE indique dans type de périphérique spécifié.
quelle colonne se trouve le curseur. Action de l'utilisateur : Vérifier la validité des paramètres de l'instruction.
Action de l'utilisateur : Aucune. Il s'agit d'un message d'information. Consulter la documentation du type de dispositif
spécifié afin de déterminer la cause de l'erreur.
*Database manager internal error* (–859)
Explication : Cette erreur indique que le système a détecté une incohérence. *Device full* (–503)
Action de l'utilisateur : Contacter l'ingénieur d'application Adept. Prendre Explication : L'un des périphériques n'a plus d'espace disponible. Si ce
soin de noter les détails des opérations en cours message provient d'un fichier disque, cela signifie
au moment où l'erreur s'est produite. que le disque est plein. Si le périphérique contient

342
Cours de formation Programmation ADEPT V+ 1

de nombreux petits fichiers, cela signifie que le Explication : (1) L'unité de disque demandée (ou la tâche réseau à distance)
répertoire est plein. Si le message provient d'une n'est pas prête à communiquer avec le système V
unité asservie, cela signifie qu'on a tenté d'affecter +.
trop d'axes asservis à un seul CPU. (2) Un périphérique à accès limité, tel que le
Action de l'utilisateur : Supprimer les fichiers inutiles, ou utiliser une autre terminal, le boîtier de commande manuelle ou une
unité ou disquette. Reconfigurer le système pour ligne série, est connecté à une autre tâche d'un
éviter de dépasser le nombre d'axes maximum programme.
pour la CPU. (3) On a tenté d'écrire dans une fenêtre déroulante
pendant que celle-ci était affichée.
*Device hardware not present* (–658)
Explication : Un périphérique non présent sur le système a été spécifié. Action de l'utilisateur : (1) Si le périphérique demandé est un lecteur de
Action de l'utilisateur : Vérifier si le périphérique a été correctement microdisquette du système, s'assurer que la
spécifié. S'assurer que ce périphérique est disquette est correctement insérée et formatée.
physiquement présent et qu'il est correctement (2) Si un périphérique à accès limité est spécifié,
configuré. ABANDONNER et SUPPRIMER la tâche de
programme correspondante, ou attendre que la
*Device in use* (–668) tâche de programme libère le périphérique. Si
Explication : Une tentative de connecter, d'affecter ou de configurer un l'unité spécifiée est sur le réseau, vérifier les
périphérique (par exemple, un axe VMI) déjà connexions et s'assurer que le système à distance
utilisée a eu lieu. fonctionne correctement. ANNULER et
Action de l'utilisateur : Vérifier le code du programme pour s'assurer que SUPPRIMER la tâche de programme du
l'unité requise n'est pas déjà connectée. périphérique, ou attendre que la tâche libère le
périphérique.
*DeviceNet : Critical device off-line* (–903) (3) Ne pas modifier le menu déroulant à l'aide de
Explication : Un périphérique DeviceNet considéré comme critique (utilisant l'instruction FSET pendant qu'il est affiché. Il est
le programme utilitaire CONFIG_C) est préférable d'attendre immédiatement après avoir
déconnecté. L'alimentation est coupée et ne peut reçu un événement de sélection de menu pour
être rétablie tant que ce périphérique n'est pas modifier le menu déroulant.
connecté.
Action de l'utilisateur : À l'aide de la commande DEVICENET, vérifier si *Device reset* (–663)
DeviceNet est actif et si les périphériques Explication : Le périphérique est occupé par une opération de réinitialisation.
critiques sont connectés. Vérifier le câblage Cette dernière peut avoir été demandée (à l'aide
DeviceNet et chaque périphérique. Si ce d'une instruction SETDEVICE) par une autre
périphérique a été déconnecté intentionnellement, tâche de programme qui accède au périphérique,
utiliser le programme utilitaire CONFIG_C pour ou le périphérique peut avoir lancé la
le supprimer ou l'identifier comme non critique. réinitialisation de lui-même.

*Device not ready* (–508)

343
Cours de formation Programmation ADEPT V+ 1

Action de l'utilisateur : Utiliser les verrous logiciels pour empêcher une Explication : Une tentative de commande DO a eu lieu sans préciser une
seconde tâche de programme d'accéder au instruction à exécuter et aucune DO n'a été saisie
périphérique après la demande de réinitialisation. avant.
Noter que l'instruction SETDEVICE attendra la Action de l'utilisateur : Saisir l'instruction voulue avec la commande DO.
fin de la réinitialisation. Consulter la
documentation du périphérique concerné pour *Driver internal consistency error* (–519)
plus d'informations sur ses réinitialisations Explication : Un périphérique d'E/S ou asservi a répondu de manière
générées automatiquement. imprévue.
Action de l'utilisateur : Relancer l'opération qui a causé l'erreur. Si elle
*Device sensor error* (–662) persiste, contacter le service après-vente Adept.
Explication : Une erreur matérielle s'est produite sur le système de capteurs
auquel la dernière instruction DEVICE a accédé. *Duplicate character in font* (–740)
Action de l'utilisateur : Consulter la documentation sur le système de Explication : Un caractère figure plusieurs fois dans la chaîne qui définit une
capteurs pour déterminer la cause de l'erreur. fonte pour le système de reconnaissance optique
des caractères (OCR).
*Device time-out* (–659) Action de l'utilisateur : Supprimer les occurrences en double pour chaque
Explication : Le périphérique pas répondu dans le délai prévu. caractère de la chaîne des caractères définis.
Action de l'utilisateur : Consulter la documentation pour ce type de dispositif
pour déterminer la cause de l'erreur. Vérifier que *Duplicate model name* (–760)
le périphérique est physiquement bien configuré. Explication : Une tentative de nommer un nouveau modèle avec un nom
existant a eu lieu.
*Directory error* (–509) Action de l'utilisateur : Utiliser un autre nom pour le modèle ou supprimer le
Explication : Cette erreur peut se produire lors du lancement d'une modèle avec le nom qu'on veut utiliser.
instruction READ (à la suite d'une instruction
FOPEND) sur un répertoire NFS. *Duplicate .PROGRAM arguments* (–468)
Action de l'utilisateur : Contrairement aux autres erreurs, cette erreur peut Explication : Au moins deux des arguments de l'instruction .PROGRAM ont
être ignorée. Des instructions supplémentaires le même nom.
READ vers ce même répertoire permettront de Action de l'utilisateur : Editer la ligne .PROGRAM pour que chaque nom
retourner correctement le contenu supplémentaire d'argument soit unique. Avec l'éditeur V + SEE,
de ce répertoire. appuyer sur la touche de fonction Annuler (F6) ou
appuyer sur ESC+CTRL+C pour annuler les
*Directory not empty* (–571) modifications apportées à la ligne .PROGRAM.
Explication : On a tenté de supprimer un répertoire NFS qui n'était pas vide.
Action de l'utilisateur : Supprimer le contenu du répertoire avant de *Duplicate prototype name* (–718)
supprimer celui-ci. Explication : Le fichier spécifié dans la commande VLOAD contient un
prototype avec le même nom qu'un prototype
*DO not primed* (–302) existant.

344
Cours de formation Programmation ADEPT V+ 1

Action de l'utilisateur : Supprimer (VDELETE) le prototype en conflit qui *Hard envelope error* Mtr n (–1027)
existe déjà. Par mesure de sécurité, sauvegarder Explication : Le moteur indiqué ne suivait pas la position commandée avec
tout d'abord les prototypes existants à l'aide de la assez de précision, ce qui révèle une défaillance
commande VSTORE. du Tableau E-1. Codes des messages d'erreur
d'arrêt d'urgence du MMSP externe système
*Duplicate statement label* (–464) d'asservissement matériel ou un obstacle sur le
Explication : La même étiquette d'instruction est utilisée plusieurs fois dans parcours du robot. Du fait qu'il s'agit d'une erreur
un programme utilisateur. grave, la haute puissance a été coupée.
Action de l'utilisateur : Modifier une des étiquettes en double.
Code n Explication
*Duty-cycle exceeded* Mtr n (–1021) 0 Arrêt d'urgence Adept, erreur voie 1
Explication : Le moteur mentionné a fonctionné à haut régime pendant trop 1 Arrêt d'urgence Adept, erreur voie 2
longtemps. Le système d'asservissement a 2 Arrêt d'urgence client, erreur voie 1
désactivé la fonction Arm Power (puissance du 3 Arrêt d'urgence client, erreur voie 2
bras) pour protéger le matériel du robot.
Action de l'utilisateur : Remettre le système en puissance et tenter de
Action de l'utilisateur : Activer la fonction Arm Power ; réduire la vitesse relancer le déplacement à une vitesse plus lente.
et/ou l'accélération du déplacement en cours ou S'assurer qu'aucun obstacle n'entrave le
des déplacements précédents ; répéter le mouvement du robot. Si l'erreur persiste,
déplacement interrompu. contacter le service après-vente Adept.

*Encoder fault* (–1025) *Encoder quadrature error* Belt n (–1013)


Explication : La carte d'asservissement a détecté un fil de codeur coupé sur Explication : Le signal de position du codeur pour le convoyeur indiqué
l'axe indiqué. transmet des données incorrectement modulées. Il
Action de l'utilisateur : Rechercher toute connexion intermittente ou fil se peut que le codeur ou son câblage soit
coupé sur le câblage du codeur. Essayer de défectueux. (Lancer la vérification de l'erreur du
permuter le câble du codeur avec un autre câble. codeur avec l'instruction DEFBELT et en activant
Il est possible de désactiver cette erreur avec le le commutateur BELT lors de la définition du
programme utilitaire SPEC, mais ne le faire qu'en convoyeur).
dernier recours. Action de l'utilisateur : S'assurer que le câble du codeur est bien connecté.
Tenter de faire fonctionner le convoyeur à vitesse
* E-STOP from MMSP* Code n (–1111) plus lente. Si l'erreur persiste, contacter le service
Ces codes de message étant associés au matériel, consulter avant tout le après-vente Adept.
Manuel d'instruction du robot. Si on ne trouve pas
de réponses aux questions, contacter le service *Encoder quadrature error* Mtr n (–1008)
après-vente Adept. Le tableau suivant résume les Explication : Le signal de position du codeur à partir du moteur spécifié
informations sur les codes. transmet des données incorrectement modulées. Il

345
Cours de formation Programmation ADEPT V+ 1

se peut que le codeur ou son câblage soit du connecteur CIP sur le module AWC. Si l'erreur
défectueux. persiste, contacter le service après-vente Adept.
Action de l'utilisateur : Mettre le système en puissance, étalonner le robot,
puis tenter de relancer le déplacement à vitesse *E-STOP asserted by CPU* (–919)
plus lente. Si l'erreur persiste, contacter le service Explication : Une condition d'arrêt d'urgence a été générée par V + en
après-vente Adept. réponse à une erreur interne. Normalement, cette
erreur ne devrait pas être perçue.
Enter new value: (Aucun) Action de l'utilisateur : Si cela ne présente aucun risque, tenter de couper la
Explication : La commande TEACH de l'éditeur SEE demande une nouvelle haute puissance et prendre note des différents
valeur pour la variable sélectionnée, c'est-à-dire la messages d'erreur qui s'affichent. Si l'erreur
dernière affichée dans la fenêtre de débogage. persiste, contacter le service après-vente Adept.
Action de l'utilisateur : Saisir la nouvelle valeur désirée (sous forme
d'expression valide pour le type de variable *E-STOP channels 1 and 2 do not match* (–922)
sélectionnée), ou appuyer sur RETURN pour Explication : Une condition d'arrêt d'urgence est survenue car les deux voies
annuler la demande. des signaux d'arrêt d'urgence redondantes ne
signalent pas la même condition d'arrêt d'urgence.
*E-STOP 1 detected by CPU* (–608) Action de l'utilisateur : Si on utilise un circuit d'arrêt d'urgence externe,
Explication : Une condition d'arrêt d'urgence sur la voie 1 d'arrêt d'urgence a vérifier que les deux voies sont câblées et
été détectée par la CPU. Normalement, ce fonctionnent correctement. S'assurer qu'on utilise
message est supprimé et la cause de l'arrêt la bonne révision du MCP. Vérifier si le CIP est
d'urgence est signalée. correctement connecté.
Action de l'utilisateur : Si cela ne présente aucun risque, tenter de couper la
haute puissance et prendre note des différents *E-STOP circuit is shorted* (–923)
messages d'erreur qui s'affichent. Vérifier si le Explication : Une condition d'arrêt d'urgence est survenue après détection
CIP est correctement connecté. Si cette erreur d'un court-circuit sur le câblage d'arrêt d'urgence.
revient fréquemment, contacter le service après- Action de l'utilisateur : Vérifier que toutes les voies d'arrêt d'urgence sont
vente Adept. câblées et fonctionnement correctement. Si le
problème persiste, contacter le service après-vente
*E-STOP 2 detected by CPU* (–914) Adept.
Explication : Une condition d'arrêt d'urgence sur la voie 2 d'arrêt d'urgence a
été détectée par le CPU. Normalement, ce *E-STOP circuit relay failure* (–907)
message est supprimé et la cause de l'arrêt Explication : Une condition d'arrêt d'urgence s'est produite parce que la
d'urgence est signalée. Il peut s'agir d'un problème chaîne d'arrêt d'urgence de l'une des voies ne
matériel du CIP, de son câblage ou du module présente pas le même état que l'autre voie. Ceci
AWC. peut être provoqué par les contacts soudés de l'un
Action de l'utilisateur : Maintenir le commutateur d'activation du MCP et des deux relais d'arrêt d'urgence (panne sur le
remettre le système en puissance. Renfoncer la CIP), un court-circuit sur l'une des voies d'arrêt
prise du connecteur JAWC sur le CIP et la prise d'urgence (panne sur le CIP ou sur les connexions

346
Cours de formation Programmation ADEPT V+ 1

utilisateur), ou une paire de contacts connectés Explication : Une condition d'arrêt d'urgence est survenue parce que le
aux voies d'arrêt d'urgence en état opposé (l'une circuit du poussoir d'arrêt d'urgence utilisateur a
ouverte, l'autre fermée). été coupé.
Action de l'utilisateur : Vérifier toutes les connexions utilisateur sur chacune Action de l'utilisateur : Rétablir le circuit du poussoir d'arrêt d'urgence
des voies d'arrêt d'urgence (prises bien enfoncées, utilisateur. Remettre le système en puissance.
contacts de chaque voie tous fermés). Si les
connexions utilisateur ne révèlent aucune *E-STOP from user muted safety gate* (–921)
anomalie, appeler le Service après-vente Adept. Explication : Une condition d'arrêt d'urgence est survenue parce que la porte
de sécurité silencieuse utilisateur a été ouverte en
*E-STOP from amplifier* (–641) mode automatique. En mode manuel, cette erreur
Explication : La carte d'interface de mouvement a détecté une condition ne devrait pas être signalée.
d'arrêt d'urgence générée par les variateurs du Action de l'utilisateur : Fermer la porte de sécurité silencieuse et remettre le
moteur. Cela signifie que les ariateurs ont détecté système en puissance. Si la porte est déjà fermée,
un état défectueux. vérifier le commutateur, les connecteurs
Action de l'utilisateur : Vérifier s'il y a un autre message. Pour déterminer s'il correspondants et le câblage.
y a eu une erreur non signalée du RSC, taper listr
error(task,4), où task est le numéro de la tâche qui *E-STOP from front panel button* (–908)
a reçu l'erreur. Si aucune information Explication : Une condition d'arrêt d'urgence est survenue parce qu'on a
supplémentaire n'est disponible, vérifier si les appuyé sur le poussoir d'arrêt d'urgence sur le
variateurs sont correctement branchés sur le fond panneau avant du CIP.
de panier, si les vis de fixation sont bien serrées et Action de l'utilisateur : Débloquer le poussoir de verrouillage d'arrêt
si le moteur et les câbles de signaux sont bien d'urgence. Remettre le système en puissance.
connectés.
*E-STOP from front panel external input* (–911)
*E-STOP detected by robot* (–643) Explication : Une condition d'arrêt d'urgence est survenue parce qu'elle a été
Explication : La carte d'interface de mouvement a détecté une condition commandée par un signal d'entrée externe du
d'arrêt d'urgence due au signal de freinage panneau avant.
d'urgence (BRAKE-ESTOP) validé sur le bus Action de l'utilisateur : Rétablir l'état du signal d'entrée externe du panneau
VME. avant. Remettre le système en puissance.
Action de l'utilisateur : Vérifier s'il y a un autre message. Pour déterminer s'il
y a eu une erreur non signalée du RSC, taper listr *E-STOP from MCP enable switch* (–913)
error(task,4), où task est le numéro de la tâche qui Explication : Une condition d'arrêt d'urgence est survenue parce que le
a reçu l'erreur. Si aucune information commutateur d'activation (auparavant appelé
supplémentaire n'est disponible, appeler le service commutateur HOLD-TO-RUN) du MCP a été
après-vente Adept. relâché. Si l'on relâche ce commutateur en mode
manuel, le système procède à une mise hors
*E-STOP from user E-STOP button* (–910) tension effectuée sous contrôle et non à un arrêt
d'urgence.

347
Cours de formation Programmation ADEPT V+ 1

Action de l'utilisateur : Maintenir le commutateur d'activation du MCP et


remettre le système en puissance. Executing in DRY.RUN mode (50)

*E-STOP from MCP E-STOP button* (–909) Explication : Le commutateur DRY.RUN est activé et l'exécution du
Explication : Une condition d'arrêt d'urgence est survenue parce qu'on a programme a été demandée. Par conséquent,
appuyé sur le bouton d'arrêt d'urgence du MCP. aucun déplacement du robot n'aura lieu.
Action de l'utilisateur : Débloquer le bouton de verrouillage d'arrêt Action de l'utilisateur : Aucune, à moins qu'on veuille faire bouger le robot.
d'urgence. Remettre le système en puissance. Dans un tel cas, annuler l'exécution du
programme et désactiver le commutateur
*E-STOP from robot* (–640) DRY.RUN
Explication : La carte d'interface de mouvement a détecté une condition
d'arrêt d'urgence produite par le RSC du robot. *Expected character(s) not found* (–745)
Cette erreur est probablement due à une faible Explication : Lors de l'apprentissage de caractères pour la reconnaissance
pression d'air, à un dépassement de course de optique ultérieure de caractères, le nombre de
l'axe 1 ou à une surchauffe du moteur. Un autre caractères de la chaîne donnée ne correspondait
message d'erreur donne peut-être plus pas au nombre de caractères trouvés sur la fenêtre
d'informations. d'apprentissage. L'apprentissage des caractères a
Action de l'utilisateur : Vérifier s'il y a un autre message. Pour déterminer s'il été annulé.
y a eu une erreur non signalée du RSC, taper listr Action de l'utilisateur : S'assurer que la chaîne en question correspond aux
error(task,4), où task est le numéro de la tâche qui caractères sur la fenêtre d'apprentissage.
a reçu l'erreur. Si aucune information
supplémentaire n'est disponible, vérifier si la *[Fatal] Addr Err* at aaaaaa m:n I=xxxx, A=aaaa, F=ff (Aucun)
pression d'air est trop faible, s'il y a dépassement Explication : Un problème interne est survenu sur le logiciel V + ou sur le
de course de l'axe 1 ou encore surchauffe du matériel du système.
moteur. Action de l'utilisateur : Nous vous remercions de bien vouloir signaler cette
erreur à l'ingénieur d'application Adept. Veuillez
*E-STOP from user enable switch* (–912) également indiquer les détails du message d'erreur
Explication : Une condition d'arrêt d'urgence est survenue parce qu'on a et ce que vous faisiez lorsque l'erreur s'est
appuyé sur le commutateur d'activation utilisateur produite. Pour sauvegarder les programmes en
(auparavant appelé HOLD-TO-RUN). Si l'on mémoire, relancer V + momentanément en
relâche ce commutateur en mode manuel, le appuyant sur CTRL+G. Les variateurs du robot
système procède à une mise hors tension ne fonctionneront pas, mais il est possible de
effectuée sous contrôle et non à un arrêt SAUVEGARDER les programmes. Mettre
d'urgence. ensuite le contrôleur hors tension, puis redémarrer
Action de l'utilisateur : Appuyer sur le commutateur d'activation utilisateur le système.
et remettre le système en puissance. Si l'on a déjà
appuyé sur le commutateur, vérifier ce dernier *[Fatal] Bus Err* at aaaaaa m:n I=xxxx, t=aaaa, F=ff (Aucun)
ainsi que ses connecteurs et son câblage.

348
Cours de formation Programmation ADEPT V+ 1

Explication : Une erreur s'est produire au niveau du contrôleur à cause d'une SAUVEGARDER les programmes. Mettre
erreur de lecture de la mémoire, de bruit sur le ensuite le contrôleur hors tension, puis redémarrer
bus de données interne ou d'un problème matériel. le système.
Action de l'utilisateur : Pour sauvegarder les programmes en mémoire,
redémarrer V + momentanément en appuyant sur *[Fatal] Emul 1111 Trap* at aaaaaa m:n (Aucun)
CTRL+G. Les variateurs du robot ne Explication : Un problème interne est survenu sur le logiciel V + ou sur le
fonctionneront pas, mais il est possible de matériel du système.
SAUVEGARDER les programmes. Mettre Action de l'utilisateur : Nous vous remercions de bien vouloir signaler cette
ensuite le contrôleur hors tension, puis redémarrer erreur à l'ingénieur d'application Adept. Veuillez
le système. Si le problème persiste, contacter le également indiquer les détails du message d'erreur
service après-vente Adept. et ce que vous faisiez lorsque l'erreur s'est
produite. Pour sauvegarder les programmes en
*[Fatal] CHK Trap* at aaaaaa m:n (Aucun) mémoire, redémarrer V + momentanément en
Explication : Un problème interne est survenu sur le logiciel V + ou sur le appuyant sur CTRL+G. Les variateurs du robot
matériel du système. ne fonctionneront pas, mais il est possible de
Action de l'utilisateur : Nous vous remercions de bien vouloir signaler cette SAUVEGARDER les programmes. Mettre
erreur à l'ingénieur d'application Adept. Veuillez ensuite le contrôleur hors tension, puis redémarrer
également indiquer les détails du message d'erreur le système.
et ce que vous faisiez lorsque l'erreur s'est
produite. Pour sauvegarder les programmes en *[Fatal] E-STOP signals are stuck off* (–904)
mémoire, redémarrer V + momentanément en Explication : Au cours du démarrage du système, ce dernier procède à un
appuyant sur CTRL+G. Les variateurs du robot essai pour s'assurer qu'aucun signal d'arrêt
ne fonctionneront pas, mais il est possible de d'urgence n'est bloqué. Ce message d'erreur est
SAUVEGARDER les programmes. Mettre suivi par un ou plusieurs messages d'erreur d'arrêt
ensuite le contrôleur hors tension, puis redémarrer d'urgence standard indiquant quels signaux sont
le système. bloqués. Lorsque cette erreur se produit, le robot
ne peut être mis sous tension.
*[Fatal] Emul 1010 Trap* at aaaaaa m:n (Aucun) Action de l'utilisateur : Vérifier le câblage des circuits d'arrêt d'urgence.
Explication : Un problème interne est survenu sur le logiciel V + ou sur le Vérifier les connexions du panneau d'interface du
matériel du système. contrôleur (CIP). Contacter le service après-vente
Action de l'utilisateur : Nous vous remercions de bien vouloir signaler cette Adept pour obtenir de l'aide.
erreur à l'ingénieur d'application Adept. Veuillez
également indiquer les détails du message d'erreur *[Fatal] Illeg Instr* at aaaaaa m:n (Aucun)
et ce que vous faisiez lorsque l'erreur s'est Explication : Un problème interne est survenu sur le logiciel V + ou sur le
produite. Pour sauvegarder les programmes en matériel du système.
mémoire, redémarrer V + momentanément en Action de l'utilisateur : Nous vous remercions de bien vouloir signaler cette
appuyant sur CTRL+G. Les variateurs du robot erreur à l'ingénieur d'application Adept. Veuillez
ne fonctionneront pas, mais il est possible de également indiquer les détails du message d'erreur

349
Cours de formation Programmation ADEPT V+ 1

et ce que vous faisiez lorsque l'erreur s'est Action de l'utilisateur : Nous vous remercions de bien vouloir signaler cette
produite. Pour sauvegarder les programmes en erreur à l'ingénieur d'application Adept. Veuillez
mémoire, on peut redémarrer V + également indiquer les détails du message d'erreur
momentanément en appuyant sur CTRL+G. Les et ce que vous faisiez lorsque l'erreur s'est
variateurs du robot ne fonctionneront pas, mais il produite. Pour sauvegarder les programmes en
est possible de SAUVEGARDER les mémoire, on peut redémarrer V + temporairement
programmes. Mettre ensuite le contrôleur hors en appuyant sur CTRL+G. Les variateurs du
tension, puis redémarrer le système. robot ne fonctionneront pas, mais il est possible
de SAUVEGARDER les programmes. Mettre
*[Fatal] I/O processor failure* (–905) ensuite le contrôleur hors tension, puis redémarrer
Explication : Le processeur d'E/S de la carte principale du CPU n'a pas le système.
démarré correctement. Ce processeur est
primordial pour le fonctionnement en toute *[Fatal] Priv Viol* at aaaaaa m:n (Aucun)
sécurité du robot. Par conséquent, si cette erreur Explication : Un problème interne est survenu sur le logiciel V + ou sur le
se produit, le système ne pourra pas être mis en matériel du système.
puissance. Action de l'utilisateur : Nous vous remercions de bien vouloir signaler cette
Action de l'utilisateur : Mettre le contrôleur hors circuit, puis le redémarrer. erreur à l'ingénieur d'application Adept. Veuillez
Essayer une autre unité d'amorçage. Recharger le également indiquer les détails du message d'erreur
logiciel du système. Si le problème persiste, et ce que vous faisiez lorsque l'erreur s'est
contacter le service après-vente Adept pour produite. Pour sauvegarder les programmes en
obtenir de l'aide. mémoire, on peut redémarrer V +
momentanément en appuyant sur CTRL+G. Les
*[Fatal] Manual mode switch stuck off* (–920) variateurs du robot ne fonctionneront pas, mais il
Explication : Au cours de l'initialisation du système, un essai matériel du est possible de SAUVEGARDER les
circuit de mode manuel a détecté le blocage du programmes. Mettre ensuite le contrôleur hors
commutateur à clé en mode automatique. Cette tension, puis redémarrer le système.
erreur indique une situation dangereuse et
empêche la mise en puissance du système. *[Fatal] Spurious Int* at aaaaaa m:n (Aucun)
Action de l'utilisateur : Rechercher tout commutateur de mode manuel en Explication : Un problème interne est survenu sur le logiciel V + ou sur le
cours d'utilisation. Vérifier si le CIP est matériel du système.
correctement connecté. Redémarrer le contrôleur Action de l'utilisateur : Nous vous remercions de bien vouloir signaler cette
V + pour éliminer l'erreur et reprendre l'essai. Si erreur à l'ingénieur d'application Adept. Veuillez
le problème persiste, contacter le service après- également indiquer les détails du message d'erreur
vente Adept. et ce que vous faisiez lorsque l'erreur s'est
produite. Pour sauvegarder les programmes en
*[Fatal] OVF Trap* at aaaaaa m:n (Aucun) mémoire, redémarrer V + momentanément en
Explication : Un problème interne est survenu sur le logiciel V + ou sur le appuyant sur CTRL+G. Les variateurs du robot
matériel du système. ne fonctionneront pas, mais il est possible de

350
Cours de formation Programmation ADEPT V+ 1

SAUVEGARDER les programmes. Mettre Action de l'utilisateur : Mettre le contrôleur hors tension et tenter de le
ensuite le contrôleur hors tension, puis redémarrer redémarrer. Si le problème persiste, contacter le
le système. service après-vente Adept.

*[Fatal] Uninit Trap* at aaaaaa m:n (Aucun) *[Fatal Force Err] ...* ... (Aucun)
Explication : Un problème interne est survenu sur le logiciel V + ou sur le Explication : Le processeur d'effort a détecté une condition d'erreur. Il est
matériel du système. possible de continuer à utiliser le système V + ,
Action de l'utilisateur : Nous vous remercions de bien vouloir signaler cette sans utiliser le capteur d'effort tant que l'erreur
erreur à l'ingénieur d'application Adept. Veuillez n'est pas corrigée.
également indiquer les détails du message d'erreur Action de l'utilisateur : Aucune intervention nécessaire si on ne prévoit pas
et ce que vous faisiez lorsque l'erreur s'est d'utiliser le capteur d'efforts. Sinon, consulter la
produite. Pour sauvegarder les programmes en documentation du capteur d'effort pour corriger
mémoire, on peut redémarrer V + temporairement l'erreur.
en appuyant sur CTRL+G. Les variateurs du
robot ne fonctionneront pas, mais il est possible *[Fatal] Graphics/display processor error* (Aucun)
de SAUVEGARDER les programmes. Mettre Explication : Le processeur graphique du système graphique n'a pas répondu
ensuite le contrôleur hors tension, puis redémarrer aux commandes du système V + .
le système. Action de l'utilisateur : Mettre le contrôleur hors tension et tenter de le
redémarrer. Si le problème persiste, contacter le
*[Fatal] ZDIV Trap* at aaaaaa m:n (Aucun) service après-vente Adept.
Explication : Un problème interne est survenu sur le logiciel V + ou sur le
matériel du système. *[Fatal] Initialization failure* Mtr n (–1014)
Action de l'utilisateur : Nous vous remercions de bien vouloir signaler cette Explication : Au cours de l'initialisation d'un module cinématique du robot,
erreur à l'ingénieur d'application Adept. Veuillez l'initialisation du moteur indiqué a échoué. Il peut
également indiquer les détails du message d'erreur s'agir d'une carte d'interface d'asservissement
et ce que vous faisiez lorsque l'erreur s'est manquante ou mal configurée, ou d'une
produite. Pour sauvegarder les programmes en configuration erronée du moteur pour ce module.
mémoire, redémarrer V + momentanément en Action de l'utilisateur : S'assurer que toutes les cartes d'interface
appuyant sur CTRL+G. Les variateurs du robot d'asservissement sont bien installées et
ne fonctionneront pas, mais il est possible de configurées (à l'aide du programme utilitaire
SAUVEGARDER les programmes. Mettre SPEC.V2 pour la configuration des moteurs). Si
ensuite le contrôleur hors tension, puis redémarrer le problème persiste, contacter le service après-
le système. vente Adept.

*[Fatal] DIV Instr Err* at aaaaaa m:n (Aucun) *[Fatal] Invalid serial I/O configuration* (Aucun)
Explication : Le système V + a détecté une erreur à partir d'une instruction Explication : Au cours du démarrage initial, V + a détecté que la
DIVIDE. Cela indique une défaillance du configuration du matériel pour les
processeur. communications série n'était pas valide. On a

351
Cours de formation Programmation ADEPT V+ 1

tenté de configurer une unité série non installée,


ou on a demandé un format d'octets ou une vitesse *[Fatal] Servo init failure* Board n (–1107)
de transmission incorrect(e). Explication : Au cours de l'initialisation du système, la carte d'interface
Action de l'utilisateur : Mettre le contrôleur hors tension et tenter de le d'asservissement indiquée n'a pu être initialisée.
redémarrer. S'assurer que le disque d'amorçage Cela peut provenir de la mauvaise configuration
utilisé est compatible avec le contrôleur. Utiliser du circuit d'asservissement, d'une carte d'interface
le programme utilitaire CONFIG_C pour vérifier d'asservissement manquante ou mal configurée,
la configuration d'E/S série. Si le problème ou d'une panne matérielle.
persiste, contacter l'ingénieur d'application Adept. Action de l'utilisateur : Mettre le contrôleur hors tension, puis le redémarrer
en s'assurant qu'on utilise le bon disque système.
*[Fatal] Servo process dead* CPU n (–1101) Si le problème persiste, contacter le service après-
Explication : V + n'a pu détecter l'opération adéquate dans la boucle vente Adept.
d'asservissement de la CPU spécifiée. V +
continuera à fonctionner, mais le système ne *[Fatal] Stk Overflow* at aaaaaa m:n (Aucun)
pourra pas être mis en puissance. Explication : Une pile mémoire de V + a débordé. Si n est 1, l'erreur indique
Action de l'utilisateur : Mettre le contrôleur hors tension, puis le redémarrer. que le moniteur V + a lu une expression exprimée
Utiliser le programme utilitaire CONFIG_C.V2 de façon trop complexe. L'une ou l'autre des
pour vérifier qu'un calcul d'asservissement est valeurs suivantes de n signifie que la tâche de
activé pour cette CPU. Si le problème persiste, programme affichée a tenté d'évaluer une
contacter le service après-vente Adept. expression trop complexe pour tenir dans la pile
de cette tâche. La valeur est un numéro
*[Fatal] Servo code incompatible* CPU n (–1102) hexadécimale. Ainsi, ^H1 = tâche de moniteur et
Explication : Au cours de l'initialisation, V + a détecté une version incorrecte ^HD = tâche 0, ^HE = tâche 1,...^H27 = tâche 26,
du programme d'asservissement sur la CPU et ^H28 = tâche 27.
spécifiée. V + continuera à fonctionner, mais le Action de l'utilisateur : Si la valeur de n figure parmi celles énoncées ci-
système ne pourra pas être mis en puissance. dessus, réduire la complexité de l'expression
Action de l'utilisateur : Mettre le contrôleur hors tension, puis le redémarrer. fautive. Par contre, si la valeur ne figure pas ci-
Si le problème persiste, contacter le service après- dessus, un problème interne de V + est indiqué.
vente Adept. Dans ce cas, nous vous remercions de signaler
cette erreur à l'ingénieur d'application Adept.
*[Fatal] Servo dead* Mtr n (–1104) Veuillez nous fournir également les détails du
Explication : La boucle d'asservissement du moteur spécifié ne répond pas message de l'erreur et ce que vous faisiez lorsque
aux commandes de V + . V + continuera à l'erreur s'est produite. Pour sauvegarder les
fonctionner, mais ne permettra pas l'établissement programmes en mémoire, on peut redémarrer V +
de la haute puissance. temporairement en appuyant sur CTRL+G. Les
Action de l'utilisateur : Mettre le contrôleur hors tension, puis le redémarrer. variateurs du robot ne fonctionneront pas, mais il
Si le problème persiste, contacter le service après- est possible de SAUVEGARDER les
vente Adept.

352
Cours de formation Programmation ADEPT V+ 1

programmes. Mettre ensuite le contrôleur hors numéro d'unité logique mentionné avant de
tension, puis redémarrer le système. procéder à l'opération FOPEN.

*[Fatal] System clock dead* (Aucun) *File format error* (–512)


Explication : Au cours du démarrage initial, V + n'a pu détecter le Explication : Le format du fichier disques n'est pas acceptable pour V + , soit
fonctionnement normal du matériel de l'horloge et parce qu'il n'a pas été créé par V + , soit parce que
du le fichier est corrompu.
synchronisateur du système. V + ne peut fonctionner si l'horloge ne Action de l'utilisateur : Utiliser une autre disquette ou spécifier un autre
fonctionne pas correctement. Action de fichier.
l'utilisateur : Mettre le contrôleur hors tension et
tenter de le redémarrer. Si le problème persiste, *File name too long* (–570)
contacter le service après-vente Adept. Explication : Le nom du fichier dans l'opération NFS était trop long.
Action de l'utilisateur : Utiliser un nom de fichier plus court.
*[Fatal] System clock too fast* (Aucun)
Explication : Au cours du démarrage initial, V + a détecté que l'horloge du *File not opened* (–513)
système tournait trop vite. V + ne peut Explication : On a fait une demande de programme pour lire ou écrire des
fonctionner si l'horloge ne fonctionne pas données sur une unité de disque alors qu'aucun
correctement. fichier n'était ouvert, ou on a tenté d'accéder à une
Action de l'utilisateur : Mettre le contrôleur hors tension et tenter de le fenêtre graphique fermée.
redémarrer. Si le problème persiste, contacter le Action de l'utilisateur : Modifier le programme pour qu'il ouvre le fichier ou
service après-vente Adept. la fenêtre graphique avant de tenter de lire ou
d'écrire des données.
*File already exists* (–500)
Explication : Il y a déjà un fichier disques ou une fenêtre graphique portant *File or subdirectory name error* (–514)
le nom utilisé lors de la dernière demande Explication : Le nom du fichier spécifié ou du sous-répertoire n'est pas un
d'enregistrement. nom de fichier disque valide, le chemin spécifié
Action de l'utilisateur : Reprendre la demande d'enregistrement avec un nom pour le répertoire n'est pas valide ou il est trop
de fichier différent, ou supprimer l'ancien fichier. long.
Action de l'utilisateur : Relancer l'opération avec un nom de fichier ou de
*File already open* (–506) sous-répertoire valide. Vérifier la syntaxe du
Explication : Un fichier disque ou une fenêtre graphique est déjà ouvert(e) chemin du répertoire. S'assurer que tous les
sur une unité logique et on a tenté de l'ouvrir de chemins de répertoire par défaut spécifiés par la
nouveau. commande DEFAULT sont valides. S'assurer que
Action de l'utilisateur : Modifier le programme pour utiliser un numéro le chemin complet du répertoire n'est pas trop
d'unité logique différent pour le fichier ou la long lorsqu'il est combiné avec le fichier spécifié.
fenêtre à ouvrir, ou procéder à l'opération
FCLOSE pour le fichier ou la fenêtre ouvert sur le *File too large* (–569)

353
Cours de formation Programmation ADEPT V+ 1

Explication : L'opération NFS a créé un fichier trop gros pour la capacité du *Font not defined* (–736)
serveur. Explication : La police spécifiée pour la reconnaissance optique des
Action de l'utilisateur : Fermer le fichier, ouvrir un nouveau fichier, et caractères (OCR) n'est pas définie.
relancer l'opération précédente. Action de l'utilisateur : Utiliser VDEF.FONT ou VLOAD pour définir la
police.
Find : (Aucun)
Explication : Lors du lancement d'une opération de recherche ou de *Font not loaded* (–551)
remplacement de chaîne, l'éditeur SEE demande Explication : La police spécifiée n'existe pas.
quelle chaîne rechercher dans le programme. Action de l'utilisateur : Spécifier une autre police (la police 1 est toujours
Action de l'utilisateur : Saisir la chaîne recherchée, ou appuyer sur RETURN chargée).
pour annuler la demande.
*Front panel serial bus failure* (–925)
*First statement must be .PROGRAM* (–351) Explication : Le bus série i2c du module AWC du CIP est en panne. Ce bus
Explication : On a tenté d'insérer ou d'ajouter une instruction avant sert aux E/S du panneau avant et aux signaux
l'instruction .PROGRAM qui doit être la première d'E/S numériques sur le CIP. Lorsque ce bus
instruction du programme. tombe en panne, la haute puissance est coupée.
Action de l'utilisateur : Déplacer le curseur sous la ligne .PROGRAM du Normalement, ce message s'affiche lors de
programme avant de tenter d'insérer ou d'ajouter l'exécution de certains programmes de diagnostic.
des instructions. Action de l'utilisateur : Vérifier le câblage du module AWC vers le CIP.
Mettre le contrôleur hors tension, puis le
*Font already defined* (–737) redémarrer. Si le problème persiste, contacter le
Explication : On a tenté de charger (VLOAD) un fichier de polices de service après-vente Adept pour obtenir de l'aide.
caractères (pour reconnaissance optique de
caractères) contenant une police qui porte le *Force protect limit exceeded* (–624)
numéro d'une police déjà en mémoire. Le Explication : Au moins une jauge de contrainte du capteur d'effort a dépassé
chargement a été annulé et aucune des polices du la limite prédéfinie, provoquant l'arrêt d'urgence
fichier n'a été chargée. du robot. Ceci peut être dû à des efforts élevés au
Action de l'utilisateur : Renommer ou supprimer la police actuellement cours d'une insertion, d'une panne ou d'une
définie dans la mémoire. accélération rapide.
Action de l'utilisateur : En cas de panne, s'assurer que la zone de travail est
*Font not completely trained* (–738) évacuée. Si le dépassement de limite survient en
Explication : Lors de la préparation d'une police pour la reconnaissance fonctionnement normal, élever cette limite ou
optique des caractères (OCR), certains ou tous les désactiver le mode de protection. Remettre le
caractères de la police n'ont pas été appris. système en puissance à l'aide du boîtier de
Action de l'utilisateur : Afficher la police (avec VSHOW.FONT) pour voir commande manuelle et poursuivre l'opération.
quels caractères n'ont pas été appris. Les
apprendre ou les supprimer de la police. *Front panel HIGH POWER lamp failure* (–924)

354
Cours de formation Programmation ADEPT V+ 1

Explication : La puissance a été coupée après détection d'une défaillance graphique. La cause peut être une panne
(circuit ouvert) de l'ampoule HIGH POWER du momentanée du matériel ou une erreur de logiciel.
panneau avant. Cette ampoule est probablement Action de l'utilisateur : Essayer de sauvegarder le plus de données possibles
hors service. Cette situation est considérée sur le disque. Exécuter les commandes moniteur
comme dangereuse. L'arrêt d'urgence n'est pas ZERO 1 et ZERO 2 pour supprimer les données
signalé. Cependant, on ne peut pas remettre le graphiques. Si l'erreur persiste, mettre le
système en puissance tant que l'ampoule n'est pas contrôleur hors tension, puis redémarrer le
remplacée. système.
Action de l'utilisateur : Remplacer l'ampoule HIGH POWER. Voir (HALTED) (8)
«Remplacement de l'ampoule du voyant HIGH Explication : Une instruction d'arrêt (HALT) a été exécutée, provoquant
POWER» à la page 217. l'arrêt du programme en cours.
Action de l'utilisateur : Toute commande de moniteur peut être saisie, mais
*Function already enabled* (–422) on ne peut pas utiliser la commande PROCEED
Explication : On ne doit pas activer certaines fonctions ou opérations pour reprendre l'exécution du programme.
lorsqu'elles le sont déjà. Le mode ALTER est une
de ces fonctions. *Hard envelope error* Mtr n (–1027)
Action de l'utilisateur : Eviter de réactiver la fonction ou l'opération. Explication : Le moteur indiqué ne suivait pas la position commandée avec
assez de précision, ce qui révèle une défaillance
*Graphics processor timeout* (–552) du système d'asservissement matériel ou un
Explication : Le processeur graphique (sur le processeur du système) n'a pu obstacle sur le parcours du robot. Du fait qu'il
répondre à une commande de V + dans les cinq s'agit d'une erreur grave, la haute puissance a été
secondes. coupée.
Action de l'utilisateur : Sauvegarder tous les programmes et toutes les Action de l'utilisateur : Remettre le système en puissance et tenter de
variables sur le disque, puis redémarrer le système relancer le déplacement à une vitesse plus lente.
à partir du disque. Si le problème persiste, S'assurer qu'aucun obstacle n'entrave le
contacter le service après-vente Adept. mouvement du robot. Si l'erreur persiste,
contacter le service après-vente Adept.
*Graphics software checksum error* (–558)
Explication : Le code de la carte graphique est corrompu. *Hardware not in system* (–805)
Action de l'utilisateur : Sauvegarder les programmes nouveaux ou modifiés, Explication : Une instruction a tenté d'accéder à un matériel optionnel (tel
redémarrer le contrôleur et recharger les que la carte FORCE) non installé sur le système.
programmes. Si le problème persiste, contacter le Action de l'utilisateur : Installer le matériel en question ou supprimer
service après-vente Adept. l'instruction d'accès à ce matériel.

*Graphics storage area format error* (–555) *HIGH POWER button not pressed* (–646)
Explication : Au cours de l'exécution d'une commande FREE, V + a détecté Explication : L'interrupteur HIGH POWER n'a pas été actionné dans le délai
des données corrompues dans la mémoire prescrit. Ce message peut également avoir été

355
Cours de formation Programmation ADEPT V+ 1

provoqué par un câble défectueux du panneau *Illegal camera number* (–803)


d'interface contrôleur (CIP), ou du module AWC. Explication : Une commande ou une instruction vision a spécifié un numéro
Action de l'utilisateur : A partir du clavier, relancer la commande de de caméra non valide.
moniteur pour RÉTABLIR L'ALIMENTATION Action de l'utilisateur : Saisir à nouveau la commande ou éditer le
et appuyer sur l'interrupteur HIGH POWER sitôt programme avec le numéro de caméra approprié.
l'instruction donnée. A partir du MCP, suivre la
procédure appropriée pour mettre le système en *Illegal digital signal* (–405)
puissance selon la cote de sécurité du système. Explication : Un numéro ou un champs de bit désigne un signal numérique
Appuyer rapidement sur l'interrupteur HIGH qui ne figure pas dans les plages permises ou qui
POWER sitôt l'instruction donnée. Si le délai est n'est pas installé. Cette erreur survient également
trop court, l'ajuster à l'aide du programme si l'on tente de régler le signal logiciel 2032
utilitaire CONFIG_C pour modifier l'instruction (électrovanne de freinage).
POWER_TIMEOUT dans les données de Action de l'utilisateur : Corriger le numéro du signal et vérifier la
configuration V + . configuration d'E/S numérique.

*Illegal array index* (–404) *Illegal expression syntax* (–458)


Explication : On a tenté : (1) d'utiliser une valeur négative comme index de Explication : Au cours du décodage d'une expression numérique ou logique,
tableau, (2) d'utiliser une valeur supérieure à d'une transformée composée ou d'une expression
32767 comme index de tableau, (3) d'entrer une en chaîne, V + a détecté une syntaxe qu'il ne
variable simple alors qu'une variable de tableau comprend pas. Il peut s'agir de parenthèses mal
est nécessaire, (4) d'omettre un index de tableau placées, de variables manquantes ou d'opérateurs
alors qu'il était requis (par exemple, un tableau à manquants.
1 dimension est spécifié alors qu'un tableau à 2 ou Action de l'utilisateur : Retaper la ligne contenant l'expression en prenant
3 dimensions est requis), (5) de spécifier un index soin de respecter les règles syntaxiques de V + .
explicite dans l'argument d'une opération V + qui
requiert un tableau nul, ou (6) de spécifier un *Illegal in debug monitor mode* (–359)
index à droite d'un index vide pour un tableau Explication : Une opération interdite en mode moniteur de dépannage a été
multidimension. lancée.
Action de l'utilisateur : Corriger la ligne. Action de l'utilisateur : Utiliser une commande différente, passer en mode
débogage de l'éditeur, ou quitter le débogueur du
*Illegal assignment* (–403) programme.
Explication : La dernière opération d'affectation n'est pas valide,
probablement parce qu'elle a tenté d'affecter une *Illegal in read-write mode* (–365)
valeur à un nom de variable qui est un mot ou une Explication : Lors de l'accès à un programme en mode lecture-écriture, on a
fonction réservé(e). lancé une fonction d'édition interdite.
Action de l'utilisateur : Saisir à nouveau la ligne en utilisant un autre nom de Action de l'utilisateur : Modifier le programme d'édition en mode lecture
variable si nécessaire. seule, ou utiliser une autre commande d'édition.

356
Cours de formation Programmation ADEPT V+ 1

*Illegal I/O channel number* (–518) Action de l'utilisateur : Corriger le numéro d'axe.
Explication : Le système a rencontré un numéro de voie d'E/S interne non
valide. Cela révèle un problème interne du *Illegal memory reference* (–418)
logiciel V + . Explication : Une opération a tenté de désigner une adresse mémoire
Action de l'utilisateur : Nous vous remercions de bien vouloir signaler cette incorrecte. Soit l'adresse spécifiée es en dehors de
erreur à l'ingénieur d'application Adept. Veuillez la plage, soit elle n'est utilisée par aucun des
également indiquer les détails du message d'erreur modules d'E/S.
et ce que vous faisiez lorsque l'erreur s'est Action de l'utilisateur : Corriger l'adresse ou installer le module manquant.
produite.
*Illegal monitor command* (–300)
*Illegal I/O device command* (–502) Explication : Le système ne reconnaît pas le nom de la dernière commande,
Explication : Une unité d'E/S a rejeté une commande. Certains dispositifs probablement parce qu'elle comporte une faute de
n'acceptent pas toutes les commandes. Par frappe ou parce qu'il s'agit d'une instruction et non
exemple, les E/S d'accès direct au terminal ou à d'une commande.
l'unité Kermit sont interdites ; la fonction GETC Action de l'utilisateur : Vérifier le nom de la commande et saisir celle-ci de
ne peut pas être lue à partir d'un fichier disque nouveau. Utiliser la commande DO pour appeler
ouvert pour accès direct. Ce message d'erreur une instruction à partir du terminal.
révèle également un problème matériel du
contrôleur de l'unité. *Illegal motion from here* (–613)
Action de l'utilisateur : Corriger la commande d'E/S pour la rendre Explication : Le dernier déplacement commandé ne peut s'exécuter depuis la
compatible avec l'unité. Si le problème persiste, position actuelle du robot. Par exemple, NEST ne
contacter l'ingénieur d'application Adept pour peut être exécutée qu'immédiatement après une
obtenir de l'aide. instruction READY. La commande CALIBRATE
ne peut être exécutée qu'après la mise sous
*Illegal I/O redirection specified* (–525) tension, LIMP ou NEST ; seules les instructions
Explication : On a désigné un réacheminement d'E/S non acceptable dans CALIBRATE et READY peuvent être exécutées
une commande «monitor» DEFAULT, une lorsque le robot est sur NEST.
commande en mode «monitor» d'E/S de disque Action de l'utilisateur : Exécuter la séquence d'opérations appropriée avant
(LOAD ou STORE_), ou dans une instruction de relancer le déplacement désiré.
ATTACH. Il y a soit une erreur de syntaxe, soit
une demande de réacheminement non valide pour *Illegal operation* (–423)
la configuration d'E/S. Explication : Une instruction a tenté de lancer une opération interdite.
Action de l'utilisateur : Vérifier la syntaxe de l'instruction non valide. Action de l'utilisateur : Vérifier l'instruction en cours au moment où l'erreur
Vérifier la configuration d'E/S pour s'assurer que s'est produite. S'assurer que rien n'entrave son
l'unité de réacheminement est autorisée. exécution.

*Illegal joint number* (–609) *Illegal .PROGRAM statement* (–467)


Explication : Un numéro d'axe situé en dehors de la plage a été spécifié.

357
Cours de formation Programmation ADEPT V+ 1

Explication : On a tenté : (1) de saisir une ligne autre qu'une instruction Explication : La carte du contrôleur qui traite les images vision n'a pas
.PROGRAM à la première ligne du programme, répondu lors du traitement d'une demande de
ou (2) de saisir une instruction .PROGRAM avec prise d'image.
une erreur de syntaxe. Action de l'utilisateur : Après avoir sauvegardé les programmes, les variables
Action de l'utilisateur : Déplacer le curseur sous la première ligne du et les prototypes vision, mettre le contrôleur hors
programme, puis saisir la ligne correctement. tension. S'assurer que le processeur d'images est
(Avec l'éditeur V + SEE, on peut appuyer sur la bien enfoncé dans le fond de panier du contrôleur.
touche de fonction Annuler ou sur ESC+CTRL+C Si le problème persiste, contacter le service après-
pour annuler les modifications apportées à la vente Adept.
ligne .PROGRAM.
*Incompatible robot and safety ID* (–644)
*Illegal record length* (–528) Explication : Le robot et le contrôleur n'ont pas les mêmes options de
Explication : Une instruction FOPEN a spécifié une longueur sécurité.
d'enregistrement non autorisée. Par exemple, la Action de l'utilisateur : S'assurer que le robot et le contrôleur appropriés sont
valeur est négative ou trop grande, ou la longueur utilisés ensemble. Installer la licence de sécurité
de l'enregistrement est nulle avec le mode d'accès appropriée EN954 sur le contrôleur (ou l'enlever).
direct spécifié.
Action de l'utilisateur : Editer le programme pour qu'il spécifie une longueur *Inconsistent hierarchy levels* (–757)
d'enregistrement acceptable ou le mode d'accès Explication : L'instruction visuelle VPLAN.FINDER a tenté de combiner
séquentiel. deux modèles ou plus de recherche d'objet qui
n'ont pas été configurés au même niveau
*Illegal use of belt variable* (–466) hiérarchique (sous-échantillon).
Explication : Une variable de convoyeur a été utilisée dans un contexte qui Action de l'utilisateur : Reconfigurer les modèles pour qu'ils soient tous au
ne l'autorise pas, probablement dans une même niveau hiérarchique.
transformée composée, mais pas à la position la
plus à gauche. *Information not available* (–730)
Action de l'utilisateur : Editer le programme pour utiliser la variable de Explication : (1) Une opération VGETPIC, VPUTPIC, VRULER,
convoyeur de façon appropriée. VRULERI ou VWINDOW a été tentée alors que
la mémoire d'images (binaire ou échelle de gris)
*Illegal user LUN specified* (–527) ne contient pas de données d'images correctes. (2)
Explication : Une instruction d'E/S a désigné un numéro d'unité logique Aucune information n'est disponible pour VGAPS
(LUN) non défini dans le système V + , ou à ni VSUBPROTO (par exemple,
laquelle il n'est pas possible d'accéder de la façon V.LAST.VER.DIST est sur zéro), ou le nom du
spécifiée. (Voir la Action de l'utilisateur : prototype spécifié ne correspond pas à celui du
S'assurer que Kermit n'accède à aucun fichier, dernier objet défini.
puis relancer l'opération échouée. Action de l'utilisateur : Modifier les opérations précédant celle qui a échoué
pour être sûr que les conditions requises sont
*Image processing board failure* (–728) réunies.

358
Cours de formation Programmation ADEPT V+ 1

*Invalid camera calibration* (–802)


*Initialization error* (–505) Explication : Une opération du système vision a été tentée avant l'étalonnage
Explication : Une unité d'E/S a signalé une erreur au cours de son caméra-robot.
initialisation. L'initialisation a lieu lors de la mise Action de l'utilisateur : Exécuter le programme d'étalonnage caméra-robot
sous tension ou d'une réinitialisation, mais peut fourni par Adept, ou charger les données
également être exécutée après certaines erreurs d'étalonnage précédentes. Pour cela, on peut par
irrécupérables d'E/S. exemple appeler le sous-programme load.line
Action de l'utilisateur : S'assurer que le matériel de l'unité d'E/S est bien fourni sur le disque utilitaire Adept dans le fichier
installé. Reprendre l'opération d'E/S échouée. Si LOADAREA.V2.
le problème persiste, contacter le service après- *Invalid character in font* (–741)
vente Adept. Explication : Un caractère non valide figure dans la chaîne de définition
d'une police pour la reconnaissance optique de
*Initialization failure* Belt n (–1015) caractères (OCR). Les caractères de la chaîne
Explication : Le système de contrôle du codeur de convoyeur spécifié n'a pas doivent se situer dans la plage ASCII 33 (!) à 126
répondu à V + lors de l'initialisation à cause de () ASCII.
l'instruction DEFBELT. Action de l'utilisateur : Supprimer le caractère non valide de la chaîne.
Action de l'utilisateur : Mettre le contrôleur hors tension, puis le redémarrer. *Invalid connection specified* (–540)
Si le problème persiste, contacter le service après- Explication : Une connexion de réseau logique non valide a été spécifiée. Par
vente Adept. (On peut empêcher que cette erreur exemple, un ID de connexion nul n'est pas valide.
soit signalée en activant le commutateur Action de l'utilisateur : Spécifier un ID de connexion logique valide.
DRY.RUN du système.) *Invalid disk format* (–520)
*Input block error* (–511) Explication : On a tenté de lire un disque non formaté, ou mal formaté ; ou
Explication : Une erreur de lecture s'est produite lors de la lecture d'un une commande FORMAT (formatage) contenant
fichier de données binaires sur la disquette. Cela des paramètres de formatage non valides a été
signifie qu'on a spécifié un fichier incorrect ou saisie pour l'unité spécifiée.
que les données du fichier sont corrompues. Action de l'utilisateur : Si on a saisi une commande FORMAT, vérifier la
Action de l'utilisateur : Retenter l'opération. Si l'erreur se reproduit, utiliser syntaxe et la saisir de nouveau. Sinon, essayer une
une autre disquette. autre disquette ou reformater celle utilisée. Ne pas
*Input error* Try again : (16) oublier que le formatage efface tout le contenu de
Explication : La valeur saisie était incompatible avec ce que V + attendait. la disquette. Si la disquette a été créée sur un PC
Action de l'utilisateur : Fournir une autre réponse. IBM, s'assurer qu'elle l'a été avec l'un des formats
*Invalid argument* (–407) compatibles avec le système V + .
Explication : Un argument pour une fonction, une instruction ou une *Invalid error code* Belt n (–1010)
commande de l'éditeur SEE est en dehors de la Explication : Une erreur non identifiée a été signalée par le contrôleur pour
plage. le convoyeur indiqué.
Action de l'utilisateur : Vérifier la plage des arguments pour cette fonction, Action de l'utilisateur : Relancer l'opération. Si l'erreur persiste, signaler
cette instruction ou cette commande de l'éditeur. cette situation à l'ingénieur d'application Adept.
*Invalid format specifier* (–461)

359
Cours de formation Programmation ADEPT V+ 1

Explication : Un spécificateur de format de sortie non identifié a été lu dans caractère autre que les deux points. Les noms de
une instruction TYPE ou WRITE, ou dans une police sont mentionnés par FONT_n, où n étant
fonction $ENCODE. un entier compris entre 0 et 50. (Le nom
Action de l'utilisateur : Editer le programme pour utiliser un spécificateur de particulier FONT_0 fait référence à toutes les
format valide. polices.) Dans le même ordre d'idées, les noms de
*Invalid hardware configuration* (–533) modèles ont la forme TMPL_n. Les noms de
Explication : On a tenté d'accéder à une unité d'E/S de façon incompatible prototypes ne doivent pas commencer ni par
avec sa configuration. Ce dispositif est soit absent FONT_, ni par TMPL_.
du système soit configuré pour une autre Action de l'utilisateur : Lancer de nouveau l'opération en spécifiant
utilisation. Par exemple, si une ligne de correctement le nom de prototype, sous-
communication série est configurée comme port prototype, police ROC ou de modèle de
réseau, on ne peut y accéder comme à une ligne corrélation.
série utilisateur. *Invalid network address* (–561)
Action de l'utilisateur : S'assurer qu'on accède au périphérique approprié. Explication : Cette erreur se produit lorsqu'un serveur NFS n'a pas
Mettre le contrôleur hors tension et tenter de le correctement exporté le chemin utilisé, ou lorsque
redémarrer. S'assurer que le disque d'amorçage l'adresse de réseau IP utilisée n'est pas de classe
utilisé convient au contrôleur. Utiliser le A, B ou C.
programme utilitaire CONFIG_C pour vérifier la Action de l'utilisateur : Vérifier les adresses IP utilisées pour désigner les
configuration d'E/S série. Si le problème persiste, nœuds du réseau.
contacter l'ingénieur d'application Adept pour *Invalid network protocol* (–541)
obtenir de l'aide. Si l'erreur est due à une Explication : Un message a été reçu et rejeté par un noeud distant parce qu'il
opération d'E/S du disque, cela signifie que le ne respectait pas le protocole prévu. Si l'on tentait
matériel de contrôle du disque est mal configuré. d'accéder au périphérique KERMIT, ce message
Dans ce cas, contacter le service après-vente indique que le serveur distant a signalé une erreur
Adept. ou transmis un message que le pilote de Kermit
*Invalid in read-only mode* (–352) sur V + n'a pas compris.
Explication : Lors de l'accès à un programme en mode lecture seule, on a Action de l'utilisateur : Vérifier si la version du logiciel réseau sur le noeud
lancé une fonction d'édition interdite. distant est compatible avec le logiciel réseau du
Action de l'utilisateur : Modifier le programme d'édition en mode lecture- noeud local. Désactiver (DISABLE) ou activer
écriture, ou utiliser une autre commande d'édition. (ENABLE) les noeuds du réseau concernés et
*Invalid model name* (–732) relancer l'opération. Si l'erreur se produit de façon
Explication : Le nom d'un prototype, d'un sous-prototype, d'une police OCR répétée, contacter l'ingénieur d'application Adept
ou d'un modèle de corrélation a été spécifié de pour obtenir de l'aide. (Voir le Manuel
façon incorrecte. Le format correcte de nom de d’utilisation du langage V + pour plus de détails
prototype est proto:subproto, où proto est un nom sur Kermit.)
de prototype, et subproto, celui d'un sous- *Invalid network resource* (–560)
prototype. Cette erreur se produit si les deux Explication : Cette erreur se produit lorsqu'on désigne un noeud qui n'a pas
points sont suivis d'un blanc, ou si l'on utilise un été défini.

360
Cours de formation Programmation ADEPT V+ 1

Action de l'utilisateur : Vérifier les définitions de noeuds. le terminal du système pour interrompre la
*Invalid number format* (–456) commande VTRAIN, ou interrompre l'exécution
Explication : Une erreur de syntaxe a été décelée au cours de la lecture d'un du programme qui a lancé l'apprentissage.
numéro. Par exemple, le chiffre 8 ou 9 a été *Invalid servo error* Mtr n (–1001)
rencontré lors de la lecture d'un numéro octal. Explication : Une erreur non identifiée a été signalée pour le moteur de robot
Action de l'utilisateur : Saisir à nouveau la ligne avec un numéro valide. indiqué.
*Invalid orientation* (–619) Action de l'utilisateur : Relancer l'opération. Si l'erreur persiste, contacter le
Explication : On a commandé un déplacement vers une position définie par service après-vente Adept.
une transformée dont l'orientation pointe vers le *Invalid servo initialization data* (–625)
haut au lieu du bas. Explication : Au cours de l'initialisation du système V + , après l'amorçage à
Action de l'utilisateur : Corriger la définition de la transformée de partir du disque, le système à détecté des données
destination. Par exemple, il peut s'avérer d'initialisation du variateur dans un format
nécessaire de corriger la transformée de base dans incorrect. Ceci peut être dû à une utilisation d'une
la transformée composée. (La composante p de version du programme utilitaire SPEC
toutes les transformées de destination doit être incompatible avec le système V + .
d'environ 180 degrés.) Action de l'utilisateur : S'assurer que le disque système a été configuré
*Invalid program or variable name* (–455) correctement. Contacter l'ingénieur d'application
Explication : Un nom défini par l'utilisateur utilisé dans une commande ou Adept pour obtenir de l'aide.
une instruction n'a pu être reconnu par V + . *Invalid software configuration* (–315)
Action de l'utilisateur : Vérifier le nom et saisir à nouveau la ligne. Explication : Au cours du démarrage initial, V + a constaté que le logiciel du
*Invalid qualifier* (–476) système n'était pas correctement configuré pour
Explication : Un qualificateur non valide a été spécifié dans la dernière les options ou le matériel présent.
commande. Action de l'utilisateur : Mettre le contrôleur hors tension et tenter de le
Action de l'utilisateur : Saisir à nouveau la commande avec un qualificateur redémarrer. S'assurer que le disque d'amorçage
valide. utilisé est compatible avec le contrôleur. Si le
*Invalid request while camera running* (–706) problème persiste, contacter le service après-vente
Explication : On a tenté de lancer une opération pour laquelle le système Adept pour obtenir de l'aide.
vision doit être inactif, mais ce dernier était en *Invalid statement label* (–463)
train de traiter une image. Explication : L'étiquette de l'instruction n'est pas un entier compris entre 0 et
Action de l'utilisateur : Utiliser une instruction VWAIT pour mettre en 65535.
attente l'exécution du programme jusqu'à ce que Action de l'utilisateur : Saisir à nouveau la ligne avec une étiquette valide.
le système vision soit inactif. Invalid steps will be changed to ?
*Invalid request while vision training* (–729) lines (Aucun)
Explication : On a tenté de lancer une instruction VEDGE.INFO ou VGAPS Explication : La commande étendue AUTO.BAD a été utilisée pour changer
alors que le système vision était en mode la mesure à prendre lorsqu'une ligne non valide
d'apprentissage de prototype. est détectée en cours d'édition. Par la suite, cette
Action de l'utilisateur : À l'aide du boîtier de commande manuelle, arrêter ligne sera automatiquement remplacée par une
l'apprentissage du prototype, puis taper Ctrl+C sur

361
Cours de formation Programmation ADEPT V+ 1

ligne non valide avec un point d'interrogation à la entraîneraient une modification de la pile, ce qui
colonne 1. est interdit.
Action de l'utilisateur : Aucune. Il s'agit d'un message d'information. Action de l'utilisateur : Retirer le programme de la pile en laissant la tâche
*Invalid VFEATURE access* (–801) s'exécuter jusqu'à ce que le programme voulu
Explication : Une fonction VFEATURE a servi à accéder, à partir du exécute une instruction RETURN ou lance une
système vision, à des données non valides. En commande KILL en mode «monitor» pour vider
particulier, à la suite d'une instruction VLOCATE la pile. Si on utilise l'éditeur de programme SEE,
en mode sans attente, les données vision sont appuyer sur la touche Annuler pour poursuivre
incorrectes si VFEATURE(1) renvoie la valeur l'édition.
FALSE. *Invalid when program task active* (–311)
Action de l'utilisateur : Editer le programme de sorte qu'à la suite d'une Explication : On a tenté de lancer une tâche de robot ou de programme PC
instruction VLOCATE, aucun accès VFEATURE alors que cette tâche était déjà en cours
[autre que VFEATURE(1)] n'ait lieu si d'exécution.
VFEATURE(1) indique que les données vision ne Action de l'utilisateur : Annuler la tâche en cours d'exécution, ou, si possible,
sont pas valides. lancer l'exécution du programme comme une
*Invalid vision argument* (–735) tâche différente.
Explication : Un argument pour une fonction vision, une instruction ou une *I/O communication error* (–507)
commande n'est pas dans la plage autorisée. Explication : Une erreur matérielle a été détectée dans l'interface d'E/S.
Action de l'utilisateur : Vérifier la plage autorisée Action de l'utilisateur : Réessayer la commande. Si le problème persiste,
pour les arguments de cette fonction, instruction contacter le service après-vente Adept.
ou commande. Vérifier l'étalonnage vision pour *I/O queue full* (–517)
s'assurer que l'échelle est raisonnable. Explication : Un périphérique a reçu trop rapidement un trop grand nombre
*Invalid vision X/Y ratio* (–727) de demandes d'E/S et il n'y a plus de place dans la
Explication : Une instruction VPUTCAL a été utilisée pour transmettre les file d'attente.
données d'étalonnage vision au système Action de l'utilisateur : Relancer l'opération. Si le problème persiste, nous
AdeptVision, mais le rapport des échelles x et y vous remercions de signaler cette erreur à
n'est pas dans la plage autorisée. l'ingénieur d'application Adept. Veuillez
Action de l'utilisateur : S'assurer que le programme lit les données également indiquer les détails du message d'erreur
d'étalonnage à partir d'un fichier de données et ce que vous faisiez lorsque l'erreur s'est
valide, ou de l'assertion de valeurs correctes par le produite.
programme. *Is a directory* (–568)
*Invalid when program on stack* (–366) Explication : Le programme appelant a spécifié un répertoire dans une
Explication : On a tenté d'éditer l'instruction .PROGRAM ou AUTO alors opération NFS ne s'appliquant pas à un répertoire.
que le programme figure sur une pile d'exécution Action de l'utilisateur : Reprendre l'opération en appelant un fichier et non
de tâche. Lorsqu'une tâche se trouve sur une pile, un répertoire ; ou effectuer une opération
ses arguments de sous-programme et ses valeurs appropriée pour un répertoire.
de variables automatiques sont conservés sur la *Joint 1 in brake track or robot overheated* (–606)
piles. La modification de ces instructions

362
Cours de formation Programmation ADEPT V+ 1

Explication : (1) L'axe 1 du robot s'est déplacé dans la piste de freinage Action de l'utilisateur : S'assurer qu'on utilise correctement les fonctions et
matériel, ce qui provoque la coupure de la les opérations de position, puis éditer le
puissante et empêche le robot de bouger. (2) Il y a programme comme requis.
surchauffe de la base du robot. Action de Macro (Z ends) : (Aucun)
l'utilisateur : (1) Appuyer sur le bouton de Explication : On a lancé la définition d'une macro-commande de l'éditeur
déblocage du frein à la base du robot et remettre SEE.
les axes dans leur espace de fonctionnement Action de l'utilisateur : Taper la macro-commande, puis appuyer sur Z pour
normal. Remettre le système en puissance et indiquer la fin de la définition.
poursuivre l'exécution du programme. (2) Vérifier *Manual brake release* (–639)
le filtre du ventilateur à la base du robot, puis Explication : Le bouton de déblocage manuel du frein du robot est actif. Une
vérifier la température ambiante du robot. Laisser fois que l'on a appuyé sur ce bouton, on ne peut
refroidir le robot, remettre le système en plus établir la puissance.
puissance et poursuivre l'exécution du Action de l'utilisateur : S'assurer que le bouton de déblocage manuel du frein
programme. (habituellement situé sur le robot) est inactif. Si le
*Line too long* (–354) problème persiste alors que l'on n'a pas appuyé
Explication : On a tenté une opération qui aurait pu entraîner un pas de sur le bouton, contacter le service après-vente
programme contenant trop de caractères. Un pas Adept.
de programme peut contenir au plus environ 150 *Manual control pendant failure* (–650)
caractères. Explication : Un programme a tenté d'accéder au boîtier de commande
Action de l'utilisateur : Saisir le pas de programme sous forme de deux pas manuelle alors que ce dernier était déconnecté ou
distincts ou plus. en panne.
*Location out of range* (–610) Action de l'utilisateur : S'assurer que le boîtier de commande est bien
Explication : V + a détecté une position trop éloignée (probablement dans un connecté. Si le problème persiste, contacter le
calcul intermédiaire), ou hors de portée du robot. service après-vente Adept.
Cela indique peut-être une erreur dans la valeur *Manual mode switch 1 off detected by CPU* (–917)
d'un argument de fonction de position ou dans Explication : Une condition d'arrêt d'urgence est survenue en mode manuel
une transformée composée. parce que la CPU a détecté sur la voie de signaux
Action de l'utilisateur : S'assurer qu'on utilise correctement les fonctions et 1 que le bouton de mode manuel était sur le mode
les opérations de position, puis éditer le automatique. Normalement, ce message s'efface
programme comme requis. et le système signale l'erreur – 645. Il peut s'agir
*Location too close* (–618) d'un problème matériel du CIP, de son câblage ou
Explication : On a tenté de déplacer le robot vers une position trop proche de du module AWC.
sa colonne. Cela indique probablement une erreur Action de l'utilisateur : Si cela ne présente aucun risque, basculer le bouton
dans la valeur de l'argument de fonction de de mode automatique/manuel, puis tenter de
position, ou d'une transformée composée remettre le système en puissance. Renfoncer la
incorrecte. prise du connecteur JAWC sur le CIP et la prise
du connecteur CIP sur le module AWC. Vérifier

363
Cours de formation Programmation ADEPT V+ 1

si le CIP est correctement connecté. Si l'erreur appelé le HOLD-TO-RUN) était relâché.


persiste, contacter le service après-vente Adept. Normalement, ce message s'efface et le système
*Manual mode switch 2 off detected by CPU* (–918) signale l'erreur – 913. Il peut s'agir d'un problème
Explication : Une condition d'arrêt d'urgence est survenue en mode manuel matériel du CIP ou de son câblage.
parce que la CPU a détecté sur la voie de signaux Action de l'utilisateur : Maintenir le commutateur d'activation du MCP et
2 que le bouton de mode manuel était sur le mode remettre le système en puissance. Si cette erreur
automatique. Normalement, ce message s'efface revient fréquemment, contacter le service après-
et le système signale l'erreur – 645. Il peut s'agir vente Adept.
d'un problème du CIP, de son câblage, ou très *MCP enable switch 2 off detected by CPU* (–916)
probablement du module AWC. Explication : Une condition d'arrêt d'urgence est survenue parce que la CPU
Action de l'utilisateur : Si cela ne présente aucun risque, basculer le bouton a détecté sur la voie de signaux 2 que le
de mode automatique/manuel, puis tenter de commutateur d'activation du MCP (auparavant
remettre le système en puissance. Renfoncer la appelé HOLD-TO-RUN) était relâché.
prise du connecteur JAWC sur le CIP et la prise normalement, ce message s'efface et le système
du connecteur CIP sur le module AWC. Vérifier signale l'erreur – 913. Il peut s'agir d'un problème
que le CIP est correctement connecté. Si l'erreur matériel du CIP ou de son câblage.
persiste, contacter le service après-vente Adept. Action de l'utilisateur : Maintenir le commutateur d'activation du MCP et
*Maximum number of prototypes exceeded* (–712) remettre le système en puissance. Renfoncer la
Explication : La mémoire du système AdeptVision ne peut contenir plus de prise du connecteur JAWC sur le CIP et la prise
25 prototypes. du connecteur CIP sur le module AWC.
Action de l'utilisateur : Si l'on n'a pas besoin de tous les prototypes présents, *Memory Err* at aaaaaa (Aucun)
les enregistrer sur un disque à l'aide de la Explication : Au cours de l'initialisation, V + a détecté une défaillance
commande en mode «monitor» VSTORE et matérielle sur l'emplacement de mémoire spécifié.
supprimer les prototypes inutiles. On réduit ainsi Action de l'utilisateur : Mettre le contrôleur hors tension, puis le redémarrer.
le nombre de prototypes en mémoire afin de faire Si l'erreur persiste, contacter le service après-
l'apprentissage d'autres prototypes (VTRAIN) ou vente Adept.
d'en charger d'autres (VLOAD). *Misplaced declaration statement* (–471)
*Maximum number of samples trained* (–739) Explication : Lors du chargement d'un programme ou en quittant l'éditeur de
Explication : On a tenté l'apprentissage d'un caractère plus de 30 fois pour la programmes, V + a rencontré une instruction
reconnaissance optique de caractères (OCR). AUTO ou LOCAL qui faisait suite à une
Action de l'utilisateur : Afficher la police (avec VSHOW.FONT) et trouver instruction exécutable.
pour quels caractères l'apprentissage a déjà été Action de l'utilisateur : Editer le programme de sorte que les instructions
fait 30 fois. Ne plus faire l'apprentissage pour ces AUTO et LOCAL ne soient précédées que de
caractères. lignes vierges, de commentaires ou d'autres
*MCP enable switch 1 off detected by CPU* (–915) instructions AUTO et LOCAL.
Explication : Une condition d'arrêt d'urgence est survenue parce que la CPU *Missing argument* (–454)
a détecté sur la voie de signaux 1 que le Explication : Le système n'a pu trouver d'argument valide pour un ou
commutateur d'activation du MCP (auparavant plusieurs arguments nécessaires à la commande

364
Cours de formation Programmation ADEPT V+ 1

ou à l'instruction demandée. Cela signifie que service après-vente Adept. Le tableau suivant
l'argument était inexistant ou que l'argument résume les informations sur les codes.
présent n'était pas valide. Il est possible qu'on ait Les procédures de test de ces messages
utilisé un seul signe (=) pour l'opérateur s'adressent uniquement au personnel qualifié ou
relationnel d'égalité (==). formé. Le travail est effectué en présence de
Action de l'utilisateur : Vérifier la syntaxe de l'opération, puis saisir à tensions dangereuses, dont celles du panneau de
nouveau la ligne. sécurité. Tout manque de prudence risque
*Missing bracket* (–475) d'entraîner des blessures graves, voire mortelles.
Explication : Dans la description d'un élément de tableau, un crochet gauche Tableau E-2. Codes des messages d'erreur de diagnostic MMSP
(moins de) n'a pas son crochet droit (plus de) Code n Explication Action de l'utilisateur
correspondant. Soit il y a un crochet gauche de 0 Pas de réponse du matériel de carte d'arrêt d'urgence, ou erreur de
trop, soit il manque un crochet droit. parité.Vérifier que le panneau de sécurité est
Action de l'utilisateur : Saisir à nouveau la ligne en veillant à ce que chaque alimenté en c.a. et que l'alimentation c.c. est
crochet gauche ait un crochet droit correspondant. configurée correctement.
*Missing parenthesis* (–459) 1 Erreur matériel état 1.
Explication : On a tenté d'évaluer une expression avec un nombre inégal de Une erreur s'est produite ans la séquence de ommunication ou de test.
parenthèses ouvrantes et fermantes. éessayer. Si le problème persiste, cela peut être dû
Action de l'utilisateur : Corriger l'expression. à une carte d'arrêt d'urgence défaillante. Noter le
*Missing quote mark* (–460) message et le numéro de code de l'erreur, et
Explication : Une chaîne entre guillemets n'a pas de guillemet fermant contacter le service près-vente Adept.
correspondant en fin de ligne. 2 Erreur matériel état 2.
Action de l'utilisateur : Taper un guillemet à la fin de la chaîne. Les chaînes Une erreur s'est produite dans la séquence de comunication ou de
ne peuvent pas dépasser les limites de ligne. test.Réessayer. Si le problème persiste,cela peut
*Mixing half and full resolutions* (–750) être dû à une carte d'arrêt d'urgence défaillante.
Explication : On a défini un modèle (prototype de reconnaissance, police Noter le message et le numéro de code de l'erreur,
OCR ou modèle de corrélation) à l'aide d'une et contacter le service après-vente Adept.
image plein cadre, mais celui-ci a été appliqué à 3 Erreur matériel contacteur AP1puissance de bras.
une image demi-cadre (champ seulement), ou Consulter le Manuel d'instruction du robot ou contacter le service après-
vice versa. vente Adept.
Action de l'utilisateur : S'assurer qu'on utilise la caméra virtuelle appropriée *MMSP external sensor fault* Code n (–1109)
pour définir et appliquer le modèle. Un tableau Ces codes de messages concernant le matériel, consulter avant tout le
d'étalonnage qui contient les données indiquant si Manuel d'instruction du robot. Si l'on ne trouve
la caméra doit capter des images plein cadre ou pas de réponse aux questions, contacter le service
demi-cadre est associé à chaque caméra virtuelle. après-vente Adept. Si l'un de ces codes de
*MMSP diagnostic error* Code n (–1108) message s'affiche, s'écarter du robot et essayer de
Ces codes de message étant surtout destinés au matériel, consulter le Manuel remettre le système sous tension. Si le même code
d'instruction du robot en premier lieu. Si l'on ne d'erreur s'affiche de nouveau sans raison
trouve pas de réponse aux questions, contacter le apparente, cela peut provenir d'une défaillance du

365
Cours de formation Programmation ADEPT V+ 1

capteur. Le tableau suivant résume les raisons des Si l'erreur s'est produite pendant qu'un programme déplaçait le robot, tenter
codes de messages. de modifier le programme pour un déplacement
♦ Les procédures de test de ces messages plus lent du robot ou pour que ce dernier accélère ou décélère plus
s'adressent uniquement au personnel qualifié ou lentement. Pour les défauts sur les câbles et les
formé. Le travail est effectué en présence de capteurs, consulter le Manuel d'instruction du
tensions dangereuses, dont celles du panneau de robot ou contacter le service après-vente Adept.
sécurité. Tout manque de prudence risque 1 Erreur accéléromètre, voie 2. Le robot (axe 1 ou 2) se déplace ou accélère
d'entraîner des blessures graves, voire mortelles. trop rapidement :
4 Erreur matériel contacteur AP2 puissance de bras. l'accéléromètre a un problème ou la fonction d'essai intégré de
Consulter le Manuel d'instruction du robot ou contacter le service après- l'accéléromètre est défaillante. Si l'erreur s'est
vente Adept. produite pendant qu'un programme déplaçait le
5 Erreur matériel relais de contrôle cyclique, voie 1 (SR8). Une erreur s'est robot, tenter de modifier le programme pour un
produite dans la séquence de communication ou déplacement plus lent du robot ou pour que ce
de test. Réessayer. Si le problème persiste, cela dernier accélère ou décélère plus lentement. Pour
peut être dû à une carte d'arrêt d'urgence les défauts sur les câbles et les capteurs, consulter
défaillante. Consulter le le Manuel d'instruction du robot ou contacter le
Manuel d'instruction du robot ou contacter le service après-vente Adept. service après-vente Adept.
Noter le message et le numéro de code de l'erreur 2 Erreur capteur de limitation de tension variateur 3, voie 1. Le robot (axe 3)
avant de contacter le service après-vente Adept. se déplace ou accélère trop rapidement : défaut du
6 Erreur matériel relais de contrôle cyclique, voie 2 (SR9). Une erreur s'est capteur de limitation de tension, ou fonction
produite dans la séquence de communication ou d'essai intégrée du capteur de limitation de
de test. Réessayer. Si le problème persiste, cela tension défaillante. Si l'erreur s'est produite
peut être dû à une carte d'arrêt d'urgence pendant qu'un programme déplaçait le robot,
défaillante. Consulter le Manuel d'instruction du tenter de modifier le programme pour un
robot ou contacter le service après-vente Adept. déplacement plus lent du robot ou pour que ce
Noter le message et le numéro de code de l'erreur dernier accélère ou décélère plus lentement. Pour
avant de contacter le service après-vente Adept. les pannes de matériel, consulter le Manuel
d'instruction du robot ou contacter le service
Tableau E-2. Codes des messages d'erreur de diagnostic MMSP(Suite) après-vente Adept.
Code n Explication Action de l'utilisateur 3 Erreur capteur de limitation de tension variateur 3, voie 2. Le robot (axe 3)
Tableau E-3. Codes de message d'erreur de défaut de capteur du MMSP se déplace ou accélère trop rapidement : défaut du
externe capteur de limitation de tension, ou fonction
Code n Explication Action de l'utilisateur d'essai intégrée du capteur de limitation de
0 Erreur accéléromètre, voie 1. Le robot (axe 1 ou tension défaillante. Si l'erreur s'est produite
2) se déplace ou accélère trop rapidement : pendant qu'un programme déplaçait le robot,
l'accéléromètre a un problème ou la fonction d'essai intégré de tenter de modifier le programme pour un
l'accéléromètre est défaillante. déplacement plus lent du robot ou pour que ce
dernier accélère ou décélère plus lentement. Pour

366
Cours de formation Programmation ADEPT V+ 1

les pannes de matériel, consulter le Manuel Explication : Le variateur du moteur indiqué a signalé un état défectueux sur
d'instruction du robot ou contacter le service la ligne 1. Cette panne ne se produit que sur les
après-vente Adept. dispositifs contrôlés par le système
4 Erreur capteur de limitation de tension variateur 4, voie 1. Le robot (axe 4) d'asservissement AdeptMotion. L'interprétation
se déplace ou accélère trop rapidement : défaut du de cette panne varie selon l'unité contrôlée.
capteur de limitation de tension, ou fonction Action de l'utilisateur : Remettre le système en puissance et redémarrer le
d'essai intégrée du capteur de limitation de programme. Si l'erreur persiste, prendre les
tension défaillante. Si l'erreur s'est produite mesures appropriées pour le système
pendant qu'un programme déplaçait le robot, AdeptMotion. S'il s'agit d'un robot Adept
tenter de modifier le programme pour un standard, contacter le service après-vente Adept.
déplacement plus lent du robot ou pour que ce *Motor overheating* Mtr n (–1016)
dernier accélère ou décélère plus lentement. Pour Explication : Le moteur indiqué surchauffe.
les pannes de matériel, consulter le Manuel Action de l'utilisateur : Réduire la vitesse, l'accélération et/ou la décélération
d'instruction du robot ou contacter le service des déplacements du robot, ou intercaler des
après-vente Adept. délais dans le cycle de l'application pour
5 Erreur capteur de limitation de tension variateur 4, voie 2. Le robot (axe 4) permettre au moteur de refroidir.
se déplace ou accélère trop rapidement : défaut du *Motor stalled* Mtr n (–1007)
capteur de limitation de tension, ou fonction Explication : Le moteur indiqué a calé en cours de fonctionnement. Ceci est
d'essai intégrée du capteur de limitation de généralement dû à un obstacle sur le parcours du
tension défaillante. Si l'erreur s'est produite robot.
pendant qu'un programme déplaçait le robot, Action de l'utilisateur : Remettre le système en puissance et redémarrer le
tenter de modifier le programme pour un programme. Retirer l'obstacle ou modifier le
déplacement plus lent du robot ou pour que ce programme pour que le robot suive un parcours
dernier accélère ou décélère plus lentement. Pour différent.
les pannes de matériel, consulter le Manuel *Motor startup failure* Mtr n (–1105)
d'instruction du robot ou contacter le service Explication : Au cours de l'étalonnage, le moteur indiqué ne s'est pas déplacé
après-vente Adept. comme prévu. Cela peut être dû à l'un des
6 Erreur arrêt d'urgence total, voie 1 (SR5) Consulter le Manuel d'instruction problèmes suivants : (1) Le moteur est obstrué ou
du robot ou contacter le service après-vente a atteint une butée de fin de course, (2) la charge
Adept. du robot est trop importante pour l'étalonnage, (3)
le dispositif
Tableau E-3. Codes de message d'erreur de défaut de capteur du MMSP 7 Erreur arrêt d'urgence total, voie 2 (SR4)
externe(Suite) Consulter le Manuel d'instruction du robot ou contacter le service après-
Code n Explication Action de l'utilisateur vente Adept.
Code n Explication Action de l'utilisateur d'entraînement du moteur ne
fonctionne pas ou (4) les codeurs de position ne
*Motor amplifier fault* Mtr n (–1018) fonctionnent pas.

367
Cours de formation Programmation ADEPT V+ 1

Action de l'utilisateur : Eloigner le robot de ses butées et enlever toute Action de l'utilisateur : Redémarrer le protocole DDCMP.
charge inhabituelle. Remettre le système en *Network connection closed* (101)
puissance et tenter de nouveau l'étalonnage. Si Explication : Une connexion client s'est fermée sur l'unité logique concernée.
l'erreur persiste, contacter le service après-vente Action de l'utilisateur : Aucune. Il s'agit d'un message d'information.
Adept. *Network connection opened* (100)
*Must be in debug mode* (–360) Explication : Une nouvelle connexion client a été établie sur l'unité logique
Explication : On a tenté une fonction d'édition possible uniquement lorsque concernée.
le débogueur du programme est actif. Action de l'utilisateur : Aucune. Il s'agit d'un message d'information.
Action de l'utilisateur : Utiliser une autre commande d'édition ou activer le *Network connection terminated* (–565)
débogueur du programme à l'aide de la Explication : Cette erreur survient lorsqu'on tente des opérations d'entrée ou
commande étendue DEBUG de l'éditeur SEE ou de sortie alors que la connexion réseau est déjà
de la commande en mode «monitor» DEBUG. terminée.
*Must use CPU #1* (–666) Action de l'utilisateur : Rétablir la connexion réseau, puis retenter
Explication : Une commande ou instruction devant être exécutée sur la CPU l'opération.
1 a été lancée sur une autre CPU. *Network error* Code n (valeur reçue)
Action de l'utilisateur : Réexécuter la commande ou l'instruction sur la CPU Explication : Un code d'erreur entre 255 et -1 (inclus) a été reçu du réseau.
1. Ce code d'erreur que V + ne peut interpréter est
*Must use straight-line motion* (–611) transmis à l'utilisateur.
Explication : On a tenté de lancer une instruction de déplacement d'axe alors Action de l'utilisateur : Selon l'application. Si le code affiché n'a pas de
que le système était dans un mode n'autorisant signification pour l'application utilisée, s'assurer
que les mouvements rectilignes. Par exemple, on que le contrôleur distant transmet des données
ne peut utiliser que des mouvements rectilignes valides.
lors de la gestion d'un convoyeur. *Network node off line* (–538)
Action de l'utilisateur : Remplacer l'instruction par une autre instruction qui Explication : On a tenté de transmettre des données sur un noeud de réseau
ne demande que des mouvements rectilignes. connu qui n'est pas connecté. Le noeud est soit
*Negative overtravel* Mtr n* (–1032) désactivé, soit n'est pas connecté au réseau.
Explication : Le moteur indiqué a dépassé sa plage de déplacement négatif Action de l'utilisateur : Vérifier si le noeud distant est actif et connecté au
limitée par le matériel. réseau. Vérifier également si le noeud local est
Action de l'utilisateur : Ramener le robot dans son espace de travail. Corriger connecté au réseau.
la cause du dépassement par le robot. Rétablir *Network not enabled* (–542)
l'alimentation. Explication : On a tenté d'accéder à un noeud de réseau distant, ou de lancer
*Negative square root* (–410) certaines fonctions réseau alors que le réseau
Explication : On a tenté de calculer la racine carrée d'un nombre négatif. n'était pas actif.
Action de l'utilisateur : Corriger le programme comme requis. Action de l'utilisateur : Active le réseau et relancer l'opération.
*Network closed locally* (–535) *Network resource name conflict* (–564)
Explication : On a tenté d'accéder à une ligne série DDCMP alors que le Explication : Le nom spécifié pour un montage NFS est le même que le nom
protocole était inactif. Le protocole a sans doute d'un réseau existant, tel que le nom d'un disque
été arrêté par une autre erreur. NFS

368
Cours de formation Programmation ADEPT V+ 1

Action de l'utilisateur : Changer le nom. Action de l'utilisateur : Continuer l'appel sélectif vers l'unité d'E/S jusqu'à
*Network restarted remotely* (–534) réception des données, ou utiliser une demande de
Explication : V + a reçu un message de démarrage DDCMP du système lecture qui attende automatiquement les données à
distant alors que le protocole avait déjà recevoir.
commencé. Le système distant a probablement *No matching connection* (–539)
arrêté et redémarré son protocole. Le protocole Explication : Une demande de liaison logique sur le réseau a été reçue et
local est arrêté et toutes les demandes d'E/S en rejetée car il n'y a aucune connexion
attente ont terminé avec cette erreur. correspondante sur le noeud distant.
Action de l'utilisateur : (1) Fermer et rouvrir la ligne DDCMP ; (2) vérifier la Tableau E-4. Codes de message d'erreur du NFS
logique du programme distant pour savoir Code n Explication
pourquoi il a redémarré le protocole. 19 Dispositif inexistant.
*Network timeout* (–562) 30 Système de fichiers en lecture seule. Une opération d'écriture a été tentée
Explication : Cette erreur se produit lorsqu'on lance une transaction réseau et sur un système de fichiers en lecture seule.
qu'aucune réponse ne parvient du serveur. 69 Quota disque dépassé. Le quota du disque client sur le serveur a été
Action de l'utilisateur : Vérifier l'intégrité du réseau. S'assurer que le serveur dépassé.
fonctionne correctement. S'assurer également que 99 La mémoire cache d'écriture du serveur utilisée pour l'appel
l'adresse IP utilisée est correcte. WRITECACHE a été vidée sur le disque.
*NFS error* Code n (–1200 à –1299) Action de l'utilisateur : Vérifier si la liaison logique correcte a été spécifiée.
Explication : NFS envoyant des messages d'erreur sans signification pour V Vérifier également si le noeud distant fonctionne
+ , certaines d'entre elles sont considérées comme correctement.
des erreurs variables NFS. Ces erreurs *No models* (–758)
s'interprètent de la façon suivante : le numéro Explication : L'instruction VSTORE ou la commande en mode «monitor» n'a
d'erreur –(1200+n) de V + correspond au code trouvé aucun modèle à enregistrer.
d'erreur n de NFS. Le Tableau E-4 décrit les Action de l'utilisateur : Fournir les noms de modèles corrects à l'instruction
codes d'erreur NFS actuellement connus qui sont VSTORE.
signalés de cette façon. *No models planned* (–761)
*No air pressure* (–607) Explication : La reconnaissance ne peut pas commencer car aucun modèle
Explication : V + a détecté une défaillance de l'alimentation d'air des freins objet n'a été prévu pour la caméra virtuelle
et du préhenseur du robot. La puissance est concernée.
coupée et ne peut être rétablie sans le Action de l'utilisateur : Saisir le numéro de caméra virtuelle ou le plan
rétablissement de la pression d'air. approprié utilisant le numéro de caméra spécifié.
Action de l'utilisateur : Rétablir la pression d'air, remettre le système en (Voir l'instruction VPLAN.FINDER dans le
puissance et relancer le programme. Si l'erreur AdeptVision optionnel.)
persiste, contacter le service après-vente Adept. *No objects seen* (–704)
*No data received* (–526) Explication : Le système de vision signale qu'il n'a vu aucun objet à la suite
Explication : Une demande de lecture d'E/S sans attente n'a trouvé aucune d'une commande VTRAIN ou VLOCATE. Dans
donnée à retourner. Il ne s'agit pas vraiment d'une le cas de la commande VLOCATE, il s'agit d'une
erreur. erreur seulement si l'on s'attend à voir des objets.

369
Cours de formation Programmation ADEPT V+ 1

Action de l'utilisateur : Dans le cas de l'apprentissage, s'assurer que l'objet de commandes, instructions et fonctions connectent
l'apprentissage est visible à la caméra. Si l'on le robot par défaut.)
s'attend à voir des objets, vérifier le paramètre de Action de l'utilisateur : S'assurer que le système a été initialisé à partir du
seuil, le paramètre de zone minimale et le disque système approprié (par exemple, utilisation
matériel de la caméra. de la commande ID pour afficher l'identification
*No other program referenced* (–353) du système). Modifier le programme pour qu'il ne
Explication : On a lancé une commande qui a tenté de désigner un tente pas de connecter le robot.
programme édité précédemment, mais aucun *No vision system selected* (–751)
autre programme n'a été édité au cours de Explication : La tâche en cours n'a pas sélectionné de système de vision. Le
l'actuelle session d'édition. système de vision 1 est sélectionné par défaut.
Action de l'utilisateur : Utiliser la touche de fonction New (Nouveau) ou Cette erreur peut indiquer que l'option de vision
GoTo (Aller à) (ou la lettre N sur le clavier) pour n'est pas installée.
passer à un nouveau programme. Action de l'utilisateur : Utiliser la fonction SELECT() pour sélectionner un
*No picture data available* (–723) système de vision.
Explication : On a tenté une opération de vision qui nécessite des données *No zero index* Belt n (–1011)
d'image traitées (codage par longueur d'exécution) Explication : Le contrôleur du convoyeur n'a pas détecté de marque d'index
alors qu'aucune donnée d'image traitée n'était zéro pour le convoyeur indiqué.
disponible. Action de l'utilisateur : S'assurer que la valeur du paramètre
Action de l'utilisateur : Lancer une commande ou instruction VPICTURE ou BELT.ZERO.COUNT est définie correctement.
VWINDOW avec le paramètre de mode de − ou S'assurer également que le codeur de convoyeur
1. On obtient ainsi les données d'image traitées est bien connecté. Si le problème persiste,
nécessaires aux règles ou au retraitement. contacter le service après-vente Adept.
*No program specified* (–301) *No zero index* Mtr n (–1004)
Explication : Aucun programme n'a été spécifié pour une commande ou une Explication : Le contrôleur du moteur n'a pas détecté de marque d'index zéro
instruction EXECUTE ou SEE, ou une pour l'axe indiqué.
commande DEBUG, et aucun autre programme Action de l'utilisateur : Avant de pouvoir relancer le programme, réétalonner
n'est disponible par défaut. le robot. Si le problème persiste, contacter le
Action de l'utilisateur : Taper de nouveau la ligne en indiquant un nom de service après-vente Adept.
programme. *Nonexistent file* (–501)
*No prototypes* (–702) Explication : (1) Le fichier demandé n'est pas enregistré sur le disque utilisé.
Explication : Il s'agit de la réponse aux commandes moniteur VSTORE et Soit le nom comporte une faute de frappe, soit le
VSHOW (sans paramètre) lorsqu'il n'existe pas de disque utilisé n'est pas le bon. (2) Le titre, le
prototype. menu ou la barre de défilement demandé de la
Action de l'utilisateur : Charger des prototypes d'objet vision ou en créer un fenêtre graphique n'existe pas.
nouveau. Action de l'utilisateur : (1) Vérifier le nom du fichier - afficher le répertoire
*No robot connected to system* (–622) du disque avec la commande FDIRECTORY. (2)
Explication : On a tenté de connecter un robot à un système qui ne peut Vérifier le nom de l'élément de la fenêtre
contrôler un robot. (Noter que certaines graphique spécifié.

370
Cours de formation Programmation ADEPT V+ 1

*Nonexistent subdirectory* (–545) *Not enough program stack space* (–413)


Explication : Le sous-répertoire spécifié dans la désignation de fichier Explication : On a tenté d'appeler un sous-programme, de traiter un sous-
n'existe pas sur le disque. Noter que ce sous- programme de réaction ou d'allouer des variables
répertoire peut faire partie d'un chemin de automatiques alors que la pile du programme
répertoire par défaut défini avec la commande de n'avait pas suffisamment d'espace.
moniteur DEFAULT. Action de l'utilisateur : Réorganiser la logique du programme pour éliminer
Action de l'utilisateur : Vérifier si le nom du sous-répertoire a été saisi un ou plusieurs appel(s) ou réaction(s) de sous-
correctement. Vérifier que le lecteur de disque programme imbriqués ; éliminer certaines des
spécifié est correct et que la disquette appropriée variables automatiques allouées par les
est chargée. Utiliser la commande FDIRECTORY programmes ; ou utiliser la commande de
pour afficher le répertoire contenant le sous- moniteur STACK pour augmenter la capacité de
répertoire. S'assurer que le chemin par défaut du la pile pour la tâche de programme. On peut
répertoire est exact. redémarrer le programme avec la commande
*Not a directory* (–567) RETRY.
Explication : Le programme appelant a spécifié un élément qui n'est pas un *Not enough prototype storage area* (–717)
répertoire dans une opération NFS. Explication : Le système de vision n'a pas suffisamment de mémoire pour
Action de l'utilisateur : Préciser un répertoire dans l'opération, ou utiliser une enregistrer tous les prototypes demandés.
opération ne faisant pas appel à un répertoire. Action de l'utilisateur : Supprimer (VDELETE) tous les prototypes inutilisés,
*Not attached to logical unit* (–516) charger moins de prototypes, ou utiliser des
Explication : Un programme a tenté d'effectuer des entrées/sorties avec une modèles objet plus simples.
unité logique non connectée avec une instruction *Not enough storage area* (–411)
ATTACH. L'unité logique 4 permet le traitement Explication : Il n'y a plus d'espace dans la mémoire à accès direct (RAM)
de sorties sans être connectée, mais toutes les pour les programmes ou les variables.
autres unités logiques doivent être connectées Action de l'utilisateur : Supprimer les programmes et les variables inutilisés.
pour les opérations d'E/S. Si la mémoire est fragmentée à la suite de
Action de l'utilisateur : Editer le programme pour qu'il connecte une unité nombreuses suppressions, on peut la regrouper
logique avant de tenter de l'utiliser pour lancer avec les commandes STORE save_all, ZERO et
des opérations d'E/S. LOAD save_all. On écrit ainsi le contenu de la
*Not configured as accessed* (–544) mémoire sur le disque et on le ramène dans la
Explication : On a tenté d'accéder à une ligne série ou autre unité d'E/S d'une mémoire. Noter toutefois que cette procédure ne
façon pour laquelle elle n'est pas configurée. Par conserve aucune des variables non référencées par
exemple, on ne peut accéder à une ligne Kermit un programme en mémoire, et ne retient aucune
ou réseau comme à une simple ligne série. des valeurs de variables définies comme AUTO
Action de l'utilisateur : Vérifier la façon appropriée d'accéder à la ligne série ou LOCAL.
dans sa configuration actuelle. Utiliser le *Not found* (–356)
programme utilitaire de configuration pour Explication : L'opération de recherche n'a pu trouver la chaîne spécifiée.
afficher la configuration de la ligne série et la Action de l'utilisateur : Introduire une nouvelle chaîne, ou tenir compte du
modifier au besoin. message et procéder à d'autres opérations.

371
Cours de formation Programmation ADEPT V+ 1

*Not owner* (–566) Explication : Le dispositif de surveillance a détecté une modification de la


Explication : Le client n'a pas l'identité requise pour exécuter à l'opération valeur de l'expression surveillée. La modification
NFS demandée. s'est produite à cause de l'exécution du pas du
Action de l'utilisateur : Modifier l'instruction LOCAL_ID du fichier de programme juste avant celui indiqué.
configuration V + (à l'aide du programme Action de l'utilisateur : Saisir la commande PROCEED (Ctrl+P), RETRY,
utilitaire CONFIG_C) pour pouvoir accéder au SSTEP (Ctrl+Z), ou XSTEP (Ctrl+X) pour
serveur. On peut également modifier la reprendre l'exécution du programme 1 . Sinon,
configuration d'accès directement sur le serveur. saisir toute autre commande en mode «monitor».
*NVRAM battery failure* (–665) *Option not installed* (–804)
Explication : La batterie de secours de la mémoire vive rémanente est Explication : On a tenté d'utiliser une fonction d'une option du système V +
défaillante et la mémoire ne peut conserver des qui ne figure pas dans le système du robot.
données valides. Action de l'utilisateur : Mettre le contrôleur hors tension et tenter de le
Action de l'utilisateur : Remplacer la batterie de la NVRAM. redémarrer. Si le problème persiste, contacter
*NVRAM data invalid* (–661) l'ingénieur d'application Adept.
Explication : La mémoire vive rémanente n'a pas été initialisée, ou les *Out of graphics memory* (–549)
données sont corrompues. Explication : Il n'y a plus d'espace sur la mémoire graphique du processeur
Action de l'utilisateur : Mettre le contrôleur hors tension, puis le redémarrer. du système pour les fenêtres, icônes, polices ou
Si l'erreur persiste, contacter le service après- autres éléments graphiques.
vente Adept. Action de l'utilisateur : Supprimer les éléments graphiques inutilisés, ou
*Obstacle collision detected* (–901) réduire la taille des fenêtres, afin de libérer de
Explication : Une collision possible ou réelle entre le robot et un objet fixe a l'espace dans la mémoire graphique.
été détectée. Ces obstacles peuvent inclure des *Out of I/O buffer space* (–532)
objets fixes dans la cellule de travail, de même Explication : Une opération d'E/S ne peut être exécutée parce que le système
que des éléments de la structure du robot, tels que V + n'a plus d'espace de mémoire tampon.
sa base. Cette erreur est semblable à celle du Action de l'utilisateur : Supprimer certains programmes ou certaines données
message *Location out of range* (Position hors de la mémoire du système, puis relancer
plage), étant souvent détectée par les programmes l'opération. (Voir également *Mémoire
cinématiques lorsque le robot est en mouvement. insuffisante*)
Action de l'utilisateur : Eloigner le robot de l'obstacle et poursuivre le *Out of vision transform memory* (–753)
déplacement, ou modifier le programme Explication : L'espace alloué aux transformées de vision est inadéquat. (On
d'application en cours pour éviter l'obstacle. Pour peut définir une transformée de vision pour
les programmes d'application, cette erreur peut chacune des tâches de chaque CPU exécutant des
indiquer que le point d'extrémité prévu du tâches utilisateur V + .) Les transformées de
déplacement va toucher un objet ou qu'une vision sont définies avec l'instruction VTRANS.
collision a été détectée au milieu d'un Action de l'utilisateur : Ne définir que les transformées de vision nécessaires.
déplacement rectiligne. Si plus de mémoire doit être allouée aux
Old value: n, New value: n transformées de vision, voir la description de
l'instruction DEVICE.

372
Cours de formation Programmation ADEPT V+ 1

*PANIC command* (–633)


Explication : L'opérateur a saisi la commande en mode «monitor» PANIC de
1 Les touches de commande CTRL+P, CTRL+X et CTRL+Z ne peuvent être V + qui a arrêté le mouvement en cours du robot.
utilisées que si le débougueur de V + est en mode Le système est toujours en puissance.
moniteur. Action de l'utilisateur : Pour poursuivre le mouvement amorcé, saisir la
commande en mode moniteur RETRY. Pour
*Out of network resources* (–559) poursuivre après le mouvement en cours, saisir la
Explication : Cette erreur peut se produire pour diverses raisons. Plusieurs commande en mode «monitor» PROCEED.
causes possibles sont énumérées ci-dessous : 1. (PAUSED) (9)
De trop nombreux points d'accès sont utilisés Explication : Une instruction de pause a été exécutée et l'exécution du
simultanément pour le TCP et le NFS ; il n'y a programme en cours a été suspendue.
plus de mémoire tampon disponible pour les Action de l'utilisateur : On peut saisir n'importe quelle commande en mode
paquets de données d'entrée et de sortie. 2. Trop «monitor». Pour poursuivre l'exécution du
de lecteurs installés. 3. De trop nombreux appels programme, taper proceed suivi du numéro de
NFS ont été faits simultanément par des tâches tâche (autre que 0).
distinctes vers un serveur NFS hors service. 4. *Position out of range* Jt n (–1002)
Trop de noms de noeuds ont été définis. 5. Un Explication : (1) Le déplacement demandé a dépassé la plage de
paquet de données d'entrée IP a été fragmenté en déplacement limitée par le logiciel pour l'axe
fragments trop nombreux et V + n'a pu les indiqué ; (2) lors de la mise en puissance, V + a
regrouper. (Très peu probable.) détecté que l'axe du robot indiqué dépassait sa
Action de l'utilisateur : Corriger la cause de l'erreur. limite logicielle.
*Output record too long* (–529) Action de l'utilisateur : (1) Modifier le programme pour empêcher la
Explication : Une instruction TYPE, PROMPT ou WRITE a tenté demande de déplacement erronée (le robot n'ayant
d'imprimer une ligne trop longue. La longueur pas réellement dépassé sa plage de déplacement,
maximale d'une ligne est de 512 caractères. il est inutile de le déplacer pour poursuivre). (2)
Action de l'utilisateur : Modifier le programme pour imprimer moins Ramener le robot dans son espace de travail.
d'informations pour chaque instruction. Ne pas Corriger la cause du dépassement par le robot.
oublier qu'on peut enchaîner la sortie de Rétablir l'alimentation.
différentes instructions en tapant /S pour *Position out of range* Mtr n (–1023)
supprimer le retour de chariot et le saut de ligne Explication : (1) Le déplacement demandé a dépassé la plage de
qui se fait normalement à la fin de chaque sortie déplacement limitée par le logiciel pour le moteur
TYPE. indiqué ; (2) lors de la mise en puissante, V + a
*Overtravel* Mtr n (–1034) détecté que le moteur du robot spécifié dépassait
Explication : Le moteur indiqué a dépassé sa plage de mouvement limitée sa limite logicielle.
par le matériel. Action de l'utilisateur : (1) Modifier le programme pour empêcher la
Action de l'utilisateur : Ramener le robot dans son espace de travail. Corriger demande de déplacement erronée (le robot n'ayant
la cause du dépassement par le robot. Rétablir pas réellement dépassé sa plage de déplacement,
l'alimentation. il est inutile de le déplacer pour poursuivre). (2)

373
Cours de formation Programmation ADEPT V+ 1

Ramener le robot dans son espace de travail. Contrairement à l'erreur -667, si aucune routine
Corriger la cause du dépassement par le robot. REACTE n'est définie et qu'un robot est connecté,
Rétablir l'alimentation. le programme V + s'arrête avec cette erreur.
*Positive overtravel* Mtr n (–1033) Action de l'utilisateur : Il peut s'avérer nécessaire de redémarrer ou de
Explication : Le moteur indiqué a dépassé la plage de déplacement limitée reprendre toutes les opérations interrompues par
par le matériel. la panne d'alimentation secteur du contrôleur. Il
Action de l'utilisateur : Ramener le robot dans son espace de travail. Corriger peut également être nécessaire de procéder à une
la cause du dépassement par le robot. Rétablir réinitialisation partielle du système. Par exemple,
l'alimentation. tout robot connecté au contrôleur devra être
*Power disabled : Manual/Auto changed* (–645) réétalonné après ce type de panne.
Explication : V + coupe l'alimentation lorsque le commutateur du panneau Press HIGH POWER button to enable power (57)
d'interface du contrôleur (CIP) passe de Explication : Appuyer sur le bouton de HIGH POWER du panneau avant
MANUEL à AUTO ou vice versa. pour finir le processus de mise en puissance du
Action de l'utilisateur : Utiliser toute méthode valide pour remettre le système.
système en puissance. Action de l'utilisateur : Lorsque le bouton de HIGH POWER du panneau
*Power failure detected* (–667) d'interface du contrôleur (CIP) clignote, appuyer
Explication : Indique qu'une panne d'alimentation secteur du contrôleur a été immédiatement sur celui-ci pour finir le processus
détectée. Si une batterie de secours est installée, de mise en puissance à deux étapes. (Appuyer sur
cette erreur sera signalée (une fois l'alimentation le bouton dans le délai spécifié dans les données
rétablie) par toute opération d'E/S annulée lors de de configuration de V + .)
la panne. Ce code d'erreur peut être annulé par un *Processor crash* CPU = n (Aucun)
programme utilisant l'instruction REACTE pour Explication : V + a détecté que la CPU spécifiée sur le contrôleur était en
assurer un niveau de protection automatique état d'erreur fatale. Un message s'affiche sitôt
contre les pannes d'alimentation. l'erreur détectée. Il s'agit selon toute
Action de l'utilisateur : Il peut s'avérer nécessaire de redémarrer ou de vraisemblance d'une erreur logicielle ou d'un
reprendre toutes les opérations interrompues par problème matériel du processeur.
la panne d'alimentation secteur du contrôleur. Il Action de l'utilisateur : Nous vous remercions de bien vouloir signaler cette
peut également être nécessaire de procéder à une erreur à l'ingénieur d'application Adept. Veuillez
réinitialisation partielle du système. Par exemple, également indiquer les détails du message d'erreur
tout robot connecté au contrôleur doit être et ce que vous faisiez lorsque l'erreur s'est
réétalonné après ce type de panne. produite. Il est conseillé de sauvegarder les
*Power failure detected by robot* (–632) programmes en mémoire, de mettre le contrôleur
Explication : Indique qu'une panne d'alimentation du contrôleur a été hors tension et de le redémarrer. (Si l'ID du
détectée par le logiciel de contrôle du robot processeur concerné est 1, redémarrer V + en
pendant que ce dernier était connecté au appuyant sur CTRL+G. Les équipements asservis
programme. Ce message d'erreur s'affiche en plus du robot ne fonctionneront pas, mais on peut
du code -667 si un robot est connecté à un mémoriser les programmes avec STORE.) Si le
programme avec un programme REACTE défini.

374
Cours de formation Programmation ADEPT V+ 1

problème persiste, contacter le service après-vente sur le bouton PROGRAM START sur le
Adept. contrôleur. (On peut appuyer momentanément sur
*Program already exists* (–309) le bouton RUN/HOLD pour relancer l'exécution
Explication : On a tenté de charger un programme existant (LOAD), ou de du programme si le sélecteur à clé du panneau
copier (COPY) ou de renommer (RENAME) un avant est en position MANUAL.)
programme avec un nom existant. *Program interlocked* (–308)
Action de l'utilisateur : Supprimer le programme à l'origine du conflit ou Explication : On a tenté d'accéder à un programme déjà utilisé par un
utiliser un autre nom. processus de V + . Par exemple, on a tenté de
*Program argument mismatch* (–408) supprimer ou d'éditer un programme en cours
Explication : Les arguments d'une instruction CALL, CALLS ou EXECUTE d'exécution, ou d'exécuter un programme en cours
ne concordent pas avec ceux du programme d'édition.
désigné car ils sont de types différents. Action de l'utilisateur : Annuler le programme ou quitter l'éditeur, selon le
Action de l'utilisateur : Modifier l'instruction CALL, CALLS ou EXECUTE, cas, et relancer l'opération. On peut utiliser
ou l'instruction .PROGRAM du programme l'éditeur SEE en mode lecture seule pour voir les
désigné afin que les arguments concordent. S'il programmes verrouillés par l'accès lecture-
manque des arguments dans l'instruction CALL, écriture.
CALLS ou EXECUTE, s'assurer que des virgules Program name? (Aucun)
sont utilisées de façon appropriée pour distinguer Explication : On a saisi une commande de l'éditeur SEE pour passer à un
les arguments présents. autre programme.
Program completed (3) Action de l'utilisateur : Saisir le nom du nouveau programme à éditer, ou
Explication : Le programme a été exécuté le nombre de fois spécifié dans la appuyer sur RETURN pour annuler la demande.
dernière commande ou instruction EXECUTE. *Program not executable* (–307)
Action de l'utilisateur : Saisir n'importe quelle commande de moniteur, mais Explication : En raison d'erreurs de programme détectées au cours du
ne pas utiliser PROCEED pour relancer chargement ou en quittant l'éditeur, ce programme
l'exécution du programme. ne peut s'exécuter.
Program program_name doesn't exist. Create it (Y/N)? (Aucun) Action de l'utilisateur : Editer le programme pour supprimer les erreurs.
Explication : On a tenté d'utiliser l'éditeur SEE pour accéder à un programme *Program not on top of stack* (–421)
inexistant. Explication : Une spécification de contexte DO a référencé une variable
Action de l'utilisateur : Taper Y pour créer le programme. Toute autre automatique ou un argument de sous-programme
touche, y compris RETURN, annule la demande d'un programme ne se trouvant pas sur le dessus
d'édition. de la pile pour la tâche spécifiée.
Program HOLD (15) Action de l'utilisateur : Saisir à nouveau la commande DO en précisant le
Explication : On a appuyé sur le bouton RUN/HOLD du boîtier de contexte de programme approprié ou en éliminant
commande manuelle pendant l'exécution d'un les références aux variables automatiques et aux
programme ; ce dernier est suspendu. arguments de sous-programme. Utiliser la
Action de l'utilisateur : On peut saisir n'importe quelle commande en mode commande STATUS pour déterminer quel
«monitor». Pour poursuivre l'exécution du programme se trouve sur le dessus de la pile.
programme, taper proceed ou retry, ou appuyer Program task # stopped at program_name, step step_number date time (4)

375
Cours de formation Programmation ADEPT V+ 1

Explication : L'exécution de la tâche de programme mentionnée s'est arrêtée caractères de commande qui relance son
pour la raison indiquée dans le message précédant exécution (directement ou indirectement).
celui-ci. Le numéro de pas affiché correspond au Action de l'utilisateur : Modifier au besoin les définitions de la macro pour
pas de programme NEXT suivant à exécuter (par que celle-ci ne s'appelle pas elle-même. Une
exemple, si l'on saisit PROCEED). La date et macro U peut appeler une macro Y, ou vice versa
l'heure en cours s'affichent si elles ont été définies (mais pas les deux).
sur le système. *Region too big* (–743)
Action de l'utilisateur : Aucune. Il s'agit d'un message d'information. Explication : Lors de la reconnaissance optique de caractères (OCR) pour
*Program task not active* (–318) reconnaître du texte (VROC), ou de
Explication : On a tenté d'annuler une tâche inactive. l'apprentissage d'une police (VTRAIN.OCR), la
Action de l'utilisateur : Aucune si le numéro de tâche correct a été spécifié. région de la fenêtre couvrait plus de 63 pixels
Sinon, utiliser la commande STATUS pour horizontalement ou verticalement.
déterminer quel numéro de tâche aurait dû être Action de l'utilisateur : S'assurer qu'il n'y a aucune région sans rapport dans
utilisé. la fenêtre d'apprentissage. Si les caractères de la
*Program task not in use* (–319) police sont trop gros, utiliser une lentille de
Explication : On ne peut accéder à une tâche du programme car elle n'a caméra de plus courte focale, ou augmenter l'écart
jamais servi. (Ces tâches de programme n'utilisent entre la caméra et le texte.
aucune mémoire système et ne figurent pas dans *Region too complicated* (–744)
l'affichage STATUS.) Explication : Lors de la reconnaissance optique de caractères (OCR) pour
Action de l'utilisateur : Aucune. l'apprentissage d'une police, une région de
*Protected program* (53) caractères comportait plus de 20 concavités et
Explication : On a tenté de lister un programme dont l'accès est interdit aux trous.
utilisateurs. Action de l'utilisateur : Examiner l'image binaire (avec VDISPLAY mode 2).
Action de l'utilisateur : Aucune. Le seuil peut nécessiter un ajustement.
*Protection error* (–530) *Remote has not exported network resource* (–563)
Explication : Une opération d'E/S ne peut être exécutée parce que (1) elle a Explication : Le serveur NFS n'a pas exporté le chemin spécifié pour
tenté d'écrire sur un disque protégé en écriture, ou utilisation par les clients.
(2) l'utilisateur n'a pas le profil d'accès requis. Action de l'utilisateur : Vérifier la configuration du serveur NFS et le chemin
Action de l'utilisateur : Vérifier la disquette pour s'assurer que la languette de utilisé par le système V + .
protection en écriture est dans la bonne position. *Reserved word illegal* (–457)
Utiliser la commande FDIRECTORY pour Explication : On a tenté d'utiliser un mot réservé à V + pour un nom de
afficher le répertoire de la disquette. Si le fichier variable. (Voir le Manuel de référence du langage
est protégé (P) ou en lecture seule (R), on ne peut V + pour la liste des mots clés réservés.)
pas y accéder de cette façon. Action de l'utilisateur : Utiliser un autre nom pour la variable. On peut, par
*Recursive macros illegal* (–357) exemple, ajouter un préfixe ou un suffixe au
Explication : On a tenté de lancer l'exécution d'une macro de façon premier nom utilisé.
récurrente. Cette macro comporte une chaîne de Return manual control pendant to background display (^C to exit) (Aucun)

376
Cours de formation Programmation ADEPT V+ 1

Explication : L'affichage du boîtier de commande manuelle doit être en programme utilitaire CONFIG_C, mais le module
mode non prioritaire pour l'opération de robot est absent de la mémoire.
sélectionnée. Action de l'utilisateur : Avant de réinitialiser, ajouter le module du robot au
Action de l'utilisateur : Appuyer sur la touche DONE du boîtier une fois ou disque-amorce à l'aide du programme utilitaire
plus pour quitter la fonction en cours. CONFIG_C.
*Robot already attached to program* (–602) *Robot not attached to this program* (–601)
Explication : Un programme a exécuté plusieurs instructions ATTACH pour Explication : On a tenté de lancer une commande ou une instruction de
le robot, sans exécuter d'instruction DETACH contrôle du robot dans l'une des situations
entre celles-ci. Il est également possible qu'on ait incorrectes suivantes : (1) Le système n'est pas
tenté de sélectionner un autre robot alors qu'il y configuré pour contrôler un robot. (2) Aucun
en a déjà un de connecté. Malgré cette erreur, le robot n'est connecté au système. (3) Le robot est
robot demeure connecté. connecté à une autre tâche de programme.
Action de l'utilisateur : Vérifier la logique du programme — supprimer les Action de l'utilisateur : (1) S'assurer que le système est initialisé à l'aide du
instructions ATTACH redondantes, ou disque système approprié, ou supprimer
déconnecter (DETACH) le robot avant de tenter l'instruction de contrôle du robot. (2) Connecter le
d'en connecter un autre. robot ou activer le commutateur du système
*Robot interlocked* (–621) DRY.RUN. (3) Modifier au besoin la logique du
Explication : (1) On a tenté d'accéder à un robot ou à une unité externe déjà programme pour faire en sorte qu'à tout moment,
utilisée par une autre tâche de programme ou par une seule tâche de programme contrôle le robot.
le moniteur du système ; (2) on a tenté d'étalonner *Robot not calibrated* (–605)
le robot à l'aide du contrôleur en mode manuel, Explication : On a tenté d'exécuter un programme de commande du robot
opération interdite pour des raisons de sécurité. alors que le robot n'est pas étalonné. Aucun
Action de l'utilisateur : (1) Vérifier la logique du programme et s'assurer que déplacement n'est permis tant que le robot n'est
le robot ou l'unité n'est contrôlé(e) que par une pas étalonné.
seule tâche du programme ; (2) mettre le Action de l'utilisateur : Si on veut utiliser le robot, lancer une commande
commutateur à clé du CIP sur le mode CALIBRATE ou configurer le programme pour
automatique ou régler comme il se doit les qu'il exécute une instruction CALIBRATE. On
signaux du mode manuel utilisateur. peut également activer le commutateur
*Robot module not enabled* (–900) DRY.RUN afin de permettre l'exécution du
Explication : Le module de robot indiqué est en mémoire, mais n'a pu être programme sans utiliser le robot.
activé à cause d'une erreur (signalée par un *Robot power off* (–604)
message distinct). Explication : L'opération demandée ne peut être exécutée car la puissance est
Action de l'utilisateur : Utiliser les programmes utilitaires CONFIG_C et/ou coupée.
SPEC pour corriger la configuration du module. Action de l'utilisateur : Remettre le système en puissance et relancer
*Robot module not loaded* ID : n (–628) l'opération.
Explication : Cette erreur se produit seulement lors du démarrage lorsqu'un *Robot power off requested* (–906)
module de robot a été configuré avec le

377
Cours de formation Programmation ADEPT V+ 1

Explication : La puissance a été coupée par une demande programme ou d'origine électrique sur la RSC ou autour ou à
utilisateur, telle que la commande DISABLE l'intérieur du câble de signaux du bras.
POWER. Action de l'utilisateur : Si le problème persiste, contacter le service après-
Action de l'utilisateur : Aucune. vente Adept.
*Robot power on* (–627) *RSC module ID doesn't match robot* (–676)
Explication : On a tenté une action pour laquelle la puissance doit être Explication : Les données de configuration de V + contiennent une
coupée. spécification absolue d'identification pour un
Action de l'utilisateur : Couper la puissance - DISABLE POWER - et module de robot (par exemple, 6 pour le robot
relancer l'action. Adept 550), et la RSC du robot ne comporte pas
*RSC bad packet format* (–655) ce numéro d'identification.
Explication : V + a reçu un paquet de données non valide de la carte RSC au Action de l'utilisateur : S'assurer qu'on utilise le type de robot approprié. À
cours du chargement initial des données l'aide du programme utilitaire CONFIG_C,
d'étalonnage. remplacer l'identification du module par –1 dans
Action de l'utilisateur : Aucune à moins que le chargement des données de les données de configuration de V + . Corriger
calibration échoue. Si le problème persiste, l'ID du module dans la RSC.
contacter le service après-vente Adept. *RSC power failure* (–670)
*RSC calibration load failure* (–656) Explication : La RSC signale un problème sur son alimentation. Etant donné
Explication : V + ne peut charger les données d'étalonnage de la carte RSC. que toute panne d'alimentation de la RSC
Action de l'utilisateur : Mettre le contrôleur hors tension et s'assurer que les l'empêche complètement de communiquer (donc
câbles du robot sont correctement connectés. Si le incapable de signaler une défaillance), ce message
problème persiste, contacter le service après-vente d'erreur a sans doute une autre source, tel que le
Adept. bruit d'origine électrique sur la RSC ou autour ou
*RSC communications failure* (–651) à l'intérieur du câble des signaux du bras. Il est
Explication : V + a perdu la communication avec la carte RSC. Soit un possible qu'il y ait une connexion intermittente
problème matériel s'est produit, soit le robot sur les lignes d'alimentation de la RSC.
fonctionne dans un environnement ou règne un Action de l'utilisateur : Si le problème persiste, contacter le service après-
bruit d'origine électrique trop élevé. vente Adept.
Action de l'utilisateur : Vérifier les connexions des câbles du robot. Remettre *RSC reset* (–652)
le système en puissance, étalonner le robot, puis Explication : V + a détecté une perte momentanée d'alimentation de la carte
relancer le programme. Si le problème persiste, RSC, maintenant rétablie.
contacter le service après-vente Adept. Action de l'utilisateur : Remettre le système en puissance et relancer le
*RSC hardware failure* (–669) programme. Si le problème persiste, vérifier le
Explication : La carte RSC signale une défaillance interne. Etant donné que câblage du robot. Si aucune solution n'est trouvée,
toute défaillance de la RSC l'empêche contacter le service après-vente Adept.
complètement de communiquer (donc incapable *RSC time-out* (–653)
de signaler une défaillance), ce message d'erreur a Explication : V + n'a pas reçu de réponse de la carte RSC dans le délai prévu
sans doute une autre source, tel que le bruit au cours du chargement initial des données

378
Cours de formation Programmation ADEPT V+ 1

d'étalonnage. Cela provient sans doute d'une Action de l'utilisateur : Consulter la documentation sur le matériel, consulter
défaillance de la RSC ou de son câblage. leService après-vente Adept pour plus de détails
Action de l'utilisateur : Mettre le contrôleur hors tension et vérifier le sur les types de fusibles et leur emplacement, et
câblage du robot. Si le problème persiste, remplacer le fusible.
contacter le service après-vente Adept. *Servo board 12v fuse open* (–671)
*RSC transmission garbled* (–654) Explication : La carte d'asservissement est dotée d'un bus à fusibles de 12 V
Explication : V + a reçu une transmission incorrecte de la carte RSC. Soit un et le système y a détecté un circuit ouvert.
problème s'est produit au niveau du matériel, soit Action de l'utilisateur : Consulter la documentation sur le matériel et
le robot fonctionne dans un environnement ou remplacer le fusible.
règne un bruit d'origine électrique trop élevé. *Servo board solenoid fuse open* (–672)
Action de l'utilisateur : Aucune, à moins que le chargement des données Explication : La carte d'asservissement est dotée d'une ligne de contrôle à
d'étalonnage ou que les communications de la fusible à électrovanne pour le robot et le système
RSC échouent. Si le problème persiste, contacter y a détecté un circuit ouvert.
le service après-vente Adept. Action de l'utilisateur : Consulter la documentation sur le matériel et
Searching for string (exact case) (Aucun) remplacer le fusible.
Explication : On a saisi la commande 0' de l'éditeur SEE. L'éditeur est prêt à *Servo task overloaded* (–674)
rechercher la chaîne indiquée, dans le mode Explication : Une tâche d'interruption d'asservissement a dépassé le temps
recherche spécifié. d'exécution. L'algorithme de détection signale une
Action de l'utilisateur : Il s'agit d'un message d'information. Utiliser la erreur lorsque la tâche d'interruption
commande Repeat pour lancer la recherche d'asservissement occupe dix tranches de temps ou
indiquée, ou la commande Find (ou Change) pour plus par seconde en temps réel. Lorsque cette
lancer une nouvelle recherche (ou un nouveau erreur s'est produite, le robot est passé en état
remplacement). La commande étendue EXACT d'erreur fatale et la tâche d'interruption
contrôle le réglage du mode de recherche. d'asservissement s'est arrêtée.
Searching for string (ignoring case) (Aucun) Action de l'utilisateur : Prendre l'une ou l'autre des mesures suivantes : (1)
Explication : On a saisi la commande 0' de l'éditeur SEE. L'éditeur est prêt à Enlever les tâches d'asservissement de la CPU 1
rechercher la chaîne indiquée, dans le mode pour allouer plus de temps à la génération des
recherche spécifié. trajectoires ; (2) effectuer une mise à niveau du
Action de l'utilisateur : Il s'agit d'un message d'information. Utiliser la processeur de système pour augmenter le débit,
commande Repeat pour lancer la rechercher ou (3) réduire le nombre de robots ou d'axes
indiquée, ou la commande Find (ou Change) pour utilisés.
lancer une nouvelle recherche (ou un nouveau Set for CASE DEPENDENT searches (Aucun)
remplacement). La commande étendue EXACT Explication : La commande étendue EXACT a été utilisée comme méthode
contrôle le réglage du mode de recherche. de prise en compte de la casse lors des recherches
*Servo board E-Stop fuse open* (–673) de chaînes. Ce message indique comment sera lue
Explication : La carte d'asservissement est dotée d'un circuit d'arrêt d'urgence la casse dans les recherches suivantes (pour les
à fusibles et le système y a détecté un circuit recherches de chaînes actuelles ou futures).
ouvert. Action de l'utilisateur : Aucune. Il s'agit d'un message d'information.

379
Cours de formation Programmation ADEPT V+ 1

Set for CASE INDEPENDENT searches (Aucun) interprète de V + ou générateur de trajectoire ; Vi,
Explication : La commande étendue EXACT a été utilisée comme méthode logiciel de vision ; Sv, logiciel d'asservissement.
de prise en compte de la casse lors des recherches Action de l'utilisateur : Indiquer l'erreur à l'ingénieur d'application Adept
de chaînes. Ce message indique comment sera lue ainsi que toute information relative au contexte.
la casse dans les recherches suivantes (pour les On peut continuer à utiliser le système, mais avec
recherches de chaînes actuelles ou futures). le risque d'un problème matériel.
Action de l'utilisateur : Aucune. Il s'agit d'un message d'information. *Software incompatible* Code n (–1026)
*Skew envelope error* Mtr n (–1022) Explication : Incompatibilité détectée entre le code d'asservissement et le
Explication : Les deux moteurs entraînant les demi-axes du robot ne se logiciel d'étalonnage.
suivaient pas avec suffisamment de précision. Action de l'utilisateur : S'assurer qu'on utilise le logiciel d'étalonnage (dans
Action de l'utilisateur : S'assurer que rien ne fait obstacle au déplacement du le répertoire \CALIB\) fourni avec le système V +
robot. Remettre le système en puissance et tenter utilisé. Si ce logiciel est utilisé, noter le numéro
de relancer le déplacement à une vitesse plus de code et contacter le service après-vente Adept.
lente. Au besoin, utiliser le programme utilitaire *Speed pot or STEP not pressed* (–620)
SPEC pour augmenter la limite maximale d'erreur Explication : Alors que le contrôleur était en mode manuel, un programme
d'alignement. de V + a tenté de lancer un mouvement du robot,
*Soft envelope error* Mtr n (–1006) mais la touche STEP et la bande de vitesse du
Explication : Le moteur indiqué ne suivait pas la position commandée avec MCP n'étaient pas enfoncées.
assez de précision, ce qui révèle une défaillance Action de l'utilisateur : Lorsqu'un programme de V + est sur le point
du système d'asservissement matériel ou un d'amorcer des mouvements du robot, appuyer sur
obstacle sur le parcours du robot. Comme il ne la touche STEP et sur la bande de vitesse du
s'agit pas d'une erreur grave, le déplacement s'est MCP. Pour continuer le déplacement une fois
arrêté, mais la puissance n'a pas été coupée. commencé, relâcher la touche STEP tout en
Action de l'utilisateur : Tenter d'effectuer le mouvement à vitesse réduite. maintenant la bande de vitesse enfoncée. Mettre
S'assurer que rien n'entrave le déplacement du le contrôleur en mode automatique.
robot. *SPIN motion not permitted* (–638)
*Software checksum error* (–316) Explication : Soit une instruction SPIN (rotation) a tenté de déplacer un axe
Explication : Lors du traitement d'une commande FREE, le système V + a non configuré avec la fonction de rotation
détecté une erreur de somme de contrôle dans la continue, soit le robot suit actuellement un
mémoire système. Il s'agit d'un problème au convoyeur ou se déplace sous le contrôle d'une
niveau matériel ou logiciel du système. (Noter instruction ALTER.
toutefois qu'une erreur de somme de contrôle se Action de l'utilisateur : Configurer l'axe pour la fonction de rotation
produira si un patch de correction est appliqué au continue, ou terminer le suivi du convoyeur ou
logiciel du système après son chargement à partir l'instruction ALTER avant de tenter de lancer une
du disque et son démarrage.) Les codes suivants instruction SPIN.
sont ajoutées au message, indiquant l'erreur où Step syntax MUST be valid (Aucun)
s'est produite : Os, système d'exploitation ; V + , Explication : La commande étendue AUTO.BAD de l'éditeur SEE a été
utilisée pour modifier l'action du système lorsqu'il

380
Cours de formation Programmation ADEPT V+ 1

détecte une ligne erronée lors de l'édition. Par la *String too short* (–417)
suite, cette ligne de l'éditeur devra être corrigée Explication : Une instruction ou commande de programme attendait un
pour pouvoir effectuer une opération qui sort le argument (chaîne) d'une certaine longueur
curseur de la ligne erronée. minimale, mais l'argument reçu est trop court.
Action de l'utilisateur : Aucune. Il s'agit d'un message d'information. Action de l'utilisateur : Examiner la syntaxe de l'instruction, puis éditer le
*Stop-on-force triggered* (–623) programme pour transmettre une chaîne de
Explication : Le déclenchement du mode protégé d'un capteur d'effort s'est longueur adéquate.
produit alors que le robot n'était pas contrôlé par *String variable overflow* (–416)
le programme. Explication : On a tenté de créer une chaîne excédant la longueur maximale
Action de l'utilisateur : Remettre le système en puissance pour que le robot de 128 caractères.
continue son déplacement. Si ce déclenchement Action de l'utilisateur : Editer le programme pour qu'il génère des chaînes de
n'était pas voulu, s'assurer que le mode protégé est longueur adéquate.
désactivé avant que le programme ne laisse le *Subdirectory in use* (–547)
contrôle du robot au boîtier de commande Explication : On a tenté de supprimer un sous-répertoire contenant des
manuelle. fichiers référencés par une autre opération (par
*Stopped due to servoing error* (–600) exemple, une commande FDIRECTORY).
Explication : Le programme s'est arrêté à cause d'une ou de plusieurs erreurs Action de l'utilisateur : Vérifier si tous les fichiers du sous-répertoire ont été
d'asservissement. supprimés. Vérifier également si d'autres tâches
Action de l'utilisateur : Corriger la cause des erreurs d'asservissement de programme font appel au sous-répertoire.
signalées en consultant, au besoin, le manuel sur Tenter de nouveau la suppression.
le matériel du système. *Subdirectory list too long* (–546)
*Storage area format error* (–305) Explication : Le chemin d'un répertoire contient trop de sous-répertoires, ou
Explication : Lors de l'exécution d'une commande FREE, V + a détecté que le chemin du répertoire est trop long pour être
des programmes ou des données de la mémoire à traité. Le chemin est une combinaison de sous-
accès direct (RAM) ont peut-être été corrompus. répertoires dans la spécification du fichier et le
La cause peut être une panne momentanée du chemin de répertoire par défaut défini avec la
matériel ou une erreur de logiciel. commande en mode «monitor» DEFAULT. Les
Action de l'utilisateur : Sauvegarder le plus de données possible sur le chemins de répertoire sont limités à 16 sous-
disque. Saisir ensuite la commande ZERO ou répertoires et à 80 caractères (dont la partie du
mettre le contrôleur hors tension, puis redémarrer chemin du répertoire spécifiée par le chemin par
le système. défaut).
*Straight-line motion can't alter configuration* (–612) Action de l'utilisateur : Spécifier un chemin plus court dans la spécification
Explication : Une demande de modification de la configuration a été faite au du fichier ou dans la commande DEFAULT. Si
cours d'un mouvement rectiligne. Cela est on doit accéder à un disque distant contenant plus
interdit. de 16 sous-répertoires imbriqués, il ne sera pas
Action de l'utilisateur : Supprimer la demande de modification de la possible lire les fichiers des sous-répertoires à
configuration, ou utiliser une instruction de plus de 16 niveaux. Dans ce cas, on devra, à l'aide
mouvement d'interpolation d'axe. du système ayant servi à créer le disque, copier

381
Cours de formation Programmation ADEPT V+ 1

les fichiers dans un répertoire imbriqué moins Explication : La commande étendue DEBUG de l'éditeur SEE a été utilisée
profondément. pour lancer une session de débogage du
*Switch can't be enabled* (–314) programme en cours. Le débogueur doit savoir
Explication : Une commande ENABLE pour un commutateur à été rejetée à quelle tâche du programme on veut utiliser lors de
cause d'une situation d'erreur. Par exemple, la l'exécution du programme.
mise en puissance du système est interdite si le Action de l'utilisateur : Saisir le numéro de tâche voulu, ou appuyer sur
système est en état d'erreur fatale (FATAL RETURN pour accéder à la tâche utilisée lors de
ERROR). la dernière session de débogage.
Action de l'utilisateur : Examiner la description du commutateur concerné, *Template already defined* (–748)
corriger l'erreur et réessayer. Explication : On a saisi un numéro de modèle existant pour la définition d'un
*SYSFAIL detected by CPU* (–629) nouveau modèle de corrélation avec l'instruction
Explication : Une carte sur le bus VME a décelé une erreur grave et a généré VTRAIN.MODEL.
le signal SYSFAIL (échec système) qui provoque Action de l'utilisateur : Supprimer le modèle existant s'il ne sert plus, ou
la coupure de la haute puissance. Les contrôleurs saisir un autre numéro de modèle dans
de séquence des cartes CPU génèrent ce signal et l'instruction VTRAIN.MODEL.
allument la DÉL SF en cas d'erreur grave. *Template of uniform intensity* (–746)
Action de l'utilisateur : Vérifier les DÉL SYSFAIL à l'avant des cartes. La Explication : Lors de la définition d'un modèle de corrélation avec
DÉL de la carte défaillante doit être allumée. l'instruction VTRAIN.MODEL, la zone de
Redémarrer le système. S'assurer que les cartes l'image à l'intérieur des limites du modèle a une
sont bien enfoncées et vérifier les connexions des intensité uniforme. Les modèles d'image doivent
unités sur les cartes. Tester le système en présenter certaines variations de luminosité.
démontant le plus de cartes possible, puis en les (C'est-à-dire que le modèle doit comporter
remettant en place jusqu'à ce qu'on trouve la carte certaines caractéristiques qui permettent ensuite la
défectueuse. Si le problème persiste, contacter le corrélation.)
service après-vente Adept. Action de l'utilisateur : Vérifier la position du modèle sur l'image et s'assurer
*SYSFAIL detected by robot* (–642) qu'il est placé au bon endroit. Observer également
Explication : La carte d'interface de mouvement a détecté un signal l'image en niveaux de gris de la trame pour
SYSFAIL sur le bus VME et a généré le signal s'assurer qu'elle est correcte. (Il est possible par
d'arrêt d'urgence du fond de panier. Cette erreur exemple qu'une lampe stroboscopique n'ait pas
est normalement remplacée par d'autres erreurs et fonctionné ou que le bouchon de l'objectif soit
ne s'affiche pas. encore sur la caméra.)
Action de l'utilisateur : Vérifier s'il y a un autre message. Pour déterminer s'il *Template not defined* (–747)
y a eu une erreur non signalée de la RSC, taper Explication : Le modèle de corrélation désigné dans l'opération
listr error(task,4), où task est le numéro de la VCORRELATE, VDELETE, VSHOW.MODEL
tâche qui a reçu l'erreur. Si aucune information ou VSTORE n'existe pas.
supplémentaire n'est disponible, appeler le service Action de l'utilisateur : Vérifier le numéro de corrélation saisi pour
après-vente Adept. l'opération. Utiliser le menu déroulant Models
Task = (Aucun) dans la fenêtre de vision (ou l'instruction

382
Cours de formation Programmation ADEPT V+ 1

VSHOW.MODEL) pour obtenir la liste des Explication : V + n'a pas mis le système en puissance parce que le
modèles actuellement définis dans le système de commutateur d'asservissement du MCP sur le
vision. boîtier de commande manuelle n'a pas été activé.
*Time-out nulling errors* Mtr n (–1003) Action de l'utilisateur : Prendre une ou plusieurs des mesures suivantes : (1)
Explication : Le moteur indiqué a pris trop de temps pour finir le dernier Appuyer sur le commutateur d'asservissement du
déplacement, probablement parce que le robot est MCP, puis le relâcher pendant deux à dix
bloqué et ne peut atteindre sa destination. secondes, puis appuyer à nouveau ; et (2) s'assurer
Action de l'utilisateur : Mettre le système en puissance et réessayer le qu'on enfonce le commutateur d'asservissement
déplacement après avoir apporté les modifications du MCP et non le poussoir RUN/HOLD par
nécessaires au programme. Si l'erreur se produit erreur.
de façon répétée, contacter l'ingénieur *Too many arguments* (–553)
d'application Adept pour obtenir de l'aide. Explication : Trop d'arguments ont été spécifiés dans la dernière commande
*Time-out enabling amplifier* Mtr n (–1009) ou instruction.
Explication : Le variateur du moteur indiqué a signalé un état défectueux. Action de l'utilisateur : Saisir à nouveau la commande ou l'instruction avec le
Cela peut être dû à une panne d'alimentation nombre d'arguments adéquat.
momentanée ou à une erreur de matériel. *Too many array indices* (–474)
Action de l'utilisateur : Remettre le système en puissance et redémarrer le Explication : La spécification d'un élément de tableau contient plus de trois
programme. Si l'erreur persiste, contacter le index.
service après-vente Adept. Action de l'utilisateur : Saisir à nouveau la ligne avec le bon nombre d'index.
*Timeout enabling power* (–675) *Too many closeable windows* (–554)
Explication : La mise en puissance n'a pas eu lieu dans le délai prescrit, et les Explication : On a spécifié trop de fenêtres graphiques dans le menu
dispositifs d'asservissement n'ont signalé aucune déroulant sous le logo Adept dans la ligne de
autre erreur au cours de ce délai. statut en haut de l'écran.
Action de l'utilisateur : Pour les robots non fabriqués par Adept, utiliser le Action de l'utilisateur : Désigner toutes les fenêtres suivantes comme
programme utilitaire SPEC pour augmenter le /NOCLOSEABLE (qu'on ne peut fermer), ou
délai de mise en puissance. supprimer certaines fenêtres apparaissant dans ce
Pour les robots Adept, vérifier soigneusement l'installation (câblage, tensions menu déroulant.
sur les lignes d'alimentation secteur, disjoncteurs, *Too many icons* (–556)
vis de retenue du variateur, câbles et Explication : On a tenté de définir plus d'icônes que le système peut en
connecteurs). Pour obtenir des informations sur la accepter.
configuration correcte de l'installation, consulter Action de l'utilisateur : Supprimer les icônes inutiles. Au besoin, utiliser le
le Manuel d'instruction du robot. S'assurer que le programme utilitaire CONFIG_C pour
châssis du variateur est correctement connecté à reconfigurer le système V + et qu'il accepte plus
l'alimentation et mis sous tension. Réessayer. Si le d'icônes.
problème persiste, contacter le service après-vente *Too many network errors* (–536)
Adept. Explication : (1) Le nombre d'erreurs détectées par le protocole DDCMP
*Timeout : MCP enable switch not toggled* (–649) dépasse la limite permise. Le protocole local est
arrêté et toutes les demandes d'E/S se terminent

383
Cours de formation Programmation ADEPT V+ 1

avec cette erreur. (2) Le pilote Kermit de V + a Explication : Il s'est produit l'une ou l'autre des situations suivantes : (1) le
rencontré plus d'erreurs que ne l'autorise le moment du calcul d'un nouveau point de
paramètre KERMIT.RETRY. trajectoire est arrivé, mais la tâche interne de
Action de l'utilisateur : (1) Utiliser la commande en mode «monitor» NET trajectoire n'a pas fini de calculer le point
pour déterminer le type des erreurs. Rechercher précédent ; (2) les dispositifs d'asservissement
s'il y a du bruit sur la ligne de communication, des n'ont pas reçu les données de trajectoire à temps
erreurs de configuration du DDCMP, ou une parce que la tâche de trajectoire a mis trop de
logique de programme qui transmet des messages temps à calculer et à écrire les données ; ou (3)
plus rapidement que la capacité de traitement. l'intervalle de trajectoire est égal ou inférieur à
Utiliser l'instruction FCMND appropriée pour l'intervalle d'asservissement.
augmenter la limite maximale d'erreurs. (2) Action de l'utilisateur : Prendre une ou plusieurs des mesures suivantes : (1)
Augmenter la valeur du paramètre Si le temps de cycle de la trajectoire est inférieur
KERMIT.RETRY, accroître la nombre de à 16 microsecondes, le remplacer par le temps
tentatives du serveur distant, redémarrer la immédiatement au-dessus ; (2) déplacer les tâches
session Kermit et répéter l'opération échouée. d'asservissement de la CPU 1 pour allouer plus de
*Too many vision requests pending* (–703) temps à la génération de trajectoire ; (3) effectuer
Explication : Un programme a émis trop de commandes VLOCATE avant une mise à niveau du processeur du système pour
d'avoir terminé les premières. augmenter le débit ; (4) réduire le nombre de
Action de l'utilisateur : Editer le programme pour qu'il attende que les robots ou d'axes utilisés ; ou (5) si le temps de
demandes VLOCATE en attente soit terminées cycle de trajectoire est de 2 microsecondes,
pour en émettre d'autres. s'assurer que l'intervalle d'asservissement est de 1
*Too many windows* (–550) microseconde.
Explication : On a tenté de créer une fenêtre graphique alors que le *Undefined program or variable name* (–406)
maximum admissible de fenêtres est déjà atteint. Explication : Le programme ou la variable désigné(e) dans une commande
(Le système V + utilise deux fenêtres pour l'écran ou un pas de rogramme n'existe pas —
et la ligne de statut en haut de l'écran. Chaque probablement parce qu'il contient une faute de
barre de titre, de menu et de défilement constitue frappe.
une fenêtre distincte. La fenêtre déroulante est Action de l'utilisateur : Si le nom correct a été saisi, créer un programme ou
toujours attribuée même si elle n'est pas visible. une variable en utilisant l'un des éditeurs de V +
Les systèmes équipés d'AdeptVision ont une ou les commandes moniteur appropriées de V + ,
fenêtre allouée en permanence pour ou en le ou la chargeant à partir d'un fichier
l'apprentissage de la vision.) disque.
Action de l'utilisateur : Si possible, modifier les définitions des fenêtres pour *Undefined value* (–401)
omettre les barres de menu et les barres de Explication : (1) On a désigné une variable à laquelle aucune valeur n'est
défilement. Au besoin, accroître la mémoire affectée. (2) À l'aide de l'éditeur SEE, on a tenté
tampon des fenêtres à l'aide du programme d'utiliser une macro, de retourner à une position
utilitaire CONFIG_C. du curseur en mémoire ou de lancer une recherche
*Trajectory clock overrun* (–636) ou un remplacement répété de chaîne sans

384
Cours de formation Programmation ADEPT V+ 1

effectuer d'abord la séquence d'initialisation *Unexpected PSS state* Code nnn (–1110)
appropriée. Explication : Le logiciel a détecté une modification imprévue dans le
Action de l'utilisateur : (1) Affecter une valeur à la variable ou corriger son séquenceur d'alimentation. Le code indique l'état
nom. (2) Définir une macro, enregistrer une détecté. Cette erreur ne devrait jamais se produire,
position du curseur, ou saisir la ou les chaîne(s) à et indique peut-être un problème matériel ou
rechercher ou à remplacer. logique sur le module AWC ou sur le CIP.
*Undefined value in this context* (–420) Action de l'utilisateur : Si cela ne présente aucun risque, tenter de couper la
Explication : Une valeur de variable automatique ou d'argument de sous- puissance et prendre note des différents messages
programme figure dans une commande en mode d'erreur qui s'affichent. Si l'erreur persiste,
«monitor», mais le programme spécifié ne figure contacter le service après-vente Adept.
pas dans la pile d'exécution pour la tâche de *Unexpected text at end of line* (–451)
programme précisée. Les variables automatiques Explication : V + n'a pas reconnu la commande ou instruction précédente,
et les arguments de sous-programme ont des probablement à cause d'une faute de frappe dans
valeurs seulement lorsque le programme qui les un nom de fonction ou parce qu'on a spécifié un
définit figure dans une pile. argument alors que ce n'était pas autorisé.
Action de l'utilisateur : Modifier la commande en mode «monitor» pour Action de l'utilisateur : Saisir à nouveau la ligne en corrigeant l'erreur de
qu'elle ne désigne pas de variable. S'assurer que le syntaxe.
programme se trouve sur la pile d'exécution *Unexpected zero index* Belt n (–1012)
appropriée. On peut insérer une instruction Explication : Un signal d'index zéro a été transmis par le codeur pour ce
PAUSE ou un point d'interruption dans le convoyeur à moteur à un moment imprévu. Il est
programme pour l'arrêter alors qu'il se trouve sur possible que le codeur cumule ou perde des
la pile d'exécution. données, qu'il y ait un problème de matériel avec
*Unexpected end of file* (–504) le signal d'index zéro, ou que les données selon le
Explication : (1) Si un fichier a été chargé à partir du disque, la fin de ce paramètre de configuration de l'index zéro soient
fichier a été lue de façon inattendue. (2) Si le mal définies.
programme lit un fichier, ce code d'erreur indique Action de l'utilisateur : Poursuivre l'utilisation du système. Si cette erreur
tout simplement que la fin du fichier a été atteinte survient à plusieurs reprises, contacter le service
et ne doit pas être interprété comme une réelle après-vente Adept.
erreur. (3) Ce message s'affiche si on a répondu à *Unexpected zero index* Mtr n (–1005)
une invite du programme en appuyant sur Explication : Un signal d'index zéro a été transmis par le codeur pour ce
CTRL+Z. (4) Une interruption a été détectée sur moteur à un moment imprévu. Il est possible que
une ligne série. le codeur cumule ou perde des données, qu'il y ait
Action de l'utilisateur : (1) Réessayer de lire le fichier. (2) Fermer le fichier un problème de matériel avec le signal d'index
et poursuivre l'exécution du programme. (3) zéro, ou que les données selon le paramètre de
Traiter le programme comme s'il avait été arrêté configuration de l'index zéro soient mal définies.
plus tôt par l'utilisateur. (4) S'assurer que le Action de l'utilisateur : Mettre le système en puissance, étalonner le robot et
programme interrompt les transmissions continuer à utiliser le système. Si l'erreur survient
CTRL+Z.

385
Cours de formation Programmation ADEPT V+ 1

à plusieurs reprises, contacter le service après- indiquée est incompatible avec le système V +
vente Adept. utilisé.
*Unknown editor command* (–363) Action de l'utilisateur : Corriger la ligne ou la saisir à nouveau en s'assurant
Explication : En utilisant l'éditeur de programme SEE, on a tapé une valeur que l'orthographe et la syntaxe sont correctes. Si
ou une commande étendue inconnue. on utilise l'éditeur SEE, une instruction non valide
Action de l'utilisateur : Saisir une autre commande. est convertie en ligne non valide ou doit être
*Unknown error code* (–800) corrigée pour pouvoir quitter la ligne (selon le
Explication : Un code d'erreur ne correspondant à aucun message d'erreur a paramétrage de la fonction AUTO.BAD). S'il
été transmis V + par une unité externe. s'agit d'une erreur lors d'un chargement de fichier
Action de l'utilisateur : Si un contrôleur externe communique avec V + disque, éditer le programme pour corriger
lorsque l'erreur se produit, vérifier qu'il transmet l'instruction en question.
les codes d'erreur appropriés. Sinon, une erreur *Unknown keyword* (–424)
logique s'affiche. Nous vous remercions de bien Explication : Le mot-clé d'une instruction FSET est inconnu dans le contexte
vouloir signaler cette erreur à l'ingénieur où il se trouve. (La plupart du temps, un mot-clé
d'application Adept. Veuillez également indiquer utilisé pour une ligne série a également été utilisé
les détails du message d'erreur et ce que vous pour désigner une fenêtre ou vice versa.)
faisiez lorsque l'erreur s'est produite. Action de l'utilisateur : Corriger la ligne du programme en cours ou saisir à
*Unknown function* (–462) nouveau la commande avec le mot-clé correct.
Explication : En recevant une instruction, V + a lu une référence à une *Unknown model* (–759)
fonction qu'il ne reconnaît pas. Il peut s'agir d'une Explication : On a donné à l'instruction de vision VPLAN.FINDER un nom
erreur de frappe dans un nom de fonction ou d'un de modèle inexistant sur le système.
oubli d'un opérateur entre un symbole et une Action de l'utilisateur : Donner un nom de modèle existant à l'instruction de
parenthèse ouvrante. vision VPLAN.FINDER.
Action de l'utilisateur : Vérifier la syntaxe et l'orthographe et saisir à *Unknown network node* (–537)
nouveau la ligne. Explication : On a désigné une adresse de noeud de réseau inconnue du
*Unknown instruction* (–452) réseau local.
Explication : Une instruction que le système n'a pas reconnue a été saisie (ou Action de l'utilisateur : S'assurer qu'on a spécifié une adresse de noeud
lue à partir d'un fichier disque). Cette erreur est correcte. Vérifier si le noeud distant est actif et
souvent causée par une faute de frappe dans le connecté au réseau. Si on utilise des tables
nom de l'instruction ou lorsqu'on tente d'utiliser d'acheminement explicites, s'assurer qu'elles
une commande comme une instruction ou vice mentionnent ce noeud.
versa. Noter que les instructions comportant des *Unknown prototype* (–707)
erreurs sont affichées comme lignes non valides Explication : Une commande ou instruction de vision a désigné un prototype
avec un point d'interrogation. Si le message s'est objet inconnu du système de vision. Cela peut être
affiché au cours du chargement d'un fichier dû à une faute de frappe dans le nom du
disque, ce fichier a probablement été créé en prototype.
mode local ou à l'aide d'un système V + différent Action de l'utilisateur : Saisir la commande VSHOW sur le terminal pour
(version ou options différentes), et la ligne afficher la liste des prototypes connus. Au besoin,

386
Cours de formation Programmation ADEPT V+ 1

charger le fichier de prototypes approprié à partir Action de l'utilisateur : Vérifier la syntaxe de l'opération et saisir à nouveau
du disque ou utiliser l'instruction VTRAIN pour la ligne en prenant soin d'éliminer le conflit.
le prototype. Supprimer les variables globales en conflit si
*Unknown sub-prototype* (–731) nécessaire.
Explication : Une commande ou instruction de vision a désigné un sous- *Vision aborted* (–749)
prototype objet inconnu du système de vision. Explication : (1) On a sélectionné l'élément Abandonner du menu dans la
Cela peut être dû à une faute de frappe dans le fenêtre de vision. Si une instruction de vision d'un
nom du prototype. programme de V + était en cours d'exécution, elle
Action de l'utilisateur : Saisir la commande VSHOW sur le terminal pour est abandonnée et le code d'erreur de ce message
afficher les sous-prototypes définis pour le s'affiche (pour accès avec la fonction ERROR).
prototype spécifié. Au besoin, charger le fichier (2) Un programme de V + a été abandonné durant
de prototypes approprié à partir du disque ou l'exécution d'une instruction de vision. (Dans ce
utiliser VDEF.SUBPROTO pour définir le sous- cas, le code d'erreur du message standard Aborted
prototype. (Abandonné) doit s'afficher. (3) Une instruction
*User has not tested MMSP system* (–648) VABORT a été émise.
Explication : Un système doté de l'option de sécurité EN954 de catégorie 3 Action de l'utilisateur : Si on a sélectionné par erreur l'élément Abandonner
— Dispositifs de sécurité du mode manuel dans le menu, on peut poursuivre l'exécution du
(MMSP) — n'a pu être mis en service par le programme de V + en saisissant retry n sur le
programme utilitaire SAFE_UTL. clavier, n étant le numéro de la tâche interrompue.
Action de l'utilisateur : Tester les MMSP avec le programme utilitaire On peut également poursuivre le programme en
SAFE_UTL avant d'activer l'alimentation pour la saisissant proceed n, mais l'instruction de vision
première fois. Réexécuter le programme utilitaire abandonnée n'est pas relancée.
tous les trois mois. Si on a connecté le robot à un *[Vision error] <details> (Aucun)
contrôleur différent ou remplacé le contrôleur ou On peut faire afficher à tout moment sur le terminal du système V + les
le module SIO, reprendre le test. (Pour obtenir de messages d'erreur de vision ci-dessous lorsque le
plus amples informations sur l'utilisation de commutateur du système VISION est enfoncé. Si
SAFE_UTL, consulter le Manuel d'instruction de l'une de ces erreurs se produit, toutes les
robot Adept One-MV/AdeptThree-MV.) commandes de vision en attente (par exemple,
*Variable type mismatch* (–465) VLOCATE) sont abandonnées et le commutateur
Explication : Une ou plusieurs variables de la ligne sont d'un type VISION est désactivé. L'utilisateur doit réactiver
incompatible avec les autres variables ou avec le le commutateur VISION pour relancer le système
type requis par la commande ou l'instruction. Par de vision. Les prototypes ne sont pas supprimés
exemple, il est possible qu'on ait tenté d'associer de la mémoire lorsque ces erreurs se produisent
des variables de position et des variables ou lorsque le commutateur VISION est désactivé.
numériques. Si cette erreur survient lorsqu'on Chacun de ces messages se présente ainsi :
quitte l'éditeur, le type de variable du programme *[Erreur de vision] <détails>*, <détails>
est incompatible avec le type d'une variable représentant les informations spécifiques à
globale déjà définie. l'erreur. Ces informations aide le personnel Adept

387
Cours de formation Programmation ADEPT V+ 1

à déterminer la nature et la cause particulières de d'allocation de mémoire générale n'a plus de


l'erreur. mémoire à accès direct (RAM) libre. Cette erreur
*[Vision error] Bit-masking failed on FS #n* (Aucun) survient souvent lors du traitement d'une image
*[Vision error] Bit-packer failure, n bus errors instead of 2* (Aucun) binaire trop complexe. Dans ce cas, l'affichage
*[Vision error] Bit-packer returned wrong data* (Aucun) présentera de nombreuses petites régions (bruit)
*[Vision error] Bus error reading video FBn a ... at a time* (Aucun) souvent imputables à une valeur de seuil
*[Vision error] Bus error writing video FBn a ... at a time* (Aucun) inadéquate.
*[Vision error] Bus error reading video ILUTm #n* (Aucun) Action de l'utilisateur : Voir les remarques générales ci-dessus. Si le
*[Vision error] Bus error writing video ILUTm #n* (Aucun) problème persiste, consulter l'ingénieur
*[Vision error] Bus error reading video register aaa* (Aucun) d'application Adept et indiquer les détails exacts
*[Vision error] Bus error writing video register aaa* (Aucun) du message d'erreur.
Explication : Une panne du matériel de vision s'est produite. Action de *[Vision error] Read (...) of video FBn different than data written* (Aucun)
l'utilisateur : Voir les remarques générales ci- Explication : Une panne du matériel de vision s'est produite.
dessus. Si le problème persiste, contacter le Action de l'utilisateur : Voir les remarques générales ci-dessus. Si le
service après-vente Adept et fournir les détails problème persiste, contacter le service après-vente
exacts du message d'erreur. *[Vision error] Adept et indiquer les détails exacts du message
Camera, multiplexor, or d'erreur.
frame grabber failure #n* (Aucun) *[Vision error] Video ILUTm #n read different than write* (Aucun)
Explication : Généralement, ce message d'erreur indique qu'une défaillance Explication : Une panne du matériel de vision s'est produite.
du matériel de vision a eu lieu. Action de l'utilisateur : Voir les remarques générales ci-dessus. Si le
Action de l'utilisateur : Voir les remarques générales ci-dessus. Si le problème persiste, contacter le service après-vente
problème persiste, contacter le service après-vente Adept et indiquer les détails exacts du message
Adept et fournir les détails exacts du message d'erreur.
d'erreur. *Vision not calibrated* (–713)
*[Vision error] Internal confusion #n* (Aucun) Explication : On a saisi une commande vision qui nécessite l'étalonnage du
Explication : Ce message d'erreur ne devrait jamais s'afficher. Action de système de vision, et ce dernier n'est pas étalonné.
l'utilisateur : Voir les remarques générales ci- Action de l'utilisateur : Etalonner le système de vision ou charger les
dessus. Si le problème persiste, consulter données d'étalonnage à partir d'un fichier disque.
l'ingénieur d'application Adept et indiquer les *VISION not enabled* (–701)
détails exacts du message d'erreur. Explication : On a saisi une commande vision avant d'avoir activé le système
*[Vision error] No acquire interrupt at level 4* (Aucun) de vision.
Explication : Une panne du matériel de vision s'est produite. Action de l'utilisateur : Saisir une commande ENABLE VISION et répéter la
Action de l'utilisateur : Voir les remarques générales ci-dessus. Si le commande précédente.
problème persiste, contacter le service après-vente *Vision option not installed* (–720)
Adept. Explication : Au cours de l'initialisation, le système V + n'a pu détecter la
*[Vision error] Out of memory #n* (Aucun) présence du processeur de vision. Aucune
Explication : Une allocation fixe de la mémoire a été vidée (par exemple, les instruction ni commande vision ne sera acceptée.
longueurs d'exécution) ou le programme Sinon, V + fonctionnera normalement.

388
Cours de formation Programmation ADEPT V+ 1

Action de l'utilisateur : S'assurer que le processeur de vision est installé et Explication : Une commande STORE (Enregistrer) a été exécutée alors que
que le logiciel accepte l'option vision. Mettre le les programmes protégés et/ou en lecture seule
contrôleur hors tension, puis le redémarrer. Si le sont dans la mémoire du système V + . Les
problème persiste, contacter le service après-vente programmes protégés et en lecture seule ne sont
Adept. pas enregistrés sur le nouveau fichier disque.
*Vision software incompatible* (–762) Action de l'utilisateur : Saisir la commande FCOPY pour transférer les
Explication : Le logiciel de vision et celui de V + du contrôleur sont programmes en lecture d'un disque à un autre. Les
incompatibles. Cela signifie que le logiciel du programmes protégés ne peuvent pas être
système qui a été chargé est mal construit et est transférés d'un disque à un autre.
sur le point de tomber en panne. Ce message ne *Warning* SET.SPEED switch disabled (54)
devrait jamais s'afficher. Explication : Une opération PRIME a été exécutée à partir du boîtier de
Action de l'utilisateur : Ne pas utiliser ce logiciel. Recharger une bonne commande manuelle alors que le commutateur
version du logiciel. Signaler ce problème au SET.SPEED est désactivé. Dans ce cas, la vitesse
Service après-vente Adept. de moniteur précisée dans la commande PRIME
*Vision system out of memory* (–733) n'a aucun effet.
Explication : Le système de vision a manqué de mémoire pour la dernière Action de l'utilisateur : Si l'on veut que la commande PRIME modifie la
opération lancée. Ne pas confondre ce message vitesse du moniteur, taper la commande enable
avec *[Erreur de vision] Mémoire saturée*. Cette set.speed à l'aide du clavier.
erreur ne désactive pas le commutateur de vision *Warning* Watchdog timer disabled (56)
et est toujours signalée en réponse à la dernière Explication : Au démarrage, toutes les CPU affichent ce message si le
instruction de vision. rythmeur de séquence d'alerte est désactivé. Le
Action de l'utilisateur : Réduire la complexité de l'image ou réduire le rythmeur de séquence est un périphérique qui
nombre de modèles en mémoire. Si le problème autorise le signal SYSFAIL sur le bus VME
persiste, contacter le service après-vente Adept. (coupant la haute puissance) si la CPU s'arrête. La
*Warning* Monitoring watchpoint (55) DÉL SF de la carte défaillante doit s'allumer. Ce
Explication : L'exécution d'un programme a débuté pendant le réglage d'un message s'affiche également chaque fois qu'une
point de surveillance. tâche utilisateur est lancée à partir du moniteur et
Action de l'utilisateur : Aucune. Il s'agit d'un message d'information. On peut que le rythmeur de séquence est désactivé.
désactiver le point de surveillance pour ne plus Action de l'utilisateur : Ne pas utiliser ce système. Le rythmeur de séquence
qu'il ralentisse l'exécution du programme. doit être activé pour que le système fonctionne en
*Warning* Not calibrated (51) toute sécurité. L'utilisateur ne peut pas modifier le
Explication : Le système d'asservissement du robot et les capteurs de réglage du rythmeur de séquence du module
position des axes ne sont pas étalonnés. Dans ce AWC. Signaler ce problème au service après-
cas, les variables de position définies risquent de vente Adept.
ne pas correspondre aux positions voulues. Watchpoint changed at (task) program_name, step n. ... (18)
Action de l'utilisateur : Saisir la commande CALIBRATE ou faites exécuter Explication : Un point de surveillance a été activé, et l'expression du point de
l'instruction CALIBRATE par le programme. surveillance a changé.
*Warning* Protected and read-only programs are not stored (52) Action de l'utilisateur : Poursuivre la session de débogage.

389
Cours de formation Programmation ADEPT V+ 1

*Wrong disk loaded* (–521)


Explication : On a remplacé la disquette dans le lecteur alors qu'un fichier
était encore ouvert. Si on tente par la suite
d'accéder à ce fichier, ce message d'erreur
s'affiche. Les données écrites dans ce fichier
risquent d'être perdues.
Action de l'utilisateur : Vérifier sur la disquette si des données ont été
perdues. Si tel est le cas, il est trop tard. Soyez
plus prudent la prochaine fois.

390
Cours de formation Programmation ADEPT V+ 1

Liste numérique
Cette section donne la liste de tous les messages de V + ayant un code numérique. La plupart des codes de message associés à des erreurs peuvent être appelés à l'aide de
la fonction ERROR qui permet d'afficher le code de la dernière erreur. De plus, la fonction $ERROR permet d'afficher le message d'erreur
correspondant à un code d'erreur de V + . Les informations ci-après comportent le code du message, le texte du message et parfois un
commentaire sur la situation à laquelle s'applique le message. Les parenthèses en chevron (<...>) comportent la description d'un élément qui
peut apparaître dans ce message. Tous les numéros sont décimaux. présente les messages qui donnent des informations.
Tableau E-6, «Messages d'avertissement,» à la page 382 présente les messages d'avertissement que vous pouvez recevoir.
Tableau E-5, «Messages d'information,» à la page 381 présente les messages d'erreur que vous pouvez recevoir.

391
Cours de formation Programmation ADEPT V+ 1

Tableau E-5. Messages d'information Tableau E-7. Messages d'erreur


Code Texte du message Commentaires Code Texte du message
0 Not complete
1 Success (Réponse en cas de réussite générale)
2 <no message> (Indique le début de l'exécution d'un programme) –300 *Illegal monitor command*
3 Program completed –301 *No program specified*
4 Program task # stopped at –302 *DO not primed*
5 <no message> (Indique le début du traitement DO) Tableau E-5. Messages d'information
6 <no message> (Indique l'achèvement du traitement DO) Code Texte du message Commentaires
7 <program instruction step> (Pour mode d'exécution TRACE) –303 *Controller not in automatic mode*
8 (HALTED) –304 *Controller not in manual mode*
9 (PAUSED) –305 *Storage area format error*
10 Are you sure (Y/N)? –307 *Program not executable*
11 Change? –308 *Program interlocked*
15 Program HOLD –309 *Program already exists*
16 *Input error* Try again : –310 *Can't access protected or read-only program*
17 Breakpoint at (task) program_name, step n –311 *Invalid when program task active*
18 Watchpoint changed at (task) program_name, step n Old value: n, New –312 *Can't start while program running*
value: n –313 *Can't go on, use EXECUTE or PRIME*
Tableau E-6. Messages d'avertissement –314 *Switch can't be enabled*
Code Texte du message –315 *Invalid software configuration*
50 Executing in DRY.RUN mode –316 *Software checksum error*
51 *Warning* Not calibrated –317 *Controller not in network mode*
52 *Warning* Protected and read-only programs are not stored –318 *Program task not active*
53 *Protected program* –319 *Program task not in use*
54 *Warning* SET.SPEED switch disabled –350 *Can't delete .PROGRAM statement*
55 *Warning* Monitoring watchpoint –351 *First statement must be .PROGRAM*
56 *Warning* Watchdog timer disabled –352 *Invalid in read-only mode*
57 Press HIGH POWER button to enable power –353 *No other program referenced*
58 Push, release, hold MCP enable switch –354 *Line too long*
60 Press HIGH POWER button when blinking –355 *Can't exit while lines attached*
100 Network connection opened –356 *Not found*
101 Network connection closed –357 *Recursive macros illegal*
–358 *Cancelled*
–359 *Illegal in debug monitor mode*
–360 *Must be in debug mode*
–361 *Can't change modes while task running*

392
Cours de formation Programmation ADEPT V+ 1

–362 *Can't execute from SEE program instruction* –451 *Unexpected text at end of line*
–363 *Unknown editor command* –452 *Unknown instruction*
–453 *Ambiguous name*
–454 *Missing argument*
–364 *Can't create program in read-only mode*
–365 *Illegal in read-write mode*
–366 *Invalid when program on stack* –455 *Invalid program or variable name*
–380 *Breakpoint not allowed here* –456 *Invalid number format*
–457 *Reserved word illegal*
–458 *Illegal expression syntax*
–400 Aborted –459 *Missing parenthesis*
–401 *Undefined value* –460 *Missing quote mark*
–402 *Illegal value* –461 *Invalid format specifier*
–403 *Illegal assignment* –462 *Unknown function*
–404 *Illegal array index*
–405 *Illegal digital signal*
–406 *Undefined program or variable name* –463 *Invalid statement label*
–407 *Invalid argument* –464 *Duplicate statement label*
–408 *Program argument mismatch* –465 *Variable type mismatch*
–409 *Arithmetic overflow* –466 *Illegal use of belt variable*
–410 *Negative square root* –467 *Illegal .PROGRAM statement*
–411 *Not enough storage area* –468 *Duplicate .PROGRAM arguments*
–412 *Branch to undefined label* Step nnn –469 *Attempt to redefine variable type* : variable_name
–413 *Not enough program stack space* –470 *Attempt to redefine variable class* : variable_name
–414 *Can't mix MC & program instructions* –471 *Misplaced declaration statement*
–416 *String variable overflow* –472 *Control structure error* Step nnn
–417 *String too short* –473 *Control structure error*
–418 *Illegal memory reference* –474 *Too many array indices*
–419 *Illegal when command program active* –475 *Missing bracket*
–420 *Undefined value in this context* –476 *Invalid qualifier*
–421 *Program not on top of stack* –477 *Ambiguous AUTO invalid*
–422 *Function already enabled* –500 *File already exists*
–423 *Illegal operation* –501 *Nonexistent file*
–424 *Unknown keyword* –502 *Illegal I/O device command*
–425 *Calibration program not loaded* –503 *Device full*
–426 *Can't find calibration program file* –504 *Unexpected end of file*
–450 *Can't interpret line* –506 *File already open*

393
Cours de formation Programmation ADEPT V+ 1

–507 *I/O communication error* –539 *No matching connection*


–508 *Device not ready* –540 *Invalid connection specified*
–509 *Directory error* –541 *Invalid network protocol*
–510 *Data checksum error* –542 *Network not enabled*
–511) *Input block error* –543 *Illegal when network enabled*
–512 *File format error* –544 *Not configured as accessed*
–545 *Nonexistent subdirectory*
–546 *Subdirectory list too long*
–513 *File not opened*
–514 *File or subdirectory name error*
–515 *Already attached to logical unit* –547 *Subdirectory in use*
–516 *Not attached to logical unit* –548 *Illegal while protocol active*
–517 *I/O queue full* –549 *Out of graphics memory*
–518 *Illegal I/O channel number* –550 *Too many windows*
–519 *Driver internal consistency error* –551 *Font not loaded*
–520 *Invalid disk format* –552 *Graphics processor timeout*
–521 *Wrong disk loaded* –553 *Too many arguments*
–522 *Data error on device* –554 *Too many closeable windows*
–523 *Bad block in disk header* –555 *Graphics storage area format error*
–524 *Communications overrun* –556 *Too many icons*
–557 *Can't create new slide bar*
–558 *Graphics software checksum error*
Code Texte du message –559 *Out of network resources*
–525 *Illegal I/O redirection specified* –560 *Invalid network resource*
–526 *No data received* –561 *Invalid network address*
–527 *Illegal user LUN specified* –562 *Network timeout*
–528 *Illegal record length*
–529 *Output record too long*
–530 *Protection error* –563 *Remote has not exported network resource*
–531 *Communication time–out* –564 *Network resource name conflict*
–532 *Out of I/O buffer space* –565 *Network connection terminated*
–533 *Invalid hardware configuration* –566 *Not owner*
–534 *Network restarted remotely* –567 *Not a directory*
–535 *Network closed locally* –568 *Is a directory*
–536 *Too many network errors* –569 *File too large*
–537 *Unknown network node* –570 *File name too long*
–538 *Network node off line* –571 *Directory not empty*

394
Cours de formation Programmation ADEPT V+ 1

–600 *Stopped due to servoing error* –633 *PANIC command*


–601 *Robot not attached to this program* –635 *Cartesian control of robot not possible*
–602 *Robot already attached to program* –636 *Trajectory clock overrun*
–603 *COMP mode disabled* –637 *Illegal while joints SPIN'ing*
–604 *Robot power off* –638 *SPIN motion not permitted*
–605 *Robot not calibrated* –639 *Manual brake release*
–606 *Joint 1 in brake track or robot overheated* –640 *E-STOP from robot*
–607 *No air pressure* –641 *E-STOP from amplifier*
–608 *External E-STOP 1 detected by CPU* –642 *SYSFAIL detected by robot*
–609 *Illegal joint number* –643 *E-STOP detected by robot*
–644 *Incompatible robot and safety ID*
–645 *Power disabled :
–610 *Location out of range*
–611 *Must use straight-line motion*
–612 *Straight-line motion can't alter configuration* –646 *HIGH POWER button not pressed*
–613 *Illegal motion from here* –647 *Collision avoidance dead-lock*
–614 *Attempt to modify active belt* –648 *User has not tested MMSP system*
–615 *Belt not enabled* –649 *Timeout :
–616 *Belt window violation* –650 *Manual control pendant failure*
–617 *Belt servo dead* –651 *RSC communications failure*
–618 *Location too close* –652 *RSC reset*
–619 *Invalid orientation* –653 *RSC time-out*
–620 *Speed pot or STEP not pressed* –654 *RSC transmission garbled*
–621 *Robot interlocked* –655 *RSC bad packet format*
–622 *No robot connected to system* –656 *RSC calibration load failure*
–623 *Stop-on-force triggered* –658 *Device hardware not present*
–624 *Force protect limit exceeded* –659 *Device time-out*
–625 *Invalid servo initialization data* –660 *Device error*
–626 *Can't ALTER and track belt* –661 *NVRAM data invalid*
–627 *Robot power on* –662 *Device sensor error*
–628 *Robot module not loaded* ID :n –663 *Device reset*
–629 *SYSFAIL detected by CPU* –665 *NVRAM battery failure*
–666 *Must use CPU #1*
–667 *Power failure detected*
–630 *Backplane E-STOP detected by CPU* Tableau E-7. Messages d'erreur (Suite)
–631 *Controller overheating* Code Texte du message
–632 *Power failure detected by robot* –668 *Device in use*

395
Cours de formation Programmation ADEPT V+ 1

–669 *RSC hardware failure* –732 *Invalid model name*


–670 *RSC power failure* –733 *Vision system out of memory*
–671 *Servo board 12V fuse open* –734 *Can't open vision window for read/write*
–672 *Servo board solenoid fuse open* –735 *Invalid vision argument*
–673 *Servo board E-Stop fuse open* –736 *Font not defined*
–674 *Servo task overloaded* –737 *Font already defined*
–675 *Timeout enabling power*
–676 *RSC module ID doesn't match robot*
–701 *VISION not enabled* –738 *Font not completely trained*
–702 *No prototypes* –739 *Maximum number of samples trained*
–703 *Too many vision requests pending* –740 *Duplicate character in font*
–704 *No objects seen* –741 *Invalid character in font*
–742 *Character not in font*
–743 *Region too big*
–705 *Camera not running* –744 *Region too complicated*
–706 *Invalid request while camera running*
–707 *Unknown prototype*
–708 *Display interface absent* –745 *Expected character(s) not found*
–710 *Camera disconnected* –746 *Template of uniform intensity*
–712 *Maximum number of prototypes exceeded* –747 *Template not defined*
–713 *Vision not calibrated* –748 *Template already defined*
–714 *Camera already running* –749 *Vision aborted*
–717 *Not enough prototype storage area* –750 *Mixing half and full resolutions*
–718 *Duplicate prototype name* –751 *No vision system selected*
–719 *Camera already off* –752 *AOI not defined*
–720 *Vision option not installed* –753 *Out of vision transform memory*
–721 *Bad grip definition* –754 *Correlation template too big*
–722 *Camera interface board absent* –755 *Data overflow*
–723 *No picture data available* –756 *A scratch frame store is needed (use VSELECT)*
–724 *Illegal display mode* –757 *Inconsistent hierarchy levels*
–726 *Bad camera calibration* –758 *No models*
–727 *Invalid vision X/Y ratio* –759 *Unknown model*
–728 *Image processing board failure* –760 *Duplicate model*
–729 *Invalid request while vision training* –761 *No models planned*
–730 *Information not available* –762 *Vision software incompatible*
–800 *Unknown error code*

–731 *Unknown sub-prototype*

396
Cours de formation Programmation ADEPT V+ 1

–801 *Invalid VFEATURE access* –1002 *Position out of range* Jt


–802 *Invalid camera calibration* –1003 *Time-out nulling errors* Mtr n
–803 *Illegal camera number* –1004 *No zero index* Mtr n
–804 *Option not installed* –1005 *Unexpected zero index* Mtr n
–805 *Hardware not in system* –1006 *Soft envelope error* Mtr n
–859 *Database manager internal error* –1007 *Motor stalled* Mtr n
–900 *Robot module not enabled* –1008 *Encoder quadrature error* Mtr n
–901 *Obstacle collision detected* –1009 *Timeout enabling amplifier* Mtr n
–903 *DeviceNet : Critical device off-line* –1010 *Invalid error code* Belt n
–904 *[Fatal] E-STOP signals are stuck off* –1011 *No zero index* Belt n
–905 *[Fatal] I/O processor failure* –1012 *Unexpected zero index* Belt n
–906 *Robot power off requested* –1013 *Encoder quadrature error* Belt n
–907 *E-STOP circuit relay failure* –1014 *[Fatal] Initialization failure* Mtr n
–1015 *Initialization failure* Belt n
–1016 *Motor overheating* Mtr n
–908 *E-STOP from front panel button* –1018 *Motor amplifier fault* Mtr n
–909 *E-STOP from MCP E-STOP button* –1021 *Duty-cycle exceeded* Mtr n
–910 *E-STOP from user E-STOP button* –1022 *Skew envelope error* Mtr n
–1023 *Position out of range* Mtr n
–1025 *Encoder fault*
–911 *E-STOP from front panel external input* –1026 *Software incompatible* Code n
–912 *E-STOP from user enable switch* –1027 *Hard envelope error* Mtr n
–913 *E-STOP from MCP enable switch* –1032 *Negative overtravel* Mtr n
–914 *E-STOP 2 detected by CPU* –1033 *Positive overtravel* Mtr n
–915 *MCP enable switch 1 off detected by CPU* –1034 *Overtravel* Mtr n
–916 *MCP enable switch 2 off detected by CPU* –1101 *[Fatal] Servo process dead* CPU n
–917 *Manual mode switch 1 off detected by CPU* –1102 *[Fatal] Servo code incompatible* CPU n
–918 *Manual mode switch 2 off detected by CPU* –1104 *[Fatal] Servo dead* Mtr n
–919 *E-STOP asserted by CPU* –1105 *Motor startup failure* Mtr n
–920 *[Fatal] Manual mode switch stuck off* –1106 *Calibration sensor failure* Mtr n
–921 *E-STOP from user muted safety gate* –1107 *[Fatal] Servo init failure* CPU n
–922 *E-STOP channels 1 and 2 do not match* –1108 *MMSP diagnostic error* Code n
–923 *E-STOP circuit is shorted* –1109 *MMSP external sensor fault* Code n
–924 *Front panel HIGH POWER lamp failure* –1110 *Unexpected PSS state* Code nnn
–925 *Front panel serial bus failure* –1111 *E-STOP from MMSP* Code n
–999 Aborted –1200 à –1299 *NFS error* Code n*
–1001 *Invalid servo error* Mtr n

397

Vous aimerez peut-être aussi