Você está na página 1de 7

12/04/2015

LgicaLadderparamicrocontroladoresPICandAVR

LgicaLadderparamicrocontroladoresPICandAVR
(translatedfromtheEnglishoriginalthankstoDanielCorteletti)
Resumo:EscreviumcompiladorquepermitegerarcdigonativoparamicrocontroladoresPIC16e
AVRapartirdeumdiagramaladder.Suascaractersticasso:
Entradasesadasdigitais
Temporizadores(TON,TOF,RTO)
Contadores(CTU,CTD,'contadorescirculares'parausarcomosequenciadores)
Entradasanalgicasesadas(PWM)analgicas
Variveisinteiraseinstruesaritmticas
ComunicaoserialfacilitadaparaconexoaPCs,LCDseoutrosdispositivos
Registradoresdedeslocamento,tabelas"lookup"
VariveisemEEPROM(quemantmosdadosquandofaltaenergiaeltrica)
Simulador,paratestarseuprogramaantesdegerarocdigoPICouAVR.
Esteprogramalivre.Ocdigofonteeexecutveisestodisponveisparadownload.

Introduo
PLCs(CircuitosLgicosProgramveis)sogeralmenteprogramadosemlgicaladder.Issoporquos
PLCsoriginalmentesubstituramsistemasdecontrolebaseadosemlgicaderels,equarentaanos
depois,aindapermanecemosutilizandoestalinguagem.UmPLC,assimcomoummicroprocessador,
executaumalistadeinstruesemseqncia.Ferramentasladderdeixamissotransparentevocpode
programaroPLCligandooscontatosderelsebobinasnatela,eointerpretadorPLCirsimularo
circuitoquevocdesenhou.Algunscontatosderelspodemserligadosasinaisdeentradareais
Algumasdasbobinaspodemserligadasasadas.Destaforma,vocpodefazerasimulaodeseu
circuitoeinteragircomoutrosdispositivos,eatcontrolarcoisas.Esteoobjetivo.
Naverdadeelemaisamplodoqueisso,porquevocpodeincorporartemporizadoresecontadorese
operaesaritmticasquenopoderiamser(facilmente)executadossomentecomrelsconvencionais.
Oprojetodocircuitoaindatilnosporqueeleintuitivo,mastambmporqueabstraifacilmentea
concorrncia.Issofuncionaassim:
||XaXbYout||
1||][+][+()||
||||||
|||Xc|||
||+]/[+||

Istoumsimplestrechodeumalgicadecombinaes.Existemostermosdeentrada,Xa,XbeXc.
Existemtermosdesada:Yout.AexpressoYout:=Xae(Xbou(noXc)).Issofazmaissentidose
vocpensaremXaeXbcomorelsdecontatoNA(normalmenteaberto),Xccomoumreldecontato
NF(normalmentefechado)eYoutcomoumabobinadeumreloucontactora.Claroquepodemos
encontrarcircuitosmaiscomplexos,comooquesegue:
||||
||Asetpoint||
1||{READADC}||
||||
||Atemperature||
||{READADC}||
||||
||||
||||
http://cq.cx/ladderpt.html

1/7

12/04/2015

LgicaLadderparamicrocontroladoresPICandAVR

||||
||{SUBmin_temp:=}||
2||{Asetpoint20}||
||||
||{ADDmax_temp:=}||
||{Asetpoint+20}||
||||
||||
||||
||||
||[Atemperature>]Yheater||
3||[max_temp]+(R)||
|||||
||Xenable|||
||]/[+||
||||
||[Atemperature<]XenableYheater||
||[min_temp]][(S)||
||||
||||
||||
||||
||{SUBcheck_temp:=}||
4||{Asetpoint30}||
||||
||||
||||
||||
||[Atemperature>]Yis_hot||
5||[check_temp]()||
||||
||||
||||
||[END]||
||||
||||

Tratasedeumsimplestermostato.Hduasentradasanalgicasumadelasparaosetpoint,paraque
sejapossvel,porexemplo,ligarumpotencimetroparaousuriodefiniratemperaturadesejada.A
outrausadaparamediesdetemperatura,conectadoaumsensordetemperaturabaseadoem
semicondutores,ouumtermoparcominterfaceapropriada.Existeumasadadigital,Yheater.Issopode
serusadoparacontrolarumelementodeaquecimento,atravsdeumcomutadorapropriado(um
TRIAC,ouumrel,ouumreldeestadoslido,ousejaoquefor).
Ociclofoifechadocomumasimpleshisterese.Nosdefinimosmaisoumenos20unidadesdoADC
parahisterese.Issosignificaquequandoatemperaturacaiabaixo(setpoint20),serligadoo
aquecimento.equandoissoultrapassar(setpoint+20),oaquecimentoserdesligado.
Euaindaacrescialgumascoisinhas.Primeiramente,humaentradadeativao:oaquecedorforado
adesligarquandoXenableestemnvelbaixo.Eutambmadicioneiumalmpadaindicadora,Yis_hot,
paraindicarqueatemperaturaestnafaixapretendida.Issofeitodemodoacompararcontinuamente
comolimiteimposto(setpoint20)deformaquealuznofiquepiscandonosciclosnormaisdo
termostato.
Esteumexemplotrivial,masdeveficarclaroquealinguagembastanteexpressiva.Logicaladder
noumalinguagemdepropsitogeral,masumalinguagem"Turingcompleta",aceitanaindustria,
e,paraumaclasselimitadadeproblemas(orientadosacontrole),surpreendentementeconveniente.

UmcompiladordelgicaladderparaPIC16eAVR
Acreditasequeosmicrocontroladoresmodernosdebaixocusto(abaixodeUS$3,00)passaramatero
http://cq.cx/ladderpt.html

2/7

12/04/2015

LgicaLadderparamicrocontroladoresPICandAVR

podercomputacionaldeumPLCapartirde1975.ElespassaramaprocessarmaisMIPSpararodaruma
lgicaladderrelativamentecomplexacomumciclodevidadealgunsmilisegundos.EupensoquePLCs
normalmentetemumaespciedeprogramadotipo"interpretador"ou"mquinavirtual",masse
desejarmosrealizarumalgicasimplesemumprocessadorsemmuitamemriaentoumcompilador
podeserumaidiamelhor.
Entoeuescreviumcompilador.Voccomeacomumdegrau(linha)vazio.Vocpodeadicionar
contatos(entrada)ebobinas(sadas)eestruturasmaiscomplicadasparaconstruirseusprogramas.
Temporizadores(TON,TOF,RTO)tambmsosuportados.Asduraesmximasemnimas
dependemdociclodetempodo'PLC',oqualconfigurvelOstemporizadorespodemcontardeste
milisegundosatdezenasdeminutos.contadoreseoperaesaritmticas(adio,subtrao,
multiplicao,diviso).
Elementosdecircuitopodemseradicionadosemsrieouemparalelocomoutroselementosexistentes.
Eumalistadeentradasesadasconstrudaapartirdodiagramalgicotraado.Voctemrels
internos(Rfoo),queusamposiesdememriaalocadasautomaticamente,ouentradas(Xfoo)esadas
(Yfoo),paraassociarapinosdomicrocontrolador.Aseleodospinosdisponveisdependedo
microcontrolador.TentamosmantersuporteparaamaioriadosmaispopularesmicrocontroladoresPICs
eAVRs(vejaabaixo).
Vocpodeeditaroprogramanaformagrfica:

http://cq.cx/ladderpt.html

3/7

12/04/2015

LgicaLadderparamicrocontroladoresPICandAVR

Entovocpodetestaroprogramasimulandooemtemporeal.Oprogramaapareceranatelacomos
elementosativados(ligados)representadosporcolchetesemumacormaisintensa,oquetornafcila
depurao.Oestadodasvariveismostradonapartedebaixodatela,nalistadeentradasesadas(I/O
list).

http://cq.cx/ladderpt.html

4/7

12/04/2015

LgicaLadderparamicrocontroladoresPICandAVR

Depoisdoprogramaterfuncionadonasimulao,vocpodeassociarpinosparaasentradasesadas,
gerarocdigoPICouAVR.Ageraodocdigonodifcil.ParaoAVR,umbomalocadorde
registradoresproverumamaiorvelocidade.Sevocquerterumaotimizaodecdigoaindamais
apurada,poderaplicaralgumasregrasdereduodealgoritmos,etalvezreduodeestadostambm.
Issoseriamuitomaisdifcil.
Mesmoignorandoisso,meucdigogeradorparaosAVRsmuitopobre.O"backend"AVRaindagera
cdigoPIC...porexemplo,elenotiravantagemdofatodoAVRtermaisdeumregistrador.Muitos
http://cq.cx/ladderpt.html

5/7

12/04/2015

LgicaLadderparamicrocontroladoresPICandAVR

doscdigosgeradosficampoucootimizados.O"backend"paraPICmelhor,enomuitogrande.
Masnadadissoimportamuitosevocestivertentandorodaralgumasdezenasdedegrausdeumalgica
laddercomtempodeciclorpido.
HsuporteparaconversorA/D,unidadePWMeUARTnosmicrocontroladoresutilizados.Isso
significaquevocpodeescreverlgicaladderqueleiaumaentradaanalgica,equepossaenviare
recebercaracterespelaserial(porexemplo,paraumPC,sevocadicionarumMAX232,ouumdisplay
LCDdecaracteres).Issopossvelmandandoseqnciadecaracteresatravsdaserial,assimcomoo
valordevariveisinteiras,comotextoASCII.Eporltimo,foraadicionadosuporteavariveisem
EEPROMVocpodeindicarqueumavarivelespecficairsersalvaautomaticamenteemumarea
dememrianovoltil,quesermantidaaosedesconectaraenergia.

Limitaeseisenoderesponsabilidades
NaturalmenteummicrocontroladorcomestesoftwarenopodefazertudoqueumPLCfaz.Muitos
PLCsoferecemmaiscaractersticaseblocospredefinidosqueminhaferramenta.OHardwaredeum
PLCmelhortambmusualmenteasentradasesadassoprojetadasparasuportaralteraeseltricas.
VocpodemontarumPIC16F877emumaprotoboardporalgumadezenadedlares,masvocpagar
maiscaroporumPLCcomasmesmascapacidades.
Atagora,tenhorecebidomuitopoucosrelatosdeerros,emcomparaocomonmerodepessoascom
perguntasedvidas.Existeaindaumagrandepossibilidadededefeitos,especialmentenos
microcontroladoresquenotenhofisicamente(eportanto,nopodemostestar).Certamente,nouseo
LDmicroparaalgumaaplicaoseguraoucrtica,ouemalgoquepossasetorarcaroseissofalhar.
Comcitadoanteriormente,ocdigogeradoestlongedo"otimo".Tambm,nemtodaamemriaRAM
nosdispositivosPIC16estdisponvelparaoprogramanalgicaladder.Issoporquenoimplementei
muitocdigoparasuporteapaginao.Eufiz,noentanto,suporteparaamemriadepaginaodo
programa,parapermitiracessoamemriaROMnosPIC16acimade2k.

Download(instalao)
OprogramatestadosobreWindowsXP.Relatosinformaissugeremqueelepodetrabalharsobre
windows98,asobreoWine.Oarquivodedownloadumarquivo.exenohoutroarquivorequerido,
enoharquivodeinstalao.Salveoemalgumlugarnoseucomputer,eexecuteo.Omanualest
includonoarquivo.exe,masvocpoderealizardownloadseparadamentesevocdesejar.
OcompiladorirgerararquivosnoformatoIntelIHEX.Muitosdossoftwaresprogramadoresqueeu
tenhousamesteformato.Naturalmentevocirprecisardeumprogramadorparatransferiroprograma
paraamemriadomicrocontrolador.ParaosAVRs,eurecomendootipoSTK300,paralelo,comoo
Olimex.ParaosPICs,eurecomendooMicrochipPICkit2,comoodisponvelnestalojavirtual.
Agradecemosrelatriosdeerros.Osseguintesmicrocontroladoresforamtestadosesosuportados:
PIC16F877
PIC16F876
PIC16F628
ATmega64
ATmega128
Osmicrocontroladoresabaixososuportados,masnoforamtestadoselesdevemfuncionar,masno
hgarantia.Sevoctestar,eissofuncionaradequadamente,entreemcontatocomunicando.Ns
agradecemos.
PIC16F88
http://cq.cx/ladderpt.html

6/7

12/04/2015

LgicaLadderparamicrocontroladoresPICandAVR

PIC16F819
ATmega162
ATmega32
ATmega16
ATmega8
OarquivoladdertambmpossvelsegerarcdigoC.Issomenosconveniente,masvocpodeusar
issoemalgumprocessadorsevocpossuirumcompiladorC.
LDmicropodegerarumcdigointerpretvel.Seestiverescrevendouminterpretadorvocpodeusalo
paragerarocdigoladderparaoutrotipodedispositivo.Nohmitadocumentaosobreisso,maseu
construuminterpretadorsimplesemlinguagemCbastanteportvel.
Ascompilaessodisponveisemdiversaslnguas:
ldmicro.exe(English)
ldmicrode.exe(DeutschthankstoHeinzUllrichNoell)
ldmicrofr.exe(FranaisthankstoMarcelVaufleury)
ldmicroes.exe(EspaolthankstoJosePascual)
Eocdigofonte,evriosoutrosarquivos,tambmestodisponveisparadownload.Esteprograma
podeserdistribudosobostermosdaGPLVersion3.
ldmicrorel1.7.zip(fonte,release1.7)
ldmicro.txt(manual)
caractersticas/histricodeerros
Exemplo:umsemforosimples
Exemplo:displayde7segmentos
Exemplo:hello,world'enviadopelaportaserial
Versesantigasestodisponveis:
ldmicrorel1.6.zip(fonte,release1.6)
(botodireitoparasalvarqualquerumdestesarquivos.)
Porfavor,relatequalquerdefeito.Esteumsoftwarelivre,semnenhumdepartamentoresponsvel
pelocontroledequalidade.Eumesmonotenhoohardwareparatestaramaioriadosdispositivos.Um
erronoinformadonopodersercorrigido.
Tenhoumtutorial,noqualeudescrevocomogerarumsimplesdiagramaladder,simulloeento
geraroarquivoIHEXeprogramlonoPIC.Estaprovavelmenteamaneiramaisfcildecomeara
usarestesoftware.
Dezembrode2007,Seattle.

http://cq.cx/ladderpt.html

7/7