• Nenhum resultado encontrado

4. RESULTADOS E DISCUSSÃO

4.1. Software protótipo

O software foi desenvolvido em linguagem Delphi 2010 e é constituído por diversos módulos que serão apresentados de forma resumida a seguir:

a) Cadastro de Recursos: Permite o cadastro de todos os recursos discretos e contínuos do sistema além das respectivas restrições de cada recurso como no exemplo da Figura 32.

Figura 32 - Cadastro de recursos. Fonte: O autor

b) Cadastro de Grupo de Recursos: Este módulo permite o agrupamento de recurso que realizam tarefas similares ou que atendam as mesmas regras de turno (Figura 33).

Figura 33 - Cadastro de grupo de recursos. Fonte: O autor

c) Cadastro de Turnos: Permite a definição dos turnos de trabalho semanal e para dias específicos, que pode ser observado na Figura 34.

Figura 34 - Turnos para dias da semana e dias específicos. Fonte: O autor

A Figura 35 apresenta a tela com a sequência das regras que determinam o funcionamento correto dos turnos.

Figura 35 - Cadastro de turnos. Fonte: O autor

d) Cadastro de Produtos/Roteiros: Permite a definição da sequência de operações, com as respectivas dependências e restrições associadas a cada operação (Figura 36).

Figura 36 - Cadastro de roteiros. Fonte: O autor

Em cada operação todas as respectivas restrições deverão ser configuradas para que tenha seu funcionamento correto.

Figura 37 - Detalhe de configuração de uma operação. Fonte: O autor

e) Cadastro de Ordens: Permite o cadastramento das ordens de produção com as respectivas datas de entrega, quantidade a ser produzida e prioridades (Figura 38).

Figura 38 - Cadastro de ordens de produção. Fonte: O autor

f) Estados de calendário: Define padrões de eficiência para os recursos discretos, além da representação em cores para preenchimento no gráfico de Gantt (Figura 39).

Figura 39 - Cadastro de estados de calendário. Fonte: O autor

g) Tela de Programação: Ambiente onde será realizada a programação e a avaliação das informações da programação, com gráficos para orientar o usuário sobre o resultado de cada simulação. Por ser o principal ambiente de trabalho será um pouco mais detalhada abaixo.

A tela de programação é composta por três seções principais, iniciando pela relação de ordens de produção, a seção de gráficos e informações sobre a programação e a terceira com as ações de programação e navegação.

A seção com as ordens de produção possui informações se a mesma já foi completamente alocada e com informações de data e hora de início e término programados. O início e términos programados são encontrados a partir do início da primeira operação e o fim programado é encontrado com o término da última operação.

Os recursos foram divididos em dois gráficos distintos, sendo um para recursos discretos e outro para recursos contínuos.

O gráfico de Gantt com suas características já citadas anteriormente representa os recursos discretos com sua variação de turnos de trabalho sendo desenhadas a partir das cores definidas no cadastro de estados de calendário e com as cores das ordens definidas no respectivo cadastro. Também pode ser observada na Figura 40 que no início da barra que representa a operação, existe uma barra de espessura menor que representa o tempo em setup, ilustrado pela letra A.

Figura 40 - Tela de programação do software protótipo. Fonte: o autor

Para os recursos contínuos a melhor representação é através de três gráficos, sendo dois de linha e outro de área. O gráfico de linha azul representa o limite inferior e outro gráfico de linha vermelha o limite superior. O gráfico de área representa os valores utilizados do recurso e sua variação em função do tempo como pode ser observado na Figura 41.

Figura 41 - Gráfico de representação do recurso contínuo. Fonte: o autor

B

A B

A Figura 42 apresenta o gráfico de utilização dos recursos discretos, onde barra azul claro representa o tempo em percentual alocado em cada recurso discreto, destacado no gráfico pela letra A. A parte em branco representa o tempo disponível e ainda não alocado, representado no gráfico pela letra B e a parte hachurada representa o tempo de eficiência igual a zero, ou seja, que são considerados como não disponíveis, destacado no gráfico pela letra C.

Figura 42 - Utilização dos recursos discretos. Fonte: o autor

A Figura 43 apresenta o gráfico de espera que representa o tempo acumulado de fila no recurso. Também é possível identificar quais operações geraram o tempo de espera.

Figura 43 - Gráfico de tempo de espera acumulado. Fonte: o autor

A Figura 44 apresenta o gráfico de processos em espera que demonstra a quantidade de operações em espera e a duração destas operações o que pode sugerir a quantidade faltante de recurso discreto naquele momento e diferente do gráfico de espera não apresenta quanto tempo se está em espera mas a quantidade em horas das operações em espera.

Figura 44 - Tempo acumulado de operações em espera Fonte: o autor

O gráfico de normalização mostrado na Figura 45 apresenta as ordens de produção e sua diferença entre a data de conclusão foi programada e a data de entrega. Este gráfico esta em

escala de dias de antecipação ou quantidade de dias de atraso. Pode sugerir, por exemplo, o aumento da prioridade de ordens com provável atraso e postergação de ordens com maior folga entre a conclusão prevista e a sua data de entrega.

Figura 45 - Gráfico de normalização por data de entrega. Fonte: o autor

A Figura 46 apresenta a tela que possui informações sobre a programação tais como a quantidade total de ordens no sistema, dentre todas as ordens qual a quantidades que foram alocadas ou seja programadas com sucesso dentro do prazo de entrega, a quantidade de ordens que não foram alocadas ou parcialmente alocadas concluindo com a quantidade de ordens que foram alocadas mas que ultrapassam a data de entrega. Além das informações do número de ordens também são apresentados nesta tela informações em percentuais das respectivas quantidades de ordens e suas respectivas classificações.

Antecipação

Figura 46 - Informações sobre a programação. Fonte: o autor

A quantidade de operações segue as mesmas classificações das ordens apenas não possuindo a quantidade e nem o percentual de operações atrasadas.

Outro grupo de informações destaca indicadores da programação e possuem em sua maioria o tempo total acumulado de todas as operações o menor valor encontrado a média e o maior valor encontrado.

A informação de makespan é encontrada a partir do início da primeira operação até o término da última, ou seja, o tempo total necessário para todas as operações que foram sequenciadas sejam concluídas em outras palavras o tempo necessário para conclusão de todo trabalho.

Leadtime total representa a soma dos tempos calculados pela diferença entre o término

da última operação de uma ordem com início da primeira, ou seja, o tempo total somado dos tempos que demorou cada ordem. Os tempos mínimos e máximos representam da ordem que teve a menor diferença de tempo entre o fim e seu início bem como o tempo máximo representa a maior diferença entre o fim e o início.

O Atraso total representa a quantidade de horas somadas de cada ordem que está com sua data de conclusão programada após a data de entrega. Os tempos mínimo e máximo

representam a ordem com menor atraso e o tempo máximo o maior atraso, bem como a média representa a média de atraso da conclusão das ordens.

Setup total representa a quantidade total de horas em preparação de todas as operações,

bem como o menor setup o maior e o tempo médio de setup.

Operação total é o tempo após a realização do setup a conclusão da operação, mesmo havendo variações de eficiência, como paradas para manutenção ou refeições.

A Espera total representa o tempo que uma operação disponível para ser produzida demorou em conseguir os recursos necessários para sua operação e também estão somados a este tempo os tempos de espera entre operações.

Figura 47 - Tela do software com diversos cenários gerados. Fonte: o autor

O software também permite salvar cada programação para posteriormente comparar os indicadores avaliando qual o melhor para aquele momento da empresa. Pode ser observado na

Figura 47 que existe uma lista de simulações salvas e conforme a navegação do usuário pode ser observada os indicadores de cada uma. Caso seja mais conveniente a programação pode ser exportada para um editor de planilhas eletrônicas para que seja analisada por exemplo em forma de gráficos.

4.1.1. Sequenciamento das operações

Na Figura 48 pode-se observar a tela responsável pelo sequenciamento das operações. Como exemplo já se tem uma ordem alocada com sua respectiva sequência de operações alocadas em função do tempo no gráfico de Gantt .

O sequenciamento de uma ordem pode ser realizado manualmente com o uso do mouse.

Figura 48 - Gráfico de Gantt com todas as ordens programadas. Fonte: o autor

Além da possibilidade do sequenciamento manual com o uso do mouse o software possibilita a utilização de duas técnicas distintas para o sequenciamento das ordens de produção, sendo a primeira baseada em regras de liberação e a segunda com a utilização de algoritmos genéticos, ambas serão detalhadas nas próximas seções.

4.1.2. Utilizando regras de liberação para o sequenciamento de ordens ou operações

Como já citado no capítulo 3, as regras de liberação são bastante difundidas e utilizadas para o sequenciamento de operações. Esta seção apresentará algumas regras que foram utilizadas com software protótipo e os dados do exemplo de modelagem da seção 4.8.

Foi utilizado a regra de sequenciamento por data de entrega com três regras de liberação discutidas na seção 3.2, todas com o método de sequenciamento para frente.

O objetivo da Tabela 5 não é comparar as regras, mas sim os resultados obtidos com o pequeno experimento reforçando as diferenças entre os objetivos de cada regra de liberação.

Pode se observar na Tabela 5 que, como citado na literatura, a regra de carregamento paralelo obteve o melhor resultado com os dados da modelagem exemplo em makespan o pior indicador em termos de leadtime total e um desempenho intermediário no indicador de espera total.

Tabela 5 - Resultados comparativos entre regras de liberação. Fonte: o autor

Regra de liberação Makespan Leadtime total Espera Total

Ordem 627:00:00 893:30:00 660:00:00

Minimização de WIP 627:00:00 799:00:00 134:00:00 Carregamento Paralelo 505:30:00 968:00:00 462:00:00

Em contrapartida a regra de liberação de minimização de WIP, obteve os melhores resultados em leadtime total e espera total.

O desenvolvimento de regras de liberação no software protótipo será apresentado na seção 5.1.4.

4.1.3. Utilização dos Algoritmos Genéticos no software protótipo

Outra forma de sequenciamento desenvolvida no software protótipo foi a adoção de Algoritmos Genéticos discutido em detalhes na seção 4.7.2.

A Figura 49 apresenta a tela de parâmetros para o Algoritmo Genético desenvolvido no software protótipo. Além dos parâmetros tradicionais do Algoritmo Genético como tamanho da população inicial, número de gerações e taxa de mutação foram adicionados dois parâmetros como o tempo máximo de execução. O segundo parâmetro adicionado é o percentual de reaproveitamento de soluções, onde o software ao invés de sempre gerar soluções aleatórias pode fazer uso de soluções salvas anteriormente, como soluções geradas anteriormente por um Algoritmo Genético ou por regras de liberação. Este parâmetro pode ajudar o Algoritmo Genético a partir de soluções boas continuar sua busca, sendo que o restante da população será completado por soluções geradas aleatoriamente.

Figura 49 - Quadro de parâmetros do Algoritmo Genético do software protótipo. Fonte: o autor

Na Tabela 6 são apresentados os resultados da utilização do Algoritmo Genético com os dados da modelagem (exemplo da seção 4.8), utilizando como índice de ponderação 100% para makespan.

Os parâmetros utilizados foram: população de oito indivíduos e taxa de mutação de 4%. Estes parâmetros foram colocados experimentalmente e como já se obteve bons resultados em relação a regra de carregamento paralelo e por somente se tratar de um exemplo, não se julgou necessário um estudo mais aprofundado se estes seriam os melhores parâmetros para o problema abordado.

Como pode ser observado na Tabela 6, o Algoritmo Genético conseguiu resultados melhores de makespan dos que as regras de liberação utilizadas na seção anterior, cujo o melhor resultado alcançado foi de 505:30:00 contra 435:00:00 do Algoritmo Genético, resultando em uma redução de 13,95% para conclusão de todos os trabalhos, ou seja os trabalhos seriam concluídos com quase três dias de antecipação. Em contrapartida tiveram uma piora nos indicadores de leadtime total e espera total, comparados com a regra de minimização de WIP.

Tabela 6 - Soluções geradas pelo Algoritmo Genético. Fonte: o autor

Soluções Finais do Algoritmo

Genético Makespan Lead Time Espera total

Indivíduo 1 435:00:00 1399:00:00 596:30:00 Indivíduo 2 435:00:00 1399:00:00 596:30:00 Indivíduo 3 435:00:00 1398:30:00 596:00:00 Indivíduo 4 435:00:00 1378:00:00 542:30:00 Indivíduo 5 435:00:00 1398:30:00 596:00:00 Indivíduo 6 435:00:00 1332:00:00 611:00:00 Indivíduo 7 435:00:00 1332:00:00 611:00:00 Indivíduo 8 435:00:00 1398:30:00 596:00:00

Os resultados de makespan foram iguais para todos os oito indivíduos do experimento, o que possibilita uma análise secundária dos outros indicadores da programação.

A

Figura 50 apresenta um gráfico gerado para demonstrar que os indivíduos 6 e 7 possuem como já citado, além do makespan igual em todas as soluções, um leadtime total menor que o restante da população.

Figura 50 - Gráfico de variação de Leadtime total nas soluções geradas pelo AG. Fonte: o autor

Pode-se analisar também variação de tempo de espera total como apresentado na Figura 51, onde o indivíduo 4 possui o melhor resultado.

Figura 51 - Gráfico de variação de espera total nas soluções geradas pelo AG. Fonte: o autor

Estes gráficos podem ser úteis como um critério secundário para decidir qual solução efetivamente será adotada pela empresa, ressaltando que caso a intenção desde o princípio seja de melhorar outro indicador, bastaria parametrizar o Algoritmo Genético com pesos nos respectivos parâmetros como citado anteriormente.

4.1.4. Desenvolvimento de regras especiais de sequenciamento

Desenvolvimento de regras especiais é útil principalmente em casos particulares onde as regras tradicionais não atendem aos detalhes do sistema produtivo. O desenvolvimento destas regras especiais no software protótipo se dá pela manipulação por objetos que representam os objetos do diagrama de classes e podem ser manipulados por duas linguagens de programação sendo uma baseada em Basic e outra em Pascal.

Para a manipulação das classes do framework foram criados objetos que representam e manipulam as respectivas classes, são eles:

-xSOrder: Representa todas as ordens do sistema, podendo ser utilizado no software para coleta de dados sobre a programação ou acionamento dos métodos de programação;

-xSOperation: Representa todas as operações do sistema, possibilitando a manipulação dos métodos de sequenciamento e a coleta de dados sobre as operações como se a operação está ou não sequenciada, em que recurso, os tempos de início e fim, além de informações como o tempo de fila no recurso, etc.

-xSResources: Este objeto é uma representação de todos os recursos no sistema e através dele pode se obter informações sobre sua ocupação, tempo de fila, etc.

A decisão de não permitir o acesso direto as classes do framework e sim através de uma classe de interface foi uma decisão de implementação do software para garantir somente acesso aos métodos e propriedades desejáveis.

Pode ser observada na Figura 52 a tela em que são desenvolvidas regras especiais ou mesmo a inclusão de novas regras de liberação.

Figura 52 - Tela para o desenvolvimento de regras de liberação. Fonte: o autor

A manipulação dos objetos citados anteriormente permite o desenvolvimento de regras avançadas de programação da produção como ilustrado na Figura 53 onde o código apresentado é da regra de minimização de WIP para frente desenvolvido em linguagem Pascal.

Figura 53 - Exemplo da regra de liberação WIP para frente em linguagem Pascal. Fonte: o autor

4.1.5. Personalização do software protótipo

Para permitir que cada empresa possa personalizar o software em função de suas necessidades, o software protótipo foi desenvolvido a partir de uma arquitetura que permite total personalização, como a criação de campos no banco de dados do software, como pode ser observado na Figura 54.

Figura 54 - Janela de manutenção no banco de dados do software. Fonte: o autor

Todas as interfaces com o usuário foram desenvolvidas com o próprio software protótipo o que permite o desenvolvimento de novas janelas, gráficos, etc. Esse ambiente de desenvolvimento possui as principais características da maioria dos principais ambientes de desenvolvimento de softwares comerciais.

A Figura 55 apresenta o ambiente de desenvolvimento onde no lado direito está a paleta de componentes, ao centro o desenho da interface e a esquerda o editor de propriedades e eventos.

Figura 55 - Ambiente de desenvolvimento do software protótipo. Fonte: o autor

A Figura 56 apresenta um exemplo com o editor de código fonte do software protótipo Figura 56 - Exemplo de código fonte no software protótipo.

Documentos relacionados