• Aucun résultat trouvé

DryingSolver et PlaningSolver Guide pour le traitement de données entrantes

Table des matières

Introduction 89

1. Mode d’emploi de la planification du séchage 89

1.1 Paramètres de planification 90

1.2 Priorité des séchoirs 91

1.3 Exécution du traitement de données 93

1.4 Utilisation de DryingSolver 94

2. Mode d’emploi de la planification du rabotage 94

2.1 Paramètres de planification 95

2.2 Exécution du traitement de données 96

2.3 Utilisation de PlaningSolver 97

2.4 Utilisation du postProcess 98

3. Base de données Résolu 99

3.1 tblCalendrierProduction 99 3.2 tblProductionSciageActif 99 3.3 tblDtInactifProduitSciage 100 3.4 tblProduit 100 3.5 tblEquivProduitSecVert 101 3.6 tblRedistBoisVert 101 3.7 tblRedistBoisVertPeriode 102 3.8 tblRedistBoisSec 102 3.9 tblRedistBoisSecPeriode 102 3.10 tblPlanChargement 103 3.11 tblPlanifLotSechageEntete 103 3.12 tblPlanifLotSechage 103 3.13 tblCeduleBoisASecher 104 3.14 tblProjection10Sem 104 4. Informations complémentaires 105 4.1 tblTempsSechage 105 4.2 largeurPaquets 105 4.3 tblRestriction 106 4.4 PrioriteSéchoir 106

4.5 parametres 107

4.6 code 107

4.7 Taux de production de rabotage 108

4.8 Horaire de rabotage 108

5. Fichiers entrants pour le séchage 109

5.1 general.csv 109 5.2 product.csv 109 5.3 productInfo.csv 110 5.4 produitsParRegle.csv 110 5.5 regles.csv 111 5.6 processor.csv 111 5.7 processTemplate.csv 112 5.8 supply.csv 112 5.9 demand.csv 112 5.10 longueurs.csv 113 5.11 productPriority.Sn.csv 113 5.12 prioritySet.csv 113 5.13 recette.csv 114

6. Fichiers entrants pour le séchage 115

6.1 capacity 115 6.2 data 116 6.3 demande 117 6.4 impossible 117 6.5 input 118 6.6 output 118 6.7 processus 118 6.8 stock 119 6.9 supply 119 6.10 value 119

8. Fichiers sortants au rabotage 122

8.1 .r_schedule 122

8.2 .r_kilnLoading 122

8.3 LDS 123

9. Modifications possibles 124

9.1 Ajout d’une usine 124

9.2 Ajout d’un séchoir 124

9.3 Ajout d’un produit 124

10. Résolution en cas d’erreur 124

10.1 Erreur de compilation de l’outil 124

10.2 Erreur de logique 125

10.3 Erreur de données 125

Annexe 1 – Schématisation de l’échange d’information 126

Annexe 2 – Tableau de bord du traitement de données Excel au séchage 127

Introduction

Les programmes DryingSolver et PlaningSolver, développés par le consortium de recherche FORAC, sont utilisés pour produire une planification de séchage et de rabotage optimisée de façon automatique. Lors d’un projet de maîtrise en collaboration avec Produits forestiers Résolu (PFR), un exemple de traitement de données automatique, reliant la base de données de l’entreprise aux fichiers entrants du programme, fût développé sur Excel. Puisque les outils peuvent être adaptés aux spécificités des usines, le projet a permis de récolter toutes les données nécessaires et de modéliser chaque usine appartenant aux partenaires en vue d’intégrer une méthode de planification semi-automatique et complète.

Le présent document contient les instructions pour l’utilisation des outils Excel, de DryingSolver (1) et de PlaningSolver (2) ainsi qu’une présentation détaillée des informations de production provenant de la base de données (3), des paramètres à entrer manuellement (4) et du traitement de données pour construire les fichiers entrants dans l’outil pour le séchage (5) et le rabotage (6). Le format des fichiers sortants du séchage (7) et du rabotage (8) sont présentés pour faciliter les relations entre le programme et le système de l’entreprise. Puis, on identifie la marche à suivre pour faire des modifications dans le traitement de données Excel (9) et enfin, on présente une liste d’idées pour la résolution en cas d’erreur (10).

1. Mode d’emploi de la planification du séchage

L’outil de traitement de données Excel a été développé pour une utilisation temporaire en vue de tester la compatibilité entre le fonctionnement de l’entreprise et le programme DryingSolver. Le traitement fut tout de même pensé pour pouvoir être effectué de façon automatique en vue de faciliter les tests et de présenter une logique de structure potentielle au moment de l’implantation officielle. En voici le mode d’emploi :

1.1 Paramètres de planification

La première étape est d’entrer les paramètres de planification spécifiques à l’usine visée. Les espaces à remplir sont indiqués en vert sur l’image suivante. Le reste des paramètres se met automatiquement à jour ou reste constant d’une utilisation à l’autre. L’ensemble du tableau de bord est présenté à l’Annexe 1.

Section « Générale »

- Usine : Code de l’usine. Se référer à la table « code » dans la section 4 pour faire le lien avec les codes utilisés dans la base de données Résolu

- Date : Date de la base de données à partir de laquelle la planification est effectuée. Typiquement la date d’aujourd’hui.

- Durée : Durée de la planification. Typiquement 56 jours, soit 8 semaines. - Répartition : Nombre d’heures par période.

- 4fileName : Nom donné au fichier .csv auquel l’usine sera ajoutée au moment de l’exportation.

- 1Path : Répertoire dans lequel on peut trouver la base de données Access.

Section « Date » :

- Semaine 1 : Date de début de la planification. Typiquement lundi suivant la date d’aujourd’hui.

4 Paramètres qui ne changent pas, mais qu’il faut remplir lors de la première utilisation

Générale Usine: LD 20 Date: 2017-03-10 15 Durée: 28 jour Fin: 2017-04-10 Répartition: 6 heures/période 20 Total: 112 périodes 15 Équivalent: 4 périodes/jour fileName: PFResolu Path: C:\Drying\BaseAccess 20 15 Séchoir Date

Hauteur paquet: 69 Semaine 1 2017-03-13 Nbre rangées min: 3 Semaine 2 2017-03-20 Nbre rangées max: 3 Semaine 3 2017-03-27 Rempli à: 95% Semaine 4 2017-04-03

Modèle Semaine 5 2017-04-10

Poids retard 1 Semaine 6 2017-04-17 Poids priorité 0 Semaine 7 2017-04-24 Metaperiod 1 Semaine 8 2017-05-01

Section « Séchoir » :

- Hauteur paquet : Nombre de rangs de haut. Si tous les séchoirs n’ont pas tous la même hauteur, indiquer le nombre de rangs du séchoir le plus haut.

- Nbre rangées min : Nombre minimum de paquets de hauts. Si tous les séchoirs n’ont pas tous la même hauteur, indiquer le nombre de paquets minimum dans le séchoir le moins haut.

- Nbre rangées max : Nombre maximum de paquets de hauts. Si tous les séchoirs n’ont pas tous la même hauteur, indiquer le nombre de paquets maximum dans le séchoir le plus haut.

- Rempli à : Taux d’occupation minimum des séchoirs. Représente la limite d’utilisation des séchoirs dans le cas où le programme crée ses propres plans de chargement. Si le taux est trop haut, il est possible qu’il n’y ait pas de solution. C’est pourquoi il est conseillé de ne pas fixer une limite inférieure à 95%. Section « Modèle » :

- Poids retard : Importance du suivi de la demande (voir section « 5.6 demand.csv ») dans les décisions d’optimisation (fonction objectif). La valeur du poids retard doit être en relation avec la valeur du poids priorité. Typiquement égale à 1.

- Poids priorité : Importance du suivi des priorités (voir section « 5.12 productPriority.Sn ») dans les décisions d’optimisation (fonction objectif). La valeur du poids retard doit être en relation avec la valeur du poids priorité. Typiquement égale à 0,1.

- Mélange : Valeur binaire (OUI/NON) pour déterminer si l’on permet de mélanger les usines d’origine dans un même séchoir ou non. D’un point de vue pratique, il n’est pas recommandé de mélanger les origines. Par contre, lorsque les inventaires sont bas, il peut être nécessaire de les mélanger pour remplir les séchoirs et ainsi obtenir une solution.

1.2 Priorité des séchoirs

La seconde étape est d’entrer les priorités par séchoir. Ici, on ne parle pas des restrictions techniques des séchoirs (voir section « 4.3 tblRestriction »), mais plutôt d’une préférence. Ici aussi, les paramètres doivent être écrits dans les zones vertes.

On peut voir dans l’image ci-dessus qu’il y a un tableau de 2 lignes et de 2 colonnes par séchoir. Dans l’exemple, on peut voir que l’usine en question possède 4 séchoirs puisqu’il n’y a rien d’écrit dans les blocs S5 et S6.

1 Priorité Séchoir

S1 S2

Caractéristique Longueur Caractéristique Longueur 20 EPI2040*PIN2040Long 20EPI2040*PIN2040 15 EPI*PIN 15EPI2030*PIN2030Long

S3 S4

Caractéristique Longueur Caractéristique Longueur 20 EPI2060*EPI2030 20GVEPI*GVPIN /8 15 EPI2030*PIN2030Long 15EPI2060*PIN2060

S5 S6

Caractéristique Longueur Caractéristique Longueur

20 20 15 15 S1 Caractéristique Longueur EPI2040*PIN2040 Long EPI*PIN

la préférence aura de l’importance. Dans le cas où aucun type de bois en priorité n’est disponible, le programme ne considérera aucune autre préférence dans les produits « restants ». Voici une explication des sections à modifier et des codes à utiliser pour représenter les priorités.

Section « Caractéristique » :

- Usine : Pour prioriser les produits sciés dans une certaine usine, utiliser le code de deux lettres tel que décrit dans la table « code » (voir section « 4.6 code »). Par exemple, pour indiquer que l’on préfère sécher le bois de LaDoré dans un certain séchoir, il faut écrire « LD » dans la première ou la deuxième ligne.

- Essence : Pour prioriser une certaine essence, utiliser le code de trois lettres tel que décrit dans la table « code » (voir section « 4.6 code »). Par exemple, pour indiquer que l’on préfère sécher de l’épinette dans un certain séchoir, il faut écrire « EPI » dans la première ou la deuxième ligne.

- Dimension : Pour prioriser une certaine dimension, utiliser le code de quatre chiffres utilisés dans les codes produits (soit 2x3 = 2030, 2x4 = 2040, etc.).

L’ordre d’écriture est important bien que tous les éléments ne soient pas nécessaires. On devrait donc retrouver les informations comme suit (sans tiret) : Usine-Essence-Dimension. Les caractéristiques devraient être composées d’un ou de deux types de produits reliés par le symbole approprié « * ». Voici quelques exemples d’écriture permise :

LD LDEPI LDEPI2040 EPI EPI2040 2040 LD*GV LDEPI*GV LD*GVEPI LDEPI*GVEPI LDPIN2030*GV LD*GVEPI2040 LDEPI2040*GVPIN2030 EPI*PIN EPI2040*PIN EPI*PIN2030 EPI2040*PIN2040 2040*2030 Section « Longueur »

La longueur représente la continuité des caractéristiques des priorités et n’est pas obligatoire. On peut vouloir prioriser les produits de 7, 8 et 9 pieds (« COURT »), les produits de 10 pieds et plus de longs (« LONG ») ou encore une longueur en particulier en ajoutant un symbole devant le chiffre (« / »). Si on veut prioriser les produits de 16 pieds par exemple, on devrait écrire « /16 ».

ATTENTION : S’il y a une erreur dans l’écriture des priorités, l’outil ne la prendra pas en compte et fournira tout de même une solution.

1.3 Exécution du traitement de données

Une fois les paramètres et les priorités entrés, on peut passer à l’exécution. De façon générale, il suffit d’appuyer sur le bouton « TRAITEMENT COMPLET » pour que le traitement s’effectue au complet. Les autres boutons qu’on peut voir dans la figure ci-dessous correspondent chacun à une section du processus.

- Effacer : Efface les informations du dernier traitement. Utiliser surtout pour réduire la taille du fichier, nécessaire lors de partage par courriel par exemple.

- Traitement complet : Procède aux traitements des données à partir des paramètres et priorités choisis précédemment.

Décomposition des étapes du « traitement complet » :

1. Import Access : Importe les tables de la base de données de l’entreprise (voir section « 3 Base de données Résolu ») à partir de la date écrite en paramètre.

2. Redistribution et Production : Compile les entrées actives reliées à l’usine ciblée dans les tables de base de données par rapport aux échanges de bois permis dans la redistribution et à l’inventaire vert. 3. Objectif : Compile les entrées reliées à l’usine ciblée dans les tables de base de données par rapport aux

plans de chargement existant et à l’approvisionnement du sciage.

4. Mise à jour des feuilles : Remplis les fichiers csv entrants (voir section « 5. Fichiers entrants »). 5. Export .csv : Exporte les fichiers csv entrants (voir section « 5. Fichiers entrants »).

Note : Il est possible de procéder à des tests rapides sur le choix des paramètres en utilisant les étapes 3 et 4, sans avoir à repasser par les étapes d’importation et de traitement de données (étapes 1 et 2).

1. Changer un paramètre ou une priorité 2. Appuyer sur « 3. Mise à jour des feuilles » 3. Appuyer sur « 4. Export .csv »

1.4 Utilisation de DryingSolver

Les fichiers csv que l’outil exporte se retrouvent dans le même que celui-ci, « C:\Drying\dataMixed », il est donc important de ne pas les déplacer. L’exécutable « runSolverMixed.bat » devrait se retrouver dans le répertoire « C:\Drying ». Il doit contenir une appellation semblable à celle-ci dessous :

DryingSolverGUIReleaseV5_8.exe --cp --lds --useCplex --loadingPlanAsNeeded --data dataMixed --file

XXPFResolu --solutions solMixed --model ModeleD2multi3PrioritySetsR2cplexObjPhilL.mod --solver

"gusek\glpsol.exe" --export-optimal-solution --export-plan --max-time 120 --gap 0.05 –v

Les paramètres à ajuster sont indiqués en gras, soit :

- XXPFResolu : Correspond à l’usine à planifier. Se retrouve aussi dans le nom de tous les fichiers entrants et sortants. Pour plus de détails sur les codes d’usine, voir la section « 4.6 code ».

- 120 : Temps laissé à l’outil pour trouver une solution. Il peut être nécessaire de laisser plus de temps au modèle dans certaines situations complexes. À ajuster au besoin.

Il suffit d’appuyer deux fois sur le .bat pour obtenir un plan optimisé utilisant les plans de chargement existants lorsque possible et créant ses propres plans de chargement autrement. Les solutions se trouvent dans le répertoire « C:\Drying\solMixed » et sont présentés dans la section « 7 Fichiers sortants de DryingSolver ».

2. Mode d’emploi de la planification du rabotage

L’outil de traitement de données Excel a été développé pour une utilisation temporaire en vue de tester la compatibilité entre le fonctionnement de l’entreprise et le programme PlaningSolver. Le traitement fut tout de même pensé pour pouvoir être effectué de façon automatique en vue de faciliter les tests et de présenter une logique de structure potentielle au moment de l’implantation officielle. En voici le mode d’emploi :

2.1 Paramètres de planification

La première étape est d’entrer les paramètres de planification spécifiques à l’usine visée. Les espaces à remplir sont indiqués en vert sur l’image suivante. Le reste des paramètres se met automatiquement à jour ou reste constant d’une utilisation à l’autre. L’ensemble du tableau de bord est présenté à l’Annexe 2.

Section « Générale »

- Usine : Code de l’usine. Se référer à la table « code » dans la section 4 pour faire le lien avec les codes utilisés dans la base de données Résolu

- Date : Date de la base de données à partir de laquelle la planification est effectuée. Typiquement la date d’aujourd’hui.

- Durée : Durée de la planification. Typiquement 28 jours, soit 4 semaines. - Fin : Date de fin de la période de planification.

- Total : Nombre de périodes total.

- Quart de travail : Nombre de quarts par jour

- Temps minimum : Temps minimum de production d’un produit en heure. Typiquement égale à 0.5. - 5fileName : Nom donné au fichier .csv auquel l’usine sera ajoutée au moment de l’exportation.

- 1Path : Répertoire dans lequel on peut trouver la base de données Access.

Section « Faction» :

- Semaine 1 : Date de début de la planification. Générale Usine: LD Date: 2017-03-07 Durée: 28 jours Fin: 2017-04-10 Total: 84 périodes

Quart de travail: 3 quarts/jour Temps minimum: 1 fileName: PFResolu Path: C:\Drying\BaseAccess Faction Quart Semaine 1 2017-03-13 4 Semaine 2 2017-03-19 4 Semaine 3 2017-03-26 4 Semaine 4 2017-04-02 4 Semaine 5 2017-04-09 4 Semaine 6 2017-04-16 4 Modèle minTimeInLength 1 fullCapacity Horizon 84 Semaine termine le : Samedi

Section « Modèle » :

- minTimeInLength : Temps de production minimum de produits d’une même longueur. Typiquement égal à 1.

- fullCapacityHorizon : Période de temps où l’on oblige l’outil à produire à pleine capacité pour ne pas avoir de trous dans l’horaire. Typiquement supérieur à 63 ou l’équivalent de 3 semaines.

- Semaine termine le : Dernière journée de l’horaire de production. Préférence du planificateur, variant selon l’usine.

2.2 Exécution du traitement de données

Une fois les paramètres et les priorités entrés, on peut passer à l’exécution. De façon générale, il suffit d’appuyer sur le bouton « TRAITEMENT COMPLET » pour que le traitement s’effectue au complet. Les autres boutons qu’on peut voir dans la figure ci-dessous correspondent chacun à une section du processus.

- Effacer : Efface les informations du dernier traitement. Utiliser surtout pour réduire la taille du fichier, nécessaire lors de partage par courriel par exemple.

- Traitement complet : Procède aux traitements des données à partir des paramètres et priorités choisis précédemment.

Décomposition des étapes du « traitement complet » :

1. Import Access : Importe les tables de la base de données de l’entreprise (voir section « 3 Base de données Résolu ») à partir de la date écrite en paramètre.

2. Redistribution et Production : Compile les entrées actives reliées à l’usine ciblée dans les tables de base de données par rapport aux échanges de bois permis dans la redistribution et à l’inventaire vert. 3. Objectif : Compile les entrées reliées à l’usine ciblée dans les tables de base de données par rapport aux

plans de chargement existants et à l’approvisionnement du sciage.

4. Mise à jour des feuilles : Remplis les fichiers csv entrants (voir section « 6. Fichiers entrants »). 5. Export .csv : Exporte les fichiers csv entrants (voir section « 6. Fichiers entrants »).

Note : Il est possible de procéder à des tests rapides sur le choix des paramètres en utilisant les étapes 3 et 4, sans avoir à repasser par les étapes d’importation et de traitement de données (étapes 1 et 2).

1. Changer un paramètre ou une priorité 2. Appuyer sur « 3. Mise à jour des feuilles » 3. Appuyer sur « 4. Export .csv »

2.3 Utilisation de PlaningSolver

Les fichiers csv que l’outil exporte se retrouvent dans le même répertoire que celui-ci, « C:\Planing\Data », il est donc important de ne pas les déplacer. L’exécutable « Optimisation_CaseV2CPLEX.bat » devrait se retrouver dans le répertoire « C:\Planing ». Il doit contenir une appellation semblable à celle-ci dessous :

call Algo_ExecutionV2CPLEX.bat XXPFResolu 400 0.10 28 84

Voici la description des paramètres en gras :

- XXPFResolu : Correspond à l’usine à planifier. Se retrouve aussi dans le nom de tous les fichiers entrants et sortants. Pour plus de détails sur les codes d’usine, voir la section « 4.6 code ».

- 400 : Limite de temps d’exécution de l’outil en secondes. On suggère au moins 300 secondes.

- 0.10 : Indique que l’optimisation arrête si la dernière solution est à moins de 10% de l’optimal. Plus la valeur est élevée, plus l’exécution sera rapide, mais moins la solution sera performante.

- 28 : Taille de chaque passe en termes de période. Plus le nombre est petit, plus l’outil a du temps pour trouver une solution.

- 84 : Le nombre total de périodes, tel qu’entré dans les « 2.1 Paramètres de planification ».

Il suffit d’appuyer deux fois sur le .bat pour obtenir un plan. Pour obtenir les solutions finales, utiliser ensuite l’outil « postProcess ».

2.4 Utilisation du postProcess

Le plan que l’on obtient de PlaningSolver, bien qu’optimal, ne répond pas aux besoins techniques de la compagnie. Les produits changent beaucoup trop souvent et peuvent revenir plusieurs fois dans une même semaine. Pour résoudre ce problème, on utilise l’outil de « postProcess » qui permet de regrouper les produits d’une même dimension sur un certain horizon, choix de trier les produits en ordre de longueurs, d’origine et d’essence en utilisant une appellation comme la suivante :

PostProcessRabotage.exe ".\\Data\\" XXPFResolu 28 DESC "" 0.1 Y Y

Voici la description des paramètres en gras :

- XXPFResolu : Correspond à l’usine à planifier. Se retrouve aussi dans le nom de tous les fichiers entrants et sortants. Pour plus de détails sur les codes d’usine, voir la section « 4.6 code ».

- 28 : Nombre de périodes pour le regroupement des produits par dimension. On a typiquement 28 périodes ou l’équivalent d’une semaine. Ainsi, on n’aura pas plus d’une plage de chaque dimension par semaine.

- DESC : Ordre de tri pour les longueurs, ASC pour ascendant et DESC pour descendant. Typiquement les usines suivent un ordre descendant, sauf Normandin dont les longueurs doivent être ascendantes. - "" : Code de dimension par laquelle on veut commencer la séquence de rabotage. On inscrit donc un

code de dimension (2030, 2040, 2060 ou 2080) ou "" si il n’y a aucune préférence.

- 0,1 : Proportion entre 0 et 1 servant à déterminer quand privilégier une famille avec peu de volume. Typiquement 0,1 puisqu’on pourrait vouloir utiliser cette option dans certain cas.

- Y : Indique si on veut oui (Y) ou non (N) regrouper les produits par origine. Normandin et LaDoré utilisent ce type de condition.

- Y : Indique si on veut oui (Y) ou non (N) regrouper les produits par essence. LaDoré et Saint-Thomas utilisent ce type de condition.

3. Base de données Résolu

Voici une présentation des différentes tables utilisées pour préparer les fichiers entrants de DryingSolver. Elles proviennent directement de la base de données de l’entreprise et sont fournies à FORAC sous forme de documents Access, pour être ensuite mises sous le bon format à partir du logiciel Excel.

IMPORTANT : Dans les tables suivantes, on retrouve trois types de champs différents reliant les produits aux usines. Il est donc important de s’assurer de toujours suivre correctement le chemin d’un produit d’une usine à l’autre à partir des règles ci-dessous :

- « strOrigine » correspond au code de l’usine où le bois est scié; - « strLocalisation » correspond au code de l’usine où se situe le bois;

- « strRecoit » correspond au code de l’usine qui devrait recevoir le bois pour la prochaine transformation. Si le bois est vert, il s’agit de l’endroit où le bois sera séché et si le bois est sec, il s’agit de l’endroit où le bois sera raboté.

3.1 tblCalendrierProduction

Cette table contient toute l’information reliée au calendrier de production du sciage. Celui-ci contient le nombre d’heures (« dblNbHrsFacSciage ») et de faction de sciage (« dblNbFacSciage ») ainsi que l’essence

Documents relatifs