Professional Documents
Culture Documents
L’ENSEIGNEMENT SUPERIEURINSTITUT
SUPERIEUR DES ETUDE TECHNOLOGIQUE DE
NABEUL
RAPPORT DE STAGE :
SAGEM TUNISIE
Tout d’abord j’adresse mes vifs remerciements à mon encadreur M.ABEDA SABER
pour m’avoir donné les moyens, les conseils techniques et l’assistance nécessaires.
1
CHAPITRE I : PRESENTATION GENERALE
I. INTRODUCTION :
SAGEM TUNISIE fait partie du groupe SAFRAN qui est parmi les leaders dans la
conception des produits électroniques, de télécommunication, de traitement et la
transmission numérique de l’information.
Les usines sont implantées dans la banlieue sud de Tunis (Ben Arous), à l’adresse :
usine SAGEM TUNISIE Borg Gorbel 2013 Ben Arous Tunisie.
2
II. ORGANISATION DU SAGEM TUNISIE
L’activité de SAGEM TUNISIE se structure autour des unités opérationnelles de
fabrication (UF) et d’unités de support administratif et financier (service)
1. UNITE DE FABRIQUATION
2. SERVICES
Les bureaux de services représentent les supports de production dans les usines, ils
gèrent les problèmes rencontrés en cour de fabrication, dans la société de SAGEM
Tunisie on trouve le service suivant :
Service industriel :
Service Process :
3
- le service procès Chargé de la réception et de la mise en place, de la
garantie de fiabilité et de capacité de l’ensemble des moyens techniques du
site validés par les pôles technologiques, ainsi la proposition d’axes
d’améliorations de la qualité et de la productivité aussi l’optimisation de
l’exploitation des moyens de productions.
Service Douanes :
Service Industrialisation:
4
CHAPITRE II : PROCESSUS DE FABRICATION
Test final
Test In Situ
Brasage vague
Insertion manuelle
I. SERIGRAPHI
5
est une crème à braser dont les caractéristiques principales sont la viscosité et
la Thixotropie.
LE SYSTEME DE RACLAGE :
6
- angle de raclage (orientation de la tête / déplacement)
C’est le système permettant l’alignement de la carte avec le pochoir pour que les
ouvertures de ce dernier coïncident bien avec les plages d’accueil.
LE SYSTEME DE NETTOYAGE :
Après plusieurs cycles de sérigraphie la crème vient rester sur la face inférieure du
pochoir, Pour palier à ça les machines de sérigraphies sont équipées d’un système de
nettoyage permettant de balayer tout le pochoir en injectant un produit de nettoyage à
l’aide d’une pompe.
La taille : La taille des composant allant du petit composant CMS jusqu’au grand
composant comme les connecteurs.
Le conditionnement des composants :
Ils peuvent être approvisionnés soit en bandes soit en plateau
Le type des composants : selon la nature de fonctionnement des composant sur la
carte il y’a les composants résistifs, les composants programmables, les composants
pour la connectique. Le rôle essentiel d’une machine de pose est de placer ces
Composants aux emplacements spécifiés de la carte avec le maximum de précision
et de rapidité qu’il faut en tenant compte bien sur des différences notées dessus
entre les divers composants.
Donc pour chaque carte électronique devant recevoir des composants il y’a une
séquence bien déterminé que la machine doit faire pour avoir à la sortie une carte
équipée.
8
1. DEPANNAGE
2. RETOUCHE SOUDAGE
3. POSTE D’ASSEMBLAGE
4. POSTE D’INTÉGRATION
Le test consiste à contrôler les pannes après entrer four qui vérifier le court-circuit.
9
Le test effectué dans ce poste concerne la compatibilité de la version du compteur, le
fonctionnement des boutons la communication avec le flag et le modem, le bon
fonctionnement anti-fraude et le test micro.
7. SERVICE PROCCES
Lors d’un nouveau produit on doit créer une nouvelle programme sur les différons
machine de la ligne CMS surtout la machine de sérigraphie MPM AP 25, pour le faire on
doit respecter un démarche pour obtenir une sérigraphie bonne on doit vérifier que les
mires de la carte est confondu avec les mires du écran, dans l’UF monétique la plus
grande carte nécessite 6 mires a déclaré aux programmes
8. SERVICE TEST
10
Partie II : DEVELOPPEMENT D’UNE APPLICATION
D’ACQUISITION ET DE STATIQTIQUE APRES LES
TEST DES PRODUITS
11
Selon la période de mon stage j’ai constaté que le développement chez Sagem
consiste a créé des applications de gestion et des applications orienté industriel.
Par exemple :
LabWindows /CVI donne la possibilité d’utilisé des contrôle facile utilisé pour réduire le
temps de développement. Après le lancement de l’environnent on clique sur File->New-
>Project from Template, la dialogue suivante s’affiche.
Il nous reste que sélectionné user Interface Application puis le nommer « ex.
Application1 » ensuite valider par OK. Une nouvelle interface vierge apparait.
12
fig 9 : interface prête à l’exploiter
Pour l’utilisé il suffit de cliquer sur le bouton droite dans l’interface montrer ci-
dessus voire (fig 9) ensuite en choisi parmi les contrôle Text le contrôle String
(voir annexe fig ?). Une foi le contrôle apparait dans la zone de l’interface et pour
rendre le référencement de l’objet plus claire pendant la phase de programmation
on l’attribue un nom constant pour le spécifier, on procède pour l’éditer par un
clic droit sur le contrôle, une boite apparait ensuite en peut donner un nom plus
significatif dans le champ Constant name (voir annexe fig ??).
13
1.2.2 LA FONCTION SetCtrlVal() :
Déclaration : int SetCtrlVal (panelHandle int, int controlID, la valeur void *);
Définit la valeur d'un contrôle à une valeur que vous spécifiez.
Exemple :
SetCtrlVal (panelHandle ,PANEL_NOM, n);
main ()
14
1.3.2 RECUPERATION DES DONNEES DE LA ZONE DE TEXT
Code :
1
Initialisation
2
Boucle de gestion des événements
3
Clôture de l’application
Toute interaction avec une base va se faire à travers une session. Cette dernière
15
peut-être décomposée comme suit :
Déconnexion de la base
C’est une phase un peu délicate et je n’ai pas pu la terminer encours de ce stage,
mais j’ai continué à travailler jusqu’au jour d’hui
la création d’une base de données nécessite par fois la création d’un fichier
header (.h) contient la définition des ID « de type entier » qui vont servir ensuite
pour les fonctions SetCtrlVal et GetCtrlVal
exemple :
#define PANEL_TABLE 2
#define PANEL_TEXTBOX 3
16
NOTE : les ID contrôle prennent la deuxième position dans les paramètres du Set et Get et la fonction
SetCtrlAttrib
Code :
float ODBCVer;
switch (event)
case EVENT_COMMIT:
return -1;
DeleteFile ("test.mdb");
if (SQLDBint(&AccessDb)==FAIL)
return -1;
17
SQLDBGetODBCVersion(AccessDb,&ODBCVer);
if (ODBCVer<3)
InsertTextBoxLine(panelHandle,PANEL_TEXTBOX,-1,"Database
initialize,SQLDBint");
break;
return 0;
18
Conclusion
Le stage au sien de SAGEM, a été une occasion pour l’insertion dans la vie
professionnelle.
19
Annexe
20
Ajout d’un bouton
21
Génération automatique du code de bouton
Code générer
22
Edition des paramètres du tableau « elle va contenir les valeurs de test »
23
int CVICALLBACK SQLInitializate (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
float ODBCVer;
switch (event)
{
case EVENT_COMMIT:
//création d’une nouvelle base de données
if (!FileExists ("test_empty.mdb", 0))
{
MessagePopup("Error","Not found file,please check test_empty.mdb in directory");
return -1;
}
DeleteFile ("test.mdb");
CopyFile ("test_empty.mdb", "test.mdb");
//initialisation de la base
if (SQLDBint(&AccessDb)==FAIL)
{
MessagePopup("Error","Database init failed!");
return -1;
}
//vérification de la version de l’ODBC
SQLDBGetODBCVersion(AccessDb,&ODBCVer);
if (ODBCVer<3)
{
MessagePopup("Error","ODBC version is too lower!");
}
SetCtrlAttribute (panelHandle, control, ATTR_DIMMED, 1);
SetCtrlAttribute (panelHandle, PANEL_SQLDBAddDataSource, ATTR_DIMMED, 0);
InsertTextBoxLine(panelHandle,PANEL_TEXTBOX,-1,"Database initialize,SQLDBint");
break;
}
return 0;
}
24
//requête si la configuration DSN existe
if (SQLDBFindDSN(AccessDb,"TempAccess")==FAIL)
{
switch (event)
{
case EVENT_COMMIT:
//Connect database
if (SQLDBDSNConnect (AccessDb, "TempAccess", "admin","" )!=PASS)
{
MessagePopup("Error",AccessDb->ErrorMessage);
}
else
{
//lecture du nom de DSN
SQLDBGetDriverInfo (AccessDb, SQL_DATA_SOURCE_NAME, DSNName, 20, NULL);
25
strcpy(temp,"Connect database:SQLDBDSNConnect DSN name:");
strcat(temp,DSNName);
InsertTextBoxLine(panelHandle,PANEL_TEXTBOX,-1,temp);
SetCtrlAttribute (panelHandle, PANEL_SQLDBEndTran, ATTR_DIMMED, 0);
SetCtrlAttribute (panelHandle, control, ATTR_DIMMED, 1);
SetCtrlAttribute (panelHandle, PANEL_SQLDBDiscardConn, ATTR_DIMMED, 0);
}
break;
}
return 0;
}
26
InsertTextBoxLine(panelHandle,PANEL_TEXTBOX,-1,"submit create transactions:SQLDBEndTran");
//submit transactions
SQLDBTransaction (AccessDb, SQL_COMMIT);
InsertTextBoxLine(panelHandle,PANEL_TEXTBOX,-1,"submit insert transactions:SQLDBEndTran");
SetCtrlAttribute (panelHandle, PANEL_SQLReadData, ATTR_DIMMED, 0);
SetCtrlAttribute (panelHandle, control, ATTR_DIMMED, 1);
break;
}
return 0;
}
27
SQLDBBindCol (AccessDb, 3, SQL_C_CHAR, TableName, 20,IGNORE);
while(SQLDBFetch(AccessDb)!=IS_NO_DATA)
{
Fmt(temp,"%s%s","Read table name:SQLDBGetTable:",TableName);
InsertTextBoxLine(panelHandle,PANEL_TEXTBOX,-1,temp);
}
SQLDBCloseCursor (AccessDb);
SQLDBResetStatement (AccessDb); //reset statment handle
}
SQLDBCloseCursor (AccessDb);
SQLDBResetStatement (AccessDb); //reset statment handle
}
//lecture des données
if (SQLDBExecImmediate (AccessDb, "Select * from Employee")!=PASS)
{
MessagePopup("Error",AccessDb->ErrorMessage);
}
else
{
//bind to variable
SQLDBBindCol (AccessDb, 1, SQL_C_ULONG, &ID, IGNORE, &IDlen);
SQLDBBindCol (AccessDb, 2, SQL_C_CHAR, Name, 20,&Namelen);
SQLDBBindCol (AccessDb, 3, SQL_C_CHAR, Birthday, 20,&DatetimeLen);
SQLDBBindCol (AccessDb, 4, SQL_C_DOUBLE, &Pay, IGNORE, &Paylen);
while(SQLDBFetch(AccessDb)!=IS_NO_DATA)
{
InsertTableRows (panelHandle, PANEL_TABLE, -1, 1, VAL_USE_MASTER_CELL_TYPE);
GetNumTableRows (panelHandle, PANEL_TABLE, &RowNumber);
28
SetTableCellAttribute (panelHandle, PANEL_TABLE, MakePoint (1,RowNumber), ATTR_CTRL_VAL,ID );
SetTableCellAttribute (panelHandle, PANEL_TABLE, MakePoint (2,RowNumber), ATTR_CTRL_VAL,Name );
SetTableCellAttribute (panelHandle, PANEL_TABLE, MakePoint (3,RowNumber), ATTR_CTRL_VAL,Birthday );
SetTableCellAttribute (panelHandle, PANEL_TABLE, MakePoint (4,RowNumber), ATTR_CTRL_VAL,Pay );
strcpy(Name,"");
strcpy(Birthday,"");
ID=0;
Pay=0.0;
}
SQLDBCloseCursor (AccessDb);
SQLDBResetStatement (AccessDb); //reset statment handle
}
29
Pour conclure, j'ai eu un stage de qualité, et je voudrais remercier toute
Technologies et méthodes qui me seront utiles à l’avenir. Evidemment, j’ai dû m’adapter aux horaires de
l’entreprise qui sont : 8h-12h et 13h-17h et de 8h. Tous ces facteurs m’ont permis de découvrir le monde
de l’entreprise sur un plan professionnel mais aussi sur un plan humain par le travail en équipe.
En effet, j’ai eu l’occasion de rencontrer des personnes qui m’ont beaucoup aidé tant dans le travail que
pour mon intégration dans l’entreprise. Ils ont pris le temps de m’expliquer toutes mes missions bien qu’ils
aient également du travail. Ils m’ont fait découvrir les locaux, expliquer le fonctionnement de l’entreprise…
Je retire donc de ce stage une impression de réussite. Ce que j’ai découvert lors de celui-ci m’aidera dans
mes études mais aussi dans ma vie professionnelle future.
30
31
32
33