Instruções Ladder Diagram
Project1
• Dar um duplo clic do mouse em Data Files > I1 - INPUT para edição. Selecionar o endereço I:0.1 e entrar com SWITCH2 no campo Symbol e entrar com Switch 2 no campo Desc.
• Dar um duplo clic do mouse em Data Files > O0 - OUTPUT para edição. Selecionar o endereço O:0.1 e entrar com LAMP2 no campo Symbol e entrar com Lamp 2 no campo Desc.
• A chave SWITCH2 é uma chave normalmente fechada. Quando não está acionada, seus contatos estão fechados permitindo a passagem de corrente. Ao ser acionada, seus contatos se abrem impedindo a passagem de corrente.
• Inserir nova rung em LAD2 com chave normalmente fechada SWITCH2 acionando na saída a lâmpada LAMP2. Clicar no botão New Rung na aba User da barra de ferramentas para inserir uma nova rung no programa LAD2.
• Verificar, salvar o projeto e descarregá-lo para o emulador. Testar as alterações abrindo e fechando a chave SWITCH2 e observando o estado da lâmpada LAMP2.
• Chave SWITCH2 desacionada (nível lógico “0”) e lâmpada acesa (nível lógico “1”). Observar em Data Files a chave SWITCH2 com nível lógico “0” e a lâmpada L2 com nível lógico “1”.
• Alterar nível lógico de SWITCH2 para “1” (Toogle).
• Chave SWITCH2 acionada (nível lógico “1”) e lâmpada apagada (nível lógico “0”).
Ladder
Instruções NA-NF Série
A imagem abaixo mostra a função NA-NF série em Ladder, bem como o circuito elétrico e a lógica digital correspondente.
Observe que, na função NA-NF série, o estado da saída digital depende da combinação das entradas digitais. Assim, somente quando I1 estiver em altonível e I2 em baixo nível, teremos a saída Q1 ativada. Para qualquer outra situação, teremos a saída Q1 desativada.
Instruções NA-NF Paralelo
A imagem abaixo mostra a função NA-NF paralelo em Ladder, bem como o circuito elétrico e a lógica digital correspondente.
Observe que, na função NA-NF paralelo, o estado da saída digital dependeda combinação das entradas digitais. Assim, somente quando I1 estiver em baixo nível e I2 em alto nível, teremos a saída Q1 desativada. Para qualquer outra situação, teremos a saída Q1 ativada.
• Dar um duplo click do mouse em Data Files > O0 - OUTPUT para edição. Selecionar o endereço O:0.2 e entrar com LAMP3 no campo Symbol e entrar com Lamp 3 no campo Desc.
• Dar um duplo click do mouse em Data Files > O0 - OUTPUT para edição. Selecionar o endereço O:0.3 e entrar com LAMP3 no campo Symbol e entrar com Lamp 4 no campo Desc.
• Inserir nova rung em LAD2 com chave normalmente aberta SWITCH1 em série com chave normalmente aberta SWITCH2 e acionando a lâmpada LAMP3.
• Verificar, salvar o projeto e descarregá-lo para o emulador. Testar as alterações abrindo e fechando as chaves SWITCH1 e SWITCH2 e observando o estado da lâmpada LAMP3. Como SWITCH1 e SWITCH2 estão ligadas em série, a lâmpada LAMP3 só acende quando as duas chaves estão fechadas (nível lógico “1”).
• Inserir nova rung em LAD2 com chave normalmente aberta SWITCH1 em paralelo com chave normalmente aberta SWITCH2 e acionando a lâmpada LAMP4. Usar Rung Branch para a lógica OR (paralelo).
• Verificar, salvar o projeto e descarregá-lo para o emulador. Testar as alterações abrindo e fechando as chaves SWITCH1 e SWITCH2 e observando o estado da lâmpada LAMP4. Como SWITCH1 e SWITCH2 estão ligadas em paralelo, a lâmpada LAMP3 acende quando uma das chaves está fechada (nível lógico “1”) ou quando as duas chaves estão fechadas ao mesmo tempo.
• Dado o circuito abaixo, obter o circuito correspondente em linguagem Ladder.
Símbolo para lógica NOT (saída recebe o sinal invertido da entrada):
Símbolo para lógica AND :
Símbolo para lógica OR:
• Inserir as tags em Controller Tags:
INA | BOOL | I:0/2 | Input A |
INB | BOOL | I:0/3 | Input B |
INC | BOOL | I:0/4 | Input C |
OUTS | BOOL | O:0/4 | Output S |
• Inserir todos os contatos e a bobina de saída OutS – Output S.
• Inserir comentário para a Rung (linha). Clicar com o botão direito do mouse sobre a rung 4 e selecionar item de menu Edit Rung Comment.
• Inserir comentário com a fórmula booleana S = (NOT A AND (B OR C)) OR (B AND C) e clicar em OK.
• Simular a lógica alternando os valores das entradas digitais e observando o resultado na saída digital.
Instruções especiais
Dependendo das características dos CLP, os fabricantes poderão disponibilizar diversas funções especiais. Neste item serão abordadas as funções especiais mais empregadas, uma vez que o manual de programação dos CLPs instrui quanto ao uso de suas funções de programação.
Instrução SET
Esta função obriga o estado de uma memória ou de uma saída do CLP a ficar ativada. A imagem abaixo mostra a função SET em Ladder.
Observe que, na função SET, o estado da saída digital depende de uma informação provinda da entrada digital. Quando a entrada I1 estiver em alto nível, a saída Q1 fica em alto nível. Note que, mesmo quando a entrada I1 voltar para baixo nível, a saída Q1 permanecerá em alto nível, usando, necessariamente, uma outra função para desativar a saída.
Instrução RESET
Esta função obriga o estado de uma memória ou de uma saída do CLP a ficar desativada. A imagem abaixo mostra a função RESET em Ladder.
Observe que, na função RESET, o estado da saída digital depende de uma informação provinda da entrada digital. Quando a entrada I2 estiver em alto nível, a saída Q1 ficará em baixo nível.
Note que, quando a entrada I2 voltar para baixo nível, a saída Q1 permanecerá em baixo nível.
Project1
• Inserir a tag em Controller Tags:
OUTSR | BOOL | O:0/5 | Output Set Reset |
• Em LAD2, inserir nova rung com contato normalmente aberto para InA – Entrada A. Inserir bobina Set (Output Latch - L) para OutSR – Set Reset Output.
• Inserir uma nova rung com contato normalmente aberto para InB – Entrada B. Inserir bobina Reset (Output Unlatch- U) para OutSR – Set Reset Output'.
• Simular a lógica Set e Reset alternando os valores das entradas digitais e observando o resultado na saída digital.
Instrução Contato por borda positiva
Essa instrução gera um pulso na saída associada a ela. O pulso tem o período de 1 scan (ciclo do controlador) e inicia-se quando a entrada faz a passagem do nível logico “0” para o “1”.
Um programa utilizando esse tipo de instrução pode ser visto na imagem abaixo.
O diagrama de estado da entrada por borda positiva (I0.0) e da saída simples(Q0.0) demonstra a aplicação dessa instrução. Observe que, quando a entrada (I0.0) e acionada, ou seja, na passagem do nível lógico “0” para o “1”, na saída associada a essa entrada aparece um pulso com duração de 1 scan. Na descida, na passagem do nível lógico “1” para o “0”, nada acontece à saída.
Instrução Contato por borda negativa
A instrução contato por borda negativa gera um pulso na saída associadaa ela. Esse pulso tem o período de 1 scan e inicia-se quando a entrada faz a passagem do nível logico “1” para o “0”.
Um programa utilizando esse tipo de instrução pode ser visto na imagem abaixo.
O diagrama de estado da entrada por borda negativa (I0.0) e da saída simples(Q0.0) demonstra a aplicação dessa instrução. Observe que, quando a entrada (I0.0) e acionada, nada acontece; porém, ao ser desligada, na passagem do nível logico “1” para o “0”, na saída associada a essa entrada aparece um pulso com duração de 1 scan.
ONS – On Shot
A instrução ONS ativa ou desativa o restante da rung, dependendo do status do storage bit. O storage bit guarda o valor da entrada rung-condition-in da última vez que a instrução foi executada.
Project1
• Inserir as tags:
BMON | BOOL | B3:0/0 | Motor On Button |
BMOFF | BOOL | B3:0/1 | Motor Off Button |
OUTMON | BOOL | B3:0/2 | Motor On Command |
OUTMOFF | BOOL | B3:0/3 | Motor Off Command |
ONSMON | BOOL | B3:0/4 | Storage ONS Motor On |
ONSMOFF | BOOL | B3:0/5 | Storage ONS Motor Off |
LMON | BOOL | B3:0/6 | Motor On Lamp |
LMOFF | BOOL | B3:0/7 | Motor Off Lamp |
• Em LAD2, inserir nova rung com contato normalmente aberto para BMON – Motor On Button em série com instrução ONS para acionar a saída OutMON – Motor On Command. Quando o status de BMON for de nível lógico “0” para nível lógico “1”, a saída OutMON será acionada por 1 scan (uma varredura).
• Inserir uma nova rung com contato normalmente aberto para OutMON, que, ao fechar o contato, ativa a saída LMON – Motor On Lamp e desativa LMOFF – Motor Off Lamp e BMOFF – Motor Off Button.
• Inserir nova rung com contato normalmente aberto para BMOFF – Motor Off Button em série com instrução ONS para acionar a saída OutMOFF – Motor Off Command. Quando o status de BMOFF for de nível lógico “0” para nível lógico “1”, a saída OutMOFF será acionada por 1 scan.
• Inserir uma nova rung com contato normalmente aberto para OutMOFF, que, ao fechar o contato, ativa a saída LMOFF – Motor Off Lamp e desativa LMON – Motor On Lamp e BMON – Motor On Button.
• Simular a lógica com instrução ONS acionando os botões de Motor ON e Motor OFF e observando o resultado nas saídas.
Linguagens de Programação
Norma IEC 61131
Em 1992, a International Electrotechnical Commission (IEC – Comissão Internacional de Eletrotécnica) publicou a primeira edição da norma IEC 61131,com o objetivo de estabelecer padrões para os controladores programáveis. Essa norma foi dividida em vários capítulos, possibilitando a definição de critérios para cada um dos tópicos relacionados aos CLPs.
Os capítulos são os seguintes:
• 61131-1 – Informações gerais sobre os CLPs.
• 61131-2 – Requisitos de hardware.
• 61131-3 – Linguagens de programação.
• 61131-4 – Guia de orientação ao usuário.
• 61131-5 – Comunicação.
Essa norma define que, para um CLP estar de acordo com os padrões por ela estabelecidos, deve possuir ao menos duas linguagens gráficas e duas linguagens de texto para sua programação. Assim, e consenso entre os atuais fabricantes trabalhar com as seguintes linguagens:
• Textuais:
IL – instruction list ou lista de instruções.
ST – structured text ou texto estruturado.
• Gráficas:
LD – Ladder diagram ou diagrama Ladder.
FBD – function block diagram ou diagrama de blocos de funções.
Um quinto modo de programar alguns equipamentos de mercado e o SFC – sequential function chart ou sequenciamento gráfico de funções, que possui elementos para organizar programas de maneira sequencial e permite também o controle paralelo de processos.
Entre essas linguagens de programação, alguns parâmetros são definidos para que realmente haja certa compatibilidade entre os equipamentos. Tais parâmetros podem ser definidos como:
a) Dados – A norma prevê os seguintes tipos de dados:
• Grupo de bits: grupo de valores binários (on/off).
BOOL: 1 bit.
BYTE: 8 bits.
WORD: 16 bits.
DWORD: 32 bits.
LWORD: 64 bits.
• Inteiros: números inteiros e reais.
SINT: curto (1 byte).
INT: inteiro (2 bytes).
DINT: duplo inteiro (4 bytes).
LINT: longo inteiro (8 bytes).
U: não definido (adicionar um caractere U para o tipo de inteiro a ser utilizado).
• Real: ponto flutuante, ou seja, considera fracionários na utilização do número conforme a IEC 559 (1982).
REAL: 4 bytes.
LREAL: 8 bytes.
• Tempo: duração de timers e processos.
• Data e hora do dia.
DATE: data do calendário.
TIME_OF_DAY: hora local.
DATE_AND_TIME: data e hora local.
• String: caracteres que podem ser expostos em cotas únicas – normalmente para a transmissão de caracteres ASCII (american standard code for information interchange) para outros dispositivos.
WSTRING: permitir o envio de vários strings.
ARRAYS: múltiplos valores armazenados na mesma variável.
SUB RANGES: definir limites de valores para a entrada ou para a saída de dados – por exemplo, sinais de 4 a 20 mA.
b) Variáveis – Podem ser do tipo:
• Global: serve a todo o programa e não necessariamente só a uma parte dele.
• Local: serve somente a uma parte do programa.
• I/O mapping: mapeamento de todas as entradas e saídas em relação a posições de memória predefinidas.
• External: mapeamento definido exclusivamente como pontos de entrada e saída de dados.
• Temporary: usados momentaneamente durante a execução de parte do programa.
c) Configuração– Recursos de hardware e vínculos específicos para o processamento dos dados e dos programas.
• Recursos: reserva de memória ou índices de processamento para determinada parte do programa.
• Tarefas: podem seguir paralelas, sendo executadas simultaneamente pela UCP.
• Programas: podem ser executados ciclicamente, a cada determinado período ou quando ocorrer certo evento.
d) Organização das unidades de programas – Definidos pelas funções básicas, blocos básicos e possibilidade de criação de funções e blocos de acordo com a necessidade da programação.
• Funções-padrão como: ADD, SQRT, SIN, COS, GT, MIN, MAX, AND,OR, entre outras.
• Funções customizadas: campo no qual o programador pode criar funções ou utilizar mais de uma função preexistente para a criação de outra função em sua programação.
• Blocos de funções: padrões iguais aos apresentados nas funções, só que em linguagem de bloco.
• Blocos customizados: campo para a elaboração ou utilização de mais de uma função preexistente na criação de blocos. Podem ser compostos também por blocos comercializados por outros fabricantes ou empresas especializadas.
• Programas: programas e sub-rotinas específicos. Podem ser armazenados em funções ou blocos criados pelo programador e utilizados mais de uma vez na atual aplicação ou posteriormente em outros programas.
e) Links externos – Abrem espaço para o capitulo da IEC 61131-5, que trata especificamente dos formatos de comunicação e das facilidades que o padrão determina como necessários para a compatibilidade com a norma.
Linguagem de Programação Ladder
A Ladder foi uma das primeiras linguagens destinadas a programação de CLPs, criada para permitir que técnicos e engenheiros da área de automação com conhecimentos de lógica de relés e nenhum de programação conseguissem programar o CLP. Por esse motivo,ela se tornou a linguagem mais popular entre os programadores.
Diretivas básicas
As variáveis associadas aos elementos de entrada, saída, memoria, temporizadores e contadores são denominadas operandos. O programa executa operações lógicas e aritméticas com esses operandos.
Na linguagem Ladder, as linhas de contatos (instruções) possuem a aparência de degraus de uma escada ladder, que podem ser associados a uma estrutura de colunas e linhas, conforme ilustra a imagem abaixo. Em cada linha, as instruções correspondem ao programa, ou seja, ao processamento dos operandos, e o resultado e atribuído a outro operando no bloco “Saída”, à direita.
O numero de linhas e colunas ou elementos e associações que cada rung admite varia conforme o fabricante do CLP e pode variar também de acordo com a UCP utilizada. Em geral, esses limites não representam preocupação ao usuário no desenvolvimento do programa de aplicação, pois, se o limite for ultrapassado, o software de programação apresentara uma mensagem de erro durante a compilação do programa.
Os operandos podem ser divididos em três classes:
• Memória (M) – Servem para o armazenamento dos resultados parciais, valores de constantes, dados de transmissão, valores de referência, receitas etc.
Esses operandos podem ser livremente lidos e escritos pelo programa.
• Entradas (I) – Estão associados aos módulos de entrada. Podem ser lidos pelo programa, mas escritos apenas pelos módulos de entrada.
• Saídas (Q) – Estão associados aos módulos de saída. Podem ser livremente lidos e escritos pelo programa.
Os operandos, por sua vez, são divididos, inicialmente, em cinco tipos, segundo sua utilização e numero de bits:
• Bits (X) – Utilizados para a implementação de lógica, ocupam 1 bit de memória.
• Bytes (B) – Utilizados para o armazenamento de caracteres ASCII, ocupam 8 bits.
• Words (W) – Utilizados para o armazenamento de valores numéricos inteiros, ocupam 16 bits.
• Double word (D) – Semelhante ao tipo W, ocupa 32 bits.
• Word long (L) de 64 bits – Semelhante ao tipo W, ocupa 64 bits.
Originalmente, na linguagem Ladder cada instrução correspondia aos contatos NA ou NF dos relés, cujo estado era definido pelo valor do operando (do tipo B) a ele associado. Na mesma época, as saídas eram as bobinas (operandotipo B). Com o tempo, os blocos de instruções passaram a contemplar contadores, temporizadores, operações aritméticas etc., que exigiram que fossem criados os tipos de operando citados anteriormente.
Contadores
Um contador tem por finalidade ativar uma memória ou uma saída após uma determinada contagem de eventos. A imagem abaixo mostra a instrução e simbologia do contador, segundo a norma IEC 1131-3.
Observe que, na instrução contador, a entrada I1 recebe pulsos provindos de chaves externas ou sensores, enviando para o contador C1. No programa, C1 foi parametrizado para 4 contagens. Após C1 receber 4 pulsos (quatro energizações/desenergizações), o contato NA do contador C1 fecha-se, acionando a saída Q1.
O contador pode ser crescente, decrescente ou até mesmo crescente/decrescente(up/down). Para a última finalidade, o bloco contador é composto demais uma entrada que fará a contagem regressiva, conforme a imagem abaixo.
Observa-se que I1 faz a contagem crescente, I2 a contagem decrescente, e I3 aciona o reset. A imagem abaixo apresenta o diagrama de tempos do contador up/down.
Após concluir o ciclo de contagem (4 contagens), Q1 fica acionado,independentemente do estado de I1. A saída Q1 pode ser desativada resetando o contador C1.
CTU – Count Up
A instrução CTU conta incrementalmente.
Parâmetros:
Counter | COUNTER | |
.CU | BOOL | O bit CU indica que a instrução CTU está habilitada |
.DN | BOOL | O bit done indica que .ACC >= .PRE |
.OV | BOOL | O bit de overflow indica que o contador excedeu o limite de 2.147.483.647 |
.UN | BOOL | O bit de underflow indica que o contador excedeu o limite de -2.147.483.647 |
.PRE | DINT | Preset value especifica o valor acumulado para setar .DN |
.ACC | DINT | O valor acumulado especifica o número de transições contadas por CTU |
Estrutura do tipo COUNTER:
Project1
• Inserir as tags Data Files:
COUNTER1 | COUNTER | C5:0 | Counter 1 |
RSTC1 | BOOL | B3:1/0 | Reset Counter 1 |
Estrutura de C1:
• Em LAD2, inserir nova rung com contato normalmente aberto para BMON – Motor On Button para acionar o contador COUNTER1 do tipo CTU. Quando o status de BMON for de nível lógico “0” para nível lógico “1”, o contador é incrementado. Entrar com valor 5 para o parâmetro Preset.
• Inserir uma nova rung com contato normalmente aberto para RSTC1 – Reset Counter 1 para zerar o parâmetro ACC do contador. Inserir outra rung, para dar um reset em RSTC1 com a instrução U – Output Unlatch.
• Simular a lógica com instrução CTU acionando os botões de Motor ON e observando os parâmetros do contador.
CTD – Count Down
A instrução CTD conta de forma decrescente.
Parâmetros:
Counter | COUNTER | |
.CD | BOOL | O bit CD indica que a instrução CTD está habilitada |
.DN | BOOL | O bit done indica que .ACC >= .PRE |
.OV | BOOL | O bit de overflow indica que o contador excedeu o limite de 2.147.483.647 |
.UN | BOOL | O bit de underflow indica que o contador excedeu o limite de -2.147.483.647 |
.PRE | DINT | Preset value especifica o valor acumulado para setar .DN |
.ACC | DINT | O valor acumulado especifica o número de transições contadas por CTD |
Temporizadores
Esta função tem por finalidade acionar ou desligar uma memória ou uma saída de acordo com um tempo programado.
É importante salientar que os temporizadores possuem vários modos de operação, tais como retardo na energização, retardo na desenergização, retardos memorizáveis etc.
A imagem abaixo mostra a instrução temporizador com sua respectiva simbologia, segundo a norma IEC 1131-3.
A seguir, serão apresentados os modos mais básicos de temporização.
a) Retardo na energização
Quando o temporizador é configurado para retardo na energização (Timer On), a saída Q1será acionada um certo tempo após a entrada I1 ficar em alto nível, neste caso 5 segundos. Quando a entrada I1 ficar em alto nível, esta ativa o elemento temporizador T1 (parametrizado no programa para 5 s). Após 5 segundos, o contato do temporizador fecha-se acionando a saída Q1.
Na imagem abaixo temos o diagrama de tempo do temporizador com retardo na energização.
Observe que se o tempo em alto nível da entrada I1 for menor que o parametrizado no temporizador, a saída Q1 não será acionada. Desta forma, para que a saída Q1 seja acionada, é necessário que a entrada I1 permaneça em alto nível por um tempo superior ao parametrizado T.
Observe ainda que, no modo retardo na energização, quando a entrada I1 for para baixo nível, a saída Q1 será desacionada imediatamente.
b) Retardo na desenergização
Quando o temporizador é configurado para retardo na desenergização (Timer Off), a saída Q1 será acionada imediatamente quando a entrada I1 ficar em alto nível, entretanto, quando a entrada I1 for para baixo nível, a saída Q1 permanecerá acionada pelo tempo parametrizado T. Na imagem abaixo temos o diagrama de tempo do temporizador com retardo na desenergização, onde T é o tempo de atraso no desligamento da saída Q1.
Os demais modos de temporização partem basicamente destes dois tipos de retardo, cujas configurações variam dependendo do CLP. Veja exemplos destes modos no vídeo a seguir.
TON – Timer On Delay
A instrução TON é um timer não retentivo que acumula o tempo enquanto a instrução é habilitada (rung-condition-in igual a true).
Parâmetros:
Timer | TIMER | |
.EN | BOOL | O bit enable indica que a instrução TON está habilitada |
.TT | BOOL | O bit timing indica que a temporização está em processo |
.DN | BOOL | O bit done indica que .ACC >= .PRE |
.PRE | DINT | Preset value especifica o valor (em milissegundos) para setar .DN |
.ACC | DINT | O valor acumulado especifica o tempo com entrada habilitada |
.BASE | Base de contagem de tempo em segundos, centésimos ou milésimos de segundo |
Project1
• Inserir as tags:
TIMER1 | TIMER | T4:0 | Timer 1 |
K1 | BOOL | I1:0/5 | Motor Status |
F1 | BOOL | B3:1/1 | Fault Motor did not start |
Estrutura de T1:
• Em LAD2, inserir nova rung com contato normalmente aberto para BMON – Motor On Button em série com contato normalmente fechado para K1 – Motor Status para acionar o temporizador T1 do tipo TON. Ao acionar o botão de partida do motor BMON, o temporizador inicia a contagem, com o retro do motor K1 em nível lógico “0” (status de motor parado). A lógica aguarda por 5 segundos (Timer Base = 1 segundo e Preset = 5) para que o retro do motor vá para nível lógico “1”, indicando motor girando. Caso o tempo de 5 segundos tenha transcorrido e o status do motor não indique motor girando (K1 = 1), o parâmetro .DN de T1 aciona (instrução Output Latch) a falha F1 – Falha Motor não arrancou.
• Simular a lógica com instrução TON acionando os botões de Motor ON e observando os parâmetros do temporizador. Acionar o status de K1 com menos e com mais de 5s após o comando de arranque do motor.
TOF – Timer Off Delay
A instrução TON é um timer não retentivo que acumula o tempo enquanto a instrução é habilitada (rung-condition-in igual a false).
Parâmetros:
Timer | TIMER | |
.EN | BOOL | O bit enable indica que a instrução TOF está habilitada |
.TT | BOOL | O bit timing indica que a temporização está em processo |
.DN | BOOL | O bit done indica que .ACC >= .PRE |
.PRE | DINT | Preset value especifica o valor (em milissegundos) para limpar .DN |
.ACC | DINT | O valor acumulado especifica o tempo com instrução habilitada |
.BASE | Base de contagem de tempo em segundos, centésimos ou milésimos de segundo |
Comparação
Em programação, muitas vezes e necessário comparar dois valores. Para isso, pode-se usar as instruções de comparação. Os comparadores utilizam dois operandos, que podem ser byte, word ou constante. O programa é realizado com os operandos 1 e 2 (imagem abaixo). Caso os valores satisfaçam a condição de comparação e a entrada do comparador esteja habilitada, a saída do comparador será acionada, habilitando, assim, a saída do sistema.
As comparações que podem ser feitas são: igual, maior que, menor que, maior ou igual a, menor ou igual a e diferente.
Igual a (=)
A imagem abaixo apresenta a instrução de comparação igual a (=) em diagrama Ladder.
Nesse exemplo, quando a entrada I0.0 estiver habilitada, teremos a comparação entre o operando 1 e o operando 2. Se eles forem iguais, o resultado será nível lógico “1” e a saída será acionada. Se forem diferentes, o resultado será nível lógico“0” e a saída será desligada.
Maior que (>)
A imagem abaixo apresenta o programa da instrução maior que (>) em diagrama Ladder.
Nesse exemplo, quando a entrada I0.0 estiver habilitada, terá a comparação entre o operando 1 e o operando 2. Se o operando 1 for maior que o operando 2, o resultado terá nível lógico “1” e a saída será acionada. Se o operando 1 for menor que o operando 2, o resultado terá nível logico “0” e a saída será desligada.
Menor que (<)
A imagem abaixo apresenta o programa da instrução menor que (<) em diagrama Ladder.
Nesse exemplo, quando a entrada I0.0 estiver habilitada, terá a comparação entre o operando 1 e o operando 2. Se o operando 1 for menor que o operando 2, o resultado terá nível lógico “1” e a saída será acionada. Se o operando 1 for maior ou igual ao operando 2, o resultado terá nível logico “0” e a saída será desligada.
Maior ou igual a (≥)
A imagem abaixo apresenta o programa da instrução maior ou igual a (≥) em diagrama Ladder.
Nesse exemplo, quando a entrada I0.0 estiver habilitada, terá a comparação entre o operando 1 e o operando 2. Se o operando 1 for maior ou igual ao operando 2, o resultado terá nível lógico “1” e a saída será acionada. Se o operando 1 for menor que o operando 2, o resultado terá nível lógico “0” e a saída será desligada.
Menor ou igual a (≤)
A imagem abaixo apresenta o programa da instrução menor ou igual a (≤) em diagrama Ladder.
Nesse exemplo, quando a entrada I0.0 estiver habilitada, terá a comparação entre o operando 1 e o operando 2. Se o operando 1 for menor ou igual ao operando 2, o resultado será nível lógico “1” e a saída será acionada. Se o operando 1 for maior que o operando 2, o resultado será nível lógico “0” e a saída será desligada.
Diferente de (≠)
A imagem abaixo apresenta o programa da instrução de comparação diferente de (≠) em diagrama Ladder.
Nesse exemplo, quando a entrada I0.0 estiver habilitada, terá a comparação entre o operando 1 e o operando 2. Se os operandos forem diferentes, o resultado terá nível lógico “1” e a saída será acionada. Se o operando 1 for igual ao operando 2, o resultado terá nível lógico “0” e a saída será desligada.
Operações Matemáticas
Essas instruções têm como função executar operações aritméticas entre dois operandos,colocando o resultado em um operando de resposta denominado RES.
Somador (+)
Quando essa instrução e habilitada por meio da entrada (E), executa-se a somados operandos (OPR1 + OPR2), colocando o resultado em RES, conforme demonstra a imagem abaixo.
Quando a entrada esta habilitada, tem-se a execução da soma dos dois operandos ou constantes e, consequentemente, o valor passa para um terceiro operando. Operando 1 e operando 2 são os valores que serão somados. Os endereços permitidos são: bytes, words e constantes. Resultado é o operando que receberá o resultado da soma.
Subtrator (–)
Quando essa instrução e habilitada por meio da entrada (E), executa-se a subtração dos operandos (OPR1 – OPR2), colocando o resultado em RES, conforme demonstra a imagem abaixo.
Operando 1 é o valor do qual será subtraído o valor do segundo operando e, consequentemente, o resultado passa para um terceiro operando. Operando 2 é o valor que será subtraído do primeiro operando. Os endereços permitidos são: bytes, words e constantes.
Resultado é o operando que receberá o resultado da subtração. Os endereços permitidos são: bytes e words.
Multiplicador (×)
Quando essa instrução e habilitada por meio da entrada (E), executa-se a multiplicação dos operandos (OPR1 × OPR2), colocando o resultado em RES, conforme demonstra a imagem abaixo.
Quando a entrada esta habilitada, tem-se a execução da multiplicação dos dois operandos e, consequentemente, o valor passa para um terceiro operando. Operando 1 e operando 2 são os valores que serão multiplicados. Os endereços permitidos são: bytes, words e constantes.
Resultado é o operando que receberá o resultado da multiplicação. Os endereços permitidos são: bytes e words.
Divisor (÷)
Quando essa instrução e habilitada por meio da entrada (E), executa-se a divisão dos operandos (OPR1 ÷ OPR2), colocando o resultado em RES, conforme demonstra a imagem abaixo.
Quando a entrada esta habilitada, tem-se a execução da divisão dos dois operandos e, consequentemente, o valor passa para um terceiro operando. Operando 1 e operando 2 são os valores que serão divididos. Os endereços permitidos são: bytes, words e constantes.
O resultado é o operando que receberá o resultado da divisão. Os endereços permitidos são: bytes e words.
Instruções Especiais
CALL
A função especial CALL é mostrada na imagem abaixo.
Quando essa instrução é habilitada, o programa executa a sub-rotina indicada em CALL e, após a execução, retorna para o mesmo ponto do programa que chamou a sub-rotina.
JUMP
A função especial JUMP é mostrada na imagem abaixo.
Quando essa instrução é habilitada, o programa, ao passar pela instrução, pula para a sub-rotina indicada em JUMP. Nessa instrução, não há retorno para a rotina que estava sendo executada; o programa continua na sub-rotina indicada.
MOVE
A imagem abaixo mostra a função especial MOVE.
Essa instrução possui duas variáveis: MOV0 (origem) e MOV1 (destino). Quando a entrada I0.0 passa do nível logico “0” para o “1”, a instrução MOVE e habilitada, transferindo o valor contido na variável MOV0 (origem) para a variável MOV1 (destino).
Próximo
Usuário não registrado. Compre o treinamento em jats.com.br.