Técnicas de programação

Este é um assunto extremamente complexo pois envolve anos de experiência de profissionais atuantes na área, e não é nossa pretensão transmitir tanto conhecimento em tão poucas páginas. Por isso, tentar-se-á aqui descrever técnicas comuns usadas para explorar os recursos oferecidos pelas instruções Ladder, sempre tentando propor um exemplo de aplicação real para tal construção.

Acionamento direto

  1. Start-Stop-Seal

    Este exemplo mostra como contornar uma situação corriqueira, em instalações industriais. Pressionando um botão, o usuário deseja acionar um processo e, pressionando outro, deseja encerrá-lo.

    A figura abaixo ilustra como seria o aspecto de um diagrama Ladder para esta aplicação:

     

    Observa-se que, quando o operador acionar o sinal WX00.0, estando WX00.1 em "0", a saída WY00.0 estará ativa. No Scan seguinte, com tal saída ativa, o enlace, ou selamento (sealing) feito pelo sinal WY00.0 na linha de baixo mantém a saída funcionando, mesmo que WX00.0 seja desativado, por exemplo, depois que o operador soltar o botão.

    Esta condição permanece até que WX00.1, que poderia estar ligada num botão OFF, por exemplo, vá para "1". Neste caso, o circuito estará "aberto" e a saída será desligada. O selamento então será desfeito.

    Esta implementação oferece uma garantia a sistemas que poderiam ser ligados diretamente por chaves "liga-desliga". Supondo uma circunstancia em que a alimentação elétrica acabe e, inesperadamente retorne minutos depois, estes equipamentos poderão ficar descontrolados pois, se estavam ligados, ligados continuarão, mesmo que não haja condições adequadas de funcionamento. Trabalhando com selamento, quando a força retornar, será necessário um toque no botão ON para acionar novamente o processo. Assim as condições para o funcionamento podem ser checadas previamente.

    Uma forma alternativa de se chagar aos mesmos resultados é utilizar as bobinas Set e Reset, providas pelo PLSoft. O diagrama abaixo mostra o aspecto do circuito resultante.

  2. Intertravamento

    Esta técnica provê segurança a equipamentos que funcionem de dois modos diferentes, sendo estes mutuamente exclusivos. Por exemplo, pode-se citar o sentido de rotação de um motor, velocidade de giro (high/low – speed), etc.

    Considera-se primeiramente um exemplo mais simples. Um motor que gire nos dois sentidos, com a mesma velocidade e que esteja ligado a três botões: Start-F (start forward), Start-R (start reward) e Stop.

    Na construção do diagrama Ladder deve-se eliminar a possibilidade de os dois sentidos serem acionados simultaneamente. Além disso, a programação deverá prever situações onde possa haver falta e conseqüente retorno inesperado de energia elétrica, falha do operador, etc.

    O circuito abaixo ilustra o diagrama apropriado.

    Para que o motor funcione, deve-se pressionar um dos botões que definem o sentido de rotação. A partir daí, WY00.0 ou WY00.1 estará em "1", o que fará com que um dos circuitos acima esteja "aberto". Ativar portanto o sinal WX00.0 ou WX00.1 correspondente a tal linha, enquanto o motor gira, não provocará efeito algum, até que seja pressionado o botão Stop. Como tarefa prática, seria interessante que o aluno construísse um diagrama baseado nas bobinas Set e Reset, que tivesse o mesmo comportamento.

  3. Quick Reversal

Este modelo permite reverter o sentido de rotação de um motor, por exemplo, sem ter de pressionar Stop previamente. Este tipo de implementação pode ser desejado em algumas situações, porém em outras, pode não ser uma boa idéia. Se, por exemplo, tivermos um grande número de engrenagens em contato com um motor elétrico, reverter imediatamente o sentido de rotação poderia ser prejudicial às estruturas mecânicas pois aumentaria o stress sobre o eixo do motor, afetaria o sistema de transmissão de potência e poderia danificar as partes mecânicas.

O circuito abaixo ilustra uma situação típica para tal problema.

Proposta de atividades

  1. Construa um diagrama Ladder que funcione da mesma forma que um circuito tree-way. Ou seja, duas chaves independentes podem ligar e desligar uma mesma lâmpada. Ao invés de chaves, utilize dois botões para cada lado do circuito, um "liga" e outro "desliga".
  2. A abertura do cofre de um banco depende de três chaves: uma na sala do presidente, outra na central de segurança e outra na ante-sala do próprio cofre serem giradas ao mesmo tempo. Se qualquer uma delas for girada individualmente um alarme deve ser disparado. Implemente um circuito Ladder que conduza a esse comportamento.
  3. Três máquinas no mesmo pátio possuem, cada qual, dois botões: um Start e um Stop. Apenas uma delas pode funcionar de cada vez. Se alguma estiver funcionando, deverá ser parada pelo botão stop, antes que outra entre em funcionamento. Implemente tal circuito.

Temporização

Provavelmente, a instrução Ladder mais utilizada depois de bobinas e contatos é o temporizador. Basicamente, todos os PLCs trabalham com o chamado Timer Delay On, ainda que a maioria ofereça outros modos de operação. Este particularmente permite derivar outros sete diferentes modos, o que leva a preferir estudar somente ele. Entende-se que, com o conhecimento adquirido em suas técnicas de derivação, o programador poderá adaptar qualquer modelo de temporizador a qualquer necessidade. O comportamento básico deste tipo de temporizador é o seguinte: um sinal (B) vai para "1" algum tempo depois que outro sinal (A) é ativado. Se A vai para "0" então B também vai.

O PLSoft implementa um temporizador mais versátil, capaz de suprir a realmente toda e qualquer necessidade que envolva temporização. Este é o chamado Retentive Timer [WEB95], também utilizado em PLCs convencionais mais avançados e seu comportamento pode ser visto no item Temporizadores e Contadores deste volume.

Cita-se aqui algumas aplicações deste modelo de temporizador:

  1. On Delay

    Este é o modelo mais simples de temporização que existe. Quando o circuito é ligado, uma ação é executada. Momentos depois, uma outra ação toma vez.

    No esquema acima, observe que quando WX00.0 vai para "1", WY00.0 também vai (no mesmo scan). Dez segundos depois, WY00.1 vai para "1". Se em algum momento, durante ou depois do tempo pré determinado pelo setpoint WX00.0 é desligado, ambos, WY00.0 e WY00.1 vão para "0".

  2. Off Delay

    Esta técnica pode ser melhor compreendida baseando-se num exemplo. O castelo de um torno mecânico está constantemente sujeito a stress e tensões pesadas provocadas por dispositivos externos e, para prolongamento da vida útil, é necessário que trabalhe sempre acondicionado por um fluido resfriador que é despejado por uma pequena mangueira localizada sobre ele. Quando o motor que gira o castelo está funcionando, a bomba de lubrificação também o deverá estar. Quando o motor for desligado, a bomba deverá permanecer funcionando por mais 20 segundos.

    O diagrama abaixo ilustra um modelo adequado:

    Esta técnica mistura conceitos de temporização, com selamento e um bom entendimento de como funciona a varredura da linguagem Ladder. É interessante que o aluno invista nela, mude algumas coisas ou teste diferentes tipos de implementações.

  3. Multiple Timing

    O exemplo abaixo se divide em duas partes para expor esta técnica, bastante comum em atividades de controle industrial.

    A primeira parte ilustra uma situação em que duas linhas vão para "1" ao mesmo tempo, acionadas por uma entrada comum. Daí, uma delas tem que ir para "0" depois de um certo intervalo de tempo.

    Outra aplicação interessante seria o caso de estabelecer prioridades entre dois sinais que sejam ativados simultaneamente por dois botões diferentes. Um circuito parecido com o exposto acima poderia sempre dar prioridade a um deles, desligando o segundo após um dado intervalo de tempo. O programador é quem define qual deles terá a prioridade. Durante a temporização, qualquer botão que seja liberado, finaliza a contagem de tempo e a saída comandada pelo outro permanece ativa. Caso o aluno desejar, pode ser ainda implementado uma terceira linha de saída que informa quando os dois sinais ainda estão ativos e a temporização não acabou.

    A segunda parte ilustra uma situação onde mais de um intervalo de tempo deverá ser estabelecido para que um sinal vá para "0" depois de n segundos, depois outro sinal também vá, porém depois de m segundos, e assim por diante, sempre obedecendo temporizações diferentes.

  4. Temporizador de pulsos

Este circuito bastante simples pode ser usado em grande escala em aplicações que necessitem de um pulso a dados intervalos de tempo. Ela consiste em um único temporizador ligado como a seguir.

Ele funciona da seguinte maneira: primeiramente a chave normal fechada mantém o temporizador habilitado a funcionar. Quando a linha WX00.0 vai para "1" ele então inicia a contagem e, durante este período WR00.0 está em "0". Quando a contagem for finalizada, WR00.0 vai para "1", o que energiza a bobina ligada a WY00.0. No próximo scan porém, com WR00.0 em "1" o temporizador é desabilitado, o que reseta seu acumulador e seu flag de resposta. No scan seguinte, como o flag de resposta WR00.0 foi restado, a chave normal fechada "conduz" e daí o temporizador volta a sua condição "habilitado", o que inicia uma nova contagem.

  1. One shoot

    Esta técnica mostra como gerar um pulso, por exemplo, depois de um certo intervalo devido ao pressionamento de um botão. O pulso será gerado, permanecendo o botão pressionado durante a temporização ou não. Se durante a temporização, o operador quiser cancelar o processo, este deverá pressionar um botão de Reset.

    Observa-se o diagrama abaixo.

    O funcionamento deste circuito resume-se ao seguinte: inicialmente, WX00.0 é "0" e com isso WR00.0 também o é. Quando o operador dá um toque no botão que inicia o processo, WX00.0 vai para "1" durante alguns scans, o que provoca o selamento com WR00.0, que permanece "1" daí para frente. Estando WR00.1 em "1", o temporizador inicia sua contagem e, 10 segundos depois, WR00.1 é ativado. No mesmo scan, a última linha do circuito energiza a saída WY00.0. WR00.1, agora porém, está em "1" e no próximo scan, o selamento da primeira linha é desfeito. Com isso o temporizador para de contar e WY00.0 vai para "0". Durante o período de contagem, caso WX00.1 seja ativado, o temporizador é resetado.

    Seria interessante que o aluno tentasse desenvolver um sistema parecido com esse porém que retesse o pulso fazendo, por exemplo, com que um sinal fique ativo n segundos depois de ser pressionado um botão. Aqui, reter o pulso (selamento) seria uma solução pouco eficiente, porém didática.

  2. Alternate Flasher System

Esta técnica mostra como é possível fazer duas luzes piscarem de forma alternada, sendo o processo iniciado por uma chave "liga-desliga", ou um bit qualquer dentro do PLC.

Procurar-se-á novamente descrever o que acontece quando o processo é acionado, neste caso pela linha WX00.0. Ele está ligado à bobina MCS que, quando energizada, permite que as linhas entre ela e a MCR correspondente sejm ativadas. Estanto, WR00.1 inicialmente em "0", o temporizador T00 começa a contar. Dois segundos depois, WR00.0 vai pra "1" e com isso o temporizador T01 inicia a sua contagem. Quando este último termina, WR00.1 vai pra "1", o que "abre" o circuito que alimenta o primeiro temporizador. Com isso, WR00.0 vai pra "0", o que reinicia o processo.

Proposta de atividades

Sugere-se que o aluno construa diagramas para compor as seguintes características:

  1. Uma lâmpada deverá ser ligada 8,6 seg. depois de uma chave ser acionada. Se, durante o intervalo de temporização, a chave for desligada, o temporizador deverá ser resetado para que, quando ela for ligada novamente, a lâmpada espere 8,6 seg. novamente para acender.
  2. Quando um chave C é ligada, a sirene L é ligada imediatamente e, após 9 segundos, é desligada e então um motor começa a girar. Se em qualquer momento a chave for desligada, tanto a sirene quanto o motor deverão ser desligados.
  3. E e F são ligadas pelo acionamento de uma chave. Quando a chave é desligada, ambas E e F deverão também ser desligadas, E imediatamente e F após 10 s.
  4. Um circuito externo necessita de duas temporizações feitas por pulsos. Um deles a cada 4 segundos e outro a cada 12 segundos. Implemente o circuito usando: (a) 2 temporizadores; (b) 1 temporizador e 1 comparador.
  5. Gere uma onda quadrada de período T=1 seg., sendo que durante 0,3 seg, a saída esteja em nível "1" e durante 0,7, esteja em nível "0".

Contagem

A maioria dos PLCs existentes no mercado trabalha com contadores crescentes e decrescentes, cujas funções são similares. O contador crescente, conta as bordas de descida de algum sinal e incrementa seu acumulador até que certo valor seja encontrado. Neste ponto, um flag de resposta é ativado. O contador decrescente é o contrário. Ele conta do valor que estiver em seu acumulador até zero, onde o flag de resposta é ativado. Os contadores podem ser usados para definir condições de parada, alarmes, manipular grandezas algébricas, etc. Dar-se-á aqui alguns exemplos de aplicação.

  1. Dual counter

    Neste exemplo, há dois sensores que indicam quando ocorre deslocamento de algum corpo entre seus terminais. Cada um está localizado em uma calha onde só passam bolinhas pretas ou amarelas. Uma saída deverá ser energizada quando no mínimo oito bolinhas pretas e seis bolinhas amarelas forem contadas. Um botão de reset zera os contadores. Os sensores geram um sinal de 5V quando percebem algum objeto.

    O funcionamento deste circuito é um dos exemplo mais simples que pode-se citar a respeito de contadores. Quando uma bolinha é detectada pelo sensor, este gera 5V em sua saída. Após a passagem da mesma, o sinal retorna a nível "0". O PLC detecta então uma borda de descida e, como é de sua natureza, incrementa o contador ligado ao sinal correspondente. A ultima linha do circuito acima garante que a saída WY00.2 só será energizada se no mínimo 6 bolinhas amarelas (condição necessária para que o primeiro contador ative seu flag de resposta) e 8 bolinhas pretas tiverem sido contadas.

  2. Net Count

    O exemplo abaixo ilustra como um contador pode funcionar para estabelecer condições de alarme em um processo. Ele consiste em um contador Up/Down em que, cada vez que uma bolinha é lançada em uma calha, seu valor é incrementado e, cada vez que um sensor localizado no final da calha percebe uma bolinha, seu valor é decrementado. O funcionamento do processo é então o seguinte: Ao lançar uma bolinha, o contador deve contar "1". Quando a bolinha chegar ao final da calha, o contador é decrementado e seu valor vai para 0. Essa é a condição necessária para que uma nova bolinha seja lançada. No processo considerado, estando WY00.2 ativado, não importa o tempo, apenas uma bolinha é lançada.

    Observe que o SetPoint do contador acima foi escolhido arbitrariamente. Na verdade, este valor não é alcançado, desde que as condições previstas para o funcionamento do processo sejam observadas.

    Para projetar o sistema acima, foi feita a suposição de que apenas uma bolinha é lançada de cada vez. Utilizando um comparador, seria interessante o aluno alterar o projeto introduzindo um critério de parada que atuasse quando mais de uma bolinha fosse lançada na calha simultaneamente.

  3. Flow Rate

Muitas vezes é necessário avaliar grandezas como por exemplo quantas caixas passam por um sensor por unidade de tempo, ou quantos pulsos são gerados por um encoder ligado a um motor, por segundo, etc. Isto é conseguido dividindo-se a contagem em intervalos de tempo regulares. Neste caso, contadores e o temporizadores devem ser usados simultaneamente.

O exemplo abaixo avalia quantas caixas são produzidas por uma linha de montagem, por hora. Um sensor pulsa cada vez que um objeto passa entre seus terminais, incrementando um contador até o final do período de amostragem, determinado por um temporizador.

Decorrida uma hora de contagem, a linha que está conectada ao UP do contador é interrompida pelo flag de resposta do temporizador e a taxa de caixas por unidade de tempo é armazenada no acumulador do contador. Um outro segmento do programa neste caso, deveria trabalhar em cima dessa taxa amostrada e então pulsar o bit WR00.2 que reseta o diagrama acima. A partir daí a contagem começa novamente.

Proposta de atividades

Sugere-se que o aluno construa diagramas Ladder que atendam as necessidades dos seguintes processos.

  1. Uma luz deverá ser acesa quando um evento ocorrer 23 vezes e ser apagada, quando tal contagem chegar a 32.
  2. Uma máquina M deverá ser ligada ou quando o contador A chega a 11 ou quando o contador B chega a 16. Um botão Reset reinicia o processo.
  3. Um resfriador deverá ser ligado quando (primeira condição:) o contador L contar de 7 até 0 e (segunda condição:), ou o contador M contar de zero a 14 ou o contador N não sair do seu valor inicial que é 15. Sugestão: para carregar um valor inicial num contador utilize a instrução copiar, informando, por exemplo, 10 para PALAVRA DE ORIGEM e Q00 para a PALAVRA DE DESTINO; para verificar se o contador não mudou seu valor inicial, copie-o para um endereço qualquer de memória e, a partir de então, compare-o ao acumulador do contador em questão.
  4. Um processo de engarrafamento funciona da seguinte maneira: Garrafas que passam por uma esteira (acionada pelo PLC) são contadas até que 12 delas tenham sido automaticamente posicionadas para ser enchidas – não é necessário preocupar com o posicionamento. Quando estiverem posicionadas, a esteira deverá parar por 6,3 seg. para que as 12 sejam simultaneamente enchidas (um sinal deverá permanecer ativo durante esse intervalo). Depois disso, uma máquina deverá receber pulsos a cada 3,8 seg. para que as tampinhas sejam colocadas. A máquina se posiciona sobre as garrafas sem a intervenção do PLC, que só atua temporizando a colocação das tampinhas. Depois disso a esteira é ligada novamente até que um sensor de fim de curso indique que as garrafas chegaram ao empacotador. Quando este sensor não estiver mais atuado, significa que as garrafas foram retiradas da esteira e que o processo deverá ser reiniciado com outras garrafas.
  5. Projete um sistema de controle para o seguinte processo. Quando o botão START é pressionado, uma empilhadeira (STACKER) começa a empilhar pratos na posição A de uma esteira transportadora. A altura desta pilha é controlada por um contador e não por um sensor linear. Quando 12 pratos estão empilhados, a correia (CONV) começa a se mover e é parada por um sensor na posição B que gera "1", quando atuando. Neste ponto, jatos de tinta são dirigidos às laterais dos pratos durante 12,3 segundos (este devem ser acionados pelo PLC). Depois que os jatos de tinta são interrompidos, o processo é então suspenso até a intervenção do operador. Quando este pressionar o botão CONTINUE, a esteira volta a se mover até a posição C onde o processo é finalizado. À qualquer momento, o botão STOP interrompe o processo. Implemente o algoritmo Ladder de controle e adicione chaves, sensores etc., à medida que for necessário.

Manipulação algébrica

As instruções de manipulação algébrica, são aquelas que se aplicam sobre palavras dentro da memória do PLC e não sobre bits isoladamente. No caso do PLSoft as instruções disponíveis são: adição, subtração, multiplicação, divisão, AND, OR, XOR, comparação, copiar e mover. Citaremos aqui algumas das aplicações mais comuns relacionadas a esta classe de instruções. Em geral elas estão relacionadas a etapas do controle que dependam de cálculos baseados em etapas anteriores. As instruções aritméticas (soma, subtração, divisão e multiplicação) contam com as palavras de sistema, região WZ da memória, para expor seus resultados. Portanto, muitas vezes é necessário checar o status de algumas destas palavras após o resultado das operações.

Citaremos aqui algumas técnicas comuns relacionadas a tais instruções.

  1. Dependent Flow Rate

Citou-se anteriormente um exemplo de aplicação dos contadores que é o controle de quantas vezes um sensor é atuado por unidade de tempo. Aquele caso se aplica também quando estamos trabalhando com duas linhas que despejam seus produtos em outra que, por algum motivo não pode ser monitorada. Neste caso, dois sensores, um em cada uma das linhas iniciais, poderão atuar em dois contadores diferentes e, uma instrução SOMAR convenientemente posicionada poderá armazenar em um registrador na memória a quantidade total de itens que é despejada na última linha. Dividindo-se esta contagem em intervalos de tempo iguais, obtém-se a taxa de produção conjunta das duas linhas. Observe o código abaixo:

A mesma abordagem pode ser usada caso tenha-se um sensor na última esteira e um outro em apenas uma das duas iniciais. Neste caso, para saber a taxa de produção daquela que não tem sensor, poderíamos usar a instrução SUBTRAIR.

Observe que a mesma contagem (para o primeiro caso), poderia ser obtida caso os dois sensores fossem usados para incrementar o mesmo contador, ligados por uma condição OU, como mostra a seguir, sem a condição de temporização:

Porém o circuito acima poderá apresentar erros quando duas caixas passarem ao mesmo tempo nos sensores. Se o programa trabalhar em uma situação na qual isto com certeza nunca acontece, esta talvez seja a melhor solução pois o circuito fica mais simples. Porém esta suposição é muito vaga e, na maioria das vezes é preferível contar com tal simultaneidade e adotar a intrução SOMA.

  1. Cálculo de tolerância

Muitas vezes lida-se com processos que podem apresentar falhas em sensores, por falta de aferição, ou por outras situações inusitadas. Por isso, é recomendável trabalhar com margens de erro ou tolerância. Suponha um processo que dependa de uma linha cuja taxa de produção pode variar durante um dia, por exemplo. A tolerância adotada como critério de parada, seria portanto uma porcentagem da produção estimada. Se são esperadas 200 peças por hora, por exemplo pode-se trabalhar com uma tolerância de 5%, o que resultará que, caso a produção fosse menor que 190 ou maior que 210 peças por hora, o PLC acionaria uma luz indicativa.

Como esta estimativa da tolerância depende de outra variável, neste caso a produção, são necessários cálculos para determinar os SetPoint dos contadores envolvidos em tais alarmes. Observa-se o seguinte fragmento de programa:

O sinal WR04.0 é provido por um temporizador que de tempos em tempos atualiza os cálculos da tolerância. WX00.0 é quem habilita o funcionamento do processo. Destaca-se a necessidade da chave sensível à borda pois caso contrário os cálculos seriam realizados a cada scan.

  1. Temporização Simétrica

Enquanto falava-se de temporização, foi cogitado algo a respeito de gerar pulsos a intervalos regulares de tempo. Isto pode ser feito através do uso de temporizadores e das instruções de DIVISÃO.

Pelo diagrama abaixo, mostra-se um modelo de aplicação:

Aqui, utiliza-se da palavra WZ0B que é o registrador que armazena o resto das divisões realizadas. O registrador T00 é incrementado a cada segundo e, quando o resto da divisão de seu valor por 3, for 0, ou seja, quando T00 for igual a 0, 3, 6, 9 ou 12 o comparador da última linha "fecha" o circuito, ativando WY00.0. Quando T00 for igual a 12, WR01.0 vai para "1", o que, no próximo scan, reseta os temporizador, fazendo com que seu acumulador vá para "0". Isto provoca um pulso de duração de 2 scans (na passagem de T00 = 12 para T00 = 0). Em se tratando da maioria das aplicações, isto não provocaria problemas no comportamento do processo. Porém é possível solucionar a questão através da implementação a seguir:

Aqui, quando T00 = 12 e WR01.0 vai para "1", não ocorre pulso devido à chave normal fechada inserida na última linha, porém, no scan seguinte, T00 é resetado e a instrução DIVISÃO garantirá que WZ0B seja igual a 0, condição necessária para que o pulso ocorra.

Proposta de atividades

Propões-se agora, atividades que envolvam o uso de acionamentos, temporização, contagem e manipulação algébrica.

  1. Um processo de ensacamento de biscoitos é controlado por um PLC. Uma esteira move-se (acionada pelo programa) até uma região na qual os biscoitos que ela transporta são despejados em um funil dotado de um sensor que gera "1" quando percebe um biscoito e volta para "0" quando não há objetos entre seus terminais. Depois que 50 ±  10% biscoitos tiverem sido despejados no funil, a correia deve parar por 2 segundos, tempo necessário para um outro processo selar o pacote e dar seqüência à linha. O tempo de movimentação da esteira, durante o qual ela despeja biscoitos no saco deve ser definido pelo PLC pois depende da quantidade de biscoitos transportada pela correia, o que, por sua vez, é uma outra variável que depende de uma etapa anterior no processo de fabricação. Projete um programa pelo qual o PLC comporte-se como descrito abaixo e permita o controle deste tipo de processo.

  1. Para evitar desgaste mecânico, um fabricante recomenda que seu motor não funcione mais do que duas horas seguidas. Projete um circuito que, caso o motor tenha funcionado durante todo este período, uma luz indicativa acenda ao mesmo tempo que o motor é automaticamente desligado. Caso o operador reinicie o funcionamento do motor (por um botão qualquer), deve-se novamente contar duas horas e repetir o procedimento de segurança. Porém, o tempo total de funcionamento do motor (acumulativo), bem como quantas vezes ele foi ligado (não importa se foi previamente desligado pelo PLC – depois de duas horas de funcionamento - ou por um botão externo), e o tempo médio de funcionamento, isto é, total de horas dividido pelo número de acionamentos, deverão ser guardados respectivamente em: WRA0, WRA1,WRA2. Quando o motor é reiniciado, a luz de advertência deverá ser apagada. Construa o fluxograma e o código Ladder correspondente a este processo.