Lista de instruções
Lista de Instruções, do inglês, Instruction List (IL), é uma das 5 linguagens amparadas pela norma IEC 61131-3, e é designada para programação de CLPs. Se assemelha ao assembly, pois define mneumônicos, como é feito na mesma. Ideal para programas com poucas quebras no fluxo de execução, para resolução de problemas pequenos e, consequentemente, adequadas para CLPs de mesmo porte. As funções e variáveis são padronizadas todas de acordo com a norma em que está contida, fazendo com que mais que uma linguagem possa ser usada num mesmo programa. EstruturaA estrutura da linguagem, como o assembly, utiliza um acumulador para armazenar os resultados parciais durante a execução. Possui comandos load e store. Todas as instruções usam como base o acumulador, ou utilizam ou modificam um registro de valor no mesmo. Operações algébricas entre o valor atual e o operando são definidas pelo operador. O resultado é armazenado no próprio acumulador. Algumas regras para a estruturação de um programa em IL devem ser seguidas: · Cada instrução deve começar numa nova linha; · Toda instrução pode ser precedida de um rótulo, seguido de dois pontos “:”; · O operador pode incluir um modificador; · Comentários devem ficar no final da linha, ou em linhas sem instruções; · O programa pode conter linhas em branco. VANTAGENS E DESVANTAGENSVantagens· Interação entre a linguagem e o código assembly do CLP; · Documentação mais compacta que a equivalente com relés. Desvantagens· Necessidade de noção de programação assembly; · Necessidade de familiarização do operador com álgebra booleana; · Difícil de alterar o código já implementado. RÓTULO (ETIQUETA)Em IL, rótulos podem ser utilizados como saltos entre as instruções. Na estrutura do programa, um rótulo pode ser definido como um nome seguido do caractere “:” ou pode ser colocado em uma linha que não contenha nenhuma instrução. Um programa não pode conter dois rótulos com nomes iguais. O nome dado a um rótulo não deve conter mais de 16 caracteres de cumprimento, sendo que o primeiro caractere deve ser obrigatoriamente uma letra e que os demais caracteres podem ser letras, números ou símbolo “_” (sublinhado). OPERADORES E MODIFICADORESA tabela 1 apresenta os principais operandos e modificadores da linguagem lista de instruções.
Tabela 1: Principais Operadores da lingugagem LI ModificadoresEm LI, os modificadores devem ser colocados após o nome da instrução, sem caractere separador. São permitidos três tipos de modificadores, sendo eles: · C: Operação condicional; · N: Inversão lógica do operando; · (: Operação adiada; O modificador “C” faz com que a instrução seja executada apenas se o conteúdo atual do acumulador possuir um valor lógico diferente de zero. Já o modificador “N” indica que o operando deve ser invertido antes de ser utilizado pela instrução. O modificador “(“, por sua vez, adia a execução da instrução até que seja encontrado o caractere “)” mais próximo no bloco de instruções. OperadoresA seguir é apresentado um resumo dos operadores mais comuns na linguagem LI, suas operações e alguns exemplos. 5.2.1 – Operador LD O operador LD, mnemônico do inglês “LOAD”, carrega um valor para o acumulador e deve ter como operando uma expressão constante. 5.2.2 – Operador ST O operador ST, mnemônico do inglês “STORE”, carrega transfere o valor de um acumulador para uma variável e deve ter como operando uma variável interna ou de usuário. Exemplo 1Implemente um programa na linguagem Lista de instruções (LI) que acenda a lâmpada L sempre que a chave CH fechar e compare com um programa em Ladder. Solução: Lista de Instruções: LD CH ST L Ladder: Exemplo 2Implemente a função lógica L=I1.I2.I3 em diagrama Ladder e em Lista de Instruções. Solução: Lista de Instruções: LD I1 AND I2 AND I3 ST L Ladder: Exemplo 3Implemente a função lógica L=I1+I2+I3 em diagrama Ladder e em Lista de Instruções. Solução: Lista de Instruções: LD I1 OR I2 OR I3 ST L Ladder: Operador SO operador S, mnemônico do inglês “SET”, força uma variável booleana a ir para o estado lógico “1” se o acumulador estiver com o valor VERDADEIRO. Operador R for O operador R, mnemônico do inglês “RESET”, transfere o valor “0” para o conteúdo da memória do operando em questão. Exemplo 4Faça um programa na linguagem Ladder e Lista de Instruções que corresponda a um contato I1, normalmente aberto, conectado em paralelo a um contato I2, normalmente fechado, e um contato I3, normalmente fechado, em série com ambos. Conectado a este esquema está uma bobina “L” do tipo SET. Solução: Lista de Instruções: LD I1 OR I2 ANDN I3 ST L Ladder: OPERAÇÕES ADIADAS Na linguagem LI (Lista de Instruções) existe apenas um registrador e, devido a isso, é possível que algumas operações sejam adiadas para alterar a ordem de execução das instruções. Para tal, são utilizados os parênteses, sendo “(“ para dizer que a instrução anterior será adiada e “)” para que a instrução que foi adiada, seja executada. Quando o código chega no operador “(“, o conteúdo do acumulador juntamente ao operador são colocados em uma pilha e assim que o código encontra o operador “)”, o último elemento da pilha é retirado e se dá sequência à operação que foi adiada com o conteúdo agora presente no acumulador. MNEMÔNICOS DE ALGUNS FABRICANTESAntes da adoção da norma IEC 61131-3 os mnemônicos utilizados eram diferentes para cada fabricante de PLC, embora possuíssem algumas semelhanças. Com a norma muitos passaram a adotar os mesmo mnemônicos para facilitar a utilização aos usuários. Há também variação na denominação do tipo de programação, por exemplo, a SIEMENS denomina Statement List (STL). A tabela abaixo apresenta algumas variações entre fabricantes.
Tabela 2: Diferença de mnemônicos de alguns fabricantes. TEMPORIZADORESNa programação de PLC os temporizadores são uma importante ferramenta. Existem diversos tipos, entre eles temos o TON e TOF. TON (Timer on-delay): consiste em um temporizador para ativar ou desativar uma saída após um tempo predeterminado. É ativado quando suas condições forem verdadeiras e, enquanto forem mantidas, o valor o acumulador irá aumentando ate atingir o valor determinado, ligando sua saída. Se as condições são interrompidas, o valor do acumulador será resetado. Um exemplo de utilização é: TON T1,100 no qual T1 é o nome do temporizador e 100 o tempo, em milissegundos, determinado pelo usuário. TOF (Timer off-delay): este temporizador é ativador ao detectar uma borda de descida. Sua saída ficará ativa enquanto o sinal for baixo e ate ele atingir o tempo predeterminado. Se o valor da entrada passa a ser alto novamente o temporizador é resetado independente do seu estado. Um exemplo da sua utilização é TOF T2,400 no qual T2 é o nome do temporizador e 400 o tempo, em milissegundos, determinado pelo usuário Outros temporizadores utilizados no IL são TP, TONA e TOFA. CONTADORESNa programação IL existem três tipos de contadores CTU, CTD e CTUD. O CTU detecta as bordas de subida do sinal, cada vez que acontece é incrementado o valor do acumulador. Quando este atinge o valor predeterminado a saída é ligada. O CTD começara com o acumulador em um valor determinado e, cada vez que detectar uma borda de descida no sinal, será decrementado em uma unidade ate atingir o valor zero. Quando este é atingido a saída é ligado. O funcionamento do CTUD é igual ao do CTU porem possui também uma entrada que diminui o valor do acumulador. A saída somente será ligada quando o valor predeterminado for atingido. Referências
|