Bom, agora que já temos o básico da nossa biblioteca, vamos falar um pouco sobre como desenvolver o funcionamento automático.
Algo, muito importante é em primeiro lugar identificar qual o tipo de máquina que estamos lidando, isso é possível após analisar os requisitos do sistema e as documentações fornecidas, assim como uma análise do processo produtivo em geral.
Basicamente temos, 2 tipos máquinas que determinam como iremos programar o funcionamento em modo automático, máquinas combinacionais e máquinas sequenciais.
O que são máquinas combinacionais?
Bem acredito que o conceito que torna mais simples entender de forma lógica vem da eletrônica digital, para circuitos combinacionais:
Circuitos Combinacionais são aqueles em que o sinal de saída depende única e exclusivamente das combinações dos sinais de entrada.
Os circuitos deste tipo não possuem nenhum tipo de memória, ou seja, as saídas não dependem de nenhum estado anterior do circuito.
E como podemos traduzir isso para a programação de CLP, bom vamos usar um exemplo prático, um tanque com chave de nível por exemplo onde uma válvula será aberta quando o tanque não está cheio ou um cilindro que é acionado toda vez, que uma peça é detectada, etc.
O que são máquinas sequenciais?
Uma máquina sequencial produz saídas que dependem da sequência dos valores das entradas. Resumindo uma sequência de acontecimentos resulta em uma saída.
As máquinas sequenciais são bem representadas como máquinas de estado.
Podemos dar exemplos de processos sequenciais, por exemplo:
O nosso magazine de paletes da série de artigos, que é uma máquina onde a sequência de acontecimentos gera o abastecimento de paletes da linha.
Uma estação de solda, onde a sequência de abastecimento, segurar a peça e soldar, gera a saída de uma peça soldada, etc.
Máquinas de Estado ou Máquinas de Estado Finitas.
É um modelo usado para representar programas de computadores (que se aplica também a programas de CLP) e circuitos lógicos eletrônicos.
É um conceito baseado em uma máquina abstrata que possui um número finito e conhecido de estados.
Alguns conceitos são imprescindíveis:
A máquina só pode estar em um estado por vez, esse estado é chamado de estado atual.
O estado armazena as informações sobre os estados passados, isto é, ele reflete as mudanças de estado, desde as entradas do estado do início do sistema, até o estado atual.
Um estado está sempre aguardando uma condição para executar uma transição.
A transição entre estados ocorre quando uma determinada condição seja verdadeira para que a máquina de estados vá para outro estado.
Uma ação é a descrição de uma atividade ou evento que deve ser realizado em um determinado momento, dentro do estado atual. Quando a ação é executada na entrada do estado é chamada de ação de entrada e quando executada na saída é chamada de ação de saída.
Formas de representar uma máquina de estados
No geral representamos máquinas de estados através de diagramas
Um exemplo de diagrama, até mesmo um fluxograma pode ser a representação de uma máquina de estados.
Máquina de Estados ISA88.TR002 / OMAC PackML
Bom o simples fato de ter uma sequência de funcionamento, poderia ser chamado de uma máquina de estados de uma forma muito simplista, porém conseguem imaginar que essa máquina de estados irá possuir alguns comportamentos ou estado da propria máquina de estados, como por exemplo em falha, em funcionamento, pronta para funcionar, sequencia cancelada, etc, e imaginando que sem um modelo para isso ficaria tudo muito confuso.
Bom an OMAC - The Organization for Machine Automation and Control (https://www.omac.org/), em conjunto com a ISA - International Society of Automation (ISA.org), criaram um padrão, que é um Technical Report (TR), baseado na norma ISA88 - Controle de Batelada, voltado para sistemas de embalagem, chamado PackML, e dentro desse padrão é definida uma máquina de estados.
Logicamente esse padrão aborda muito mais do que a máquina de estados, mas para essa série de artigos o que interessa nesse momento é ela.
Algumas Definições:
Machine States (Estados de Máquina)
Define a condição da máquina. O estado da máquina é determinado, geralmente por uma rotina de programação, que consiste em um ou mais comandos e confirmações de estados para que se alcance um determinado estado da máquina.
Tipos de Estados:
Acting State / Estado de Atuação: Representa o processamento de uma atividade. Simplesmente a execução simples ou repetida de passos em uma ordem lógica, em um espaço de tempo finito, até que uma condição seja atingida.
Wait State / Estado de Aguardo: é o estado usado para identificar que a máquina atingiu o estado determinado por uma série de condições. A máquina de estados irá manter esse status até a transição para um estado de atuação.
Estados definidos:
Existem um número fixo de estados definidos com base do modelo de estados.
There are a fixed number of states defined in the base state model.
Abaixo a tabela (fonte: ISA-TR88.00.22-22)
Como podemos observar existem 4 estados que são os mínimos requeridos: Stopped (parado), Idle (Aguardo), Execute (Executar -Muito Comum ser chamado de Running - Rodando), Aborted (Abortado), os demais estados são opcionais.
Stopped:
Tipo: Wait/Aguardo
A máquina está energizada e estacionaria (sem movimentos) depois de completar o estado de Stopping (parando). Comunicação com outros sistemas continuam funcionando.
IDLE
Tipo: Wait/Aguardo
Indica que um estado de Resetting for completado. A máquina mantém os estados de condições de máquina que foram alcançados durante o estado de resetting.
EXECUTE
Tipo: Acting/Atuação
Quando a máquina está processando material, ela está em estado de execução até que uma transição de comando é recebida. Diferentes tipos de modo de máquina (operação), irão resultar em específicos tipos de Execução. Exemplo, modos de produção, modo de Clear Out, etc.
ABORTED
Tipo: Acting/Atuação
Mantém as informações de condição de abort (abortar). A máquina so poder sair do estado de Aborted (abortado) depois de remover as falhas existentes.
Modelo de Estados
O modelo de estados, define o comportamento completo da máquina. No modelo de estados os modelos são organizados e ordenados de forma demonstrar de forma consistente a operação da máquina.
Modelo Base de Estados
O PackML possui definido um modelo básico de estados completo, com estados definidos, comandos e estados de transição.
Modelo de Estados Base (fonte: ISA-TR88.00.22-22)
Estados de Transição e Estados de Comandos
Definições:
Estados de transição, são definidos como a passagem de um estado para outro. Estados de comando são elementos procedimentais, que tem em efeito de causa o estado de transição ocorrer.
Tipos de estados de comando
Intervenção de Operador
Resposta de status the um ou mais elementos procedimentais.
Resposta a condições de máquina
Finalização de um estado de atuação procedural.
Intervenção de Supervisão ou Sistema remoto.
Regras de Estados de Transição
Se um estado de atuação é desabilitado (Não incluído) no modo de controle da máquina corrente, a máquina de estados vai executar o by-pass completo desse estado.
Se um estado está desabilitado (não incluído) no modo de controle da máquina, as transições e os estados de atuação associados são automaticamente desabilitadas.
Se um estado está habilitado em um modo de controle da máquina e a condição de transição desse estado é verdadeira ao chegar aquele determinado estado, a máquina de estados é permitida de transacionar imediatamente, sem a necessidade de reportar que esteve naquele estado.
Exemplo de Matrix de Transição (fonte: ISA-TR88.00.22-22)
Modos
O padrão ISA88 tem uma série de exemplos de entidades e elementos procedurais, também estabelece uma série de modos para máquinas automáticas, o PackML fornece modos que são diferentes da ISA88 (Automático, Semi-Automatico e Manual), esses podos procedurais descrevem a maneira de operar.
Para o PackML os modos procedurais não são comuns para máquinas, o que não é de tudo verdade, modos automáticos, manual, semi-automático, são modos não só adotados de forma geral, para máquinas como também para linhas de produção, temos que lembrar que a visão da ISA no geral é muito voltada para processos e não para fabricação discreta, outro fato a ser lembrado que a OMAC estava focada em um padrão que atenda de forma geral um nicho específico de automação, que é a área de embalagem, estou fazendo esse comentário pois como estou explicando o PackML e se você for ler a documentação oficial você irá encontrar a informação que esses modos não são comuns.
O PackML estabelece os modos de forma a auxiliar o projetista da máquina a ajustar os estados dela.
(fonte: ISA-TR88.00.22-22)
Os modos considerados típicos pela PackML são, Produção, Manutenção, Manual, Clean In Place, Run-Out, Semiautomático, Dry-Cycle, etc., o que vai distinguir os elementos entre esses modos de controle, são as seleções de subset de estados, comandos e transições.
Production mode / Modo de Produção: Modo utilizado para a a rotina de produção, a máquina executa a lógica relevante em resposta a commandos que foram enviados diretamente ou por um outro sistema de supervisão.
Maintenance Mode / Modo de Manutenção: Esse modo permite pessoal autorizado, a funcionar uma máquina individual, de forma independente de outras máquinas em uma linha de produção, esse modo tipicamente é utilizado para testes operacionais e busca de falhas. Outra utilidade seria para testar melhorias, ajustes de máquina e processo em geral.
Manual Mode / Modo Manual: Fornece o controle direto e individual dos módulos da máquina. Tipicamente utilizado para comissionamento de drives, verificar funcionamento individual de componentes etc.
Gerenciamento dos Modos de Controle
Para cada modo de controle da máquina existe o seu próprio modelo de estados.
Para gerenciar a mudança de um modo para outro, um método de gerenciamento de modo deve ser definido. O método de gerenciamento de modo determina como e em que estado uma máquina pode alterar os modos de controle da máquina; isto é, o método de gerenciamento de modo inclui intertravamentos que evitam que a máquina altere os modos de controle da máquina quando em estados inadequados.
O gerenciamento do modo de controle da máquina permite que o projetista da máquina gerencie as transições do modo de controle da máquina. A especificação das transições entre os modos de controle da máquina é deixada para o usuário, mas os pontos de transição típicos estão em estados de espera. A especificação do gerenciador do modo de controle da máquina é tal que nenhum estado ou função de controle é executado nesta rotina de nível superior. A intenção do gerenciador de modo é supervisionar logicamente quando uma mudança no modo pode ser feita, comandar uma mudança de modo e relatar o status da solicitação de mudança.
A mudança entre os modos de controle ocorre somente em estados pré-determinados:
Resultado de um comando local ou remoto de um operador;
Resultado de uma solicitação de uma outra máquina;
O resultado de uma mudança de estado. Gerado pela mudança de uma ou mais condições de máquina, que podem ser através de sinais de I/O ou pela finalização de uma lógica ou método.
Quando o controle de uma máquina muda, não pode ocorrer uma mudança de estado ano mesmo tempo, as transições devem ocorrer somente no estado que está prevista.
Falamos dos modelos de máquinas de estados, os estados possíveis, incluindo a máquina de estados do padrão PackML.
Mas acredito falta explicar um conceito dentro desse assunto, o famoso passo, e o que é o passo dentro de uma máquina de estados?
Os passos dentro de uma máquina de estados finita referem-se às transições sucessivas entre os estados da máquina conforme ela processa uma sequência de entradas. Cada passo envolve a leitura de um símbolo de entrada, a transição para um novo estado de acordo com a função de transição e a possível geração de uma saída ou ação associada ao estado atual.
Então basicamente os estados que executam ação de forma sequenciada são os nossos passos, por exemplo uma vez a máquina em modo produção, em seu estado de execução, dentro desse estado de execução teremos nossos passos, transacionando de forma sequencial efetuando ação (estados de ação), ou apenas aguardando condições (estados de aguardo/espera), para transição.
Bom agora que já temos o conhecimento teórico, pode identificar que nosso magazine de paletes é uma máquina sequencial, e que inclusive já foi fornecido para nós a sequência de funcionamento do mesmo, conforme o artigo 7 da nossa série. (https://www.plcengsoft.com/post/plc-do-rascunho-ao-software-07)
O próximo passo será programar a sequência de funcionamento em automático do magazine de paletes.
No próximo artigo irei explicar e demonstrar algumas técnicas para fazer essa programação, e também a utilização de diversas linguagens para isso.
Até o próximo artigo!
Bibliografia:
Hopcroft, J.E., Motwani, R., & Ullman, J.D. (2006). Introduction to Automata Theory, Languages, and Computation (3rd ed.). Addison-Wesley.
Sipser, M. (2012). Introduction to the Theory of Computation (3rd ed.). Cengage Learning.
ISA-TR88.00.22-22 - Omac PackML
https://www.cin.ufpe.br/~agsf/disciplinas/sistemas_digitais/aula19_MaquinasEstadosFinitos.pdf - Prof. Abel Guilhermino
Cassandras, C., Lafortune, S., "Introduction to Discrete Event Systems". Kluwer, 1999, ISBN 0-7923-8609-4
Excelente. Obrigado Paulo por compartilhar o conhecimento.