Optimisation par REN
Principe de l’optimisation de découpe de barres
On transmet à DIAPASON la liste de pièces à fabriquer qui sont découpées dans des barres de profilés. En se basant sur des paramètres de découpe pour chaque type de barre (taille des barres, taux de chute) DIAPASON calcule de manière optimale comment doivent être débitées les barres. DIAPASON renvoie la liste des pièces avec le numéro de barre utilisé et le positionnement dans la barre.
Technique d’optimisation de découpe de barres
L’optimisation s’appuie sur :
Un document DIAPASON de type REN / Fichier optimisation
Une REN/REP
Des paramètres d’optimisation
Définition document d’optimisation de découpe de barres
Ce mécanisme d’optimisation s’appuie sur un document de type REN / Fichier optimisation.
Ce document s’appuie lui-même sur une liste figée qui :
Alimente le calcul
Permet la lecture des résultats
Les informations de cette liste sont les suivantes :
Référence | E / S ? | Descriptif |
Pièce | Entrée | Référence de la pièce à fabriquer |
Famille | Entrée | Référence du profil dans lequel doit être usinée la pièce |
Longueur | Entrée | Longueur de la pièce à usiner (à initialiser dans la même unité de mesure le paramètre décrivant la longueur de la barre). |
Casier | Entrée | Facultatif |
Barre | Sortie | Numéro de la barre utilisée |
Ordre / Barre | Sortie | Position dans la barre utilisée |
Remarque :
Pour que le calcul fonctionne correctement, tous les champs de la liste DIAPASON doivent avoir un équivalent dans la liste personnelle (même si le champ n’est pas utilisé).
Remarque : Le paramètre général DOC-DECBAR permet d'indiquer le comportement de l'algorithme d'optimisation de découpe de barres; si la valeur logique de ce paramètre est à vrai, lors de chaque itération pour la recherche d'une solution, DIAPASON remplace la dernière barre considérée par une barre dont la dimension est STRICTEMENT inférieure ; si la valeur logique de ce paramètre est à faux (valeur défaut), lors de chaque itération pour la recherche d'une solution, DIAPASON remplace la dernière barre considérée par une barre non placée dont la dimension est inférieure ou égale à la dernière barre placée.
Paramètre d’optimisation
Il faut renseigner des « Paramètres Optimisation » (Paramètres Généraux / Paramètres Utilisateurs / Documents / Paramétrage Optimisation) afin de préciser pour chaque profilé :
Sa référence ;
Sa longueur ;
Son taux de chute.
Sous la forme « référence#longueur#taux_de_chute »
Remarque :
La référence du paramètre n’a pas d’importance, il s’agit uniquement d’un identifiant unique. Seules les informations contenues dans la désignation sont essentielles.
Principe de la requête REN d’optimisation de découpe des barres
On doit fournir à DIAPASON en sortie de REN la liste des pièces à fabriquer.
Pièce | Famille | Longueur | Casier | Barre | Ordre / Barre |
TRAV_H | 1515_BLC9010 | 1800 | |||
TRAV_B | 1515_BLC9010 | 1800 | |||
MONT_D | 1515_BLC9010 | 1230 | |||
MONT_G | 1515_BLC9010 | 1230 | |||
… | … |
Cette liste est à renseigner dans l’unique liste de sortie de la REN. Il faut cependant pour chaque champ établir une correspondance entre la référence « personnelle » du champ et la référence « figée » du champ de la liste DIAPASON (sur la définition du document).
Typiquement cette liste est constituée à partir du parcours des nomenclatures de pointeurs de l’ensemble des OF d’une série
Principe de la requête REP d’optimisation de découpe des barres
DIAPASON transmet en entrée de REP la liste des pièces à fabriquer avec le numéro de la barre employée et la position dans celle-ci.
Pièce | Famille | Longueur | Casier | Barre | Ordre / Barre |
TRAV_H | 1515_BLC9010 | 1800 | 1 | 1 | |
TRAV_B | 1515_BLC9010 | 1800 | 1 | 2 | |
MONT_D | 1515_BLC9010 | 1230 | 2 | 1 | |
MONT_G | 1515_BLC9010 | 1230 | 2 | 2 | |
… | … | … | … | … | … |
Dans l’exemple ci-dessus, réalisé avec des barres de 4000 mm, le système propose de débiter :
TRAV_H et TRAV_B dans une barre (1) ;
MONT_D et MONT_G dans une autre barre (2) ;
Remarque : Si un morceau demandé est plus grand que la longueur de barre, une seule barre est utilisée pour ce morceau.
Exemple d’optimisation de découpe de barres
Exemple : Document d’optimisation de découpe de barres
Le nombre d’itérations influe sur la précision du calcul.
Le fichier trace détaille le calcul réalisé dans un fichier texte.
Exemple : Requête REN d’optimisation de découpe des barres
Dans cet exemple, on liste l’ensemble des composants « PROFIL » « ALU » d’une série.
On gère un simple compteur dans le champ « Piece » (on passe par une VBP car la REN est lancée sur chaque OF de la série).
La « SNO.GenRefCsa » contient la référence du profil. C’est sur celle-ci que doit porter le paramètre utilisateur d’optimisation (dans la désignation).
La « VBA.di-qte-lien » contient la longueur en « mm » de la pièce.
Le champ « Casier » n’est pas utilisé.
Les champs « Barre » et « OrdreBarre » ne sont pas exploités en paramètre d’entrée mais contiendront le résultat du calcul d’optimisation dans la REP.
Remarque :
Il est conseillé de rechercher les « morceaux » de barre dans la nomenclature de pointeur (« POUR CHAQUE POINTEUR GLOBAL ») et non dans la nomenclature de gestion (« POUR CHAQUE LaSerCod ») car cette dernière réalise un cumul des longueurs par référence.
VLO.IndiceFin = SLL.LanSerFabQteLan
BOUCLE VLO.Indice DE 1 A VLO.IndiceFin :
POUR CHAQUE Pointeur Global :
SI SAS.AppFam = CLO."ALU"
SI SAS.AppSFa = CLO."PROFIL"
INIT VBP.Ind = VBP.Ind + CLO.1
CREATION LISTE :
PRENDRE Piece = CHAINE( VALEUR= VBP.Ind , FORMAT= E0/3 )
PRENDRE Profil = SNO.GenRefCsa
PRENDRE Longueur = VBA.di-qte-lien
PRENDRE Casier = CGL.VIDE
PRENDRE Barre = CGL.ZERO
PRENDRE OrdreBarre = CGL.ZERO
FIN_BLOC
FIN_BLOC
FIN_BLOC
FIN_BLOC
FIN_BLOC