Outils pour utilisateurs

Outils du site


staubli

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
staubli [2019/07/10 10:17]
bvandepo
staubli [2019/10/04 13:06]
bvandepo
Ligne 1: Ligne 1:
-=====Staubli AIP=====+=====TP Robot Staubli ​à l'AIP=====
  
 +====Présentation de la manip====
  
-{{http://​homepages.laas.fr/​bvandepo/​files/​staubli/​SRS1.png}}+====Configuration d'un projet==== 
 +Ouvrir le programme en cliquant sur: 
 +Menu Démarrer->​Tous les programmes->​Staubli Robotic Suite 2016->​Staubli Robotic Suite 2016.6.1 
 + 
 +{{http://​homepages.laas.fr/​bvandepo/​files/​staubli/​images_wiki/SRS1.PNG}} 
 + 
 +===Pour un projet utilisant les IO physiques de l'​armoire de commande=== 
 +L'​armoire de commande dispose de cartes d'​entrées/​sorties (IO, liens série, lien sockets etc...). Pour que ces cartes soient accessibles depuis le projet, il faut que le projet soit configuré lors de LA CRÉATION de la cellule en récupérant les informations matérielles depuis l'​armoire. 
 + 
 +  - Dans SRS, cliquer en haut à gauche sur l'​icone de bras jaune. 
 +  - Cliquer sur "​Nouvelle->​ Assistant nouvelle cellule"​ 
 +  - Donner un nom au projet, par exemple Cellule_Staubli_RX60 
 +  - S'​assurer que l'​armoire de commande est sous tension et démarrée depuis 2 minutes 
 +  - Cliquer sur "A partir d'un contrôleur distant"​ 
 +  - Choisir l'​adresse IP de l'​armoire de commande 
 +  - La version de l'​émulateur s7.9.1 n'est pas installée, il faut donc sélectionner ​ la 7.10 
 +  - Cliquer sur "​Suivant"​ 
 +Toutes les cartes ne sont pas automatiquement ajoutées au projet. Il faut:  
 +  - Choisir l'​onglet Cellule dans la fenêtre de droite 
 +  - Cliquer sur la flèche à gauche du nom de la cellule pour faire apparaître "​Controller1 [s7.10]"​ 
 +  - Cliquer droit sur "​Controller1 [s7.10]"​ puis cliquer gauche sur "​Configuration du contrôler"​ 
 +  - Sélectionner le bon type de bras (sinon par défaut un Scara sera choisi). Choisir "​RX60B,​ Fixation Sol, Horizontal base cable outlet, UL Certified arm power on light"​ 
 +  - cliquer sur l'​onglet I/O et cocher "​BIO"​ ainsi que "​BIO2/​MIO",​ puis "​Ok"​ 
 +  - Si l'​onglet "IO physiques-Controller1"​ est ouvert, il faut le fermer et l'​ouvrir à nouveau pour que les modifications soient visibles. 
 + 
 +  
 +Maintenant que le contrôleur est configuré, il faut créer une nouvelle application,​ pour cela: 
 +  - Choisir l'​onglet Cellule dans la fenêtre de droite 
 +  - Cliquer sur la flèche à gauche du nom de la cellule pour faire apparaître "​Controller1 [s7.10]"​ 
 +  - Cliquer droit sur "​Controller1 [s7.10]"​ puis cliquer gauche sur "​Nouvelle application"​ 
 +  - Saisir un nom, par exemple "​Projet",​ puis Ok 
 + 
 +Il faut maintenant configurer l'​outils du robot, pour cela: 
 +  - Choisir l'​onglet Géométrie dans la fenêtre de droite 
 +  - Cliquer sur la flèche à gauche du nom de la cellule pour faire apparaître "​Controller1 [s7.10]"​ puis faire de même pour votre Projet 
 +  - Cliquer droit sur "​Flange"​ (qui signifie Bride en français, soit l'​emplacement où fixer l'​outils) puis cliquer gauche sur "​Nouvelle donnée"​ 
 +  - Saisir un nom pour l'​outils,​ ou laisser le nom par défaut (tTool) puis cliquer sur Ok 
 +  - Vérifier que tTool apparaît maintenant en cliquant sur la flèche à coté de "​flange[0]"​ 
 + 
 +===Edition du programme=== 
 +  - Cliquer sur l'​onglet "​Accueil"​ puis sur "​Afficher la vue 3D" 
 +  - Choisir l'​onglet Cellule dans la fenêtre de droite 
 +  - Cliquer sur la flèche à gauche du nom de la cellule pour faire apparaître "​Controller1 [s7.10]"​ puis "​Projet"​ puis double cliquer sur "​start()"​ pour ouvrir la fenêtre d'​édition du programme. 
 + 
 +Afin d'​organiser la disposition des sous fenêtre pour permettre de voir simultanément le programme et le simulateur 3D du robot, cliquer gauche longuement sur l'​onglet Projet-start puis, tout en maintenant le clic déplacer la flèche vers le carré de droite qui vient d'​apparaître,​ relacher alors le clic gauche. Vous devriez obtenir un affichage ressemblant à: 
 +  
 + 
 +{{http://​homepages.laas.fr/​bvandepo/​files/​staubli/​images_wiki/​SRS-disposition.PNG}} 
 + 
 + 
 +=====Simulation===== 
 + 
 +=====Manip sur le robot===== 
 +  
 +====Mise sous tension de l'​armoire de commande=== 
 +Fermer la porte (sinon il y aura un message User ES1-2 indiquant que le capteur porte ouverte empêche le robot de démarrer) 
 +Mettre l'​interrupteur rotatif gris clair à gauche de l'​armoire de commande en position "​flêche vers le haut" pour alimenter le robot. 
 + 
 +TODO: mettre les 2 photos de la facade 
 + 
 + 
 +Ne surtout jamais rallumer le robot juste après l'​avoir éteint sans attendre au moins une dizaine de secondes. 
 + 
 + 
 +Choisir parmi les 3 modes en tournant la clef: 
 +  - En mode manuel, le robot s'​arrête si on n'​exerce pas de pression sur le bouton de l'​homme mort 
 +... TODO: expliquer les 3 positions de clef 
 + 
 + 
 +===Cas particulier en retour de vacances==== 
 +Si l'​alimentation de l'​armoire a été coupée pendant longtemps, la batterie de l'​armoire n'est pas suffisante pour conserver les paramètres de calibrage du robot, il faut donc refaire le calibrage.  
 +Pour cela, amener le robot en position de réference (les marqueurs traits noirs des différentes articulations doivent être en face les uns par rapport aux autres) en utilisant les mouvements manuels en mode Joint?. 
 + 
 +  - Bouton Menu 
 +  - Calibrage 
 +  - Presser le bouton Cal 
 +  - Presser le bouton Ok 
 + 
 +====Chargement de l'​application dans l'​armoire de commande==== 
 +S'​assurer que l'​armoire de commande du robot est sous tension. 
 + 
 +  - Dans SRS, sélectionner la fenêtre du programme start 
 +  - cliquer sur l'​onglet VAL3, puis cliquer sur le bouton Télécharger l'​application vers la cible 
 + 
 +La fenêtre suivante apparaît, indiquant l'​adresse IP et le numéro de port utilisé pour communiquer avec l'​armoire de commande: 
 + ​{{http://​homepages.laas.fr/​bvandepo/​files/​staubli/​images_wiki/​SRS_prog_robot.PNG}} 
 +  - Cliquer sur OK 
 +  - Une fenêtre apparaît demandant si l'on souhaite écraser l'​ancien programme sur l'​armoire,​ cliquer sur Oui 
 + 
 +Avec le pendant: 
 +  - Bouton "​Menu"​ 
 +  - Choisir "​Gestionnaire d'​applis"​ et valider avec le bouton Flèche droite 
 +  - Choisir "​Application Val3" et valider avec le bouton Flèche droite 
 +  - Choisir "​Disque"​ et valider avec le bouton Flèche droite 
 +  - Choisir newProject1 (ou le nom de votre projet) et valider avec le bouton Ok 
 +  - Pour que le  programme s’exécute,​ mettre le bras sous tension en appuyant sur le bouton vert de mise sous tension tout en exerçant une pression modérée sur la poignée de l'​homme mort 
 +  - Pour autoriser les mouvements du robot, appuyer sur le bouton Move/Hold 
 +  - Pour visualiser les messages utilisateurs sur l'​écran du pendant, appuyer sur le bouton User 
 + 
 + 
 + 
 + 
 +===Redémarrage de l'​application=== 
 +Pour exécuter à nouveau le programme sur l'​armoire:​ 
 +  - Presser le bouton Stop 
 +  - Presser le bouton Run 
 +===Rechargement d'une application depuis le PC=== 
 + 
 +Pour pouvoir recharger une application depuis le PC,  il faut tout d'​abord que l'​armoire de commande arrête son exécution. Pour cela, à l'aide du pendant: 
 +  - Presser le bouton Stop 
 +  - Presser le bouton Menu 
 +  - choisir gestionnaire d'​applis 
 +  - Presser le bouton Fer (F4) 
 + 
 +Ensuite charger la nouvelle version de l'​application en suivant les consignes de la section: "​Chargement de l'​application dans l'​armoire de commande"​ 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 +=====Notes à trier===== 
 + 
 + 
 +Il y a 9 licences de SRS à l'​AIP 
 + 
 + 
 + 
 + 
 +Problème sur notre programme de test, il faut d'​abord amener le robot à un point exprimé en Joint pour sortir de la configuration de départ  
 +maj sur prog3.txt 
 + 
 + 
 + 
 + 
 + 
 +Accueil->​outils de téléchargement 
 +régler l'IP Hote si nécessaire:​ 192.168.0.112 , port 5653 
 + 
 +Choisier newProject1 et cliquer sur Télécharger 
 +Sur le pendant 
 + 
 +Gestionnaire d'​application flèche droite 
 +application Val3 flèche droite 
 +Disque ​ flèche droite  
 +Choisir avec flèche bas newProject1 
 +Ok 
 +bouton Run 
 +choisir  
 +puissance vert  
 +Move/hold pour qu'il ne clignote plus 
 + 
 + 
 + 
 + 
 +Pour tuer l'​application en cours d'​éxecution 
 +  bouton STOP 
 +  bouton Menu 
 +  Gestionnaire des tâches fleche droite 
 +  choisir la tache et cliquer sur "​Ter"​ 
 + 
 + 
 +On peut supprimer sur le contrôleur toutes les applis, sauf: 
 +  Cognex 
 +  CognexComm7en 
 +  commCamera2 
 +  EntreesSortie 
 + 
 + 
 + 
 +=====ressources du net==== 
 +vidéos Tuto: https://​www.youtube.com/​playlist?​list=PLUDu1larmk8EB1ar2MTOhkf7iHOtTKb6j 
 + 
 + 
 +https://​fr.readkong.com/​page/​tp-3-decouverte-du-robot-staubli-tx60-1715216 
 + 
 + 
 + 
 +TP d'​initiation robot staubli Picardie: https://​home.mis.u-picardie.fr/​~fabio/​Eng/​documenti/​Teaching/​INRO15-16/​InitRob_TP3.pdf 
 + 
 + 
 +vidéo communication par socket: https://​slideplayer.fr/​slide/​2666058/​ 
 +=====Réseau===== 
 +====IP et numéros de port==== 
 +  - IP pc rapid en filaire: 192.168.1.49 
 +  - IP pc windows: 192.168.1.50 
 +  - IP armoire de commande staubli: 192.168.0.112 
 + 
 + 
 +l'​émulateur de pendant utilise les ports 850-853 et 5660-5680 
 + 
 +Socket\sCognex1 
 + 
 +faire une string pour stocker les messages 
 + 
 + 
 +cliquer onglet cellule->​prog1->​Controller1 
 +Acceuil, IO Physiques 
 + 
 +images SRS-ES.PNG 
 +images SRS-ES1.PNG 
 +images SRS-ES2.PNG 
 + 
 + 
 +===Création de socket sur le pendant=== 
 + 
 +Sur le pendant: 
 +  - Tableau de bord 
 +  - ES -> 
 +  - Socket -> 
 +  - Socket UDP, bouton "​Nouveau"​ 
 +  - donner un nom: "​udpsock"​ puis cliquer sur "​Ok"​ 
 +  - Editer, bouton "​entrée"​ pour choisir les paramètres à modifier 
 +  - filtre IP: 192.168.1.49 
 +  - port: 20000  
 +  -temps maxi: 5s   ​(permet de régler la durée au bout de laquelle une tentative de lecture sur la socket n'​ayant pas aboutie fera planter le programme VAL3 
 +  - caractère fin de chaine: 13   ​(identifie le caractère ascii devant se trouver à la fin de toutes les chaines échangées via sockets) 
 + 
 + 
 +->​Vérifier si il est possible d'​ajouter des sockets au projet SRS via le pendant virtuel????​ 
 + 
 +===Alimentation pour les E/S 24V=== 
 + 
 +Alimentation 24V pour les Entrées/​Sorties à allumer (en bas sur cloison à coté robot staubli) 
 + 
 + 
 + 
 + 
 + 
 +====Réflexion sur infrastructure réseau==== 
 + 
 +routeur wifi  
 +banana pi RP2 avec 4 interfaces filaires + WIFI 
 + 
 + 
 + 
 +SRS 2016.pdf 
 +p17/54 : explication handles et handlers 
 + 
 + 
 +ajout d'une variable sSio 
 +ajout d'une variable string x_sMsg 
 + 
 + 
 + 
 +explication du protocole de comm cognex via socket dans le fichier 
 +C:​\Users\bvande\Downloads\communication-EntreeSorties-mai2019_michel\communication-EntreeSorties-mai2019\Controller1\usr\usrapp\cognexComm7En\readme.pgx 
 + 
 + 
 +--------------------------- 
 +  //  You must declare this socket in the control panel of the controller as 
 +  //  followed : 
 +  //    - a client socket for each camera with 
 +  //    - IP address of camera 
 +  //    - Port : 1023 
 +  //    - time out = 0 
 +  //    - line end char = 13 
 +   
 +  chaque fichier .pgx est un sous programme  
 +   
 +  example.pgx ​   
 +  //  This is an example for use this library. 
 +  //  This example writes two numerical values (int num and float num) and 
 +  //  reads a string value to/from three cells: 
 +   
 +  --------------------------- 
 +  sendCommand.pgx 
 +  
 + call writeSocket(x_nCamID,​x_sCmd) 
 +  call readSocket(x_nCamID,​l_sMsgError,​x_bError) 
 +  call checkErrFormat(x_nCamID,​l_sMsgError,​l_bError) 
 +  x_bError=l_bError 
 +  if bDebugProgram 
 +    //Displays error message 
 +    //​getFullError() replace getErrorCode() and getErrorMessage() 
 +    call getFullError(x_nCamID,​l_nErrorCode,​l_sMsgError) 
 +    ? "​Cmd>​ "​+l_sMsgError 
 +  endIf 
 +   
 +   
 +   
 +  --------------------------- 
 +  writeSocket.pgx 
 +   
 +  for i=0 to (len(x_sMsg)-1) 
 +    sioSet(cCamera[x_nCamID].sSocket,​asc(x_sMsg,​i)) 
 +  endFor 
 +  sioSet(cCamera[x_nCamID].sSocket,​13) 
 +  sioSet(cCamera[x_nCamID].sSocket,​10) 
 +  if bDebugSocket 
 +    ? "W Status code: "​+x_sMsg 
 +  endIf 
 +   
 +   
 +   
 +   
 +--------------------------------- 
 + 
 + 
 + 
 +TODO mettre une nouvelle pile pour que l'​armoire conserve l'​heure,​ sinon super penible pour savoir quel projet... 
 + 
 + 
 +------------------------------ 
 + 
 + 
 +onglet Données 
 +clic droit sur "​Projet",​ puis "​Ajouter->​ajouter nouvelle donnée"​ 
 + 
 + 
 +par défaut, l'​entrée/​sortie sSio n'est pas liée à une entrée/​sortie du système 
 +dans IO physiques-Controller1,​ dans les sockets il y a 4 liens physiques 
 + 
 +j'​essaie socketClient 
 + 
 +on peut cocher !!!!! 
 + 
 + 
 +IO physique 
 +ouvrir Socket, la liste apparaît 
 +cocher la socket à importer, un carré bleu doit apparaître à gauche de Socket, puis cliquer droit sur Socket ​ et cliquer gauche sur importer. Laisser les options par défaut (Importer dans Projet et Auto-generated name...) puis "​Ok"​ 
 + 
 + 
 +CREATION DE LA SOCKET AVEC LE PENDANT AVANT la création du projet avec SRS pour que l'​import fonctionne 
 + 
 + 
 + 
 + 
 +librairie récupérée de:  
 +C:​\Users\bvande\Documents\communication-EntreeSorties-mai2019_michel\communication-EntreeSorties-mai2019\Controller1\usr\usrapp\cognexComm7En 
 + 
 + 
 +----------------------------------------------- 
 +Installation python sur machine windows: 
 + 
 + 
 +https://​pypi.anaconda.org/​ales-erjavec/​simple/​pyqt4/​4.11.4/​PyQt4-4.11.4-cp34-none-win_amd64.whl 
 +cd \Python34\Scripts 
 +pip install QtGui  
 +pip3 install C:​\Users\bvande\Downloads\PyQt4-4.11.4-cp34-none-win_amd64.whl 
 + 
 + 
 +Problème, je ne peux pas lancer un programme python qui communique via UDP avec le simulateur sur le même pc car il n'y a qu'un numéro de port (local=distant) pour les sockets créées par VAL3 et donc si l'IP est la même, le simulateur recoit les données qu'il envoie. 
 +donc il faut passer par un serveur (avec une ip différente) qui centralise les données capteurs; l'​appli Qt sur le pc étudiant envoie des demandes au pc serveur et SRS communique avec le serveur qui centralise les données capteurs 
 + 
 + 
 +En plus la lecture de données via socket UDP fonctionne de manière bloquante avec timeout, donc c'est bien d'​avoir le pc serveur qui puisse répondre à des requette même si le capteur n'a pas donnée de valeur, pour dire qu'il n'y a pas de valeur justement et ne pas bloquer le robot. 
 + 
 + 
 + 
 + 
 + 
 +----------------------------------------------- 
 + 
 +gestion des ES TOR 
 +BasicIO-1 
 + 
 +cliquer gauche pour cocher Entrée digital %I13 puis cliquer gauche importer 
 +dans l'​onglet Données, Projet->​dio doit contenir diB_13 
 + 
 + 
 + 
 +ATTENTION Problème de numérotation sur le bornier, car les indices commencent à 1 
 + 
 +Sortie doB_15 (numeroté 16) ne fonctionne pas 
 + 
 + 
 + 
 +   ​putln("​doB_12"​) 
 +  while true 
 +    doB_12[0]=true 
 +    put("​1"​) 
 +    delay(1) 
 +     
 +    doB_12[0]=false 
 +    put("​0"​) 
 +    delay(1) 
 +     
 + 
 + 
 + 
 +----------------------------------------------- 
 + 
 +dans le fichier: C:​\Users\bvande\Documents\Staubli\SRS\Cell2\Controller1\usr\configs\sio.cfx 
 + 
 + 
 + 
 + 
 + <​socketClt>​ 
 +    <String name="​name"​ value="​client_socket"​ /> 
 +    <String name="​desc"​ value=""​ /> 
 +    <Inet name="​serverIp"​ value="​192.168.1.49"​ /> 
 +    <Uint name="​portNumber"​ value="​30000"​ /> 
 +    <Int name="​endOfString"​ value="​13"​ /> 
 +    <Float name="​timeOut"​ value="​10"​ /> 
 +    <Bool name="​nagle"​ value="​false"​ /> 
 +  </​socketClt>​ 
 + 
 + 
 +dans C:​\Users\bvande\Documents\communication-EntreeSorties-mai2019_michel\communication-EntreeSorties-mai2019\Controller1\usr\usrapp\cognexComm7En\login.pgx 
 +  
 + 
 +sioLink(cCamera[x_nCamID].sSocket,​x_sioSocket) ​     
 + 
 + 
 + call readSocket(x_nCamID,​l_sMsg,​x_bError)  
 +                                               //​putln("​finreadsoc"​) 
 +    // Send user name 
 +    call readLogin(x_nCamID,​l_sMsg,​x_bError) 
 +                                               //​putln("​readlogin"​) 
 +    call writeSocket(x_nCamID,​x_sUser) 
 +    // Send password 
 +    call readLogin(x_nCamID,​l_sMsg,​x_bError) 
 +    call writeSocket(x_nCamID,​x_sPassword) 
 +        
 +    // Read login result 
 +    call readSocket(x_nCamID,​l_sMsg,​x_bError) 
 +    x_bError=find(l_sMsg,"​User Logged In"​)==-1 
 +    if x_bError 
 +      cCamera[x_nCamID].nErrorCode=1 
 +      cCamera[x_nCamID].bConnected=false 
 +      if bDebugProgram 
 +        putln("​Login : failed"​) ​        
 +      endIf 
 + 
 + 
 +------------------------------------------------------------------------ 
 +readsocket 
 +x_sMsg=""​ 
 +  //​putln("​read socket"​) 
 +  
 +  do 
 +    l_nCount=sioGet(cCamera[x_nCamID].sSocket,​l_nChar) 
 +    //-1 : timeout for input communication has been reached 
 + //​putln("​sio"​) 
 +    if (l_nCount>​-1) and (l_nChar>​=32) 
 +      x_sMsg=x_sMsg+chr(l_nChar) 
 +    endIf 
 +    x_bError=l_nCount<​=-1 
 +  until (l_nChar==13) or x_bError 
 +  //Displays error message 
 +  if bDebugSocket 
 +    ? "R Status code> "​+x_sMsg 
 +  endIf 
 + 
 +------------------------------------------------------------------------ 
 +writesocket 
 + 
 +  for i=0 to (len(x_sMsg)-1) 
 +    sioSet(cCamera[x_nCamID].sSocket,​asc(x_sMsg,​i)) 
 +  endFor 
 +  sioSet(cCamera[x_nCamID].sSocket,​13) 
 +  sioSet(cCamera[x_nCamID].sSocket,​10) 
 +  if bDebugSocket 
 +    ? "W Status code: "​+x_sMsg 
 +  endIf 
 + 
 +------------------------------------------------------------------------ 
 + 
 + 
 + 
 +=====Python===== 
 +<file txt pip3.txt>​ 
 +C:​\Python34\Scripts>​pip3 install tk 
 +Downloading/​unpacking tk 
 +  Downloading tk-0.1.0-py3-none-any.whl 
 +Installing collected packages: tk 
 +Successfully installed tk 
 +Cleaning up... 
 + 
 +C:​\Python34\Scripts>​pip3 install matplotlib 
 +Downloading/​unpacking matplotlib 
 +  Running setup.py (path:​C:​\Users\alimen\AppData\Local\Temp\pip_build_alimen\mat 
 +plotlib\setup.py) egg_info for package matplotlib 
 + 
 +    Beginning with Matplotlib 3.1, Python 3.6 or above is required. 
 + 
 +    This may be due to an out of date pip. 
 + 
 +    Make sure you have pip >= 9.0.1. 
 + 
 +    Complete output from command python setup.py egg_info: 
 + 
 + 
 +Beginning with Matplotlib 3.1, Python 3.6 or above is required. 
 + 
 + 
 + 
 +This may be due to an out of date pip. 
 + 
 + 
 + 
 +Make sure you have pip >= 9.0.1. 
 + 
 + 
 + 
 +---------------------------------------- 
 +Cleaning up... 
 +Command python setup.py egg_info failed with error code 1 in C:​\Users\alimen\App 
 +Data\Local\Temp\pip_build_alimen\matplotlib 
 +Storing debug log for failure in C:​\Users\alimen\pip\pip.log 
 + 
 +C:​\Python34\Scripts>​ 
 + 
 +</​file>​
  
staubli.txt · Dernière modification: 2019/10/04 13:07 par bvandepo