Beruflich Dokumente
Kultur Dokumente
Guia de Uso
||
||
Xbutton1
Tdon
Rchatter
Yred
||
||
Tnew
||
||
||
||
Rchatter ||
clicando
duas
vezes
no
cone
quando
voc
desejar
execut-lo.
Caso voc salve um arquivo com o LDmicro com o nome`ldmicro.exe asd.ld, por exemplo,
ento o LDmicro tentar abrir o arquivo `asd.ld', se ele existir. Um erro ser mostrado se
`asd.ld ' no existir. Isto significa que voc pode associar arquivos do ldmicro.exe com .ld,
para que seja executada automaticamente quando voc clicar duas vezes em um arquivo
ld.
Introduo
Ao ser executado o programa, ir iniciar sem nenhuma linha de programao pronta, a
menos que voc j o inicie com um arquivo .LD j existente, se for feito isso ento ele
abrir o programa com a ltima atualizao salva.
O software usa um prprio formato interno para o programa; sem assim no consegue
importar nenhuma outra lgica de outros compiladores.
Caso voc abra um novo programa, voc poder inserir conjuntos de contatos (Instrues
-> Inserir Contato) nomeado`Xnew '. O `X 'significa que a esses contatos dever ser
atribudo a um pino de entrada no microcontrolador escolhido.
Voc pode atribuir um pino a ele mais tarde, aps escolher um microcontrolador e
renomear os contatos. A primeira letra de um nome indica o tipo de instruo que ela .
Por exemplo:
Xname Deve ser atribudo a um pino de entrada do microcontrolador
Enxame Deve ser atribuido a um pino de sada do microcontrolador
* RNAME - `Rele interno': tem a funo de agir como um contato de memria
* TNAME um temporizador pode ser um temporizador que conta para liga ou desliga,
ou do tipo retentivo
* Cname - um contador decrescente, crescente ou um contador circular
* Aname (Conversor A/D) l a entrada analgica e colocar o valor lido em uma varivel
do tipo INT (Inteiro).
* Nome - varivel de uso geral (inteiro) .
Escolha o resto do nome da instruo baseado na funo que ele ira fazer, isto pode
ajudar caso seja necessrio fazer alteraes no programa posteriormente, e escolha
tambm de modo que seja nica dentro do programa.
O mesmo nome refere-se sempre para o mesmo objeto dentro do programa. Por
exemplo, seria um erro ter um TEMPORIZADOR PARA LIGAR (TON) chamado `Tdelay 'e
um TEMPORIZADOR PARA DESLIGAR (TOF) chamado `Tdelay" no mesmo programa,
uma vez que cada contador precisa de sua prpria memria. Por outro lado, seria correcto
ter um temporizador retentivo (RTO) chamado `Tdelay 'e uma instruo de reset (RES)
associado `Tdelay ', uma vez que nesse caso voc deseja que ambas as instrues
trabalhem com a mesma varivel.
Os nomes das variveis podem consistir de letras, nmeros e sublinhados, um nome de
varivel no deve comear com um nmero. Os nomes das variveis podem ser
maisculas
e
minsculas.
As instrues gerais (MOV, ADD, EQU, etc.) podem trabalhar em variveis com qualquer
nome. Isso significa que eles podem acessar temporizadores, contadores e
acumuladores. Isso s vezes pode ser til; por exemplo, voc Pode verificar se a
contagem de um temporizador em um determinado intervalo.
As variveis so sempre 16 bit inteiros. Isto significa que As variveis so sempre tratadas
como Signed e podem ir de -32768 a 32767. Voc pode especificar como nmeros
decimais inteiros normais (0, 1.234, -56). Voc tambm tem a opo de especificar os
valores de caracteres ASCII ('A', 'z'), colocando o os caracteres em aspas simples. Voc
pode usar um cdigo de caracteres padro ASCII na maioria dos lugares onde tambem se
pode usar um nmero decimal.
Na parte inferior da tela, voc ver uma lista de todos os objetos colocados no programa,
esta lista gerada e atualizada automaticamente.
A maioria dos insrues no precisa fazer nenhuma configurao, J `Xname ',` Yname',
e `objetos aName 'deve ser no entanto atribudo a um pino no microcontrolador.
Primeiro, escolha qual microcontrolador voc est usando (Configuraes ->
microcontrolador). Em seguida, atribua seus pinos de entradas e sadas com um duplo
clique no nome da instruo na lista.
Voc pode modificar o programa atravs da insero ou excluso de instrues. O cursor
na tela de programa pisca para indicar a instruo ou linha selecionada.
Se no estiver piscando, basta pressionar <Tab> ou clicar em uma instruo. Agora voc
pode excluir a atual instruo, ou voc pode inserir uma nova instruo para a direita ou
para
a
esquerda
(em srie com a instruo selecionada), acima ou abaixo (em paralelo com a instruo
selecionada). Algumas operaes no so permitidas, Por exemplo, h instrues que
no
so
permitidas
serem
colocadas
a
direita
de
uma
bobina.
O programa comea com apenas uma linha. Voc pode adicionar mais linhas,
selecionando
a instruo inserir linha Antes / Depois( insert rung before/ after) no menu Editar (Edit).
Voc poderia obter o mesmo efeito colocando muitos sub circuitos complicados em
paralelo dentro de uma linha, mas fica mais fcil de identificar como funciona a lgica do
programa quando se usa mais linhas para executar diversas instrues.
Depois de ter escrito um programa, voc pode test-lo no modo de simulao, e, em
seguida,
voc pode compil-lo e gerar um arquivo .HEX para o microcontrolador escolhido.
Simulao
Para entrar no modo de simulao, escolha Simular -> Modo Simulao ou pressione
<Ctrl + M>. O programa mostrado de forma diferente no modo de simulao, o cursor
----
----
Yname
)
----
Se o sinal que vai para a instruo for falso, ento o Rele interno (Rname) ou pino de
sada (Yname) permanece inativo (Aberto), mas quando o sinal for verdadeiro, ento o
Rele interno(Rname) ou pinode sada (Yname) acionado (fechado).
Esta instruo deve estar a direita na linha em que ela for colocada.
> COIL, NEGADA
RNAME
Yname
---- ( / ) ------- ( / ) ---Essa instruo tem a funo oposta a instruo acima, se o sinal que vai para a instruo
for falso, ento o Rele interno (Rname) ou pino de sada (Yname) permanece ativo
(fechado), mas se o sinal for verdadeiro, ento o Rele interno(Rname) ou pino de sada
(Yname) desacionado ( Aberto).
Esta instruo deve estar a direita na linha em que ela for colocada.
----
(S)
Yname
----
Se o sinal que vai para a instruo verdadeiro, ento o dado rel interno ou pino de
sada definido como ativo. Caso contrrio, o interno rel ou estado pino de sada no
alterado. Esta instruo s pode alterar o estado de uma bobina de desativado para ativo,
por
isso,
normalmente
utilizado em combinao com uma nica bobina que somente desativa.
Esta instruo deve estar a direita na linha em que ela for colocada.
> BOBINA, SOMENTE DESATIVO
RNAME
Yname
---- (R) ------- (R) ---Se o sinal que vai para a instruo verdadeiro, ento o dado rel interno ou pino de
sada desativado. Caso contrrio, o rel interno ou estado pino de sada no alterado.
Esta instruo
s pode alterar o estado de uma bobina de ativo para desativado, por isso, normalmente
utilizado com uma Bobina, somente ativo em conjunto.
Esta instruo deve estar a direita na linha em que ela for colocada.
> TEMPORIZADOR PARA LIGAR
Tdon
- [TON 1.000 s] Quando o sinal que vai para a instruo passa de falso para verdadeiro, o sinal de sada
permanece falso por 1.000 s antes de se tornar verdadeiro. Quando o sinal que vai para a
entrada desta instruo vai de verdadeiro para falso, o sinal de sada vai para falso
imediatamente. O temporizador zerado sempre que a entrada for falsa, para acionar o
temporizador a entrada deve permanecer verdadeira por 1000 milissegundos
consecutivos e assim ser acionada a sada.
O tempo de atraso pode ser configurado.
A varivel `TNAME 'conta-se a partir de zero em unidades de tempo em ciclos de
trabalho, a Instruo TON tem a sada verdadeira quando a varivel do contador maior
ou igual ao atraso determinado. Tambm possvel manipular a varivel em outro lugar,
por exemplo, com uma instruo MOV.
> TEMPORIZADOR PARA DESLIGAR
-
[TOF
1.000
s]
Tdoff
-
Quando o sinal que vai para a instruo passa de verdadeiro para falso, o sinal de sada
permanece contando 1.000 s antes de se tornar falso. Quando o sinal que vai para a
instruo passa de falso para verdadeiro, o sinal de sada se torna verdadeiro
imediatamente. O temporizador reinicia cada vez que a entrada se torna falsa; a entrada
deve permanecer falsa por 1000 milissegundos consecutivos antes de desligar sada. O
tempo de atraso configurvel.
A varivel `TNAME ' conta-se a partir de zero em unidades de tempo em ciclos de
trabalho, a Instruo TOF tem a sada verdadeira quando a varivel do contador maior
ou igual ao atraso determinado. possvel manipular a varivel em outro lugar, por
exemplo, com uma instruo MOV.
>
TEMPORIZADOR
-
RETENTIVO
[RTO
1.000
s]
TRTO
-
Esta instruo mantm o controle de quanto tempo a entrada tem sido verdadeira. E se a
entrada for verdadeira por pelo menos 1.000 s, ento a sada se torna verdade. Caso
contrrio, a sada permanecer falsa. A entrada no precisa ser verdadeira por 1000
milissegundos consecutivos; Se a entrada se tornar verdadeira por 0,6 s, seguidos e falsa
por 2,0 e em seguida por verdadeira por mais 0,4 s, seguidos, a sada se tornara
verdadeira. Aps a sada ser verdadeira ele ir permanecer acionado mesmo aps a
entrada se tornar falsa.
Este temporizador deve ser redefinido manualmente, utilizando a instruo de reset
(REDEFINIR).
A varivel `TNAME 'conta-se a partir de zero em unidades de tempo de verificao. O
Instruo TRTO tem a sada verdadeira quando a varivel do contador maior que ou
igual ao atraso determinado. possvel manipular a varivel em outro lugar, por exemplo,
com
uma
instruo
MOV.
> REDEFINIR
TRTO
Citems
---- {RES} ---- ---- {RES}---Esta instruo repe um temporizador ou um contador. TON e TOF temporizadores so
temporizadores que conseguem voltar a zero automaticamente quando a sua entrada
falsa ou verdadeira, ento o RES no exigido para estes temporizadores. Os
temporizadores RTO e CTU / CTD contadores que no reiniciam automaticamente, de
modo que deve ser redefinido mo usando a instruo RES. Quando a entrada for
verdadeira, o contador ou temporizador redefinido (resetado) e quando a entrada se
torna falsa, nenhuma ao tomada.
Esta instruo deve ser a instruo mais direita na linha em que ela for colocada.
> PULSO DE SUBIDA
- [OSR_ /] Esta instruo ativa na borda de subida de cada pulso recebido, ela til se voc deseja
CIRCUITO ABERTO
-----+
+-----
{DIV DV: =
- {dv / -10.000
}
}-
10
Quando a entrada desta instruo for verdadeira, ela define o valor da varivel de destino
usando a varivel de origem ou o numero inserido para fazer a operao de acordo com a
instruo selecionada, estas instrues utilizam 16 bit (signed).
O resultado obtido a cada ciclo quando a condio de entrada for verdadeira, Se voc
estiver aumentando ou diminuindo uma varivel (ou seja, se a varivel de destino
tambm um dos operandos), ento voc provavelmente no quer que a linha permanea
ativada, caso isso ocorra esta instruo continuara calculando e alterando o valor da
varivel de destino, normalmente, voc usaria uma instruo de PULSO DE SUBIDA para
que ele s ative na borda de subida ou de descida do sinal de entrada.
Esta instruo deve ficar a direita .
> COMPARAR
[var ==]
[var> ]
- [Var2 ] - [1
]-
[1> = ]
- [ Ton ] -
> [Var / =]
- [Var2 ] - -
[1 <= ]
- [Cup ] -
[ -4 <]
[vartwo] -
Se a entrada para essa instruo estiver desativada, ento a sada falsa, mas se a
entrada for ativada, ento a sada verdadeira, a sada ser acionada somente se a
condio estabelecida for verdadeira.
Esta instruo pode ser usada para comparar (igual a, maior que, maior ou igual do
que, no igual a, menor do que, menor ou igual do que). Voc pode comparar duas
variveis ou uma varivel e uma constante, mas os valores inseridos devero ser uma
varivel ou constante de 16 bits (signed).
> CONTADOR
Cname
- [CTU> = 5] -
Cname
- [CTD> = 5] -
11
1, .... Isto til em combinao com instrues condicionais sobre a varivel `Cname ';
Esta instruo deve ficar direita da linha.
> RESGISTRADOR DE DESLOCAMENTO
{SHIFT REG}
- {Reg0..3
}Um Registrador de Deslocamento (Shift Register), est associado com um conjunto de
variveis. Por exemplo, este registo de deslocamento est associado com as variveis
'REG0 ',` REG1', `REG2 ', e` REG3'.
A entrada para o registo de deslocamento `reg0 '. Ele aciona a cada borda de subida da
condio em que ele for colocado, o registo de deslocamento ser para a direita. Isso
significa que ele atribui `REG3: = REG2 ',` REG2: = REG1 '. e `REG1: = REG0 '. `REG0 '
deixado inalterado. Uma grande mudana pode facilmente consumir muita memria.
Esta instruo deve ficar mais direita na linha.
> TABELA DE CONSULTA (Look up Table)
{dest: = }
- {LUT [i]} Uma Tabela de Consulta (Look up Table) um conjunto de N dados ordenados. Quando a
condio de entrada for LIGADO, a varivel de destino dest ser carregada com o valor
da varivel de origem 'index'. O ndice (index) inicia em zero.
Um contador pode ser usado para ser a varivel de ndice e assim mudar os valores da
varivel dest conforme o que for programado.
Esta instruo deve ser a mais a direita na linha.
> Tabela Linear por partes
{yvar: =}
- {PWL [xvar]} Esta a melhor forma de aproximar uma complicada funo de transformao no linear.
Pode ser til, por exemplo, se voc tiver que associar os valores lidos a uma curva de
calibrao baseado no valor de entrada de um sensor.
Voc pode entrar com dados na tabela associando com um valor linear desejado. O valor
ser atribudo a varivel xvar, e isso define o valor da varivel yvar.
Se voc atribuir a varivel xvar um valor entre dois pontos lanados na tabela, o valor de
yvar ser computado em funo da proximidade deste dois valores.
Os pontos precisam ser especificados em ordem crescente em xvar. Em alguns casos,
por questes matemticas e de limitaes do processamento aritmtico de 16 bits, o
LDmicro poder gerar mensagens de erro relativas a converso. Neste caso, adicione
mais dados tabela. Ex: Isso ir produzir um erro, se lanado estes dois pontos:
12
F (0) = 2
f (5) = 10
f (10) = 50
F (100) = 100
Isto significa que os pontos
(x0, y0) = (0, 2)
(x1, y1) = (5, 10)
(x2, y2) = (10, 50)
(x3, y3) = (100, 100)
Voc pode inserir esses 4 pontos na tabela associando esses pontos instruo. A
instruo vai analisar o valor de xvar, e definir o valor de yvar. Ele ir definir yvar de tal
maneira que a curva linear vai passar por todos os pontos que foram colocados; por
exemplo, se voc definir xvar = 10, ento a instruo ir definir yvar = 50.
Se voc der a instruo o valor que fique entre dois dos valores de x para a varivel xvar,
ento a instruo ir definir a varivel yvar de modo que (xvar, yvar) encontre-se na linha
reta que liga estes dois pontos na tabela. Por exemplo, xvar = 55 indica uma sada de
yvar = 75. (Os dois pontos na tabela so (10, 50) e (100, 100). 55 est entre 10 e 100, e
75 est entre 50 e 100, de modo (55, 75) que se pode encontrar na linha que liga estes
dois pontos.)
Os pontos devem ser especificados em ordem crescente por coordenada x. talvez no
seja possvel a realizao de operaes matemticas requeridas para algumas tabelas de
consulta utilizando 16 bits matemticos inteiros; se este for o caso, ento o software ir
avis-lo. Por exemplo, a tabela abaixo ira produzir um erro:
(x0, y0) = (0, 0)
(x1, y1) = (300, 300)
Voc pode diminuir esses erros colocando distancias menores entre os pontos, Por
exemplo, esta tabela equivalente a tabela acima, e no produzira erro:
(x0, y0) = (0, 0)
(x1, y1) = (150, 150)
(x2, y2) = (300, 300)
Dificilmente ser necessrio utilizar mais do que cinco ou seis pontos. Adicionando mais
pontos torna seu cdigo maior e mais lento para executar.
Esta instruo deve ficar direita na linha.
> LEITURA DO CONVERSOR A/D (Entradas Analgicas)
13
Aname
- { READ ADC }O software pode gerar um cdigo que possibilita usar os conversores A/D dos
microcontroladores PIC. Se a condio de entrada desta instruo for verdadeira, ento
uma nica amostra ser lida do conversor A/D ser armazenada na varivel `Aname '.
Esta varivel pode ser posteriormente manipulado com operaes varivel em geral
(menor que, maior que, aritmticas em geral, e assim por diante). Voc pode atribuir um
pino a essa varivel da mesma forma que se atribui um pino a uma entrada ou sada
digital.
Caso a linha onde esta instruo no for acionada a varivel ' Aname' permanecera
inalterada.
Atualmente para todos os dispositivos suportados 0 volts na entrada corresponde a uma
leitura do valor ADC de 0, e uma entrada com o valor igual ao VDD (tenso de
alimentao) corresponde a uma leitura ADC de 1023, ou seja; de 10 bits / 0 1023.
possvel usar operaes aritmticas para dimensionar a leitura e converter para as
unidades mais convenientes, mas lembre-se que voc est usando matemtica com
nmeros inteiros apenas.
Em geral, nem todos os pinos estaro disponveis para o uso com o conversor A / D.
O software no permitir que voc atribua a instruo A/D para os pinos que no
possuam a entrada analgica.
Esta instruo deve ficar direita na linha.
> SET PWM CICLO duty_cycle
- {PWM 32,8 kHz} Podemos gerar cdigo para usar o perifrico PWM embutido nos microcontroladores PIC.
Se a condio de entrada desta instruo for verdadeira, ento o duty cycle do perifrico
PWM definido com o valor da varivel duty_cycle. O duty cycle precisa ser um nmero
entre 0 e 100, onde 0 corresponde a sempre desligado, e 100 corresponde a sempre
ligado. (Se voc est familiarizado com o procedimento que os perifricos PWM utilizam,
deve ter percebido que o programa far a converso proporcional do nmero 0 a 100 em
valores binrios correspondentes para os perodos de clock necessrios).
Voc pode especificar a frequncia, em KHz. No entanto, a frequncia que voc
especificar pode no ser a exata a ser utilizada, dependendo dos divisores internos do
microcontrolador e da frequncia de clock utilizada por este. Se voc tentar definir um
valor fora da faixa permitida, o software ir alert-lo.
Esta instruo deve ficar direita na linha.
O tempo de execuo de lgica ladder consome um temporizador para medir o de ciclo
Tempo. Isso significa que a instruo PWM est disponvel apenas em microcontroladores
com pelo menos dois temporizadores adequados. PWM usa o pin CCP2 (no CCP1) do
PIC.
14
15
16
|| {Temporrio DIV: =}
||
|| --------- {1 / x} ---------||
||
||
|| {MUL y: =}
||
|| ---------- {Temporrio * 1200} ---------- ||
||
||
Ou voc poderia apenas fazer a diviso diretamente, em uma nica etapa:
||
{DIV y: =}
|| ----------- {1200 / X }|| -----------
||
||
|| {MUL temp: =}
|| --------- * 9 {x} ----------
||
||
17
||
||
|| {DIV y: =}
||
|| ----------- {Temp / 5} ----------- ||
Isso funcionar para qualquer x < (32767 / 9), ou x < 3640. Para valores maiores de x, a
varivel temp ir sair de seu limite.
Estilo de codificao
Permitido que vrias bobinas fiquem em paralelo em uma nica linha, isto significa que
voc podemos fazer como no exemplo abaixo.
||
Xa
Ya
||
|| -------] [-------------- ( ) ------- ||
||
||
||
Xb
Yb
||
|| -------] [---------- |-- ( ) ------- ||
||
| Yc
||
||
|-- ( ) -------- ||
Em vez disso:
||
Xa
Ya
||
|| -------] [-------------- ( ) ------- ||
||
||
||
||
||
||
||
||
||
Xb
Yb
||
|| -------] [-------------- ( ) ------- ||
||
||
||
||
||
||
||
||
||
Xb
Yc
||
|| -------] [-------------- () ---------||
||
||
Isto significa que, em teoria, voc poderia escrever qualquer programa como uma linha
gigante, e no h necessidade de usar vrias linhas em tudo. Na prtica, isso seria uma
m ideia, porque, como as linhas ficam juntas se torna mais complexo diferenciar, isso
acaba dificultando editar sem apagar e muitas vezes tem que mudar parte de lgica.
Ainda assim, muitas vezes uma boa ideia para lgica de grupo relacionadas juntos
18
como uma nica linha. Isso gera um cdigo quase idntico ao de linhas separadas, mas
mostra que eles esto relacionados quando voc olha para eles no diagrama .
Erros
O programa no gera um cdigo .HEX (arquivo direto ser gravado no PIC) muito
eficiente; pois ele lento para executar, e desperdia Memoria flash e RAM. Apesar disso,
um PIC mdio como a linha 16F capaz de fazer tudo o que um pequeno CLP, ento isso
acaba no sendo um problema na grande maioria dos casos.
Por outro lado o cdigo gerado como Byte Code, ser interpretado por uma mquina
virtual dentro de outro programa num microcontrolador ou at mesmo um PC, tem como
principal fator de otimizao execuo a prpria mquina onde est sendo executado, j
que no depende de cdigos Assembly (.HEX) gerados pelo software.
O comprimento mximo de nomes de variveis limitado. Isto de modo que eles se
encaixam muito bem para o diagrama LADDER.
Se o seu programa grande demais, em memria de programao, ou memria de
dados, essas limitaes dependem do dispositivo que voc escolheu, ento caso voc
tenha escolhido um com a memoria insuficiente para o seu programa provavelmente ira
gerar um erro.
19