Tutorial LDmicro
Tutorial LDmicro
Este tutorial mostra como escrever um programa muito simples utilizando o programa
LDmicro. Supõe-se que você conhece a lógica LADDER, que você tem alguma familiaridade
básica com microcontroladores, mas que você nunca usou o LDmicro.
Nosso dispositivo terá um botão e um diodo emissor de luz (LED). De início, o LED estará
desligado. Ao ser pressionado o botão uma vez, o diodo emissor de luz ligará e permanecerá
aceso. Ao pressionar o botão uma segunda vez, o LED começará piscar. A terceira vez que o
botão for pressionado, o diodo emissor de luz será desligado. Pressionando-se o botão
subseqüentemente, o ciclo se repetirá.
Você pode construir este circuito de muitas maneiras diferentes. Aqui, ele foi construído
numa proto-board, qua acabou ficando com o aspecto da figura à direita (os valores dos
resistores na figura não são exatamente os mesmos do esquema, mas não representa um
fator crítico.)
Diagrama Ladder para o Programa
Primeiramente, precisamos de um oscilador para gerar sinal de ‘piscar’ para o diodo emissor
de luz. Há uma maneira padrão fazer isto na lógica LADDER:
Isto piscará com uma freqüência de 1 ((250+250) ms), ou 2 hertz, ou duas vezes por segundo.
O ciclo de trabalho será 50%-250 ms ligado, e 250 ms desligado. Este circuito pode fazer
qualquer tipo de oscilador, com qualquer período ou ciclo requerido, assim é um bom
comando para se guardar na memória.
Observe também que foi escolhido usar um relé interno (‘Rosc’) em vez de um ligado a um
pino de entrada/saída (‘Yosc’ ou ‘Xosc’). Isto faz sentido, porque não há nenhuma razão
particular para emitir esse sinal a um pino do microcontrolador. O LDmicro atribuirá
automaticamente uma posição de memória para o relé interno.
Nosso programa terá três estados: desligado, ligado, e piscando. O programa deve mudar seu
estado a cada acréscimo do sinal do botão. Esta é uma boa aplicação para um contador
circular. Consideraremos que o estado ZERO é o ’desligado’, o estado 1 é o ‘ligado’, e o
estado 2 é o ‘piscando’. O contador conta 0, 1, 2, 0, 1, 2,…, assim apenas é necessário
associarmos a condição de entrada do contador no rung à entrada do botão, e tudo
funcionará como desejado:
|| Xbutton Cstate ||
2 ||-------] [---------------------------------------{CTC 0:2}----||
Agora só resta uma instrução para utilizar o estado do programa para ‘setar’ o estado do LED.
Podemos fazer isto desta meneira:
É fácil convencer-se que este programa faz o que nós queremos. Se o programa estiver no
estado 1, então a instrução ‘Cstate == 1’ energiza o ‘Yled’, como desejado. No estado 2, a
instrução ‘Cstate == 2’ energiza o ‘Yled’, mas somente quando ‘Rosc’ é também verdadeiro.
Como ‘Rosc’ está oscilando, isse significa que o diodo emissor de luz piscará, como desejado.
Finalmente, no estado 0 (zero), nenhuma das instruções de igualdade será verdadeiras, assim
não há nenhuma maneira de ‘Yled’ ser ligado.
Entrando com o Diagrama Ladder
Agora que temos nosso circuito, podemos desenhá-lo no LDmicro. Quando você iniciar o
programa, verá um rung vazio:
Nós queremos entrar com o primeiro rung da lista acima. Nós começaremos com a bobina,
assim escolhemos Instruction - > Insert Coil. Isto criará uma bobina chamada ‘Ynew.’ É
isto o que queremos, exceto que o nome está errado, e ela deve ser do tipo ‘negada’. Dê um
duplo-clique sobre a bobina; isto fará aparecer uma caixa de diálogo onde nós podemos
escolher:
Agora podemos introduzir o restante daquele rung da mesma maneira. Clique sobre a borda
esquerda da bobina, de modo que o cursor apareça vertical, e à esquerda da bobina. Escolha
agora Instruction - > Insert TON (Timer com atraso para ligar). Mais uma vez dê um
duplo-clique sobre o temporizador para rebatizá-lo e ajustar o período (tempo). Adicione
então o temporizador TOF e os contatos, da mesma maneira.
Agora é necessário entrar com o segundo rung, assim escolha Edit - > Insert Rung After
. Clique então sobre o segundo rung para mover para lá o cursor:
Entrar com o segundo rung é fácil: apenas preencha as duas instruções na ordem certa,
colocando o cursor onde você quer introduzir a instrução e escolhendo Instruction - >
Insert …. Lembre-se de atribuir um nome (‘Xbutton’) aos contatos, e ajustar o nome e o
limite superior do contador. Escolha então Edit - > Insert Rung After outra vez. Seu
programa deve ficar assim:
O terceiro rung é um pouco mais complicado, porque tem ramificações paralelas. Isso
significa que você tem que pensar na ordem em que você introduz as instruções.
Primeiramente, introduza a bobina, e rebatize-a (Yled):
Escolha agora Instruction -> Insert EQU (comparação de igualdade). Como o cursor está
abaixo da primeira instrução de comparação, a nova instrução será introduzida abaixo da
primeira, paralela a ela. Rebatize-a como usual. Para terminar o rung, você deve introduzir
contatos os contatos ‘Rosc’ à direita da segunda instrução de comparação de igualdade. Para
fazer isto, clique sobre a borda direita da segunda instrução de comparação:
Neste ponto escolha Instruction -> Insert Coil; a bobina sera inserida em série com a
segunda instrução de comparação de igualdade, como desejado. Renomeie a bobina e o
diagrama estará finalizado.
Simulando o Programa
Agora nós estamos prontos para simular nosso circuito. Escolha Simulate -> Simulation
Mode. A tela do programa mudará; o diagrama ladder aparecerá em cinza em sua maior
parte, mas você não verá qualquer coisa se modificar com o tempo. Isso é porque o PLC ainda
não está “ciclando’. Para iniciá-lo, escolha Simulate -> Start Real-Time Simulation.
Agora você verá o funcionamento das coisas: o oscilador está obviamente funcionando, mas o
diodo emissor de luz (‘Yled’) ainda está desligado, que é o que nós queremos, porque
ninguém pressionou a tecla ainda. Para simular o pressionamanto da tecla, dê um duplo-
clique sobre o ‘Xbutton” na lista existente no final da tela. Você agora simulou a modificação
do estado de entrada do botão, de zero para 1; este é o que aconteceria se alguém
comprimisse (mas ainda não liberasse) a tecla.
Você pode ver que o programa está funcionando: o contador ‘Cstate’ agora é igual a 1, que
corresponde ao estado ‘ligado’, que é o que queremos. A saída do LED passa de zero para 1;
você pode ver que seu valor é 1 na lista, e a bobina do ‘Yled’ aparece vermelha no diagrama.
Dê outro duplo-clique no texto do ‘Xbutton’ na lista para simular a liberação da tecla, e outro
duplo-clique para simular então outro pressionamento; a bobina do ‘Yled’ começará piscar,
como projetado. Finalmente, se você simular um terceiro pressionamento do botão, a saída
irá para o estado ‘desligado’.
Compilando para um Arquivo IHEX
Agora que estamos razoavelmente certos que o programa funciona, estamos prontos para
gerar o código real, e testá-lo no microprocessador. Primeiramente, saia da a modalidade de
simulação escolhendo Simulate -> Simulation Mode, ou pressionando a tecla ‘ESC’.
Clique ‘OK’, e repita então o processo para o ‘Yled’, que você pode ver no diagrama
esquemático que deve ir para o pino 15. Os outros elementos na lista são variáveis internas e
bits na memória, assim não há nenhuma necessidade em atribuir-lhes pinos. O LDmicro
alocará a memória para eles quando você compilar o programa.
Agora você está pronto para compilar. Escolha Compile -> Compile, e especifique onde
você quer gravar o arquivo IHEX. Use então o equipamento de programação do PIC que você
possui para carregar o programa compilado, e você está pronto para testá-lo.