# Présentation entreprise Basée en Ardèche, fabrique des instruments de pesage et les commercialise. **Filiale Precia Molen Service (PMS)** : tout ce qui est sur le terrain — installation, maintenance, vérification, évaluation éventuelle. Filiales à l'étranger également. - 400 personnes au siège à Privas - 400 personnes réparties sur 50 agences pour PMS - 400 personnes à l'étranger ## Gamme de produits **Gamme phare : pont bascule** — pesage de véhicules (notamment camions). - Dalle béton avec des capteurs sous la trappe - Système de barrière, etc. - Pièce métallique avec résistance soudée : la pression déforme les résistances, on déduit la pression en mesurant le courant électrique - Logiciel de gestion : **TruckFlow** Les instruments servent pour des transactions commerciales → vérifications périodiques obligatoires. **Autres instruments :** - Balances "simples" (labo, etc.), balances compactes - Pesage de produit en vrac (céréale, gravier) : **totalisateur continu** - Procédure de vérification avec rapport — jusqu'à présent fichier Excel - **Tâche : passer le rapport sur Instrum** - ~50 en métrologie légale en France - Pesage discontinu (arrivée par trappe haut, pesée, départ trappe bas) — principalement pour engrais, ~200 en France - Appareils de pesage à fonctionnement non automatique (pesage véhicule, balances, plateformes) : ~70 000 instruments - Trieuse (principalement agro-alimentaire) : IPFA, ~2 000 instruments/an - Pesage des cuves - Pesage et dimensionnement (doseuse) ## Métrologie légale Usages réglementés nécessitant des instruments en métrologie légale : - Fourniture d'eau et d'électricité - Bilan carbone (pesage en centrale métrique) - Transaction commerciale dès qu'il y a 2 parties et que le prix dépend du poids (cueilleur, etc.) - Douane - Réglementation radar - Santé (hôpitaux, maisons de retraites, etc.) - Sécurité des personnes **VDP** = Vente Directe au Public (commerçants, balances en libre service) **TPV** = Terminaux Point de Vente (caisse reliée à une balance) ## Service Qualité Veille au bon fonctionnement des instruments. Certaines procédures à respecter, réparti dans tout le pays en 6 grandes régions + 1 région un peu nationales. **Jérôme Paumard** : responsable de ce service. ==But : PMS conserve ses agréments pour continuer à produire, vendre, vérifier et réparer le matériel.== 300/400 personnes PMS = vérificateurs, chacun avec ses spécificités. Logiciel pour noter tout (date de vérif, étalon, test). Pour avoir l'autorisation, il faut prouver que le personnel est compétent et correctement formé (formation, compagnonnage, tests). **Vérification :** - Partie administrative : règles à respecter (doc d'approbation, etc.) - Essais métrologiques voir manuel pour chaque activité (procédure). --- # Rapport de stage LA p15/39 ## Semaine 1 — Quizzinière **Première semaine :** modifier la quizzinière logiciel pour generer un questionnaire avec des questions en fonction de l'activité, de la catégorie et du type privilégier les questions recentes faciliter la correction des questions par thème, notamment pour certains domaine précis j'ai travaillé avec une base de donnée en local pour dev, mais une fois mes modifications en production tout sera connecté directement à la base de donnée j'ai rajouté des parametres dans une table spécifique pour optimiser on charge toutes les données en mémoire au début, pour ne pas avoir à faire trop de requêtes mettre le bloc de reponse à la fin pas hardcoder le nom de colones, décaler sur le côté et rendre invisible à droite J'en ai profite pour optimiser grandement le code, tant d'attente passe de 30 secondes en moyenne à 5 secondes max de manière constante ## Semaine 2 — Instrum TC TC : vont de 80 à 89, pour le numéro de rapport ?? dans totalisateurs continu je fais ce que je veux dw le reste je dois tout noter je travaille dans `/F_IPFA/TOTALISATEUR_CONTINU`, je peux y faire ce que je veux, par contre toutes les modifications faites en dehors de ce ficher doit être tracées je vais ajouter les fenetres pour rentrer les données de tests en fonctions de ce qu'il faut faire essaies matieres dependent de instruments controle certains tests sont obligatoires : - essais matieres - essai à vitesse intermediaire si l'instruments a une vitesse intermediaire ## Semaine 4 — Sanctions / MHS current task : sanction pour la mise hors service ajjouter temps pour 3 resolution vitesse unique seulement euro / rep fab, activer la case test variation charge nulle si charge tot toutes les valeurs max sont exprimées en kilo VP : juste une parire d'essai matier *1 et 2) en rep : le meme essais mais auster en focntion de la regelementation multi vitesse vitesse variable 10% de tolérance entre le debit de theorique / debit reel G_TOLERANCE_MIN / G_TOLERANCE_MAX mobilitié dispositif indicateur du 0 pour les reparations todo ajoute variation pendant charge nul EU (un seul essai) 3 revolution entiere à vitesse max stabililté du 0 = variation charge nulle fr --- # Instrum — Référence technique insister sur en quoi ça apporte quelque chose à l'entreprise L'entreprise a un nouveau logiciel, Intrum, depuis relativement peu de temps. Il sert à enregistrer toutes les verifications, test, sanctions etc opérées sur les différentes machines mon role a été de rajouter les tests pour les totalisateurs continus dans ce logiciel, afin d'enfin se libérer les fichiers excels volants ## Description générale Bouton "Modifier" → modifier les caractéristiques d'un instrument. Différents types d'instruments. Travailler sur les **instruments automatiques : totalisateur continu**. **Fenêtre avec les caractéristiques propres :** - Validation - Choix des types de vérif : - Vérif de conformité - Vérif primitive après réparation - Vérif périodique - Mise hors service **Exemple :** - Classe 1 - N° d'approbation : LNE14568 - Révision 0 - Type instrument complet : 1 / I Fenêtre choix vérif commune à tous les types d'instruments. Tracer toutes les modifications pour que le prestataire les fasse, à part dans F_IPFA/TOTALISATEUR_CONTINU/ où je fais ce que je veux je peux faire ce que je veux. **Objectif :** - Améliorer la fenêtre de saisie des infos, ajouter des infos : débit d'alimentation minimum (ainsi que sur l'état) go -> trier par type -> selectionner un totalisateur continu -> verifier -> N appro = LNE14568 + indice de revision = 0 -> valider -> selectionner les types de test je dois rajouter les autres types chercher UI **Tests obligatoires :** - verif periodique - verification primitive apres repar - verif EU de type - controle interne HML ## Architecture - `F_modele_test_TC` = fenetre principale qui contient la sous-fenetre de test - `F_choix_verif` appelle `F_AMC_Instrum_IPFA_TC` en parametrant les bons booléens, il verifie aussi les trucs compatibles - `T_Verif.fic` stocke toutes les informations pour les vérifications ## Liste des essais 2 ver insta 3 exxam admin 4 instruments de controlle 5 controle du 0 7 mobilitié du dispositif indicateur de 0 8 variation essai charge nulle 9 rp essai max 10 rp essai intermediaire 11 rp essaie min 12 essais matieres 13 sup essai max 14 sup essai min 15 essaie sup intermediaire ## Tableau de correspondance T_Verif / Essais TC | rubrique t_verif | essai TC | | --------------- | --------------- | | BLN_exam_admin | exam admin | | BLN_fidel_raccord | verif install | | BLN_mobilitie | mobilitié dispositif indicateur de zero (en rep) | | BLN_fidel_08max | instrument de controle | | BLN_sensibilite | controle du zero | | BLN_inclinaison | variation pendant l'essai à charge nulle EU | | BLN_extinction_9e | variation pendant l'essai à charge nulle FR | | BLN_exact_tare | VP essais matiere | | BLN_juste_sans_tare | RP essais max | | BLN_juste_avec_tare | RP essai min | | BLN_just_statique | RP essais vitesse inter | | BLN_excentration_angle | sup essai max | | BLN_excentration_allege | sup essai min | | BLN_excentration_centre | sup essai vitesse intermediare | | BLN_gravite | sanction | ## Formules somme min <= (QMax * t / 3600) avec t = temps de 3 revolutions entiere, qmax en t/h ou kg/h EMT (ecart maxiemal total / autorise quelquchose) = % (QMax * t / 3600) avec % en fonction de la classe (0.05% de QMax pour classe 0,5, 0,1% pour classe 1, 0,2% pour classe 2) ## Conventions booléens `BLN_acces_X` : le technicien peut cocher ou non la case `BLN_X` : le test doit etre fait ## Abréviations CST = constante cat = categorie ? RPY mvt = mouvement ? PV = proces verbal PJ = piece jointe MARQ = marquage régime OIML 1 = 1997 et 2 = 2014 ## Questions - verifier BLN acces pas acces - comment je fais pour acceder au fichier/à la fenetre contenant du code - choix_verif le bouton sera forcement actif si c'est le meme numero que le nombre d'occurence, why ## Configuration - copier le config.ini correct pour fix DossierMAJ dans le Exe/Instrum/config.ini : `DossierMAJ=C:\Mes Projets\Instrum\Exe\Instrum\DossierMAJ` - copier Instrum dans `C:\Mes Projets\Instrum\Exe\Instrum` - copier travail stagiaire dans `C:\Mes Projets\Instrum` - importer (accueil -> ouvrir) tout verif menu - importer `F_modele_test_TC.wdw` et `QD_ipfa_TC_ess_sep.WDR` - importer analyse : - copier analyse "vierge" dans `Exe\Instrum` - aller dans la visualisation de l'analyse - clic droit - "ajouter nouveau fichier de données" - "utiliser fichier d'une base existente" - "hfsql classic" - "definir une nouvelle connection" - mettre le chemin et le nom (du ficher dans `Exe\Instrum`) - terminer - changer de fichier, windev devrait proposer de mettre à jour les données : accepter j'ai créé un "faux" ficher pour TC dans l'analyse en copiant celui des TD // importer `Tp_approbation.{FIC,ndx}` ## Ajout — Modifications hors dossier TC Je reference ici tous les changements faits en dehors du dossier `F_IPFA/TOTALISATEUR_CONTINU`. À chaque endroit modifié il y a aussi un commentaire commençant par "stagiaire". **configuration Instrum, fichier d'initialisation :** corrige les noms de propriétés de `Tp_utilisateur` : `Tp_utilisateur.DAT_Dernier_Rapatriement_Marq` -> `Tp_utilisateur.DAT_Dernier_Rapatriement` etc **tests pour empecher des crash dans `G_SUB_Alertes()` ligne 45 à peu près et dans `G_SUB_AlertesDate()`** comment ligne 67 **optimise `F_choix_verif`, remplace 21 tests sur les meme 3 booléens par un test sur un nombre, lignes 204, 280, 312, 343, 360** **separe les logiques de humidimetre et TC lignes 370** avant : ```wlangage CAS CST_TYPE_INSTRU_HUMIDIMETRE, CST_TYPE_INSTRU_TOTALISATEUR_CONTINU SI cb_Verif_ML[9] = 1 ALORS INT_N_clefverif = 31 FIN ``` après : ```wlangage CAS CST_TYPE_INSTRU_HUMIDIMETRE SI cb_Verif_ML[9] = 1 ALORS INT_N_clefverif = 31 FIN //20251103 : #20534 : RPY : Fin modif // stagiaire : tests TC CAS CST_TYPE_INSTRU_TOTALISATEUR_CONTINU SI cb_Verif_ML[9] = 1 ALORS INT_N_clefverif = 31 FIN SI cb_Verif_ML[1] = 0 ET cb_Verif_ML[4] = 0 ALORS combinaisonCB = cb_Verif_ML[2] * 4 + cb_Verif_ML[3] * 2 + cb_Verif_ML[5] * 1 SELON combinaisonCB CAS 1 : INT_N_clefverif = 81 // 001 // 5 CAS 2 : INT_N_clefverif = 84 // 010 // 3 CAS 3 : INT_N_clefverif = 80 // 011 // 5 CAS 4 : INT_N_clefverif = 86 // 100 // 2 CAS 5 : INT_N_clefverif = 82 // 101 // 5 CAS 6 : INT_N_clefverif = 85 // 110 // 2 CAS 7 : INT_N_clefverif = 83 // 111 // 5 FIN FIN //Vérification CE "seul" SI cb_Verif_ML[1] = 1 ALORS INT_N_clefverif = 87 // 1 FIN SI cb_Verif_ML[4] = 1 ALORS SI cb_Verif_ML[5] = 1 ALORS INT_N_clefverif = 80 // 5 SINON INT_N_clefverif = 88 // 4 FIN FIN ``` **tests pour TC en ML ligne 186 — initialisation `cb_Verif_ML`** avant : ```wlangage CAS CST_TYPE_INSTRU_TOTALISATEUR_CONTINU //20251203 : #20597 : RPY : Début modif cb_Verif_ML[7]..Etat = Grisé //20251203 : #20597 : RPY : Fin modif cb_Verif_ML[9]..Etat = Actif //20251126 : #--- : RPY : Fin modif ``` après : ```wlangage CAS CST_TYPE_INSTRU_TOTALISATEUR_CONTINU // stagiaire : tests disponibles pour TC en ML cb_Verif_ML[1]..Etat = Actif // verif UE conformité E type cb_Verif_ML[2]..Etat = Actif // revision periodique cb_Verif_ML[3]..Etat = Actif // verif primitive après réparation cb_Verif_ML[4]..Etat = Actif // verif primitive limitée à examen administratif cb_Verif_ML[5]..Etat = Actif // verification periodique cb_Verif_ML[6]..Etat = Grisé // dépannage en urgence cb_Verif_ML[7]..Etat = Grisé // mise hors service cb_Verif_ML[8]..Etat = Grisé // combinaison IPFNA/TPV cb_Verif_ML[9]..Etat = Actif // sanction ``` **test pour TC HML ligne 74 — initialisation `cb_verif_HML`** **boucle pour association valeur CB table, à chaque modification de `cb_Verif_ML` ligne 142** avant : ```wlangage GF_TAB_verif[1] = cb_Verif_ML[1] GF_TAB_verif[2] = cb_Verif_ML[2] GF_TAB_verif[3] = cb_Verif_ML[3] GF_TAB_verif[4] = cb_Verif_ML[4] GF_TAB_verif[5] = cb_Verif_ML[5] //20200617 cdcv9 2.18 mrn début GF_TAB_verif[6] = cb_Verif_ML[6] //20200617 cdcv9 2.18 mrn fin //20250520 : #20103 : RPY : Début modif GF_TAB_verif[7] = cb_Verif_ML[7] //20250520 : #20103 : RPY : Fin modif //20250520 : #20102 : RPY : Début modif GF_TAB_verif[8] = cb_Verif_ML[8] //20250520 : #20102 : RPY : Fin modif //20251118 : #20556 : RPY : Début modif GF_TAB_verif[9] = cb_Verif_ML[9] //20251118 : #20556 : RPY : Fin modif ``` après : ```wlangage nVerif est un entier = GF_TAB_verif.Occurrence POUR i = 1 À nVerif GF_TAB_verif[i] = cb_Verif_ML[i] FIN ``` **modifie les données supplémentaires d'un TC en lançant `F_AMC_Instrum_IPFA_TC`** ```wlangage // BT_ SELON ZDL_instru_type..ValeurAffichée CAS CST_TYPE_INSTRU_TRIEUSE Ouvre(F_AMC_Instrum_IPFA,ZDT_NumPMS,G_CST_mode_appel_F_ajout_instrum_consultation,ZDL_Classe..ValeurAffichée,ZDL_Multi_etendue..ValeurAffichée,ZDL_Unite..ValeurAffichée) CAS CST_TYPE_INSTRU_TOTALISATEUR_DISCONTINU Ouvre(F_AMC_Instrum_IPFA_TD,ZDT_NumPMS,G_CST_mode_appel_F_ajout_instrum_consultation,ZDL_Classe..ValeurAffichée,ZDL_Multi_etendue..ValeurAffichée,ZDL_Unite..ValeurAffichée) //20231031 : #19437 : RPY : Début modif CAS CST_TYPE_INSTRU_DOSEUSE Ouvre(F_AMC_Instrum_IPFA_DP,ZDT_NumPMS,G_CST_mode_appel_F_ajout_instrum_consultation,ZDL_Classe..ValeurAffichée,ZDL_Multi_etendue..ValeurAffichée,ZDL_Unite..ValeurAffichée) //20231031 : #19437 : RPY : Fin modif CAS CST_TYPE_INSTRU_TOTALISATEUR_CONTINU Ouvre(F_AMC_Instrum_IPFA_TC, ZDT_NumPMS, G_CST_mode_appel_F_ajout_instrum_consultation, ZDL_Classe..ValeurAffichée, ZDL_Multi_etendue..ValeurAffichée, ZDL_Unite..ValeurAffichée) AUTRE CAS FIN ``` **`F_verif` clic sur `BT_Maj` ligne 113 — ouvre le bon modèle de test pour TC** avant : ```wlangage SELON G_tab_bandeau["ID_categ"] CAS CST_ID_CAT_HABIL_IPFA SELON G_tab_bandeau["type_instru"] CAS CST_TYPE_INSTRU_TRIEUSE MDIOuvre(F_modele_test_tri,"","",STR_ID_Verif) CAS CST_TYPE_INSTRU_TOTALISATEUR_DISCONTINU MDIOuvre(F_modele_test_TD,"","",STR_ID_Verif) CAS CST_TYPE_INSTRU_DOSEUSE MDIOuvre(F_modele_test_DP,"","",STR_ID_Verif) //20251114 : #20534 : RPY : Début modif CAS CST_TYPE_INSTRU_TOTALISATEUR_CONTINU MDIOuvre(F_modele_test_HUM,"","",STR_ID_Verif) ``` après : ```wlangage SELON G_tab_bandeau["ID_categ"] CAS CST_ID_CAT_HABIL_IPFA SELON G_tab_bandeau["type_instru"] CAS CST_TYPE_INSTRU_TRIEUSE MDIOuvre(F_modele_test_tri,"","",STR_ID_Verif) CAS CST_TYPE_INSTRU_TOTALISATEUR_DISCONTINU MDIOuvre(F_modele_test_TD,"","",STR_ID_Verif) CAS CST_TYPE_INSTRU_DOSEUSE MDIOuvre(F_modele_test_DP,"","",STR_ID_Verif) //20251114 : #20534 : RPY : Début modif // stagiaire : ouvre le bon modele de test CAS CST_TYPE_INSTRU_TOTALISATEUR_CONTINU MDIOuvre(F_modele_test_TC,"","",STR_ID_Verif) ``` **Contacts à mettre à jour :** `jerome.paumard` -> `ivanoe.megnin.preiss` dans `Tp_utilisateur` et `Tp_autorisation` --- # Notes WLangage ## Variant Variant : type de variables qui peut contenir n'importe quel truc simple (chaine, char, nombre, booleen) ou NULL. NULL signifie non affecté ```wlangage val est un Variant val = NULL SI val = 0 ALORS // renvoit Vrai car feieqfnwqfnqwnfqw appareimment comparer une variable nulle et une valeur ça marche pas, donc dans le doute on renvoit... vrai... wtf FIN ``` `G_tab_bandeau` contient toutes les infos de l'instrument actuellement sélectionné dans la page initiale --- # Organisation **Collaboration :** partage du code avec OneDrive windev c'est vraiment nul à chier, genre vraiment je prefererais faire de l'assembleur sans lsp avec que les man page # question qu'est-ce que totalisation minimum