« Reparation Chaine CMS » : différence entre les versions

De Kernel Fablab Lannion
mAucun résumé des modifications
Ligne 1 : Ligne 1 :
==Objectifs :==
==Objectifs :==
L'objectif est d'avoir une chaine complète pour la réalisation de carte avec des composant CMS.
L'objectif est d'avoir une chaine complète pour la réalisation de carte avec des composant CMS.
La réutilisation des machines [[Precidot 30]], [[Novar 33]]
Réutilisation des machines [[Precidot 30]], [[Novar 33]]
 
==Cahier des charges==
==Cahier des charges==
===precidot===
===precidot===
Ligne 13 : Ligne 12 :
# Cas plusieurs circuits : Il faut ajouter des boucles et prendre toutes les références intermédiaires
# Cas plusieurs circuits : Il faut ajouter des boucles et prendre toutes les références intermédiaires
# gérer le dépôt en fonction de la dimension du pad.  par ex 2 point cote a cote pour pad long ...
# gérer le dépôt en fonction de la dimension du pad.  par ex 2 point cote a cote pour pad long ...
# gérer les composants comme des mask (possibilité de définition dans la machine
# gérer les composants comme des mask (possibilité de définition dans la machine)
# gérer la correction automatique de positionnement  
# gérer la correction automatique de positionnement  
# gestion des rejets (si option)
# gestion des rejets (si option)
Ligne 39 : Ligne 38 :
[[:File:testeur_pile_CIF.tar| ici]] se trouve le projet eagle.
[[:File:testeur_pile_CIF.tar| ici]] se trouve le projet eagle.


Un [[:File:PNP_Falab_ulp.zip|script ulp]] permet d'extraire les données interessantes, dans un [[:File:testeur-pnp.zip|fichier]] :
Un [[:File:PNP_Falab_ulp.zip|script ulp]] permet d'extraire les données intéressantes, dans un [[:File:testeur-pnp.zip|fichier texte]] :
*position des pins (ie point où déposer la soudure)
*position des pins (ie points où déposer la soudure)
*position et rotation des composants
*position et rotation des composants


Ligne 47 : Ligne 46 :
   
   
demander le nb de carte : n
demander le nb de carte : n
   
  n=1 :
*n=1 :
  LIGNE  MOD    DT      DX      DY
  LIGNE  MOD    DT      DX      DY
  1      0      0      0      0    // le point de référence sera définit sur la machine
  1      0      0      0      0    // le point de référence sera définit sur la machine
  ... //ligne de coordonnée de point récupérer dans le fichier export .pnp : ligne commençant par -pin-
  ...                                 //ligne de coordonnée de point récupérer dans le fichier export .pnp : ligne commençant par -pin-


*n>1 :
n>1 :
 
// pour amélioration future demander : offset vertical et offset horizontal (mm) >> voir pour vérification des point de ref  
// pour amélioration future demander : offset vertical et offset horizontal (mm) >> voir pour vérification des point de ref  
 
  LIGNE  MOD  DT  DX  DY
  LIGNE  MOD  DT  DX  DY
  1      0    0    0    0    // le point de référence de chaque carte sera définit sur la machine
  1      0    0    0    0    // le point de référence de chaque carte sera définit sur la machine
Ligne 66 : Ligne 60 :
  ...                        //ligne de coordonnée de point
  ...                        //ligne de coordonnée de point
  fin    0    2    0    0  // fin boucle
  fin    0    2    0    0  // fin boucle


à ajouter : contrôle des mires (si dispo); gestion du dépôt fonction dimension des pattes ...
à ajouter : contrôle des mires (si dispo); gestion du dépôt fonction dimension des pattes ...
===Novar33:===
===Novar33:===


Ligne 78 : Ligne 69 :
*sur la machine :
*sur la machine :


procédure de chargement magasin :
définir une procédure de chargement magasin :


-visuel des zones. ZONE0 et Zone 20 composant en Bande. ZONE40, composant en barette.
:*afficher un visuel des zones. ZONE0 et Zone 20 composant en Bande. ZONE40, composant en barrette.
 
:*numérotation des magasins
-visuel de l'orientation des composant
:*afficher visuel de l'orientation des composant
:*afficher tableau récapitulatif :  type boitier et magasin associé


:* config magasin
:* config magasin
Ligne 115 : Ligne 107 :
pour ROT :La machine considère le composant orienté a 0° dans son magasin et ajoute la rotation informée dans la ligne de programme.
pour ROT :La machine considère le composant orienté a 0° dans son magasin et ajoute la rotation informée dans la ligne de programme.


et 0>>360 pour centrer le composant???? a voir s'il est necessaire de configurer les contours pour ça.
et changer 0 en 360 pour centrer le composant???? à voir s'il est nécessaire de configurer les contours pour ça.


*demander le nb de carte : n
*demander le nb de carte : n
Ligne 121 : Ligne 113 :
  n=1 :
  n=1 :
  LIGNE MAG rot DX DY
  LIGNE MAG rot DX DY
  1 0 0 0 0    // le point de reference sera definit sur la machine
  1 0 0 0 0    // le point de référence sera définit sur la machine
  ... //ligne de coordonnée des composants recuperer dans le fichier export .pnp : ligne commençant par -composant-
  ... //ligne de coordonnée des composants récupérer dans le fichier export .pnp : ligne commençant par -composant-


  n>1 :
  n>1 :
  // pour amélioration future demander : offset vertical et offset horizontal (mm) >> voir pour verification des point de ref  
  // pour amélioration future demander : offset vertical et offset horizontal (mm) >> voir pour versification des point de ref  
  LIGNE  MAG    rot      DX    DY
  LIGNE  MAG    rot      DX    DY
  1      0      0      0      0        // le point de reference de chaque carte sera definit sur la machine
  1      0      0      0      0        // le point de référence de chaque carte sera définit sur la machine
  ...                                  //
  ...                                  //
  n      0      0      0      0
  n      0      0      0      0
  n+1    0      1      n      0    //debut boucle
  n+1    0      1      n      0    //début boucle
  ...                          //ligne de coordonnée de point
  ...                          //ligne de coordonnée de point
  fin    0      2      0    0  // fin boucle
  fin    0      2      0    0  // fin boucle
Ligne 137 : Ligne 129 :
   
   
ajout : gestion contour, changement de buse et vitesse fonction du type de composant, correction de mire, ajout de contournement de point haut marquage incorrect (si option ok)
ajout : gestion contour, changement de buse et vitesse fonction du type de composant, correction de mire, ajout de contournement de point haut marquage incorrect (si option ok)
{| class="wikitable"
 
|-
 
!ROT!!NOM!!FONCTION!!DX!!DY
|-
|0||REF||Point de référence pour les coordonnées de placement||X||Y
|-
|1||LOOP||Commence une boucle de programme X fois||X||0
|-
|2||NEXT Fin de la boucle||0||0
|-
|3||BIT||Changement manuel de la buse (n° DX)||X||0
|-
|4||LENT||Change pour le mode LENT||0||0
|-
|5||RAPIDE||Change pour le mode RAPIDE||0||0
|-
|6||MOVE||Point de base pour la modification de trajectoires||X||Y
|-
|7||PLACE||Point de placement après MOVE(DX,DY)||X||Y
|-
|8||PIN||Changement manuel de l’aiguille à l’aiguille n°DX (pour le collage)||X||0
|-
|10||CONT||Contrôle du point de référence, ré ajustage possible||0||0
|-
|11||FIDA||Deuxième point de référence pour correction automatique par mire, lampe de tête éteinte||X||Y
|-
|12||BIT||Changement automatique de buse ||Prendre la buse n° X X 0||Reposer la buse n° X X 1
|-
|13||FIDAL||Deuxième point de référence pour correction automatique par mire, lampe de tête allumée||X||Y
|-
|14||SETZ||Changement de hauteur de la prochaine prise du composant et du prochain placement, 1 deg= 0,1 mm||X||Y
|-
|15||FIDAM||Deuxième point de référence pour la correction manuelle par mire||X||Y
|-
|16||LRP||Point de référence locale LRP||X||Y
|-
|17||BMS||Détecteur des marquages incorrects(DX,DY).position de la zone par rapport au LRP ;lampe de tête éteinte||X||Y
|-
|18||BMS||Détecteur des marquages incorrects(DX,DY).position de lazone par rapport au LRP ;lampe de tête allumée||X||Y
|}


[[Category:Reparations]]
[[Category:Reparations]]

Version du 15 octobre 2013 à 22:16

Objectifs :

L'objectif est d'avoir une chaine complète pour la réalisation de carte avec des composant CMS. Réutilisation des machines Precidot 30, Novar 33

Cahier des charges

precidot

  1. récupération des coordonnées des points de soudure à partir d'un logiciel de CAD (en mm).
  2. les transformer en unité machine (1U=0,0508mm)
  3. les transformer en ligne de commande en ordonnant le parcours pour aller de droite à gauche (contrainte liée au stoppeur)
  4. les écrire au bon endroit sur la disquette en hexa
  5. Cas 1 seul circuit : Il faut prendre la référence à la machine
  6. Cas plusieurs circuits : Il faut ajouter des boucles et prendre toutes les références intermédiaires
  7. gérer le dépôt en fonction de la dimension du pad. par ex 2 point cote a cote pour pad long ...
  8. gérer les composants comme des mask (possibilité de définition dans la machine)
  9. gérer la correction automatique de positionnement
  10. gestion des rejets (si option)
  11. gérer les paramètres machine

novar 33

  1. récupération des coordonnées du centre des composants à partir d'un logiciel de CAD (en mm) et la rotation.
  2. les transformer en unité machine (1U=0,0508mm)
  3. les transformer en ligne de commande
  4. ajout du magasin ou est le composant (input utilisateur)
  5. les écrire au bon endroit sur la disquette en hexa
  6. Cas 1 seul circuit : Il faut prendre la référence à la machine
  7. Cas plusieurs circuits : Il faut ajouter des boucles et prendre toutes les références intermédiaires
  8. gérer le changement de buse et de vitesse en fonction des composants
  9. gérer la correction automatique de positionnement
  10. gestion des rejets (si option)
  11. gérer les contournements de points haut
  12. gérer les paramètres machine

avancement

Novar33.jpg

Descriptif de la machine

Numéro de Série : 2290104

Documentation

manuel

Exemple d'utilisation

Maintenance / Etat

Analyse de la disquette

Récupération du contenu d'une disquette créée par la nova

Récupération du contenu de la disquette

sudo dd if=/dev/fd0 of=/tmp/nomfichier.bin

Edition du fichier binaire

sudo apt-get install ghex
sudo ghex2 /tmp/nomfichier.bin

Ecriture de la disuette

sudo dd of=/dev/fd0 if=nomfichier.bin

Effacer la disquette

sudo dd if=/dev/zero of=/dev/fd0 bs=512 conv=notrunc

Notes d'édition

  • La modification d'un parametre d'une ligne existante est bien répercuté
  • variables sur 16bit [confirmations ?]
    1. Magasin
    2. Rotation
    3. Dx
    4. DY
  • Encodage en Little Endian: Les bloc d'octets sont inversés! pour avoir la valeur décimale 1853 il faut avoir "3d 07" et non "07 3d"
  • Pas de déplacement effectif si aucun magasin d'indiqué

Adresses

Début des bank :
04000 bank 1
16000 bank 2
28000 bank 3
3a000 bank 4
  

à partir de 3A208 (programme)
position magasin 03600,15600 ...39608 >>> du coup les @ des banks ci-dessus ne sont peuetre pas bonne ...
type magasin 03906,15906 ...
param ... 28032 à 2808C ...3A042 à 3A098


offset pour l’écriture des lignes d'un programme :
 208
offset pour l’écriture des Magasins :
 ??
offset pour l’écriture des paramètres machine :
 42 (à vérifier)
autres offset  :
 ??

Modifier la disquette

fabmanager@fab1:~/Documents/Novar30$ sudo python
[sudo] password for fabmanager: 
Python 2.6.5 (r265:79063, Oct  1 2012, 22:07:21) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> f = open('/dev/fd0','rw+')
>>> f.seek(0x3a208,0)
>>> f.read(8)
'\x00\x00\x00\x00\x01\x00\x02\x00'
>>> f.seek(0x3a208,0)
>>> f.write('\x00\x00\x00\x00\x01\x00\x02\x99')
>>> f.seek(0x3a208,0)
>>> f.read(8)
'\x00\x00\x00\x00\x01\x00\x02\x99'
>>> f.close()

MAPPING de la disquette

0x4000 bank 1

=== Début des Paramètres Machine Précidot ===
  • @bank + 0x000 Param 01
  • @bank + 0x099 Param 44


=== Début du programme Précidot ===
  • @bank + 0x208 Position x, y du premier point de référence
  • @bank + 0x210 contrôle du point de Référence
  • @bank + 0x218 1ère boucle de dépose répétée 1 fois
  • @bank + 0x220 Début des Dépôt sur les point aux coordonnées X,Y
  • @bank + 0x2DF Fin des dépôt
  • @bank + 0x2EF Fin de Programme Precidot


0x39600 bank4P

=== Début des Magasins Novar ===
  • @bank + 0x606 Position x, y du premier rang de référence du magasin 01
  • @bank + 0x6E7 Fin des magasin à Bande
  • @bank + 0x6EC Position x, y du premier rang de référence magasin à vibration 41

0x3A000 bank 4

===  Début des Paramètres Machine Novar ===
  • @bank + 0x042 Param 01
  • @bank + 0x099 Param 44


  • @bank + 0x032 Nb de Ligne du programme
  • @bank + 0x035 Fin du Nb de Ligne
  • @bank + 0x036 Nb de Ligne de Positions Mag
  • @bank + 0x038 Fin du Nb de Ligne
===  Début du Programme Novar ===
  • @bank + 0x208 REF
  • @bank + 0x212 Controle de Ref
  • @bank + 0x218 Prise du 1er Outil
  • @bank + 0x222 Vitesse
  • @bank + 0x228 Début boucle
  • @bank + 0x230 à @bank + 0x24F placement composant
  • @bank + 0x250 Fin 1er Boucle
  • @bank + 0x258 Depose
  • @bank + 0x260 Prise nouvel Outil
  • @bank + 0x268 Vitesse
  • @bank + 0x270 Début 2eme boucle
  • @bank + 0x278 placement du composant
  • @bank + 0x280 Fin 2eme Boucle
  • @bank + 0x288 Depose
  • @bank + 0x290 Prise nouvel Outil
  • @bank + 0x298 Vitesse
  • @bank + 0x2A0 Début 3eme boucle
  • @bank + 0x2A8 à @bank + 0x2B7 placement du composant
  • @bank + 0x280 Fin 3eme Boucle fin de programme

Dev IHM

Partons du cas : testeur de pile ( cartes et composants dispo au Fablab).

ici se trouve le projet eagle.

Un script ulp permet d'extraire les données intéressantes, dans un fichier texte :

  • position des pins (ie points où déposer la soudure)
  • position et rotation des composants


Precidot :

demander le nb de carte : n

n=1 :
LIGNE  MOD     DT      DX      DY
1      0       0       0       0     // le point de référence sera définit sur la machine
...                                  //ligne de coordonnée de point récupérer dans le fichier export .pnp : ligne commençant par -pin-
n>1 :
// pour amélioration future		demander : offset vertical et offset horizontal (mm) >> voir pour vérification des point de ref 
LIGNE   MOD   DT   DX   DY
1       0     0    0    0     // le point de référence de chaque carte sera définit sur la machine
...                          //
n       0     0    0    0
n+1     0     1    n    0    //début boucle
...                         //ligne de coordonnée de point
fin     0     2    0    0   // fin boucle

à ajouter : contrôle des mires (si dispo); gestion du dépôt fonction dimension des pattes ...

Novar33:

il faut gérer les magasins.

  • sur la machine :

définir une procédure de chargement magasin :

  • afficher un visuel des zones. ZONE0 et Zone 20 composant en Bande. ZONE40, composant en barrette.
  • numérotation des magasins
  • afficher visuel de l'orientation des composant
  • afficher tableau récapitulatif : type boitier et magasin associé
  • config magasin
  • sur le mag :

au démarrage de la novar : touche BAS (mag bande) ou touche mod(mag reglette) = configuration numéro

touche du haut : configuration de l'avance pour les bandes (puis touche haut : choix de la bande (. indique dizaine)/touche bas choix avance 2-4-8-12)

  • novar en route : avance bonde manuelle (Haut sélection de la bande /bas avance)

touche MOD pour changer de menu :

0    STOP
U    vibration (clignotant: fonction mémoire pour la configuration)
A    sélectionne la zone du magasin
t    réglage de la période de vibration de t=18 HF à t=42 BF
P    réglage de l’amplitude de l’oscillation de P=0 à P=40
S    réglage de la force des impulsions de S=2 à S=98

touche +/- pour modifier

pour mémoriser le changement touche mem (U apparait)recherche (touche +/-) zone dispo (indiquer par :) puis de nouveau MEM.

  • Dans l'ihm :

lister les composants (ligne commençant par -composant-)

pour chaque composant demander dans quel magasin il est et son orientation dans le magasin.

  • créer la ligne Ligne MAG ROT DX DY

pour ROT :La machine considère le composant orienté a 0° dans son magasin et ajoute la rotation informée dans la ligne de programme.

et changer 0 en 360 pour centrer le composant???? à voir s'il est nécessaire de configurer les contours pour ça.

  • demander le nb de carte : n
n=1 :
LIGNE	MAG	rot	DX	DY
1	0	0	0	0    // le point de référence sera définit sur la machine
...						//ligne de coordonnée des composants récupérer dans le fichier export .pnp : ligne commençant par -composant-
n>1 :
// pour amélioration future		demander : offset vertical et offset horizontal (mm) >> voir pour versification des point de ref 
LIGNE  MAG    rot      DX    DY
1      0      0       0      0         // le point de référence de chaque carte sera définit sur la machine
...                                   //
n      0      0       0      0
n+1    0      1       n      0     //début boucle
...    	                      //ligne de coordonnée de point
fin    0      2       0     0   // fin boucle


ajout : gestion contour, changement de buse et vitesse fonction du type de composant, correction de mire, ajout de contournement de point haut marquage incorrect (si option ok)

ROT NOM FONCTION DX DY
0 REF Point de référence pour les coordonnées de placement X Y
1 LOOP Commence une boucle de programme X fois X 0
2 NEXT Fin de la boucle 0 0
3 BIT Changement manuel de la buse (n° DX) X 0
4 LENT Change pour le mode LENT 0 0
5 RAPIDE Change pour le mode RAPIDE 0 0
6 MOVE Point de base pour la modification de trajectoires X Y
7 PLACE Point de placement après MOVE(DX,DY) X Y
8 PIN Changement manuel de l’aiguille à l’aiguille n°DX (pour le collage) X 0
10 CONT Contrôle du point de référence, ré ajustage possible 0 0
11 FIDA Deuxième point de référence pour correction automatique par mire, lampe de tête éteinte X Y
12 BIT Changement automatique de buse Prendre la buse n° X X 0 Reposer la buse n° X X 1
13 FIDAL Deuxième point de référence pour correction automatique par mire, lampe de tête allumée X Y
14 SETZ Changement de hauteur de la prochaine prise du composant et du prochain placement, 1 deg= 0,1 mm X Y
15 FIDAM Deuxième point de référence pour la correction manuelle par mire X Y
16 LRP Point de référence locale LRP X Y
17 BMS Détecteur des marquages incorrects(DX,DY).position de la zone par rapport au LRP ;lampe de tête éteinte X Y
18 BMS Détecteur des marquages incorrects(DX,DY).position de lazone par rapport au LRP ;lampe de tête allumée X Y