class: center, middle, inverse, title-slide .title[ # Administração da Produção ] .subtitle[ ## Unidade 07: Programação da produção ] .author[ ###
Renata Oliveira ] --- layout: true <div class="my-footer"> <span> <a href="https://places.education" target="_blank">https://places.education</a> </span> </div> --- # Objetivos da Aula .pull-left[ ## O que vamos aprender: ✅ Conceitos fundamentais de programação da produção ✅ Como criar e analisar roteiros de produção ✅ Técnicas de sequenciamento de operações ✅ Métodos de cálculo de carga de máquinas ] .pull-right[ ## Por que é importante? - **Eficiência operacional**: Maximizar utilização de recursos - **Redução de custos**: Minimizar tempos ociosos - **Cumprimento de prazos**: Planejamento adequado - **Competitividade**: Otimização dos processos ] --- # O que é um Roteiro de Produção? ## Definição O **roteiro de produção** (ou roteiro de fabricação) é um documento técnico que descreve: .pull-left[ - **Sequência** de operações necessárias - **Máquinas/equipamentos** utilizados - **Tempos padrão** de processamento - **Ferramentas e dispositivos** necessários - **Materiais** consumidos em cada etapa ] .pull-right[ - **Especificações técnicas** de cada operação - **Inspeções** de qualidade - **Movimentações** entre postos - **Precedências** entre operações ] --- # Componentes de um Roteiro <table class="table table-striped table-hover" style="font-size: 30px; color: black; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> Componente </th> <th style="text-align:left;"> Descrição </th> <th style="text-align:left;"> Exemplo </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> Operação </td> <td style="text-align:left;"> Descrição da atividade a ser executada </td> <td style="text-align:left;"> Tornear eixo Ø50mm </td> </tr> <tr> <td style="text-align:left;"> Posto de Trabalho </td> <td style="text-align:left;"> Máquina ou centro de trabalho responsável </td> <td style="text-align:left;"> Torno CNC 01 </td> </tr> <tr> <td style="text-align:left;"> Tempo Setup </td> <td style="text-align:left;"> Tempo de preparação da máquina (min) </td> <td style="text-align:left;"> 15 </td> </tr> <tr> <td style="text-align:left;"> Tempo Unitário </td> <td style="text-align:left;"> Tempo de processamento por unidade (min) </td> <td style="text-align:left;"> 3.5 </td> </tr> <tr> <td style="text-align:left;"> Ferramental </td> <td style="text-align:left;"> Ferramentas e dispositivos </td> <td style="text-align:left;"> Placa 3 castanhas </td> </tr> <tr> <td style="text-align:left;"> Precedência </td> <td style="text-align:left;"> Operações que devem ser concluídas antes </td> <td style="text-align:left;"> OP 010 </td> </tr> </tbody> </table> --- # Exemplo Prático: Roteiro de Produção **Produto:** Eixo Mecânico **Material:** Aço 1045 **Quantidade:** 100 unidades <table class="table table-striped table-hover" style="font-size: 20px; color: black; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> Op </th> <th style="text-align:left;"> Descrição </th> <th style="text-align:left;"> Máquina </th> <th style="text-align:right;"> Setup (min) </th> <th style="text-align:right;"> Tempo Unit. (min) </th> <th style="text-align:left;"> Precedência </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 010 </td> <td style="text-align:left;"> Cortar barra </td> <td style="text-align:left;"> Serra </td> <td style="text-align:right;"> 5 </td> <td style="text-align:right;"> 2.0 </td> <td style="text-align:left;"> - </td> </tr> <tr> <td style="text-align:left;"> 020 </td> <td style="text-align:left;"> Tornear desbaste </td> <td style="text-align:left;"> Torno CNC-01 </td> <td style="text-align:right;"> 20 </td> <td style="text-align:right;"> 8.5 </td> <td style="text-align:left;"> 010 </td> </tr> <tr> <td style="text-align:left;"> 030 </td> <td style="text-align:left;"> Tornear acabamento </td> <td style="text-align:left;"> Torno CNC-01 </td> <td style="text-align:right;"> 10 </td> <td style="text-align:right;"> 4.2 </td> <td style="text-align:left;"> 020 </td> </tr> <tr> <td style="text-align:left;"> 040 </td> <td style="text-align:left;"> Furar centro </td> <td style="text-align:left;"> Furadeira </td> <td style="text-align:right;"> 15 </td> <td style="text-align:right;"> 3.0 </td> <td style="text-align:left;"> 030 </td> </tr> <tr> <td style="text-align:left;"> 050 </td> <td style="text-align:left;"> Inspeção dimensional </td> <td style="text-align:left;"> Sala metrologia </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 2.5 </td> <td style="text-align:left;"> 040 </td> </tr> </tbody> </table> --- # Sequenciamento: Conceitos Fundamentais ## O que é? Processo de **determinar a ordem** em que os trabalhos/tarefas serão processados nas máquinas disponíveis. ## Objetivos Principais: .pull-left[ - ⏱️ **Minimizar tempo total** (makespan) - 📅 **Cumprir prazos** de entrega - 💰 **Reduzir custos** de estoque ] .pull-right[ - ⚙️ **Maximizar utilização** de máquinas - 📊 **Balancear carga** de trabalho - 🎯 **Minimizar atrasos** ] --- # Regras de Sequenciamento <table class="table table-striped table-hover" style="font-size: 30px; color: black; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> Regra </th> <th style="text-align:left;"> Nome </th> <th style="text-align:left;"> Característica </th> <th style="text-align:left;"> Aplicação </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> FIFO </td> <td style="text-align:left;"> Primeiro a Entrar, Primeiro a Sair </td> <td style="text-align:left;"> Ordem de chegada das tarefas </td> <td style="text-align:left;"> Simples e justo </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> MTP </td> <td style="text-align:left;"> Menor Tempo de Processamento </td> <td style="text-align:left;"> Menor tempo de processamento primeiro </td> <td style="text-align:left;"> ↓ Tempo médio na fila </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> MDE </td> <td style="text-align:left;"> Menor Data de Entrega </td> <td style="text-align:left;"> Menor data de entrega primeiro </td> <td style="text-align:left;"> ↓ Atraso máximo </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> MFE </td> <td style="text-align:left;"> Menor Folga Estática </td> <td style="text-align:left;"> Menor tempo de folga primeiro </td> <td style="text-align:left;"> Urgência baseada em folga </td> </tr> </tbody> </table> A folga estática para um pedido i é calculada no momento inicial (tempo t=0) com a fórmula: `$$\text{Folga Estática}_i = \text{Data de Entrega}_i - \text{Tempo Atual} - \text{Tempo de Processamento}_i$$` --- # Exemplo Prático: Sequenciamento MTP <table class="table table-striped table-hover" style="font-size: 30px; color: black; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> Job </th> <th style="text-align:right;"> Tempo_Proc </th> <th style="text-align:right;"> Data_Entrega </th> <th style="text-align:right;"> Inicio </th> <th style="text-align:right;"> Fim </th> <th style="text-align:right;"> Atraso </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> B </td> <td style="text-align:right;"> 3 </td> <td style="text-align:right;"> 10 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 3 </td> <td style="text-align:right;"> 0 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> E </td> <td style="text-align:right;"> 5 </td> <td style="text-align:right;"> 12 </td> <td style="text-align:right;"> 3 </td> <td style="text-align:right;"> 8 </td> <td style="text-align:right;"> 0 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> C </td> <td style="text-align:right;"> 7 </td> <td style="text-align:right;"> 20 </td> <td style="text-align:right;"> 8 </td> <td style="text-align:right;"> 15 </td> <td style="text-align:right;"> 0 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> A </td> <td style="text-align:right;"> 8 </td> <td style="text-align:right;"> 15 </td> <td style="text-align:right;"> 15 </td> <td style="text-align:right;"> 23 </td> <td style="text-align:right;"> 8 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> D </td> <td style="text-align:right;"> 12 </td> <td style="text-align:right;"> 25 </td> <td style="text-align:right;"> 23 </td> <td style="text-align:right;"> 35 </td> <td style="text-align:right;"> 10 </td> </tr> </tbody> </table> --- # Análise do Sequenciamento MTP <table class="table table-striped table-hover" style="font-size: 30px; color: black; width: auto !important; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> Métrica </th> <th style="text-align:right;"> Valor </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> Makespan (tempo total) </td> <td style="text-align:right;"> 35.0 </td> </tr> <tr> <td style="text-align:left;"> Tempo médio de fluxo </td> <td style="text-align:right;"> 7.0 </td> </tr> <tr> <td style="text-align:left;"> Atraso médio </td> <td style="text-align:right;"> 3.6 </td> </tr> <tr> <td style="text-align:left;"> Número de trabalhos atrasados </td> <td style="text-align:right;"> 2.0 </td> </tr> <tr> <td style="text-align:left;"> Utilização (%) </td> <td style="text-align:right;"> 100.0 </td> </tr> </tbody> </table> --- # Gráfico de Gantt - Sequenciamento <img src="index_files/figure-html/gantt-chart-1.png" width="60%" style="display: block; margin: auto;" /> --- # Carga de Máquinas: Conceito ## Definição **Carga de máquinas** é o processo de: - Alocar ordens de produção aos centros de trabalho - Calcular a **capacidade necessária** vs **capacidade disponível** - Identificar **gargalos** e **ociosidades** - Balancear a distribuição do trabalho --- # Carga de Máquinas: Conceito ## Tipos de Carga: .pull-left[ ### Carga Finita - Respeita capacidade máxima - Considera restrições reais - Mais realista ] .pull-right[ ### Carga Infinita - Ignora restrições - Planejamento inicial - Identifica necessidades ] --- # Cálculo de Carga de Máquinas ## Fórmula Básica: `$$\text{Carga Total} = \sum_{i=1}^{n} (T_{setup_i} + T_{proc_i} \times Q_i)$$` Onde: - `\(T_{setup_i}\)` = Tempo de setup da ordem `\(i\)` - `\(T_{proc_i}\)` = Tempo de processamento unitário da ordem `\(i\)` - `\(Q_i\)` = Quantidade de peças da ordem `\(i\)` - `\(n\)` = Número de ordens --- # Cálculo de Carga de Máquinas ## Taxa de Utilização: `$$\text{Utilização (%)} = \frac{\text{Carga Total}}{\text{Capacidade Disponível}} \times 100$$` --- # Exemplo Prático: Carga de Máquinas <table class="table table-striped table-hover" style="font-size: 25px; color: black; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> Ordem </th> <th style="text-align:left;"> Produto </th> <th style="text-align:left;"> Maquina </th> <th style="text-align:right;"> Setup_h </th> <th style="text-align:right;"> Tempo_Unit_h </th> <th style="text-align:right;"> Quantidade </th> <th style="text-align:right;"> Carga_Total_h </th> <th style="text-align:right;"> Carga_Setup_h </th> <th style="text-align:right;"> Carga_Proc_h </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> OP-001 </td> <td style="text-align:left;"> Eixo A </td> <td style="text-align:left;"> Torno-01 </td> <td style="text-align:right;"> 0.50 </td> <td style="text-align:right;"> 0.15 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:right;"> 8.00 </td> <td style="text-align:right;"> 0.50 </td> <td style="text-align:right;"> 7.5 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> OP-002 </td> <td style="text-align:left;"> Polia B </td> <td style="text-align:left;"> Torno-01 </td> <td style="text-align:right;"> 0.75 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:right;"> 6.75 </td> <td style="text-align:right;"> 0.75 </td> <td style="text-align:right;"> 6.0 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> OP-003 </td> <td style="text-align:left;"> Eixo A </td> <td style="text-align:left;"> Torno-02 </td> <td style="text-align:right;"> 0.50 </td> <td style="text-align:right;"> 0.15 </td> <td style="text-align:right;"> 100 </td> <td style="text-align:right;"> 15.50 </td> <td style="text-align:right;"> 0.50 </td> <td style="text-align:right;"> 15.0 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> OP-004 </td> <td style="text-align:left;"> Flange C </td> <td style="text-align:left;"> Fresa-01 </td> <td style="text-align:right;"> 1.00 </td> <td style="text-align:right;"> 0.30 </td> <td style="text-align:right;"> 20 </td> <td style="text-align:right;"> 7.00 </td> <td style="text-align:right;"> 1.00 </td> <td style="text-align:right;"> 6.0 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> OP-005 </td> <td style="text-align:left;"> Polia B </td> <td style="text-align:left;"> Torno-02 </td> <td style="text-align:right;"> 0.75 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 40 </td> <td style="text-align:right;"> 8.75 </td> <td style="text-align:right;"> 0.75 </td> <td style="text-align:right;"> 8.0 </td> </tr> </tbody> </table> --- # Análise de Carga por Máquina <table class="table table-striped table-hover" style="font-size: 20px; color: black; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> Maquina </th> <th style="text-align:right;"> Num_Ordens </th> <th style="text-align:right;"> Carga_Total_h </th> <th style="text-align:right;"> Carga_Setup_h </th> <th style="text-align:right;"> Carga_Proc_h </th> <th style="text-align:right;"> Capacidade_Semanal_h </th> <th style="text-align:right;"> Utilizacao_pct </th> <th style="text-align:left;"> Status </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> Fresa-01 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 7.00 </td> <td style="text-align:right;"> 1.00 </td> <td style="text-align:right;"> 6.0 </td> <td style="text-align:right;"> 40 </td> <td style="text-align:right;"> 17.5 </td> <td style="text-align:left;"> 🟢 Normal </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> Torno-01 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 14.75 </td> <td style="text-align:right;"> 1.25 </td> <td style="text-align:right;"> 13.5 </td> <td style="text-align:right;"> 40 </td> <td style="text-align:right;"> 36.9 </td> <td style="text-align:left;"> 🟢 Normal </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> Torno-02 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 24.25 </td> <td style="text-align:right;"> 1.25 </td> <td style="text-align:right;"> 23.0 </td> <td style="text-align:right;"> 40 </td> <td style="text-align:right;"> 60.6 </td> <td style="text-align:left;"> 🟢 Normal </td> </tr> </tbody> </table> --- # Visualização da Carga de Máquinas <img src="index_files/figure-html/plot-carga-1.png" width="60%" style="display: block; margin: auto;" /> --- # Distribuição da Carga: Setup vs Processamento <img src="index_files/figure-html/carga-composicao-1.png" width="60%" style="display: block; margin: auto;" /> --- # Balanceamento de Carga ## Estratégias para Otimizar: .pull-left[ ### Quando há Sobrecarga: - 🔄 **Realocação** de ordens - ⏰ **Horas extras** programadas - 👥 **Subcontratação** externa - 📅 **Reprogramação** de prazos - 🆕 **Investimento** em capacidade ] .pull-right[ ### Quando há Ociosidade: - 📦 **Antecipação** de produção - 🔧 **Manutenção preventiva** - 📚 **Treinamento** de equipe - 🎯 **Melhorias** de processo - 🔍 **Busca** de novos pedidos ] --- # Análise de Gargalos <table class="table table-striped table-hover" style="font-size: 30px; color: black; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> Máquina </th> <th style="text-align:right;"> Utilização (%) </th> <th style="text-align:right;"> Déficit (h) </th> <th style="text-align:left;"> Recomendação </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> Torno-02 </td> <td style="text-align:right;"> 60.6 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> Operação normal </td> </tr> <tr> <td style="text-align:left;"> Torno-01 </td> <td style="text-align:right;"> 36.9 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> Verificar oportunidades </td> </tr> <tr> <td style="text-align:left;"> Fresa-01 </td> <td style="text-align:right;"> 17.5 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> Verificar oportunidades </td> </tr> </tbody> </table> --- # Caso Completo: Fábrica de Componentes .pull-left[ Uma fábrica recebeu 5 pedidos urgentes que devem ser processados em 3 máquinas diferentes.] .pull-right[ <table class="table table-striped table-hover" style="font-size: 15px; color: black; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> Pedido </th> <th style="text-align:right;"> Operacao </th> <th style="text-align:left;"> Maquina </th> <th style="text-align:right;"> Setup_h </th> <th style="text-align:right;"> Proc_h </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P1 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> M1 </td> <td style="text-align:right;"> 0.5 </td> <td style="text-align:right;"> 2.0 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P1 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> M2 </td> <td style="text-align:right;"> 0.3 </td> <td style="text-align:right;"> 1.5 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P1 </td> <td style="text-align:right;"> 3 </td> <td style="text-align:left;"> M3 </td> <td style="text-align:right;"> 0.4 </td> <td style="text-align:right;"> 1.0 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P2 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> M1 </td> <td style="text-align:right;"> 0.5 </td> <td style="text-align:right;"> 1.0 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P2 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> M2 </td> <td style="text-align:right;"> 0.4 </td> <td style="text-align:right;"> 0.8 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P2 </td> <td style="text-align:right;"> 3 </td> <td style="text-align:left;"> M3 </td> <td style="text-align:right;"> 0.3 </td> <td style="text-align:right;"> 1.2 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P3 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> M1 </td> <td style="text-align:right;"> 0.3 </td> <td style="text-align:right;"> 1.8 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P3 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> M2 </td> <td style="text-align:right;"> 0.5 </td> <td style="text-align:right;"> 2.2 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P3 </td> <td style="text-align:right;"> 3 </td> <td style="text-align:left;"> M3 </td> <td style="text-align:right;"> 0.4 </td> <td style="text-align:right;"> 1.5 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P4 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> M1 </td> <td style="text-align:right;"> 0.5 </td> <td style="text-align:right;"> 1.5 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P4 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> M2 </td> <td style="text-align:right;"> 0.3 </td> <td style="text-align:right;"> 1.0 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P4 </td> <td style="text-align:right;"> 3 </td> <td style="text-align:left;"> M3 </td> <td style="text-align:right;"> 0.4 </td> <td style="text-align:right;"> 1.3 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P5 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> M1 </td> <td style="text-align:right;"> 0.3 </td> <td style="text-align:right;"> 2.0 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P5 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> M2 </td> <td style="text-align:right;"> 0.4 </td> <td style="text-align:right;"> 1.5 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P5 </td> <td style="text-align:right;"> 3 </td> <td style="text-align:left;"> M3 </td> <td style="text-align:right;"> 0.5 </td> <td style="text-align:right;"> 2.5 </td> </tr> </tbody> </table> ] --- # Solução: Sequenciamento por Prioridade <table class="table table-striped table-hover" style="font-size: 20px; color: black; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> Pedido </th> <th style="text-align:right;"> Tempo_Total_h </th> <th style="text-align:left;"> Cliente </th> <th style="text-align:right;"> Prazo_dias </th> <th style="text-align:right;"> Prioridade </th> <th style="text-align:right;"> Ordem_Exec </th> <th style="text-align:right;"> Inicio_h </th> <th style="text-align:right;"> Fim_h </th> <th style="text-align:right;"> Prazo_h </th> <th style="text-align:right;"> Atraso_h </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P2 </td> <td style="text-align:right;"> 4.2 </td> <td style="text-align:left;"> Beta </td> <td style="text-align:right;"> 3 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 0.0 </td> <td style="text-align:right;"> 4.2 </td> <td style="text-align:right;"> 24 </td> <td style="text-align:right;"> 0 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P4 </td> <td style="text-align:right;"> 5.0 </td> <td style="text-align:left;"> Gamma </td> <td style="text-align:right;"> 4 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 4.2 </td> <td style="text-align:right;"> 9.2 </td> <td style="text-align:right;"> 32 </td> <td style="text-align:right;"> 0 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P1 </td> <td style="text-align:right;"> 5.7 </td> <td style="text-align:left;"> Alpha </td> <td style="text-align:right;"> 5 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 3 </td> <td style="text-align:right;"> 9.2 </td> <td style="text-align:right;"> 14.9 </td> <td style="text-align:right;"> 40 </td> <td style="text-align:right;"> 0 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P5 </td> <td style="text-align:right;"> 7.2 </td> <td style="text-align:left;"> Delta </td> <td style="text-align:right;"> 5 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 4 </td> <td style="text-align:right;"> 14.9 </td> <td style="text-align:right;"> 22.1 </td> <td style="text-align:right;"> 40 </td> <td style="text-align:right;"> 0 </td> </tr> <tr> <td style="text-align:left;font-weight: bold;color: white !important;background-color: rgba(52, 152, 219, 255) !important;"> P3 </td> <td style="text-align:right;"> 6.7 </td> <td style="text-align:left;"> Alpha </td> <td style="text-align:right;"> 6 </td> <td style="text-align:right;"> 3 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:right;"> 22.1 </td> <td style="text-align:right;"> 28.8 </td> <td style="text-align:right;"> 48 </td> <td style="text-align:right;"> 0 </td> </tr> </tbody> </table> --- # Solução: Carga de Máquinas <img src="index_files/figure-html/caso-carga-1.png" width="60%" style="display: block; margin: auto;" /> --- # Resultados e Recomendações ## Análise: <table class="table table-striped table-hover" style="font-size: 20px; color: black; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> Métrica </th> <th style="text-align:left;"> Valor </th> <th style="text-align:left;"> Avaliação </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> Makespan Total </td> <td style="text-align:left;"> 28.8 horas </td> <td style="text-align:left;"> Dentro do esperado </td> </tr> <tr> <td style="text-align:left;"> Taxa Média de Utilização </td> <td style="text-align:left;"> 24% </td> <td style="text-align:left;"> Boa utilização </td> </tr> <tr> <td style="text-align:left;"> Pedidos no Prazo </td> <td style="text-align:left;"> 5/5 </td> <td style="text-align:left;"> Atende maioria </td> </tr> <tr> <td style="text-align:left;"> Atraso Médio </td> <td style="text-align:left;"> 0 horas </td> <td style="text-align:left;"> Aceitável </td> </tr> <tr> <td style="text-align:left;"> Gargalo Identificado </td> <td style="text-align:left;"> M1 </td> <td style="text-align:left;"> Requer atenção </td> </tr> </tbody> </table> .midi[ ## Recomendações: - ✅ Priorizar setup reduzido na máquina gargalo - ✅ Considerar horas extras para pedidos urgentes - ✅ Monitorar continuamente a carga da M1 ] --- # Softwares para Programação da Produção .midi[ .pull-left[ ## Softwares Comerciais - **SAP PP** - Planejamento e Controle - **Oracle SCM** - Supply Chain - **Preactor APS** - Scheduling avançado - **AspenTech** - Otimização ## Open Source / R - **simmer** - Simulação discreta - **rDEA** - Análise de eficiência - **optaplanner** - Otimização - **scheduleR** - Scheduling ] .pull-right[ ## Planilhas e Ferramentas Leves - **Excel** com Solver - **Google Sheets** + Scripts - **Microsoft Project** - **Ganttify** - **Monday.com** ] ] --- # Princípios para Boa Programação .midi[ .pull-left[ ## Planejamento ✅ **Dados precisos**: Tempos, capacidades, restrições ✅ **Comunicação**: Entre PCP, produção e vendas ✅ **Flexibilidade**: Prever contingências ✅ **Documentação**: Registrar decisões e mudanças ## Execução ✅ **Monitoramento**: Acompanhar progresso real ✅ **Agilidade**: Reagir a imprevistos ✅ **Priorização**: Focar no crítico ] .pull-right[ ## Análise ✅ **KPIs claros**: Oilização, pontualidade ✅ **Revisões**: Analisar desvios periodicamente ✅ **Melhoria contínua**: Ajustar métodos ## Tecnologia ✅ **Automatização**: Reduzir trabalho manual ✅ **Integração**: Sistemas conversando ✅ **Visualização**: Dashboards em tempo real ✅ **Backup**: Planos B e C ] ] --- # Principais KPIs <table class="table table-striped table-hover" style="font-size: 30px; color: black; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> KPI </th> <th style="text-align:left;"> Descrição </th> <th style="text-align:left;"> Meta </th> <th style="text-align:left;"> Impacto </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> Makespan </td> <td style="text-align:left;"> Tempo total de produção </td> <td style="text-align:left;"> Minimizar </td> <td style="text-align:left;"> Prazo total </td> </tr> <tr> <td style="text-align:left;"> Utilização </td> <td style="text-align:left;"> % tempo produtivo / tempo disponível </td> <td style="text-align:left;"> > 80% </td> <td style="text-align:left;"> Capacidade </td> </tr> <tr> <td style="text-align:left;"> OTIF </td> <td style="text-align:left;"> On Time In Full - entregas no prazo e completas </td> <td style="text-align:left;"> > 95% </td> <td style="text-align:left;"> Satisfação cliente </td> </tr> <tr> <td style="text-align:left;"> Lead Time </td> <td style="text-align:left;"> Tempo do pedido até entrega </td> <td style="text-align:left;"> Reduzir </td> <td style="text-align:left;"> Agilidade </td> </tr> <tr> <td style="text-align:left;"> WIP </td> <td style="text-align:left;"> Work In Process - estoque em processo </td> <td style="text-align:left;"> Minimizar </td> <td style="text-align:left;"> Capital parado </td> </tr> <tr> <td style="text-align:left;"> Setup Time </td> <td style="text-align:left;"> Tempo médio de preparação de máquinas </td> <td style="text-align:left;"> < 10% do ciclo </td> <td style="text-align:left;"> Flexibilidade </td> </tr> </tbody> </table> --- # Checklist de Programação .midi[ .pull-left[ ## Antes de Programar: - [ ] Todos os pedidos confirmados estão no sistema? - [ ] Roteiros de produção atualizados? - [ ] Capacidade das máquinas verificada? - [ ] Materiais disponíveis conferidos? - [ ] Ferramental em condições? ] .pull-right[ ## Durante a Programação: - [ ] Prioridades definidas claramente? - [ ] Restrições consideradas (precedências, calendário)? - [ ] Gargalos identificados e tratados? - [ ] Balanceamento de carga verificado? ## Após Programar: - [ ] Programa comunicado à produção? - [ ] Contingências planejadas? - [ ] Sistema de acompanhamento ativo? ]] --- # Principais Conceitos .midi[ .pull-left[ ## 📋 Roteiro de Produção - Documento técnico que define **sequência**, **máquinas**, **tempos** e **precedências** - Base para planejamento e controle - Deve ser mantido atualizado ## 🔢 Sequenciamento - Ordem de execução das tarefas - Regras: **MTP**, **FIFO**, **MDE**, **MFE**, etc. - Impacto direto em **prazos** e **custos** ] .pull-right[ ## ⚙️ Carga de Máquinas - Balanceamento entre **demanda** e **capacidade** - Identificação de **gargalos** e **ociosidades** - Decisões sobre **horas extras**, **subcontratação**, **investimentos** ]] --- # Ferramentas Apresentadas .midi[ .pull-left[ ## 🔧 Práticas - Cálculo manual de sequenciamento - Planilhas de carga de máquinas - Diagramas de Gantt - Análise de KPIs ] .pull-right[ ## 📊 Analíticas - Métricas de desempenho - Identificação de gargalos - Simulação de cenários - Otimização de decisões ]] --- # Para Saber Mais .midi[ .pull-left[ ## 📚 Livros Recomendados - **Administração da Produção** - Slack, Chambers & Johnston - **Factory Physics** - Hopp & Spearman - **Theory of Constraints** - Goldratt - **Scheduling** - Pinedo ] .pull-right[ ## 🌐 Recursos Online - APICS (Association for Supply Chain Management) - ISE Magazine (Institute of Industrial Engineers) - R for Operations Research - Coursera: Operations Management ## 🎓 Próximos Passos - Simulação de eventos discretos - Programação linear e otimização - Teoria das Restrições (TOC) ]] --- class: center, middle .huge[ **DÚVIDAS?** ]