Já vimos a cadeia de passos como técnica para programação de uma máquina sequencial, agora vamos ver mais uma técnica, alguns chamam de passo comparador, outros de passo-move, no fundo tanto essa técnica quanto a cadeia de passos são baseadas em no conceito de simples de máquina de estados onde o estado atual armazena os estados anteriores e para que se mova para o próximo passo uma transição deve ocorrer e logicamente essa transição atende condições necessárias do funcionamento da sequência de funcionamento, logicamente cada técnica tem suas vantagens e suas desvantagens.
Bom essa chamada de passo comparador é muito semelhante a técnica de passo set e reset, onde ao invés de utilizar variáveis booleanas ou array com variáveis booleanas, iremos utilizar uma variável do tipo inteiro (pode ser um double int, ou um SINT, UINT), o importante é uma variável que armazena um valor (lembrando os limites de valor de cada tipo), esse valor será o nosso passo, e quando uma transição ocorre com sucesso, ocorre uma mudança no valor do passo, geralmente utilizando uma função de move (mover), o novo valor do passo.
Mais uma vez uma das desvantagens dessa técnica é a manutenção, onde você deve tomar cuidado com os valores e onde são utilizados, a grande vantagem sobre a cadeia de passos set e reset é a menor utilização de memória, uma vez que trabalha-se com valores dentro de uma variável única de 8bits, 16bits ou 32bits (conforme o tipo que você escolher), evitando a necessidade de criar variáveis reservas por exemplo, porém com a necessidade de manter intervalos de valores entre os passos , para caso de necessidade de ajuste na sequência, outra vantagem é com a utilização de uma variável com valores é possível utilizar a mesma como index para um test list na IHM para demonstrar o que ocorre na sequência sem a necessidade de usar uma string saindo do CLP, o que pode significar uma economia de memória em sistemas que tem falta de recurso, eu em particular prefiro usar uma string com enviando os textos do CLP para a IHM, sempre quando existe memória suficiente, assim se for necessário adicionar um passo por exemplo, não preciso fazer manutenção no software da IHM e do CLP, a manutenção será feita só no software do CLP.
Aqui um exemplo em Ladder de uma sequência usando comparação e move:
Um Exemplo com adição ao invés de move, também utilizado, e também usa comparador de valor:
Um exemplo de comandos usando os passos como variável numérica
Comandos diretos na rotina de gerenciamento do cilindro
Para tornar um pouco mais fácil quando são vários comandos é possível criar variáveis auxiliares para assim em caso de alteração na sequência, a alteração para os comandos seja feita em apenas um lugar:
Variável Auxiliar:
Variável Auxiliar em uso
A mesma técnica pode ser utilizada usando SCL, aqui alguns exemplos:
Um exemplo usando FBD
O importante é entender que mesmo em linguagens diferentes, o conceito é o mesmo.
Até o próximo artigo,
excelente conteudo.
Muito claro e prático