Reparation Chaine CMS

De Kernel Fablab Lannion

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 ...

DT NOM FONCTION DX DY
0 REF Point de référence pour les coordonnées de dépôt X Y
1 LOOP Commence une boucle de programme X fois X 0
2 NEXT Fin de la boucle 0 0
3 SETHT Maintient l’aiguille en position haute durant le GLOBTOP Et fixe le temps entre la montée en pression et le démarrage du mouvement X, Y X Y
4 SETV Fixe la vitesse durant leGLOBTOP:Vx =1/DX,Vy =1/DY en ms X Y
5 SETDEC Fixe le décrement des axes X et Y durant les étapes de GLOBTOP (DX,DY en MU) X Y
6 SGLOB X Y
10 CONT Contrôle des points de référence avec possibilité de réajuster la position 0 0
11 FIDA Deuxième point de référence pour correction automatique par mire, lampe de tête éteinte X Y
13 FIDAL Deuxième point de référence pour correction automatique par mire, lampe de tête allumée 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 localeLRP X Y
17 BMS Détecteur des marquages incorrects(DX,DY).position de lazone par rapport auLRP;lampe de tête éteinte X Y
18 BMS Détecteur des marquages incorrects(DX,DY).position de lazone par rapport auLRP;lampe de tête allumée X Y

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