contrôleur robot - asyril€¦ · 000.100.520 contrôleur robot - manuel de programmation 4/49 2...
TRANSCRIPT
Contrôleur robot
Manuel de programmation
Document Asyril_ROBOT_Manuel_Programmation_FR
000.100.520
Version B1 Date 09.08.2016
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Introduction Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 2/49
Table des matières
1 INTRODUCTION .............................................................................................................................................. 3
1.1 GÉNÉRALITÉS ........................................................................................................................................... 3
2 ARCHITECTURE DU CONTRÔLEUR ROBOT ............................................................................................... 4
3 CONFIGURATION DU ROBOT ....................................................................................................................... 5
3.1 FICHIERS DE CONFIGURATION ROBOT ..................................................................................................... 5
4 COMMUNICATION AVEC LE ROBOT ............................................................................................................ 6
4.1 GÉNÉRALITÉS ........................................................................................................................................... 6
4.2 PROGRAMMER EN UTILISANT LE SERVEUR TCP/IP EMBARQUÉ ............................................................. 7
4.2.1 Principe de base ........................................................................................................................... 7
4.2.2 Procédure d'établissement d'une session ................................................................................ 7
5 SYNTAXE ......................................................................................................................................................... 8
5.1 GÉNÉRALITÉS ........................................................................................................................................... 8
5.1.1 Syntaxe d'une commande ........................................................................................................... 8
5.1.2 Syntaxe d'une réponse ................................................................................................................ 9
6 MOUVEMENT ET TRAJECTOIRE ................................................................................................................ 10
6.1 MACHINE D'ÉTAT ROBOT ........................................................................................................................ 10
6.2 MODES D'INITIALISATION DU ROBOT POCKETDELTA .............................................................................. 13
7 ROBOT TEXT COMMANDS .......................................................................................................................... 15
7.1 COMMANDES DU CONTRÔLEUR ............................................................................................................. 16
7.2 COMMANDES DE CONFIGURATION ......................................................................................................... 20
7.3 COMMANDES DU MODULE ROBOT .......................................................................................................... 22
7.4 COMMANDES D'ENTRÉES/SORTIES ........................................................................................................ 39
7.5 COMMANDES DE L'INTERPRÉTEUR ARL ................................................................................................ 40
7.6 COMMANDES DU PROCESS .................................................................................................................... 42
7.7 COMMANDES DU MODULE IOWAGO .................................................................................................... 44
8 SUPPORT TECHNIQUE ................................................................................................................................ 45
8.1.1 Pour un meilleur service … ....................................................................................................... 45
8.1.2 Contact ......................................................................................................................................... 45
INDEX ALPHABÉTIQUE ....................................................................................................................................... 46
INDEX THÉMATIQUE ............................................................................................................................................ 47
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Introduction Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 3/49
1 Introduction
1.1 Généralités
Ce document appartient à Asyril S.A., il ne peut être reproduit, modifié ou communiqué, que
ce soit en partie ou en totalité sans notre autorisation écrite préalable. Asyril S.A. se réserve
le droit de modifier toute information contenue dans ce document pour des raisons liées à
l’amélioration du produit sans notification préalable. Avant d’utiliser le produit, merci de lire
entièrement ce document afin d’en assurer une utilisation correcte. Toutefois, si vous veniez
à rencontrer des difficultés lors de l’utilisation du produit, n’hésitez pas à contacter notre
service client.
Dans ce Manuel, les informations de sécurité devant être respectées sont réparties en trois
types : « Danger », « Attention » et « note ». Ces messages sont signalés comme suit :
DANGER!
Le non-respect de cette instruction pourrait provoquer des dommages corporels
graves.
DANGER!
Cette instruction signale un danger électrique. Le non-respect de cette instruction
pourrait provoquer une électrocution ou des dommages corporels graves dus au choc
électrique.
ATTENTION !
Le non-respect de cette instruction pourrait entrainer des dégâts matériels graves.
NOTE :
L’attention du lecteur est attirée sur ce point de détail afin d’assurer une utilisation correcte du
produit. Toutefois, le non-respect de cette instruction ne risque pas de se traduire par un
danger.
Référence …
Pour plus d’informations sur un sujet spécifique le lecteur est invité à se référer à un autre
manuel ou une page ultérieure du manuel en cours.
ATTENTION !
Asyril ne peut être tenu responsable de dommages matériels ou humains provoqués par le
non-respect des instructions du le manuel spécifique à votre machine.
NOTE :
Toutes les dimensions et côtes dans ce manuel sont exprimées en millimètres (mm)
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Architecture du contrôleur robot Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 4/49
2 Architecture du contrôleur robot
http server tcp server
Task Manager / task queue
Hardware
Command interpreter
Process module Robot module
Workspace / Frames
State Machine
Path planner Robot RT IO
OMAC State Machine
ARL-Interpreter
tcp client http client
Control modules
Fig 1. Architecture du contrôleur robot
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Configuration du robot Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 5/49
3 Configuration du robot
3.1 Fichiers de configuration robot
Quatre fichiers permettent de spécifier la configuration du contrôleur et des paramètres
robots. Ces fichiers sont lus et pris en compte une seule fois au démarrage de l'application.
1) Le fichier <serialNumber>.version (extension ".version")
Ce fichier est lu en premier lieu et définit les paramètres globaux du contrôleur et du robot.
En particulier il permet de définir les chemins d'accès aux autres fichiers de configuration
ainsi que le type de robot, le nombre de degré de liberté etc..
2) Le fichier <serialNumber>.controller (extension ".controller")
définit tous les paramètres de réglage du contrôle. (PID, paramètres dynamiques, diverses
options de synchro etc.. )
3) Le fichier <serialNumber>.model (extension ".model")
définit les paramètres géométrique du robot et du volume de travail.
4) Le fichier "process.arc" Ce fichier optionnel permet de déclarer et configurer les modules spécifiques au process comme les io non temps réelles ou la gestion/communication avec le module vision Asyview.
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Communication avec le robot Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 6/49
4 Communication avec le robot
4.1 Généralités
Le contrôleur robot est conçu pour être piloté en esclave depuis "l'extérieur" par des
commandes texte. Il intègre un serveur TCP/IP et http et il est nécessaire de se connecter
en "client" pour communiquer avec le robot.
Le rôle de ces serveurs est de recevoir la commande de l'utilisateur, de la traiter et de
formuler la réponse. Chacun des deux serveurs est capable de réaliser la même tâche, seule
le protocole diffère. Le serveur HTTP/XML est réservé par l'interface utilisateur embarquée
(page web).
Par défaut les ports des serveurs Robot sont configurés selon le tableau suivant :
ROBOT Adresse IP Subnet Mask Port http/XML Port TCP/IP
Pocket 192.168.0.10 255.255.255.0 8080 8181
Power 192.168.0.20 255.255.255.0 8080 8181
Desktop 192.168.0.30 255.255.255.0 8080 8181
Tableau 4-1 : paramètres TCP/IP Robot
Le protocole texte inclut aussi un accès limité au système (login) permettant que seuls les
utilisateurs ayant le niveau d'accès correct puissent accéder aux commandes désirées.
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Communication avec le robot Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 7/49
4.2 Programmer en utilisant le serveur TCP/IP embarqué
4.2.1 Principe de base
Le robot contient seulement un serveur fonctionnant comme esclave. Ceci signifie qu'il n'est
pas capable d'envoyer activement des données à l'application maître. Toutes les données ou
actions désirées doivent être demandées au robot en envoyant une commande et en
attendant la réponse.
Un exemple d'application maître-escalve est donné sur le graphique ci-dessous. Dans cette
illustration, deux clients TCP sont représentés, l'un utilisant un polling pour maintenir l'état du
robot à jour et l'autre permettant d'envoyer des commandes process au robot.
Figure 1: Exemple de pilotage d'un robot en Master
4.2.2 Procédure d'établissement d'une session
Le robot peut accepter un nombre illimité de clients accédant simultanément aux serveurs.
Les étapes nécessaires à l'établissement d'une connexion sont toujours les mêmes et sont
décrites dans ce qui suit :
1- Créer un socket et essayer de connceter le client au serveur robot
2- Lorsque la connexion est établie, le robot renvoie un message de bienvenue :
← 0 Connected. RobotType=…. SerialNumber=xxx. Use ‘login’ to
begin.
3- La première commande à envoyer au robot est la commande "LOGIN "
→ login user=user passwd=user
Si le login est valide, le robot répond la ligne suivante :
→ 72 Logged as ‘User’.
4- La connexion est désormais ouverte et active. Le robot peut accepter toutes les autres
commandes décrites dans le chapitre "commandes"
GetState
0 p0=v0 … pN=vNPolling
Thread TCP serverTCPClient1
TCPClient2
cmd
0 p0=v0 … pN=vN
Process
Text Protocol
Master application PocketDelta Robot
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Syntaxe Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 8/49
5 Syntaxe
5.1 Généralités
La syntaxe du protocole texte est basée sur le code ASCII et permet de contrôler si la
commande reçue est correcte. Ce contrôle est effectué sur les niveaux suivants :
Commande : vérifie si la commande est valide
Paramètres : vérifie si le paramètre est valide et si tous les paramètres
nécessaires à la commande sont présents
Valeurs : vérifie si le type de la valeur correspond au type désiré (booléen, entier,
chaine …)
5.1.1 Syntaxe d'une commande
Une commande en protocole texte est construite de la manière suivante :
Préfixe Paramètres Suffixe
Commande parameterX=valueX Carriage Return & Line Feed
Tableau 5-1 : Syntaxe d’une commande texte
Le nombre de paramètres pour les commandes et les réponses peut varier de 0 à N selon
l’instruction. Si aucun paramètre n'est nécessaire, la commande ou le code est directement
suivi du Carriage Return & Line Feed sans espace. Toutes les instructions sont décrites
dans les chapitres suivants.
NOTE IMPORTANTE :
Dans les commandes envoyées au moins un caractère espace est nécessaire entre chaque
paramètre.
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Syntaxe Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 9/49
5.1.2 Syntaxe d'une réponse
5.1.2.1 Construction
La réponse du robot à une commande est construite comme présenté ci-dessous :
Préfixe Paramètres Suffixe
Code parameterX=valueX Carriage Return & Line Feed
Tableau 5-2 : Syntaxe d’une réponse texte
Pour les réponses, le premier paramètre
correspond au code de retour de la
commande. En cas d’erreur, ce même
paramètre transmet le message d’erreur
correspondant et le code est alors non
nul. Toute instruction va induire une
réponse immédiate du robot comme
schématisé sur la Figure 5-1.
Figure 5-1 : réponse immédiate à toute
commande
5.1.2.2 Liste des codes de réponse
Les codes pouvant être retournés ainsi que les significations associées sont listés ci-après :
0 – Command OK.
2– Wrong number of args
5 – Syntax error
10 – Cannot give help
20 – Invalid arguments
30 – Wrong state
32 – Brakes engaged
33 – Out of workspace
40 – Not permitted
50 – Internal error
60 – Wrong value
70 – Wrong login
72 – Logged as 'User'
73 – Logged as 'Admin'
DEMAND
ANSWER
MoveTO x=0.010 y=0.010 z=0.03 speedfactor=0.1CRLFMoveTO x=0.010 y=0.010 z=0.03 speedfactor=0.1CRLF
0CRLF30 Wrong state
0CRLF30 Wrong state
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Mouvement et trajectoire Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 10/49
6 Mouvement et trajectoire
Les informations concernant les mouvements, trajectoires, éléments du volume de travail
tels que points et repère sont explicitées dans la documentation
« Asyfeed_Programming_Guide_EN »
6.1 Machine d'état robot
La commande GETSTATE permet de lire l'état du robot et d'obtenir de multiples informations
comme la position courante ou l'état des entrées sorties. Les tableaux suivants résument la
signification de chaque valeur renvoyée dans l'instruction GETSTATE .
current / desired nom correspondant détails
-2 STATE_EMERGENCY_PRESSED
Le robot est en état "arrêt d'urgence".
Relâcher le bouton d'arrêt d'urgence
pour passer en état "off".
-1 STATE_ERROR
Le robot est en état "erreur".
Valider et quittancer l'erreur en
passant dans l'état "off".
0 STATE_OFF
Le robot est en état "off".
Pour pouvoir donner une instruction de
mouvement choisir l'état "idle"
1 STATE_HOMING
Le robot est en état "homing".
A la fin de l'initialisation l'état passe
automatiquement en "on" puis "idle".
2 STATE_ON Le robot est en état "on".
L'état logique suivant est "idle".
3 STATE_IDLE Le robot est en état "idle".
Le robot est prêt à bouger.
Tableau 6-1 : listes des états robot (robot state)
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Mouvement et trajectoire Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 11/49
motionstate nom correspondant détails
-1 TRAJ_ERROR Erreur sur la trajectoire
0 INPOSITION Position cible atteinte
1 MOVING_BUFF Mouvement en cours. Le prochain
mouvement nécessaire si un "blend"
est désiré n'est pas encore définit
2 MOVING Mouvement en cours. Le prochain
mouvement est déjà définit.
3 MOVING_BLENDING En mouvement. En cours de blend
Tableau 6-2 : états des mouvements (motionstate)
outofworkspace nom correspondant détails
0 Inclus dans le volume de
travail
le robot se trouve dans son volume de travail
1 Hors volume de travail. la position courante du robot est en dehors du
volume de travail
Tableau 6-3 : position dans le volume de travail (outofworkspace)
Robot error nom correspondant détails
0 NO_ERROR Pas d'erreur
1 POSITION_TRACKING_ERROR Erreur de suivi en position
2 CURRENT_TRACKING_ERROR Erreur de suivi en courant
3 HOMING_ERROR Erreur de homing
4 INTERNAL_ERROR Erreur non spécifique
5* SECURITY_IO_ERROR
Signale que l'entrée digitale de sécurité est dans l'état "bas". La fonction de surveillance de cette entrée est optionnelle et activée/désactivée par un paramètre du fichier de configuration ".version".
* Valable uniquement pour les robots "pocket" et "power".
Tableau 6-4 : listes des erreurs du robot
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Mouvement et trajectoire Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 12/49
taskstate nom correspondant détails
-1 TASK_ERROR Tâche en erreur.
0 TASK_DONE Tâche terminée
1* TASK_BUFFERING Tâche en préparation
* Cet état de transition est définit mais n'est actuellement pas utilisé.
2 TASK_INPROGRESS Tâche en cours d'exécution
3 TASK_NOT_STARTED Tâche en attente d'exécution
Tableau 6-5 : état d'une tâche (task state)
tasklist
state
nom correspondant détails
-1 TASK_LIST_ERROR La tâche courante est en erreur
0 TASK_LIST_DONE La file des tâches est vide et la
tâche courante est terminée.
1 TASK_LIST_PROCESSING En cours de fonctionnement. Au
moins une tâche est active.
Tableau 6-6 : état de la file des tâches (tasklist state)
prgstate nom correspondant détails
-1 PRG_ERROR Exécution interrompue par une erreur
0 PRG_STOPPED Exécution terminée
1 PRG_STOPPING Arrêt de l'exécution en cours
2 PRG_RUNNING En cours d'exécution
3 PRG_SUSPENDING En transition vers une pause de l'exécution
4 PRG_SUSPENDED Exécution en pause
Tableau 6-7 : états des programmes (prgstate)
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Mouvement et trajectoire Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 13/49
6.2 Modes d'initialisation du robot pocketdelta
Il existe plusieurs modes d'initialisation robot liés à la structure même du robot delta. Il est
ainsi possible d'initialiser les trois moteurs en même temps, ou tour à tour chacun des trois
moteurs, et ce systématiquement ou seulement lors d'un évènement particulier. Le tableau
ci-dessous résume les différents modes d'initialisation et les codes associés.
homing
mode
nom correspondant détails
0 HOMING_NORMAL - initialisation des trois moteurs
successivement : recherche du signal externe recherche du premier index
moteur rencontré après le signal externe.
- initialisation à chaque passage de l'état "off" à "idle"
1 HOMING_NORMAL_ONLY_ONCE - initialisation des trois moteurs
successivement: recherche du signal externe recherche du premier index
moteur rencontré après le signal externe.
- initialisation seulement une fois à chaque mise sous tension
2 HOMING_WITHOUT_SENSORS - initialisation des trois moteurs
successivement: recherche du premier index
moteur rencontré après le signal externe.
- initialisation à chaque passage de l'état "off" à "idle"
3 HOMING_WITHOUT_SENSORS_ONLY_ONCE - initialisation des trois moteurs
successivement: recherche du premier index
moteur rencontré après le signal externe.
- initialisation seulement une fois à chaque mise sous tension
4 HOMING_ONLY_SENSORS - initialisation des trois moteurs
successivement: recherche seulement du
signal externe - initialisation à chaque passage de
l'état "off" à "idle"
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Mouvement et trajectoire Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 14/49
5 HOMING_ONLY_SENSORS_ONLY_ONCE - initialisation des trois moteurs
successivement: recherche seulement du
signal externe - initialisation seulement une fois à
chaque mise sous tension
6 NO_HOMING - pas d'initialisation
10 HOMING_ALL_TOGETHER - initialisation des trois moteurs
simultanément : Init sur le 1
er index moteur
rencontré. Inversion du sens de rotation du moteur si le signal externe est détecté.
- initialisation à chaque passage de l'état "off" à "idle"
11 HOMING_ALL_TOGETHER_ONLY_ONCE - initialisation des trois moteurs
simultanément : Init sur le 1
er index moteur
rencontré. Inversion du sens de rotation du moteur si le signal externe est détecté
- initialisation seulement une fois à chaque mise sous tension
12 HOMING_ALL_TOGETHER_
FORCE_INITSENSOR - initialisation des trois moteurs simultanément:
Recherche du signal externe Inversion du sens de rotation
et init sur le 1er
index moteur rencontré.
- initialisation à chaque passage de l'état "off" à "idle"
13 HOMING_ALL_TOGETHER_FORCE_
INITSENSOR_ONLY_ONCE - initialisation des trois moteurs simultanément:
Recherche du signal externe Inversion du sens de rotation
et init sur le 1er
index moteur rencontré.
- initialisation seulement une fois à chaque mise sous tension
Tableau 6-8 : types d'initialisation (homing mode)
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 15/49
7 Robot text commands
Ce chapitre décrit toutes les commandes accessibles en TCP depuis la plateforme robot. La
syntaxe suivante a été utilisée pour décrire les commandes :
[parameters] = paramètres facultatifs
(z) = Variable de type “booléen”
(i) = Variable de type “entier”
(f) = Variable de type “nombre en virgule flottante”
(s) = Variable de type “chaine de caractères”
(l) = Variable de type “entier long”
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 16/49
7.1 Commandes du contrôleur
GETVERSION
Syntaxe : GETVERSION
Fonction : Affiche le label de version logicielle installé sur le robot
Paramètres : aucun
Retour : ← "0 PRODUCTKEY=(s1) PRODUCTSN=(s2) SOFTRELEASE=(s3)
SOFTUPDATE=(s4) ROBOTYPE=(s5) DOF=(s5) SN=(s6)"
← "40 Not permitted"
Exemple : GETVERSION
← "0 PRODUCTKEY=ROBOT-POC-01--10-03-FL-NO PRODUCTSN=simdelta SOFTRELEASE=4.4.1_RC3 SOFTUPDATE=24.09.2013 ROBOTTYPE=SIM DOF=3 SN=12345678910"
Voir aussi :
LOGIN
Syntaxe : LOGIN user=(s) passwd=(s) [timeout=(f)]
Fonction : Ouverture d'une session avec nom d'utilisateur et mot de passe.
Paramètres : user Nom d'utilisateur
passwd Mot de passe
timeout Optionnel. Timeout pour la session en [s]. Valeur par défaut 120[s]
Retour : ← "0" (OK)
← "20 Invalid arguments for timeout. Must be greater than 0"
← "50 Internal error"
← "70 Wrong login"
← "72 Logged as 'User'"
← "73 Logged as 'Admin'"
← "74 Logged as 'Superuser'"
Exemple : Login user=admin passwd=secret timeout=300
Voir aussi : Logout
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 17/49
LOGOUT
Syntaxe : LOGOUT
Fonction : Quitte la session courante
Paramètres : aucun
Retour : ← "0"
Exemple : LOGOUT
Voir aussi : LOGIN
HELP
Syntaxe : HELP [command=(s)] [listdetailed=(i)]
Fonction : liste toutes les commandes existantes ou affiche l'aide sur une commande
spécifique.
Paramètres : command Nom de la commande spécifique
listdetailed Impression de l'aide de toute les commandes dans un fichier nommé ''TextCMD.txt"
Retour : ← "0" (Command OK)
← "10 cannot give help on <cmdName> Unknown command"
← "40 Not permitted." (login privilege is too low)
Exemple : HELP command=MoveTo
Voir aussi :
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 18/49
LOG
Syntaxe : LOG cmd=(s) [filename=(s)]
Fonction : Permet de gérer les fonctions de "log" du contrôleur
Paramètres : cmd Sous-commande de sélection de l'action à réaliser
Valeurs possibles :
(1) 'startPrintLog' (2) 'stopPrintLog' (3) 'listLogFiles'
(4) 'deleteLogFile' (5) 'readLogFile' (6) 'startLogTaskPlanner'
(7) 'stopLogTaskPlanner' (8) 'startLogTcpServer' (9) 'stopLogTcpServer'
(10) 'startLogController' (11) 'stopLogController'
filename Nom du fichier pour les sous-commandes 'readLogFile' et 'deleteLogFile'
Retour : ← "0" (commande ok)
← "20 Invalid arguments."
← "40 Not permitted." (login privilege is too low)
← "50 Internal error"
Exemple : LOG cmd=startLogTaskPlanner
Voir aussi :
SYSTEM
Syntaxe : *SYSTEM* cmd=(s) [arg1=(s)] [arg2=(s)]
Fonction : Permet de transmettre une commande système.
*NOTE*:
Commande à usage interne Asyril uniquement. Le comportement normal
du robot ne peut être assuré dans le cas contraire.
Paramètres : cmd Commande système
arg1 Premier argument optionnel
arg2 Deuxième argument optionnel
Retour : ← "0 <command response>"
← "1 <command error>"
Exemple : -
Voir aussi : -
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 19/49
IP
Syntaxe : IP cmd=(s) [parameter=(s)] [value=(s)]
Fonction : Permet d'afficher ou de modifier l'adresse IP du robot
NOTE:
Valable uniquement pour le robot de type pocket delta
Paramètres : cmd Sous-commande de sélection de l'action à réaliser
valeurs possibles :
(1)'show', (2)'edit'
parameter Mot clef définissant le paramètre à éditer
Valeurs possibles:
(1)'hostname', (2) 'domain', (3) 'nameserver', (4) 'route',
(5) 'manual_ip', (6) 'manual_netmask'
value Valeur du paramètre
Retour : ← "0" (command ok)
← "2 Wrong number of args."
← "40 Not permitted." (login privilege is too low)
← "50 Internal error"
Exemple : IP cmd=edit parameter=manuall_ip value=192.168.0.10
Voir aussi : -
EXIT
Syntaxe : *EXIT*
Fonction : Quitte immédiatement l'application contrôleur
*NOTE*:
Commande à usage interne Asyril uniquement. Le comportement
normal du robot ne peut être assuré dans le cas contraire.
Paramètres : aucun
Retour : ← "0" (command ok)
← "40 Not permitted." (login privilege is too low)
Exemple : EXIT
Voir aussi : -
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 20/49
7.2 Commandes de configuration
CONTROLLER
Syntaxe : CONTROLLER cmd=(s) [name=(s)] [idx=(i)] [value=(s)] [data=(s)]
Fonction : Accès à la lecture et modification des paramètres bas-niveau du contrôleur.
NOTE:
Cette commande "bas-niveau" est réservée à une utilisation interne
par Asyril.
Paramètres : cmd Sous-commande de sélection de l'action à réaliser
valeurs possibles :
(1)'toString', (2)'startDebug', (3)'stopDebug'
(4)'readControllerFile', (5)'readModelFile', (6)'getBrakes',
(7)'readanalogueoutputs', (8)'getMotorTorque', (9)'getTCPparameters'
(10)'saveParameters', (11)'reloadFile', (12)'setParameter[s]' (13)'getParameter[s]', (14)'getParametersXML'
name
Nom du paramètre pour les sous-commandes 'getParameter(s)' et 'setParameter(s)'
idx Index pour les valeurs de paramètre de type "vecteur"
value
Valeur du paramètre pour les sous-commandes 'getParameter(s)' et 'setParameter(s)'
data
Donnée Xml pour les sous-commandes 'setParameter[s]' Supporte l'encodage "pourcent" (percent encoding)
Retour : ← "0" (command ok)
← "0 <paramName>=<param value>"
Pour l'appel de "getParameter name=<paramName>"
← "0 analogueoutput0=(f) analogueoutput1=(f)
analogueoutput2=(f) analogueoutput3=(f)"
Pour l'appel de "readAnalogueOuputs"
← "0 motortorque0=(f) motortorque1=(f) motortorque2=(f)
motortorque3=(f)"
Pour l'appel de "getMotorTorque"
← "0 controllertostring=<toStringCmdResult>"
Pour l'appel de "toString"
← "0 readcontrollerfile=<xmlFileAsString>"
Pour l'appel de "readControllerFile"
← "0 readmodelfile=<xmlFileAsString>"
Pour l'appel de "readModelFile"
← "0 controllerparameters=<xmlFileAsString>"
Pour l'appel de "readModelFile"
← "0 release=[0|1]"
Pour l'appel de "getBrakes"
← "0 dx=(f) dy=(f) dz=(f)"
Pour l'appel de "getTcpParameters"
← "40 Not permitted." (login privilege is too low)
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 21/49
← "50 Internal error."
← "83 Data or name&value are needed!!"
Exemple : CONTROLLER cmd=setParameter name=offset value=0.005
Voir aussi : ---
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 22/49
7.3 Commandes du module robot
GETSTATE [frameID] [toolID]
Syntaxe : GETSATE [<FrameID=(i)>] [<ToolID=(i)>]
Fonction : Retourne le "status" courant du robot.
Paramètres : FrameID valeur numérique référençant l’identifiant du repère (frame) concerné
ToolID valeur numérique référençant l’identifiant de l'outil (tool) concerné
Retour : Retour de la forme:
"0 current=(s) desired=(s) motionstate=(s)
outofworkspace=(0|1)frameid=(i)
framescalex=(f)framescaley=(f) framescalez=(f)
toolid=(i)
x=(f) y=(f) z=(f) rz=(f)
q0=(f)q1=(f) q2=(f) q3=(f)
xdes=(f) ydes=(f) zdes=(f) rzdes=(f)
tasklistsize=(i)taskliststate=(i)
currenttaskid=(i) pasttaskid=(i)
slowspeed=(0|1) brake=(0|1)
digitalinput=(bbbbb…) digitaloutput=(bbbbb…)
axissmooth=(bbbb) axiscompliant=(bbbb)
errorcode=(i) errormessage=(s)
prgstate=(s) prgname=(s)"
current Numéro de l'état courant soit:
-2 -1 0 1 2 3
Estop Error Off Homing On Idle
Voir Tableau 6-1 pour plus de détail sur la machine d'état robot
desired Numéro de l'état demandé.
motionsate Numéro de l'état de mouvement du robot soit:
-1 TrajError. Erreur de trajectoire
0 Position cible atteinte
1 Mouvement en cours. Le prochain mouvement nécessaire si un "blend" est désiré n'est pas encore définit.
2 En mouvement. Deux mouvements définits (blend)
3 En mouvement. En cours de blend
Voir le Tableau 6-2 pour plus de détail
outofworkspace Deux valeurs possibles [0 | 1]
0 : Le robot est dans sa zone de travail
1: Le robot est hors de sa zone de travail.
Voir également le Tableau 6-3 pour plus de détail
frameId Id du frame dans lequel les coordonnées x,y,z sont exprimées
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 23/49
frameScaleX frameScaleY frameScaleZ
Facteur d'échelle du frame interrogé pour chacune des directions x,y et z
toolId Id de l'outil dans lequel les coordonnées sont exprimées
x, y, z ,rz Position courante du robot dans le repère donné par frameId et toolid
q0, q1, q2, q3 Position angulaire courante des moteurs [rad]
xdes, ydes, zdes,rzdes
Dernière position cible
taskListsize, taskListstate,
currentTaskId,
pastTaskId
taskListSize : Taille totale (nombre d'élément)
taskListState: Etat du gestionnaire de la file des tâches.
L'état peut prendre les valeurs suivantes.
-1 0 1
Erreur Terminé En fonctionnement
Voir Tableau 6-5 et Tableau 6-6 pour plus de détail.
currentTaskId : id de la tâche courrante
pastTaskId : id de la dernière tâche terminée
slowspeed Deux valeurs possible : 0 : vitesse lente désactivée 1 : vitesse lente activée
brake
Etat des freins moteurs. Codé sur un mot de quatre digits [0|1] pouvant chacun prendre 0 ou 1 comme valeur. Exemple: "0000" tous les freins sont désactivés
digitalInput,
digitalOutput
Etat des entrées/sorties digitales.
Codé sur un mot formé par une séquence de digit [0|1] de taille égale au nombre d'entrée ou sorties définies.
Ex. "00010010" si le nombre de sorties est égal à 8 et si les sorties 4 et 6 sont activées.
errorCode,
errorMessage
errorCode : Numéro de l'erreur courante du robot.
0 Pas d'erreur
1 Erreur de suivit de position
2 Erreur de suivit de courrant
3 Erreur de homing
4 Erreur interne non spécifique
5 Entrée digitale de sécurité dans l'état "bas"
errorMessage : Message d'erreur courant.
Voir le Tableau 6-4 pour plus de détail.
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 24/49
prgState,
prgName
prgState : Etat d'exécution du programme ARL courant.
Peut prendre les valeurs suivantes:
-1 Exécution interrompue par une erreur
0 Exécution terminée
1 Arrêt de l'exécution en cours
2 En cours d'exécution
3 En transition vers une pause de l'exécution
4 Exécution en pause
Voir le Tableau 6-7 pour plus de détail.
prgName : Nom du programme courant.
Exemple : "GetState frameId=11"
Voir aussi : Tableau 6-1 : listes des états robot (robot state)
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 25/49
SETSTATE state
Syntaxe : SETSATE <state=(s)/(i) >
Fonction : Cette commande demande le changement de l'état courant du robot.
Paramètres : state chaine de caractères définissant l'état désiré : ON, OFF ou IDLE
ou numéro de l'état correspondant. Voir tableau 5-1
Retour : ← "0"
← "30 Wrong state. Cannot set the robot in state <state>"
← "40 Not permitted"
Exemple : "SetState idle" equivalent à "SetState 3"
Voir aussi : Tableau 6-1 : listes des états robot (robot state)
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 26/49
MOVETO frameID toolID
Syntaxe : MOVETO [x=(f)] [y=(f)] [z=(f)] [rz=(f)] [speedfactor(f)] [accfactor(f)] [decfactor(f)]
[jerkfactor(f)] [blend=(f)] [actioncode=(f)] [actioncode2=(f)] [pointid=(i)] [toolid=(i)]
[frameid=(i)] [additive=(i)] [limitworkspace=(i)] [append=(i)] [log=(i)] [taskid=(l)]
[rztarget=(i)] [rzfactor=(f)]
Fonction : Cette commande déplace le robot aux coordonnées spécifiées dans le repère choisi,
avec l'outil choisi et en appliquant les paramètres dynamiques choisis.
Paramètres : x coordonnée x de la position cible dans le repère donnée par l'argument <frameId> Repère world si le frameid est omis.
y coordonnée y de la position cible dans le repère donnée par l'argument <frameId> Repère world si le frameid est omis.
z coordonnée z de la position cible dans le repère donnée par l'argument <frameId> Repère world si le frameid est omis.
rz coordonnée rz (angle du 4em axe) de la position cible
speedfactor facteur de vitesse [0..1]. Définit par rapport à la vitesse max (param "speedMax") définie dans le fichier ".controller".Valeur par défaut = 0.1.
accfactor facteur d'accélération [0..1]. Définit par rapport à l'accélération max (param "accmax") définie dans le fichier ".controller". Valeur par défaut = 1.0.
ne s'applique pas au robot DesktopDelta
decfactor facteur de décélération [0..1] Le facteur 1.0 correspond à la décélération max (param "decmax") définie dans le fichier ".controller" Valeur par défaut = 1.0.
ne s'applique pas au robot DesktopDelta
jerkfactor facteur de jerk [0..1]. Le facteur 1.0 correspond au jerk max (param "jerkmax") définie dans le fichier ".controller" Valeur par défaut = 1.0.
ne s'applique pas au robot DesktopDelta
blend Blend en [m]
actioncode Code action
actioncode2 Code action n°2.
Valide uniquement pour le robot DesktopDelta avec l'option de carte io supplémentaire.
pointid Identifiant du point
toolID identifiant de l'outil (tool) concerné
frameID identifiant du repère (frame) concerné
additive valeurs possibles 0 ou 1. Si = 1 alors la position cible (x,y,z,rz) donnée en argument est relative à la dernière position cible càd ajoutée à la dernière position cible.
limitworkspace
Valeurs possibles 0 ou 1. Si = 0 alors la position cible du mouvement n'est pas contrôlée pour vérifier si elle est inclue dans le volume de travail du robot. Ce contrôle à lieu avant le départ du mouvement.
Valeur par défaut = 1 (activé)
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 27/49
append Valeurs possible 0 ou 1. Définit si le mouvement doit être ajouté à la file des mouvements afin d'être exécuté dans le futur ou s'il doit ignorer la file des mouvements et être exécuté en priorité. (dans ce cas la file des mouvements est remise à zéro) Valeur par défaut = 0
taskid Définit un numéro d'identifiant de mouvement. [-264
…+264
-1]
rztarget Définit si le mouvement découplé du 4ème axe (rz) doit être synchronisé sur la cible de ce mouvement x,y,z
Valeurs possbile 0 ou 1: valeur par défaut = 1.
Valable uniquement pour le robot DesktopDelta avec option 4ème axe découplé.
rzfactor Facteur dynamique de "vitesse" du 4em axe.
Est définit comme un ratio des temps de parcours définit par les paramètres dynamique "maximaux" vmax et accmax.
Valeurs possible [0..1] valeur par défaut = 1.0 (vitesse max)
Valable uniquement pour le robot DesktopDelta avec option 4ème axe découplé.
Retour : ← "0"
← "30 The robot must be in state 'idle' to accept motion
commands."
← " 32 The brakes have to be release to accept motion
commands."
← "33 Out of workspace"
← "40 Not permitted"
← "60 Wrong ID for tool."
← "60 Tool <toolid> doesn't exist."
← "60 Wrong ID for point."
← "60 Point <pointid> doesn't exist."
← "60 Wrong ID for frame."
← "60 Frame <frameid> doesn't exist."
← "60 Wrong value for speedfactor."
← "60 Wrong value for accfactor."
← "60 Wrong value for decfactor."
← "60 Wrong value for jerkfactor."
← "60 Wrong value for rzfactor."
← "60 Wrong value for blend. Range [0...1]."
← "60 Exception occurs by transformation. <exception message>"
← "80 Move aborted. Can not ommit position parameter like x or
y or z with a frame of type MESH"
Exemple : MoveTo x=0.010 y=0.010 z=0.050
Voir aussi :
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 28/49
STOP [append]
Syntaxe : STOP [append=(i)]
Fonction : stoppe le mouvement en cours.
Paramètres : append Détermine si la commande est exécutée séquentiellement ou non.
Si append = 1 alors la commande est ajoutée à la file des tâches et sera exécuté dans l'ordre définit par la file.
Si append = 0 alors la commande est exécutée immédiatement et la file de tâches est remise à zéro.
Argument optionnel. Valeur par défaut = 0
Retour : ← "0"
← "30 Wrong state"
← "40 Not permitted"
Exemple : stop
Voir aussi :
WAIT duration [append]
Syntaxe : WAIT duration=(f) [append=(i)]
Fonction : Provoque une attente de durée déterminée par l'argument <duration>: Unité : [s]
Paramètres : duration temps d'attente
append Détermine si la commande est exécutée séquentiellement ou non.
Si append = 1 alors la commande est ajoutée à la file des tâches et sera exécuté dans l'ordre définit par la file.
Si append = 0 alors la commande est exécutée immédiatement et la file de tâches est remise à zéro.
Argument optionnel. Valeur par défaut = 0
Retour : ← "0"
← "30 Wrong state"
← "40 Not permitted"
Exemple : "Wait duration=3.0"
Provoque une attente de 3 secondes
Voir aussi :
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 29/49
SETSLOWSPEED slowspeed
Syntaxe : SETSLOWSPEED slowspeed=(i)
Fonction : enclenche ou dés-enclenche le mode de vitesse lente du robot
Paramètres : slowspeed met le robot en vitesse lente ou rapide [0/1]
Retour : ← "0"
← "40 Not permitted"
Exemple : SetSlowSpeed slowspeed=1
Enclenche la vitesse lente du robot
Voir aussi :
LOADPOINTS fileid
Syntaxe : LOADPOINTS
Fonction : Demande le chargement d'une collection de positions robot.
Ces positions sont mémorisées et peuvent être accédées par un mot clef du langage
de script ARL.
Paramètres : fileid Nom du fichier point
Il s'agit de fichier xml avec l'extension ".points"
La valeur "all" permet de charger tous les fichiers avec l'extension ".points" présent.
Retour : ← "0 returninfo=command lauched"
← "1 argument fileid missing"
Exemple : LOADPOINTS fileid=placePoints
Recherche et charge le fichier "placePoints.points"
LOADPOINTS fileid=all
Rechercher et charge tous les fichiers ".points" présent.
Voir aussi :
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 30/49
SETBRAKES release [force]
Syntaxe : SETBRAKES release=(i) [force=(i)]
Fonction : cette commande permet de lâcher ou serrer les freins du robot.
NOTE :
les trois freins sont simultanément serrés ou desserrés
Paramètres : release [0/1] 0= active les freins, 1=relâche les freins Si une demande d'activation des freins (release=0) est donnée alors que le robot est dans un état autre que "OFF" alors un requête de passage à l'état OFF est automatiquement effectuée. Voir l'argument "force"
force [0/1] 1=activation du "forçage".
Permet de forcer l'activation ou la désactivation des freins sans tenir compte de l'état du robot.
Cette option permet de forcer l'activation des freins même pour un robot en mouvement!
Retour : ← "0"
← "40 Not permitted"
Exemple : SetBrakes release=1
Relache les freins du robot
Voir aussi :
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 31/49
SETTCPPARAMETERS
Syntaxe : SETTCPPARAMETERS [dx=(f)] [dy=(f)] [dz=(f)]
Fonction : Permet de modifier le "Tool Center Point"
Cela permet de prendre en compte dans le test d'inclusion dans le volume de travail un outil qui serait décentré par rapport à la nacelle du robot
NOTE:
Valable uniquement pour le robot de type Pocket delta
Paramètres : dx Offet en [m] dans la direction x du repère 'world'
dy Offet en [m] dans la direction y du repère 'world'
dz Offet en [m] dans la direction z du repère 'world'
Retour : ← "0" (commande ok)
← "20 Invalid arguments."
← "31 Not permitted. Robot is moving."
← "33 Out of workspace."
← "40 Not permitted." (login privilege is too low)
← "41 No valid command for the robot type 'DesktopDelta'"
Exemple : SETTCPPARAMETERS dx=0.005 dy=-0.005 dz=0.0
Voir aussi :
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 32/49
WSFRAME cmd [data] [frameid] [type]
Syntaxe : WSFRAME cmd=<cmdKeyword> [data=(s)] [frameid=(i)]
Fonction : cette commande permet diverses opérations de lecture et écritures dans le fichier de
définition des frames "frames.xml".
Paramètres : cmd Sous-commande de sélection de l'action à réaliser
Valeurs possibles :
(1) 'list' (2) 'loadData' (3) 'setFile' (4) 'readData' (5) 'readFile'
(6) 'getFile' (7) 'save' (8) 'load' (9)'reLoad' (10) 'createVirtualFrame'
(11) 'getFrameConfig'
data Chaîne de caractère codé xml de définitions des frames Valable pour les sous-commandes (2) 'loadData' et (3) 'setFile'
frameid Identifiant du frame. Nombre entier dans l'intervalle [0..99] Valable pour les sous-commandes (10)"createVirtualFrame" et (11)"getFrameConfig"
Retour : ← "0"
← "0 frameid=<fid(1)> … frameid=<fid(n)"
Ou fid(1)… fid(n) représente l'ensemble des identifiant de
frame définit. Ex. frameid=1 frameid=2 frameid=23 frameid=40
Pour la sous-commande (1)"list"
← "0 framefile=<xmlFrameData>"
Pour l'appel de la sous-commande (5)"readFile" ou (6)"getFile"
← "0 framedata=<xmlFrameData>"
Pour l'appel de la sous-commande (4)"readdata"
← "0 frameId=<id> ptconfig<0>0=<value>… ptconfig<3>3=<value>
parentframeid=<id> xnorme=<value> ynorme=<value>
xdistance=<value> ydistance=<value> type=<value>
ptcalib<0>0=<value> … ptcalib<3>3=<value>"
Pour l'appel de la sous-commande (11)"getFrameConfig"
← "83 Frame data are needed!!"
Pour la sous-commande (2)"loaddata" ou (3)"setFile" dans le
cas ou l'argument "data" manque
← "84 Error by getting frame data. <Exception message>"
Si la sous-commande (4)"readdata" a généré une exception.
← "84 Error by getting frame file. <Exception message>"
Si la sous-commande (5)"readFile" ou (6)"getFile" a généré une
exception.
← "85 Error by saving frame. <Exception message>"
Si la sous-commande (7)"save" a généré une exception
← "85 Error while reloading the frames. <Exception message>"
Si la sous-commande (9)"reload" a généré une exception
← "85 Error by loading frame. <Exception message>"
Si l'appel de la sous-commande (8)"load" a généré une
exception.
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 33/49
← "85 Error can not reload the frames, the robot must be in the
state OFF"
Pour l'appel de la sous-commande (9)"reload" alors que le robot
n'est pas dans l'état aproprié.
← "88 Failed. <Exception message>"
Si la sous-commande (2)"loaddata" ou (3)"setFile" génère une
exception.
← "89 Frame file saved!!!"
Si la sous-commande (3)"setFile" s'est terminée correctement.
← "89 Frame data loaded!!!"
Si la sous-commande (2)"loaddata" s'est terminée correctement.
Exemple : WsFrame cmd=readData
Retourne le fichier "frames.xml" actuellement définit
Ex. <frame>
<ptconfig id='0'x='-0.005'y='0.028'z='0.007' rz='0.000'/>
…
<ptcalib id='0' x='0' y='0' z='0' rz='0'/>
…
</frame> …
Voir aussi :
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 34/49
WSPOINT cmd [pointid] [data] [xp] [yp] [zp] [rzp]
Syntaxe : WSPOINT cmd=<cmdKeyword>[data=(s)] [xp=(f)] [yp=(f)] [zp=(f)] [rzp=(f)]
Fonction : cette commande permet diverses opérations de lecture et écritures dans le fichier de
définition des points "points.xml".
Paramètres : cmd Sous-commande de sélection de l'action à réaliser
Valeurs possibles :
(1) 'list' (2) 'loadData' (3) 'setFile' (4) 'readData' (5) 'readFile'
(6) 'getFile' (7) 'save' (8) 'saveFile' (9)'reLoad' (10) 'load'
(11) 'createVirtualPoint' (12) 'getPointConfig'
pointid Identifiant du point. Nombre entier dans l'intervalle [0..99]
Valable pour les sous-commandes (11)"createVirtualPoint" et (12)"getPointConfig"
data Chaîne de caractère codé xml de définitions des points Valable pour les sous-commandes (2) 'loadData' et (3) 'setFile'
xp Coordonnée x d'un point. Grandeur sans unité représentée par un nombre a décimale (flottant). L'unité sera donnée par le frame dans lequel ce point sera utilisé. Le même point peut être utilisé pour des mouvements dans des frames différents.
yp Coordonnée y d'un point. Unité : voir remarque pour le param "xp"
zp Coordonnée z d'un point. Unité : voir remarque pour le param "xp"
rzp Coordonnée rz (axe rotatif) d'un point. Unité: Est celle choisie pour l'axe rotatif. Contrairement aux autres coordonnées, ne dépend pas du frame utilisé.
Retour : ← "0"
← "0 pointID=<pid(1)> … pointID=<pid(n)>"
Ou pid(1)… pid(n) représente l'ensemble des identifiant de
point définit. Ex. pointID=1 pointID=2 pointID=23 pointID=40
Pour l'appel de la sous-commande (1)"list"
← "0 pointdata=<dataXml>"
Pour l'appel de la sous-commande (4)"readData"
← "0 pointfile=<XmlPointFile>"
Pour l'appel des sous-commandes (5)"readFile" et (6)"getFile"
← "0 pointid=<id> xp=<value> yp=<value> zp=<value>
rzp=<value>"
Pour l'appel de la sous-commande (12)"getPointConfig"
← "1 Error while reloading the points. <ExceptionMessage>"
Si la sous-commande (9)"reload" a généré une exception.
← "40 Not permitted."
← "50 Internal error."
Si la sous-commande (11)"createVirtualPoint" a généré une
exception.
← "83 Point data are needed!!"
Si l'argument "data" est absent pour les sous-commandes
(2)"loadData" et (3)"setFile"
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 35/49
← "84 Error by getting point file. <ExceptionMessage>"
Si une des sous-commande (5)"readFile" ou (6)"getFile" a généré
une exception.
← "84 Error by getting point data. <ExceptionMessage>"
Si la sous-commande (4)"readData" a généré une exception.
← "85 Error can not reload the points, the robot must be in the
state OFF"
Si la sous-commande (9)"reload" est appellee alors que le robot
n'est pas dans un état autorisé.
← "85 Error by saving point.<ExceptionMessage>"
Si les sous-commandes (7)"save" ou (8)"saveFile" ont généré une
exception.
← "85 Error by loading frame. <ExceptionMessage>"
Si la sous-commande "load" a généré une exception.
(l'apparition du terme "frame" dans ce message est une erreur
de frappe)
← "86 Point ID is needed."
Si l'argument "pointId" manque lors de l'appel de la sous-
commande (11)"createVirtualPoint"
← "87 Invalid Point ID <id>"
Pour l'appel de la sous-commande (11)"createVirtualPoint" si
l'argument "pointId" ne correspond à un entier >0
← "88 Failed. <ExceptionMessage>"
Si l'appel de la sous-commande "setFile" a généré une exception
← "88 xp is needed."
Si il manqué l'argument "xp" à la sous-commande
(11)"createVirtualPoint"
← "88 yp is needed."
Si il manqué l'argument "yp" à la sous-commande
(11)"createVirtualPoint"
← "88 zp is needed."
Si il manqué l'argument "zp" à la sous-commande
(11)"createVirtualPoint"
← "88 rzp is needed."
Si il manqué l'argument "rzp" à la sous-commande
(11)"createVirtualPoint"
← "89 Point file saved!!!"
Si l'appel de la sous-commande (3)"setFile" s'est déroulée
normalement.
← "89 Point data loaded!!!"
Si l'appel de la sous-commande (2)"loadData" s'est déroulée
normalement.
Exemple : WsPoint cmd=list
Retourne:
"0 pointId=0 pointId=1 pointId=2…."
Voir aussi :
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 36/49
WSTOOL cmd [toolid] [data] [dxt] [dyt] [dzt] [drzt]
Syntaxe : WSTOOL cmd=<cmdKeyword>[data=(s)] [dxt=(f)] [dyt=(f)] [dzt=(f)] [drzt=(f)]
Fonction : cette commande permet diverses opérations de lecture et écritures dans le fichier de
définition des outils "tools.xml".
Paramètres : cmd Sous-commande de sélection de l'action à réaliser
Valeurs possibles :
(1)'list' (2)'loadData' (3)'setFile' (4)'readData' (5)'readFile'
(6)'getFile' (7)'save' (8)'saveFile' (9)'reLoad' (10)'load'
(11)'createVirtualTool' (12)'getToolConfig'
toolid Identifiant de l'outil. Nombre entier dans l'intervalle [0..99]
Valable pour les sous-commandes (11)"createVirtualTool" et (12)"getToolConfig"
data Chaîne de caractère codé xml de définitions des outils Valable pour les sous-commandes (2) 'loadData' et (3) 'setFile'
dxt Coordonnée x de l'outil. Grandeur sans unité représentée par un nombre a décimale (flottant). L'unité sera donnée par le frame dans lequel cet outil sera utilisé. Le même outil peut être utilisé pour des mouvements dans des frames différents.
dyt Coordonnée y de l'outil. Unité: Voir remarque pour l'argument "dxt"
dzt Coordonnée z de l'outil. Unité: Voir remarque pour l'argument "dxt"
drzt Coordonnée rz de l'outil. Unité: Est celle choisie pour l'axe rotatif. Contrairement aux autres coordonnées, ne dépend pas du frame utilisé.
Retour : ← "0"
← "0 toolID=<tid(1)> … toolID =<tid(n)>"
Ou tid(1)… tid(n) représente l'ensemble des identifiant
d'outils définit. Ex. toolID=1 toolID=2 toolID=23 toolID=40
Pour l'appel de la sous-commande (1)"list"
← "0 toolid=<id> dxt=<value> dyt=<value> dzt=<value>
drzt=<value>"
Pour l'appel de la sous-commande (12)"getToolConfig"
← "1 Unknow command."
Si l'argument "cmd" contient un mot clé non reconnu.
"40 Not permitted."
←"83 Tool data are needed!!"
Si l'argument "data" est absent pour l'appel des sous-commandes
(2)"loadData" ou (3)"setFile"
←"88 Failed. <ExceptionMessage>"
Si l'appel des sous-commandes (2)"loadData" ou (3)"setFile" ont
généré une exception.
← "89 Tool file saved!!!"
Si la sous-commande (3)"setFile" s'est déroulée normalement.
← "89 Tool data loaded!!!"
Si la sous-commande (2)"loadData" s'est déroulée normalement.
← "0 tooldata=<xmlData>"
Si la sous-commande (4)"readData" s'est déroulée normalement
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 37/49
← "84 Error by getting tool data.<ExceptionMessage>"
Si la sous-commande (4)"readData" a généré une exception.
← "0 toolfile=<xmlData>"
Si les sous-commandes (5)"readFile" ou (6)"getFile" se sont
déroulé normalement.
← "84 Error by getting tool file. <ExceptionMessage>"
Si une des sous-commandes (5)"readFile" ou (6)"getFile" ont
générés une exception.
← "85 Error by saving tool. <ExceptionMessage>"
Si une des sous-commandes (7)"save" ou (8)"saveFile"
ont générés une exception.
← "1 Error while reloading the tools. <ExceptionMessage>"
Si la sous-commande (9)"reload" a généré une exception
← "85 Error can not reload the tools, the robot must be in the
state OFF"
Pour l'appel de la sous-commande (9)"reload" si le robot n'est
pas dans l'état approprié.
← "85 Error by loading frame. <ExceptionMessage>"
Si l'appel de la sous-commande (10)"load" a généré une
exception.
← "85 Error by loading frame. <ExceptionMessage>"
Si la sous-commande (10)"load" a généré une exception.
(l'apparition du terme "frame" dans ce message est une erreur
de frappe)
← "86 Tool ID is needed."
Pour l'appel de la sous-commande "createVirtualTool" si
l'argument "toolid" est absent.
← "86 Tool id needed."
Pour l'appel des sous-commandes (11)"createVirtualTool" et
(12)"getToolConfig" si l'argument "toolid" manque.
← "87 Invalid Tool ID"
Pour l'appel de la sous-commande (11)"createVirtualTool" si
l'argument "toolId" ne correspond à un entier >0.
← " 88 dxt is needed."
Pour l'appel de la sous-commande (11)"createVirtualTool" si
l'argument dxt est manquant.
← " 88 dyt is needed."
Pour l'appel de la sous-commande (11)"createVirtualTool" si
l'argument dyt est manquant.
← " 88 dzt is needed."
Pour l'appel de la sous-commande (11)"createVirtualTool" si
l'argument dzt est manquant.
← " 88 drzt is needed."
Pour l'appel de la sous-commande (11)"createVirtualTool" si
l'argument drzt est manquant.
← "50 Internal error. <ExceptionMessage>"
Pour l'appel des sous-commandes (11)"createVirtualTool" ou
(12)"getToolConfig" si une exception est générée.
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 38/49
Exemple : WsTool cmd=list
"0 toolID=0 toolID=1 toolID=3 toolID=25"
Si les outils avec les id {0,1,3,25} sont définit
Voir aussi :
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 39/49
7.4 Commandes d'entrées/sorties
SETDIGITALOUTPUT channel value [duration] [append]
Syntaxe : SETDIGITALOUTPUT channel=(i) value=(i) [duration=(f)] [append=(i)]
Fonction : cette commande permet d'écrire sur une sortie digitale.
Paramètres : channel Désigne le numéro de la sortie
value Etat désiré de la sortie [0/1]
duration Délai d'inversion de la sortie [s]
Valable uniquement pour le robot pocketDelta
append Détermine si la commande est exécutée séquentiellement ou non.
Si append = 1 alors la commande est ajoutée à la file des tâches et sera exécuté dans l'ordre définit par la file.
Si append = 0 alors la commande est exécutée immédiatement.
Argument optionnel. Valeur par défaut = 0
Retour : ← "0"
← "40 Not permitted"
Exemple : SETDIGITALOUTPUT channel=1 value=1
Voir aussi :
WAITDIGITALINPUT channel value timeout [append]
Syntaxe : WAITDIGITALINPUT channel=(i) value=(i) timeout=(f) [append=(i)]
Fonction : cette commande insère une tâche d'attente sur l'état d'une entrée dans la file des
tâches.
Paramètres : channel Désigne le numéro de l'entrée
value Etat attendu de l'entrée [0/1]
timeout Délai maximal d'attente. [s]
append Détermine si la commande est exécutée séquentiellement ou non.
Si append = 1 alors la commande est ajoutée à la file des tâches et sera exécuté dans l'ordre définit par la file.
Si append = 0 alors la commande est exécutée immédiatement.
Argument optionnel. Valeur par défaut = 0
Retour : ← "0"
← "30 Wrong state"
← "40 Not permitted"
Exemple : WAITDIGITALINPUT channel=1 value=1 timeout=10
Attend sur que l'entrée n°1 soit activée, n'attend pas plus de 10 secondes (timeout)
Voir aussi :
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 40/49
7.5 Commandes de l'interpréteur ARL
PRG cmd [prgname] [prgdata]
Syntaxe : PRG cmd=<cmdKeyword>[prgname=(s)] [prgdata=(s)]
Fonction : Cette commande permet d'accéder aux fonctions du compilateur et de l'interpréteur
de script ARL. (compilation de programme, exécution etc..)
Paramètres : cmd Sous-commande de sélection de l'action à réaliser
Valeurs possibles :
(1)'autoexec' (2)'getPrgList' (3)'compile' (4)'execute' (5)'stop' (6)'getOutput' (7)'getLog' (8)'readFile' (9)'writeFile' (10)'deleteFile'
prgname Nom du programme pour les sous-commandes
(3)compile (4)execute (8)readFile (9)writeFile (10)deleteFile
prgdata Texte du programme pour la sous-commande (9)writeFile
Retour : ← "0"
← "0 <prgErrOutput>"
Pour l'appel de la sous-commande (6)getOutput
← "0 No output."
Pour l'appel de la sous-commande (6)getOutput si la chaîne de
sortie des erreurs est vide.
← "0 <prgLogOutput>"
Pour l'appel de la sous-commande (7)getLog
← "0 prgdata=<ProgramText>"
Pour l'appel de la sous-commande (8)readFile
← "0 prg=<prgName1> …. prg=<prgName(n)>
prgActive=<prgActiveName>"
Pour l'appel de la sous-commande (2) getPrgList.
← "0 prg=<prgName1> …. prg=<prgName(n)>
prgactive=<prgActiveName>"
Pour la sous-commande (2)getPrgList
← "1 Unknown command."
Si la sous-commande de l'argument "cmd" n'est pas reconnue.
← "40 Not permitted."
← "50 Internal error."
Pour les sous-commande (8)readFile (9)writeFile et
(10)deleteFile
si une exception à lieu pendant une opération d'accès au
fichier concerné.
← "83 <ExceptionMessage>"
Pour l'appel de la sous-commande (3)compile si une exception
est générée lors de la compilation.
← "83 A program file is needed!!"
Pour l'appel des sous-commandes (3)compile, (4)execute et
(8)readFile si l'argument "prgname" est absent.
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 41/49
← "83 No program compiled"
Pour la sous-commande (4)execute si le programme a exécuter
n'est pas compilé.
← "83 Program data are needed!!"
Pour la sous-commande (9)writeFile si l'argument "prgData" est
absent.
Exemple : "PRG cmd=execute prgname=myProgram"
← "0" Si le programme démarre son exécution
Voir aussi :
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 42/49
7.6 Commandes du Process
Le module "process" est une fonctionnalité optionnelle qui permet de gérer une "logique machine"
(états de marche, gestion des portes, signalisation lumineuse etc.) depuis le contrôleur robot. Elle
peut être activée par le fichier de configuration "process.arc".
Le process est lui-même modulaire et composé de "module de contrôle" qui corresponde à des
systèmes périphériques au robot comme le système IO Wago ou un système vision externe. Certains
de ces modules ont leurs propres commandes dédiées.
La commande ci-après constitue un point d'entrée vers toutes les fonctionnalités liées au process.
PROCESS cmd [programid]
Syntaxe : PROCESS cmd=(s) [programid=(s)]
Fonction : cette commande permet d'adresser le module "process" du robot.
Paramètres : cmd Sous-commande de sélection de l'action à réaliser
Valeurs possibles : (1)'start' (2)'stop' (3)'getstates' (4)'loadarlprograms' (5)'updatearldata' (6)'clearalarm' (7)'clear' (8)'pause' (9)'getarlvalue' (10)'modulecmd' (11)'changecontext'
programid Nom du programme pour les sous-commandes suivantes:
(1)Start, (4)LoadArlPrograms et (5)updatearldata
start - Si l'argument "programid" est définit,
démarre l'exécution de celui-ci.
- si l'argument "programid" n'est pas définit,
et que la machine d'état OMAC est activée
alors l'effet dépend de l'état OMAC courant:
- STOPPED ou COMPLETE : envoie la commande
OMAC "Reset".
- IDLE : envoie la commande OMAC "Start"
- HELD : envoie la commande OMAC "Un-Hold"
- SUSPENDED: envoie la commande OMAC "Un-
Suspend"
- ABORTED: génère une exception du process
avec le message: "ProcessController->cmdStart
State=Aborted: Can not start : A clear must be
done before starting"
-(autres états OMAC) : pas d'action
Stop - Si la machine OMAC est désactivée
alors interrompt l'exécution du programme
courant.
- Si la machine OMAC est activée alors la
commande OMAC "Stop" est envoyée.
Exception faite des états ou un stop n'est pas
définit, soit pour les états:
-STOPPED, STOPPING, ABORTING, ABORTED
getStates Renvoie un ensemble d'états du contrôleur de
process. Voir le format détaillé de la réponse
plus-bas.
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 43/49
loadarlprograms Compile et stocke en mémoire le programme arl
donné par l'argument "programid". Le fichier
arl correspondant est "<programid>.arl" qui
doit se trouver dans le répertoire
AsyrilData/Recipes/Current/arl
Si programId="all" alors la commande provoque
la compilation de tous les programmes arl
présents.
updatearldata Recharge les données (valeurs de variable
dynamique) associé au programme donné par
l'argument "programid"
clearalarm Reset du flag "alarmstate" retourné par la
commande "getStates". (voir plus bas le retour
de cette commande)
clear Correspond au signal "Clear" de OMAC.
Permet de sortir de l'état "Aborted". N'est
autorisé que depuis l'état OMAC "Aborted".
pause Correspond au signal "Hold" de OMAC.
Permet de passer dans l'état "Holding". N'est
autorisé que depuis l'état OMAC "Excute".
getarlvalue Permet de retrouver la valeur d'une variable
ARL connaissant son nom.
Ex. getARlVarValue name=count
modulecmd Permet de rediriger une command à un module
spécifique en l'adressant par son nom.
Ex. ModuleCmd cmd=<moduleCmd> …..
Retour : ← "0"
← "0 returninfo=succeed controllerstate=0
processstate=<OMAC_STATE_STRING> alarmstate=<true|false>
prgState=<PRG_STATE_STRING>"
Pour l'appel de la sous-commande (3)"getStates"
← "1 argument programid missing"
Pour l'appel de la sous-commande (4)loadArlPrograms si
l'argument "programId" est absent.
← "1 returninfo= Program: programid can not start : current
program is not stopped"
← "2 returninfo= Program: programid is not found"
Exemple : Cet exemple lance l'exécution du programme "demoprocess" :
→ "Process cmd=start programid=demoprocess"
← "0"
Voir aussi :
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Robot text commands Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 44/49
7.7 Commandes du module IOWAGO
Le module IoWago est un module optionnel qui correspond à un système d'entrées/sorties de WAGO
753.
Ce module est optionnel et doit être configuré et connecté pour être utilisable.
READ name
Syntaxe : READ name=(s)
Fonction : cette commande permet de lire l'entrée (digitale ou analogique) donnée par son nom.
Paramètres : Name Nom de l'entrée
Retour : ← "true"
← "false"
Exemple : "Process ModuleCmd name=IoModule cmd=Read name=input1"
Voir aussi :
WRITE name value
Syntaxe : WRITE name=(s) value=(s)
Fonction : cette commande permet de lire l'entrée (digitale ou analogique) donnée par son nom.
Paramètres : Name Nom de l'entrée
Value Valeur de sortie. Peut prendre les valeurs "true" ou "false"
Retour : ← "0 returninfo=succeed"
Exemple : "Process ModuleCmd name=IoModule cmd=Write name=output1
value=true"
Voir aussi :
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Support Technique Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 45/49
8 Support Technique
8.1.1 Pour un meilleur service …
Vous avez lu la FAQ ainsi que la check-list sans trouver de réponse à vos questions ? Avant
de nous contacter, merci de noter les informations suivantes concernant votre produit :
- Numéro de série et clé de produit de votre matériel
- Version(s) du/des software utilisé(s)
- Message d’erreur, alarme, ou signaux visuels affichés par l’interface.
8.1.2 Contact
Vous pouvez trouver de nombreuses informations sur notre site web : www.asyril.com
Vous pouvez aussi contacter notre service client :
+41 26 653 71 90
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Index alphabétique Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 46/49
Index alphabétique
C
CONTROLLER ..................... 20
E
EXIT ..................................... 19
G
GETSTATE .......................... 22
GETVERSION ...................... 16
H
HELP .................................... 17
I
IP ......................................... 19
L
LOADPOINT ......................... 29
LOG ...................................... 18
LOGIN .................................. 16
LOGOUT .............................. 17
M
MOVETO .............................. 26
P
PRG ...................................... 40
PROCESS ............................ 42
R
READ.................................... 44
S
SETBRAKES ....................... 30
SETDIGITALOUTPUT ......... 39
SETSLOWSPEED ............... 29
SETSTATE .......................... 25
SETTCPPARAMETERS ...... 31
STOP ................................... 28
SYSTEM .............................. 18
W
WAIT .................................... 28
WAITDIGITALINPUT ........... 39
WRITE ................................. 44
WSFRAME .......................... 32
WSPOINT ............................ 34
WSTOOL ............................. 36
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Index thématique Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 47/49
Index thématique
CONTRÔLEUR
GETVERSION ........................................................... 16
LOGIN ......................................................................... 16
LOGOUT .................................................................... 17
HELP ........................................................................... 17
LOG ............................................................................. 18
SYSTEM ..................................................................... 18
IP .................................................................................. 19
EXIT............................................................................. 19
CONFIGURATION
CONTROLLER .......................................................... 20
MODULE ROBOT
GETSTATE ................................................................ 22
SETSTATE ................................................................. 25
MOVETO .................................................................... 26
STOP ........................................................................... 28
WAIT ........................................................................... 28
SETSLOWSPEED .................................................... 29
LOADPOINT .............................................................. 29
SETBRAKES ............................................................. 30
SETTCPPARAMETERS ......................................... 31
WSFRAME ................................................................ 32
WSPOINT .................................................................. 34
WSTOOL ................................................................... 36
MODULE ENTREES/SORTIES
SETDIGITALOUTPUT ............................................. 39
WAITDIGITALINPUT ............................................... 39
INTERPRETEUR ARL
PRG ............................................................................ 40
PROCESS
PROCESS ................................................................. 42
MODULE IO WAGO
READ ......................................................................... 44
WRITE ........................................................................ 44
Contrôleur robot - Asyril SA
Manuel de programmation © Copyright Asyril S.A.
Index thématique Version : B1
000.100.520 Contrôleur robot - Manuel de programmation 48/49
Table de révision
Rev. Date Author Comments
A 27.03.2012 SiA Version Initiale
B 21.08.2014 ZuM Instructions complétées
B1 09.08.2016 DaM Mise à jour des noms des produits et des docs
Ce document appartient à Asyril S.A., il ne peut être reproduit, modifié ou communiqué, que
ce soit en partie ou en totalité sans notre autorisation écrite préalable. Asyril S.A. se réserve le
droit de modifier toute information contenue dans ce document pour des raisons liées à
l’amélioration du produit sans notification préalable
asyril sa
z.i. le vivier 22
ch-1690 villaz-st-pierre
Suisse
tel. +41 26 653 71 90
fax +41 26 653 71 91
www.asyril.com