article

Paula Carneiro Martins avatar image
2 Likes"
Paula Carneiro Martins posted

Tutorial em Português - Como direcionar os itens usando o recurso List1

É comum precisarmos de múltiplas etapas para finalizarmos a produção de um produto. Na produção de uma calça, por exemplo, de uma forma simplificada, precisamos cortar o tecido de acordo com o molde, costurar , colocar os botões e o zíper , e por último, empacotar. E assim cada produto tem a sua ordem de processos que são necessários para a sua finalização. Nesse exemplo vamos construir um modelo que usa list para rotear itens de acordo com as etapas necessárias para a sua finalização em um modelo simples de chão de fábrica.

Passo 1. Construir layout

Para fazermos o exemplo precisaremos de um layout com 8 processors, 1 source e uma queue. Adicione esses objetos no seu modelo e os renomeie conforme Figura 1.

Figura 1- Layout exemplo 1

Como a Figura 1 mostra, existem basicamente 4 tipos de operações:

  • Alpha – 2 estações;
  • Beta – 2 estações;
  • Gamma – 2 estações;
  • Delta – 2 estações.

Passo 2. Adicionar lists

Para adicionar a lógica é preciso criar item list. Em Toolbox> > Global list> Item list(Figura 2).

Figura 2- Adicionar Item List

Ao clicar em Item list irá abrir janela de propriedades da lista (Figura 3), por agora apenas fechar a aba. A sua lista está nomeada como ItemList1.

Figura 3- Janela de propriedades Itemlist

Passo 3. Adicionar Global table

Nesse modelo nós vamos ter 3 diferentes tipos de produtos classificados por tipo de item (item type). Cada tipo de produto tem uma sequência única para ser executada nesse item até que esse esteja pronto. A Tabela 1 mostra a sequência de passos de manufatura que cada tipo de produto requesita.

Tabela 1- Sequência de passos por produto

Em Toolbox> >Global table. Em Global table modificar o número de linhas(rows) para 8 e de colunas(columns) para 3. Renomeie as linhas e as colunas conforme Figura 4.

Figura 4- Global Table

Para colocarmos a sequência, é necessário configurar a tabela para uma tabela que aceita palavras. Selecione todas as células > Clique no botão direito> Assign String Data (Figura 5). Agora podemos digitar palavras.

Figura 5- Permitir palavras como dados

Renomear a global table para Steps, e acrescentar a sequência necessária para cada tipo (Figura 6).

Figura 6- Global table preenchida

Passo 4. Configurar Source

Para voltarmos para o modelo clique sobre a aba Model no canto superior esquerdo

Dê duplo clique sobre o source. Configure o inter-arrival time em exponencial (0,30,0), como pode-se observar na Figura 7.

Figura 7- Configuração source

Agora na aba Flow, em Send to port (barra de rolagem)> Use list> Push to item list (Figura 8).

Figura 8- Selecionar método puxado de uma lista

Ao clicar em Push to Item List, uma janela irá abrir com o nome da list selecionada. Verifique se o nome da lista é IGUAL ao da lista que você criou (Figura 9).

Figura 9- Verificar nome da lista

Em Triggers, On Creation adicione as triggers Set Label com a label relacionada ao objeto ITEM e chamada “stepRow” e valor igual a 1, e Set the Itemtype and Color como duniforme (1, 3).

Figura 10- Triggers source

Passo 5. Definir list

Em Toolbox, dê duplo clique sobre o ItemList1, quando abrir a janela de propriedades observe que há algumas expression field já adicionadas. Mas nesse modelo nós devemos usar apenas 3 fields.

  • stepRow: Esse campo irá referenciar a atual setRow label no item. Nós vamos utiliza-la para priorizar itens que estão avançados nos seus processos;
  • step: Esse campo vai referenciar o nome do atual passo que o item está. Por exemplo, Alpha,Beta,Gamma, ou delta. Nós vamos usar isso para direcionar para a próxima etapa que vai puxar da lista;
  • itemType- Esse campo não será utilizado em nenhuma consulta. Apesar disso, ele irá ser usado para facilitar a visualização dos itens que estão na lista.

Dessa forma, exclua todas as fields EXCETO a ItemType. Dessa forma, deve-se criar mais duas fields.

1.Adicionar uma label field chamada stepRow.

2.Adicionar uma Expression field colocar a seguinte expressão

Na expressão você vai usar "value" para acessar o valor primário da lista. Essa expressão pega um valor da tabela dos passos (gettablestr("steps", ... ) , onde a linhá é o atual valor do steprow (getlabel(value, "steprow")), e a coluna é o tipo de item (getitemtype(value)).

No final desses passos a janela de propriedades da lista deve se parecer com a Figura 11.

Figura 11- Propriedades preenchidas do itemlist

DETALHE: Lembre-se que se vc nomeou a tabela, ou a label de forma diferente é preciso que nesse momento elas sejam citadas como foram nomeadas.

** Teste rápido**

Para verificar se até aqui as coisas estão funcionando da maneira correta. Vamos fazer um test rápido. Nas propriedades do ItemList1, vá na aba General e clique no botão a esquerda “ View entries”. Coloque o modelo para rodar, após a primeira chegada o tempo vai expirar e a tela do list deve se parecer com a Figura 12.

Figura 12- Visualização das entradas na list

Passo 6. Configurar processos

Passo 6.1. Adicionar label aos processos

Clique sobre Alpha 1 e na aba Labels> > Add String Label (Figura 13).

Figura 13- Adcionar uma label ao processo

Em newstringlabel nomear como operation e o valor colocar como Alpha conforme mostra a Figura 14.

Figura 14- Label operation

Passo 6.2. Criar lógica de fluxo de saída

Ainda nas propriedades do Alpha 1, na aba Flow , na opção Sento to port, pressione a lista de opções escolha Use List> Push to item list (Figura 15). Ao clicar em Push to Item list aparecerá uma janela com o nome da lista, confira se o nome da lista coincide com a lista que criamos (ItemList1).

Figura 15- Puxar da lista

Passo 6.3. Criar lógica de fluxo de entrada

Ainda na aba Flow, na subárea Input, escolha a opção pull e depois em Pull Strategy abra a lista de opções , em Use list escolha Pull from the Item List (Figura 16).

Figura 16- Criar estratégia de entrada

Verifica se o nome da lista e o nome da lista que você adicionou conferem. E defina Query como:

WHERE step == Puller.operation ORDER BY steprow DESC

Essa expressão vai fazer com que o processo puxe somente os itens da lista cujo o step field corresponde a label do processo. Ela também cria uma regra de priorização de itens com o maior stepRow label, ou seja, itens que estão em passos mais adiantados dos seus processos (Figura 17).

Figura 17- Query

OBS : Se atende aos detalhes da fórmula do QUERY, não esqueça do ponto. E não se preocupe do operation e do steprow não aparecerem como opção de lista. É normal! Apenas se certifique que a está escrito exatamente como escrito na fórmula acima.

Passo 6.4. Criar lógica de atualização da label

Na aba Triggers, vá em OnProcessFinish > Adicionar > Data > Set Label (Figura 18).

Figura 18- Adicionar nova label no final do processo

Como precisamos atualizar a label para que ela siga a entidade até que essa finalize todos os seus passos até o fim do seu processo. É preciso configurar a label para o OBJETO item, a label stepRow com um valor de getlabel(item,”stepRow”)+1. A Figura 19 mostra como deve ficar a tela da label.

Figura 19- Atualização da label

Passo 6.5. Replicar propriedades para os outros processos.

Para os outros processos nós devemos repetir 6.1 ao 6.4,sendo que no 6.1 é necessário mudar o nome da label operation de acordo com a Tabela 2.

Tabela 2- Como renomear as labels por processo

Ou nós podemos copiar todas as propriedades do Alpha 1 para todos os outros processos e depois adicionar as labels operation de acorda com cada categoria.

Passo 7. Configurar finish queue

Passo 7.1. Adicionar label no processo

Clique na finish queue , vá na aba labels adicione uma String label, com o nome de operation e com o value de Finish (Figura 20).

Figura 20- Label finish

Passo 7.2. Criar lógica do fluxo

Na aba flow , na subárea Input, escolha a opção pull e depois em Pull Strategy abra a lista de opções , em Use list escolha Pull from the Item List. Defina o pull query como

Where step == puller.operation. Nesse caso não há necessidade de priorizar, já que a fila é nesse caso o fim da operação.

Salve seu modelo e coloque para simular!

exemplo1-pullsystem.fsm

flexsim users manuallistslist pulltutorial em portuguesexample modelflexsim 7.7
fig1.png (71.4 KiB)
fig2.png (41.3 KiB)
fig3.png (52.9 KiB)
t1.png (28.5 KiB)
file.png (903 B)
fig4.png (67.2 KiB)
fig5.png (104.3 KiB)
d1.png (13.3 KiB)
d1.png (13.3 KiB)
fig7.png (51.9 KiB)
fig8.png (70.5 KiB)
fig9.png (32.1 KiB)
fig10.png (60.5 KiB)
d2.png (6.7 KiB)
fig11.png (60.7 KiB)
fig12.png (23.6 KiB)
fig13.png (18.8 KiB)
fig14.png (21.8 KiB)
fig15.png (76.2 KiB)
fig16.png (60.5 KiB)
fig17.png (19.9 KiB)
fig18.png (50.7 KiB)
fig19.png (19.7 KiB)
t2.png (31.3 KiB)
fig20.png (28.4 KiB)
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Article

Contributors

paula.carneiro_martins contributed to this article

Related Articles