em 07-27-2015 08:04 PM
Boa noite.
Estou trabalhando num sistema para química analítica que inicialmente operava por máquina de estados, porém, houve a necessidade de iniciar vários processos simultâneos e daí surgiu a necessidade de modificar o programa
Meu sistema constitui, basicamente, em dois processos, um de preparo de amostra (processo 1) e outro de condicionamento/eluição (processo 2). OBS.: O sistema real constitui em seis etapas, mas para efeito de simplificação, considerei apenas duas etapas cruciais para eu poder conseguir enxergar qual o melhor caminho.
No processo 1, as válvulas V1, V2, V3 e V4 estão acionadas; no processo 2, as válvulas V5, V6, V7 e V8 estão acionadas.
O conjunto global constitui numa máquina de estados na seguinte ordem: AcionamentoV1,2,3,4 > Processo 1 > Acionamento V5,6,7,8 > Processo 2
A minha ideia é a seguinte:
Depois que eu terminar o processo 1 (leia-se aqui 'processo 1A'), eu começo um processo 2 (leia-se aqui 'processo 2A') utilizando a amostra do processo 1A, e começo um outro processo 1B.
No caso, o processo 1B só passa para a proxima etapa (processo 2B) se o processo 2A estiver finalizado; e o processo 2A só recomeça no processo 1A se o processo 1B estiver finalizado.
Inicialmente, pensei em utilizar um padrão de produtor/consumidor, onde o produtor daria os comandos para iniciar cada etapa e acionamento, e os consumidores seriam os processos e o acionamento, totalizando quatro loops diferentes. Porém, a dificuldade encontrada nesse tipo de padrão é o fato de que os consumidores teriam que produzir dados para que o produtor desse as instruções seguintes.
Qual padrão eu poderia utilizar nesse caso ?
Agradeço desde já.
Rodrigo M.
em 07-28-2015 12:54 PM
Boa Tarde Rodrigo,
Eu gostaria de saber se você tentou usar shift registers para a realimentação de informações, eu fiz um exemplo do seu projeto usando geração de números aleatórios nos processos 1A e 1B e o armazenamento de informações nos processos 2A e 2B. Para uma melhor visualização do seu funcionamento use o modo highlight no diagrama de blocos.