Vous êtes sur la page 1sur 55

Prtiicasd

deau
utomaoindu
ustria
al:
eespecifficao
oepro
ogram
maodesol uessde
controlodiscreto
onoaambien
nteITTSPLC
C

Copyright2009
Reservadostodososdireitos.Proibidaareproduo,totalouparte,porqualquermeio
ouprocesso.

Termodedesresponsabilizao

Os problemas e as respectivas solues apresentados neste livro tm unicamente propsitos


didcticos. Em particular, o treino da programao de Controladores Lgicos Programveis
(PLCs)comrecursoplataformaITSPLC.Emboraoautoreoeditorcreiamqueasinformaes
apresentadas esto correctas, em caso algum podem ser responsabilizados pela utilizao dos
programas fornecidos, ou de outros neles baseados, em aplicaes das quais possam resultar
danosouprejuzosempessoasoubens.

Prticasdeautomaoindustrial:
especificaoeprogramaodesolues
decontrolodiscretonoambienteITSPLC

por

AntnioPessoadeMagalhes

1Edio2009

RealGamesLda.www.realgames.ptPorto,PORTUGAL

Ao

JooRodrigoeaoJosDiogo
quetantogostamdeengenhocas...

ndice
PREFCIO..................................................................................................7
PARTE1APRESENTAO........................................................................9
OJogo..................................................................................................................11
OsJogadores........................................................................................................13
OEquipamento....................................................................................................14

PARTE2OSPROBLEMAS......................................................................17
MISSO1:AUTOMATIZAODEUMAESTAODETRANSPORTEETRIAGEMDEMERCADORIASEM
PALETES.....................................................................................................................19
AcercadestaMisso............................................................................................20
Tarefa1:Transporteautomticodepaletesisoladasnotapetedeentrada.........22
Tarefa2:Alimentaoetransporteautomticodepaletesisoladasnotapetede
entrada................................................................................................................23
Tarefa3:Alimentaoetransporteautomticodepaletesemfilanotapetede
entrada................................................................................................................24
Tarefa4:Comandoautomticodamesarotativa................................................25
Tarefa5:Alimentaoetransporteautomticodepaletesdocaisdeentradaao
elevadordadireita...............................................................................................26
Tarefa6:Alimentaoetransporteautomticodepaletescomalternnciado
elevadordesada.................................................................................................27
Tarefa7:Alimentaoetransporteautomticodepaletescomalternnciado
elevadordesada,lotaolimitadanostapetesdesadaesuporteasituaesde
indisponibilidadedoselevadores.........................................................................28
Tarefa8:Alimentaoetransporteautomticodepaletescomtriagempor
alturas.................................................................................................................29
Tarefa9:Transporteautomticoeoptimizadodepaletescomtriagemporalturas
............................................................................................................................30
1

Tarefa10:Encerramentoerelanamentodainstalaoatravsdasbotoneiras
IniciareParar......................................................................................................31
Tarefa11:Preparao,encerramentoerelanamentodainstalaoatravsdas
botoneirasIniciareParar....................................................................................32
Tarefa12:Produoautomticadelotes............................................................33
Eagoraqueaprimeiramissofoicumprida.....................................................34
ITSSUPERIntegraodesistemasdesupervisoeterminaisdeoperao...............35
ITSDEEPDetecoesuportedesituaesdeerro....................................................36

MISSO2:AUTOMATIZAODEUMAESTAODEPRODUODETINTAS.................................37
AcercadestaMisso............................................................................................38
Tarefa1:Produodeumtanquedetintavermelha...........................................40
Tarefa2:Produodeumadosedetintavermelha.............................................41
Tarefa3:Produomulticiclodetintavermelhacomparmetrosconfigurveis.42
Tarefa4:Produomulticiclodetintavermelhacomdosagemconfigurvele
sinalizaodemconfigurao...........................................................................43
Tarefa5:Produooptimizadadetintavermelha...............................................44
Tarefa6:Suporteparagemantecipadaeaprocedimentosdealarme..............45
Tarefa7:Produomultidoseemulticiclooptimizadadetintavermelha............46
Tarefa8:Produoflexveleoptimizadadecoresprimrias...............................47
Tarefa9:Produopormisturadecoresprimrias..............................................48
Tarefa10:Produodetintaporcorestabeladas................................................49
Tarefa11:Produodetintasporreceitastabeladas..........................................50
Tarefa12:Produodetintasporreceitastabeladascomverificaoprviade
erros....................................................................................................................51
Eagoraqueasegundamissofoicumprida.....................................................52
ITSSUPERIntegraodesistemasdesupervisoeterminaisdeoperao...............52
ITSDEEPDetecoesuportedesituaesdeerro....................................................53

MISSO3:AUTOMATIZAODEUMPALETIZADORELEVADO..................................................55
AcercadestaMisso............................................................................................56
Tarefa1:Inicializaodamquina......................................................................58
Tarefa2:Movimentaocclicadepaletes..........................................................59
Tarefa3:Filtragemporsoftwaredosinaldosensor10.......................................60
Tarefa4:Movimentaodepaletesemmodocontnuooucicloaciclo...............61
Tarefa5:Comandodoalimentadordecaixas......................................................62
Tarefa6:Comandosincronizadodoalimentadoredoacamador........................63
Tarefa7:Paletizaodeumacamada.................................................................64
Tarefa8:Paletizaodeduascamadas...............................................................65
Tarefa9:Paletizaodetrscamadas.................................................................66
Tarefa10:Paletizaoflexvelporconfiguraodonmerodecamadas............67
Tarefa11:Paletizaoflexvelporconfiguraodonmerodecaixasporpalete68
Tarefa12:Mododedemonstraodepaletizaoflexvel..................................69
2

Eagoraqueaterceiramissofoicumprida.......................................................70
ITSSUPERIntegraodesistemasdesupervisoeterminaisdeoperao................70
ITSDEEPDetecoesuportedesituaesdeerro....................................................71

MISSO4:COMANDODEUMMANIPULADORINCREMENTALEMTAREFASPICKANDPLACE..........73
AcercadestaMisso............................................................................................74
Tarefa1:Identificaodepeas...........................................................................76
Tarefa2:Movimentaoelementardomanipulador...........................................77
Tarefa3:Comandosimultneodosdoiseixosdomanipulador............................78
Tarefa4:Comandodomanipuladorpordefiniodaposiodedestino.............79
Tarefa5:Inicializaodosistema........................................................................80
Tarefa6:Recolhaeposicionamentodepeas......................................................81
Tarefa7:Suporteaofuncionamentoeparagemautomticos..............................82
Tarefa8:Arrumaodepeasporpadreselementares......................................83
Tarefa9:Suporteasituaesdeemergnciaeparagemantecipada...................84
Tarefa10:Recolhaselectivadepeasearrumaosegundopadresalternados85
Tarefa11:Arrumaodepeasporclasses..........................................................86
Tarefa12:Preenchimentodecaixassegundopadrestabelados.........................87
Eagoraqueaquartamissofoicumprida........................................................88
ITSSUPERIntegraodesistemasdesupervisoeterminaisdeoperao................88
ITSDEEPDetecoesuportedesituaesdeerro....................................................89

MISSO5:ARMAZENAMENTOAUTOMTICODEMERCADORIAS..............................................91
AcercadestaMisso............................................................................................92
Tarefa1:Posicionamentoinicialdotranselevador...............................................94
Tarefa2:Transfernciademercadoriasdotranselevadorparaocasulo1evice
versa....................................................................................................................95
Tarefa3:Levantamentodemercadoriasarmazenadasnocasulo10...................96
Tarefa4:Transfernciademercadoriasdocaisdeentradaparaocaisdesada..97
Tarefa5:Posicionamentodotranselevadorporvalordereferncia....................98
Tarefa6:Armazenamentodemercadoriasporvalordereferncia......................99
Tarefa7:Armazenamentoelevantamentodemercadoriasporvalordereferncia
..........................................................................................................................100
Tarefa8:Armazenamentoelevantamentodemercadoriasporvalordereferncia
comdetecodeerrosesuporteasituaesdeemergncia..............................101
Tarefa9:Armazenamentoelevantamentodemercadoriasporvalordereferncia
comcodificaodiversificada............................................................................102
Tarefa10:Armazenamentoelevantamentodemercadoriasporclasses...........103
Tarefa11:Armazenamentodemercadoriasporclasseselevantamentoporordem
cronolgica........................................................................................................104
Tarefa12:Armazenamentoelevantamentodemercadoriasporvaloresde
refernciaaleatrios..........................................................................................105
Eagoraqueaquintamissofoicumprida.......................................................106
3

ITSSUPERIntegraodesistemasdesupervisoeterminaisdeoperao..............106
ITSDEEPDetecoesuportedesituaesdeerro...................................................107

PARTE3ASSOLUES........................................................................109
OTextoEstruturadoeaNormaIEC611313.......................................................109
LiteraturaeMateriaisdeApoio.................................................................................111

AcercadasSolues............................................................................................112
DeclaraodasVariveisdeI/O.........................................................................113
MISSO1:AUTOMATIZAODEUMAESTAODETRANSPORTEETRIAGEMDEMERCADORIASEM
PALETES....................................................................................................................117
VariveiseinstnciasdeblocosfuncionaisusadasnaMisso1.........................117
ResoluodaTarefa1........................................................................................122
ResoluodaTarefa2........................................................................................124
ResoluodaTarefa3........................................................................................127
ResoluodaTarefa4........................................................................................130
ResoluodaTarefa5........................................................................................133
ResoluodaTarefa6........................................................................................136
ResoluodaTarefa7........................................................................................140
ResoluodaTarefa8........................................................................................144
ResoluodaTarefa9........................................................................................149
ResoluodaTarefa10......................................................................................154
ResoluodaTarefa11......................................................................................160
ResoluodaTarefa12......................................................................................167
MISSO2:AUTOMATIZAODEUMAESTAODEPRODUODETINTAS................................173
VariveiseinstnciasdeblocosfuncionaisusadasnaMisso2.........................173
ResoluodaTarefa1........................................................................................178
ResoluodaTarefa2........................................................................................181
ResoluodaTarefa3........................................................................................183
ResoluodaTarefa4........................................................................................187
ResoluodaTarefa5........................................................................................191
ResoluodaTarefa6........................................................................................197
ResoluodaTarefa7........................................................................................201
ResoluodaTarefa8........................................................................................205
ResoluodaTarefa9........................................................................................209
ResoluodaTarefa10......................................................................................217
ResoluodaTarefa11......................................................................................225
ResoluodaTarefa12......................................................................................233
MISSO3:AUTOMATIZAODEUMPALETIZADORELEVADO.................................................241
VariveiseinstnciasdeblocosfuncionaisusadasnaMisso3.........................241
ResoluodaTarefa1........................................................................................244
4

ResoluodaTarefa2........................................................................................247
ResoluodaTarefa3........................................................................................250
ResoluodaTarefa4........................................................................................254
ResoluodaTarefa5........................................................................................258
ResoluodaTarefa6........................................................................................262
ResoluodaTarefa7........................................................................................267
ResoluodaTarefa8........................................................................................273
ResoluodaTarefa9........................................................................................279
ResoluodaTarefa10......................................................................................284
ResoluodaTarefa11......................................................................................289
ResoluodaTarefa12......................................................................................295
MISSO4:COMANDODEUMMANIPULADORINCREMENTALEMTAREFASPICKANDPLACE........301
VariveiseinstnciasdeblocosfuncionaisusadasnaMisso4.........................301
ResoluodaTarefa1........................................................................................305
ResoluodaTarefa2........................................................................................307
ResoluodaTarefa3........................................................................................309
ResoluodaTarefa4........................................................................................311
ResoluodaTarefa5........................................................................................313
ResoluodaTarefa6........................................................................................317
ResoluodaTarefa7........................................................................................324
ResoluodaTarefa8........................................................................................331
ResoluodaTarefa9........................................................................................337
ResoluodaTarefa10......................................................................................343
ResoluodaTarefa11......................................................................................349
ResoluodaTarefa12......................................................................................356
MISSO5:ARMAZENAMENTOAUTOMTICODEMERCADORIAS............................................365
VariveiseinstnciasdeblocosfuncionaisusadasnaMisso5.........................365
ResoluodaTarefa1........................................................................................369
ResoluodaTarefa2........................................................................................371
ResoluodaTarefa3........................................................................................374
ResoluodaTarefa4........................................................................................377
ResoluodaTarefa5........................................................................................380
ResoluodaTarefa6........................................................................................385
ResoluodaTarefa7........................................................................................390
ResoluodaTarefa8........................................................................................396
ResoluodaTarefa9........................................................................................403
ResoluodaTarefa10......................................................................................408
ResoluodaTarefa11......................................................................................413
ResoluodaTarefa12......................................................................................419

PARTE4EPLOGO...............................................................................425
5

Prefcio

H muitos anos que suporto o ensino da programao de controladores lgicos


programveis(PLCs)emsistemasvirtuais.Semretiraremodevidoespaoaosreais,os
sistemas virtuais so uma soluo de baixo custo, sem riscos para formadores e
formandos, de instalao trivial e fceis de multiplicar. E tudo isto mantendo os
formandos em contacto com os equipamentos de controlo de interesse, como se de
instalaesreaissetratasse.
Mas, quando a estas virtudes se junta uma motivao acrescida por uma simulao
extremamentefidedignaeinteractiva,quetransportaparaasaladeaulaoambientee
entusiasmodosmodernosjogosdecomputador,contagiandoformadoreseformandos,
alcanamse, ento, condies muito favorveis, quase nicas, a um ensino mais
simplificado,clere,naturaleeficiente.
AcreditoassimqueosoftwaredetreinoITSPLCummeioprivilegiadoparaalcanar
umambientedegrandeentusiasmo,capazdeincutirnosalunosodesejoderealizao,
pensamentocrticoetenacidadequeexibemfrentedoecrdeumamquinadejogos.
Por isso, aceitei de bom grado, com muito orgulho e empenho, o convite que a Real
Games Lda. me dirigiu no sentido de produzir um livro de exerccios que
acompanhasseoseuprodutoITSPLC.
Foi uma tarefa complexa, mas simultaneamente muito interessante e enriquecedora
que,norarasvezes,mefezsentirnoambientedeumjogodecomputador.Seguindo
precisamenteametodologiadestes,elaboreiumguioemquecadamissoseiniciapor
pequenosdesafios,fundamentaismasfacilmenteultrapassveis,evoluindodepoisnuma
7

sequnciadeexercciosemquecadaumacrescentasemprealgo,masnodemasiado,
aoanterior,proporcionandoassimaoformandoganhoscrescentesdeconhecimentose
deautoconfiana.Mas,naturalmentequecadaguiomaisnodoqueumaproposta
de trabalho, que cada formador poder, e dever, adaptar aos seus interesses e
formandos.
A apresentao das solues em texto estruturado ser talvez uma surpresa para
muitos, dado no ser a linguagem de programao mais comum. H, contudo, duas
fortesrazesparatalescolha:porumlado,umalinguagemdeprogramaotextuale
dealtonvellogo,muitobemadaptadacomunicaocomumpblicoheterogneo;
poroutro,contribuifortemente,mascomnaturalidade,paraadivulgaodanormaIEC
611313. Quem programa habitualmente PLCs que no seguem esta norma nem
empregam esta linguagem, ter certamente sentido pouco, e reflectido ainda menos,
sobre as virtudes de ambas. So exactamente esses os leitores que mais se pretende
sensibilizarcomestainiciativa.
Reconhecendo que o texto estruturado no a linguagem de eleio de muitos
programadores,muitopossvelqueassoluesapresentadasvenhamasertraduzidas
nas mais diversas linguagens e dialectos de programao de PLCs. O interesse de tais
tradues compreensvel, sendo at de prever a compilao e disponibilizao das
mesmas por iniciativa de algum grupo de interesse. Mas, obviamente que as
potencialidades do ITS PLC no se esgotam nessas tradues e, muito menos, nas
propostas contidas neste texto. Haver sempre espao para o prazer e o desejo de
descobrir novos problemas e novas solues; ou seja, para novos jogos e formas de
jogaroITSPLC.Saibam,formadoreseformandos,partilharessesprazeres.

Porto,Outubrode2009
AntnioJ.PessoadeMagalhes

PARTE1APRESENTAO

EstelivropropeumconjuntodeexercciosparaoambientedetreinoITSPLC.Oseu
principal propsito rentabilizar a utilizao deste software, sugerindo planos de
trabalho capazes de proporcionar uma aprendizagem progressiva, coerente, slida e
aplicadadetcnicasdecontrololgico,oucontrolodesistemasdeeventosdiscretos,e
correspondente programao de Controladores Lgicos Programveis (Programmable
LogicControllersPLCs).
Embora as propostas apresentadas sejam naturalmente inspiradas nos ambientes
virtuais ITS PLC, pretendese que delas resultem ensinamentos cujo interesse e
aplicao as transcendam o mais possvel. Assim, se no seu lado mais vistoso e
abrangente,asinstalaesITSPLCservemdemoteaproblemaslgicosrelativamente
latos e um tanto avanados na esfera da automao industrial, na sua vertente mais
prtica servem de pretexto para introduzir e discutir questes pontuais e elementares
quevoaoencontrodoserros,dvidasedificuldadesmaiscomunsdequemseinicia,
ou pretende evoluir, na programao de PLCs. Para a definio, apresentao,
tratamento e encadeamento lgico destes problemas, em muito contribuiu a
experincia relativamente longa do autor no ensino da programao de PLCs, uma
actividadesempreapoiadatantoemsistemasreaiscomovirtuais.
Conquantooprincipaldesafiodoconjuntodeexercciospropostossejaprogramarum
PLCparacontrolarcorrectaeelegantementecadainstalaoITSPLC,excelenteque
tal feito seja, simultaneamente, um ponto de partida para o desenvolvimento de
aplicaes mais abrangentes. Por exemplo, aplicaes que integrem consolas de
interface homemmquina, sistemas de superviso, controlo distribudo ou gesto de
informao.Extremamentetiltambmprocurarsoluesrobustasecapazesdelidar
com situaes de falha ou insegurana. Propostas de trabalho orientadas em ambos
sentidos so includas neste texto. Tm em mente nveis de educao e treino mais
elevados, devendo por isso os formadores adaptar tais linhas orientadoras aos
9

objectivos dos seus cursos, equipamentos disponveis e nveis de conhecimentos dos


seusformandos.
ConsiderandounicamenteosexercciosquetmcomopanodefundoocontroloporPLC
das cinco instalaes virtuais ITS PLC, este livro prope um total de sessenta
problemas: doze por cada instalao. Para cada problema proposto fornecida a
respectiva soluo na forma de um programa de PLC, devidamente comentado. Nos
casos mais simples, os programas so antecedidos de uma explicao relativamente
curtaeinformal;nosmaiscomplexos,asoluofundamentadanumaespecificaoem
linguagemGRAFCET1edeacordoanormaIEC60484,segundaedio.Longedeserem
as nicas possveis, as especificaes e as solues apresentadas tm o propsito de
seremmodulares,genricase,desejavelmente,potenciadorasdeinmerosmotivosde
reflexoporpartedeformadoreseformandos.
cada vez mais comum comear o projecto de um sistema sequencial pela sua
especificao em GRAFCET. O facto de o GRAFCET, por vezes erradamente designado
Sequential Function Chart, ser uma metodologia grfica normalizada muito mais
sucinta, objectiva e abrangente do que os diagramas de estado e os diagramas
temporais, temno tornado numa ferramenta amplamente usada e bastante bem
conhecida da generalidade dos programadores de PLCs. A tudo isso acresce ainda a
relativasimplicidadedoprocessodetraduodeumgrafcetnumprogramagenricode
PLC, uma questo que merece tambm o devido destaque neste livro.
Consequentemente, adoptar neste texto o GRAFCET como linguagem descritiva do
comportamentodeumsistemanomereceuqualquerhesitao.
J a escolha da linguagem de programao em que as resolues so apresentadas
mereceugrandeponderao.Acabouporrecairsobreotextoestruturado, tal como
semnticaefuncionalmenteprevistonanormaIEC611313,segundaedio.Paraalm
debemadaptadaaofimemvista,estaopopromoveumalinguagemeumanormade
crescenteimportncianodomniodosPLCs,alargando,destemodo,odomniodidctico
destetexto.
PorquesereconhecequeotextoestruturadoeanormaIEC611313nemsempreso
bem conhecidos de quem se inicia na programao de PLCs, houve a preocupao de
incluirnestelivroumconjuntodeinformaesorientadorasdosprogramadoresmenos
familiarizadoscomestalinguagemecomanormaemcausa.Essainformaoprecedea
apresentaodassolues.E,falandoemnormas,interessantesertambmencontrar
nos exerccios propostos espao para promover a norma IEC 61499. Embora tal meta
saiaumpoucodosobjectivosprimriosdestetexto,osformadoresmaisfamiliarizados
comotemasaberocertamenteencontrarocaminhocertoparaaalcanar.
1

Seguindo a tendncia da literatura especializada, o texto adopta o termo GRAFCET para designar a
linguagem de especificao GRAphe Fonctionnel de Commande tape Transition e o vocbulo grafcet
paradesignarumesquemagrficoqueutilizaalinguagemGRAFCET.

10

Acreditase,pois,quehinmerosmotivosdeinteressenestelivro,oqualestdividido
emquatropartesorganizadasdoseguintemodo:
AParte1 Apresentaoexpeasquestes necessriasaumacorrecta ecompleta
introduo do leitor ao ambiente de aprendizagem que o espera. Concretamente,
comea por apresentar o enquadramento, a sequncia, os objectivos e o pblicoalvo
dos desafios lanados neste texto. Seguidamente, so feitas algumas consideraes
sobre o modo como o leitor deve encarar os desafios que lhe sero lanados e a sua
previsvel aprendizagem face aos seus conhecimentos prvios. Por fim, so listados os
recursosnecessriosrealizaoeacompanhamentodosexercciospropostos.
AParte2OsProblemasapresenta,comosedeumjogodecomputadorsetratasse,
oscincograndesdesafios,oumisses,queoleitordeverprogressivamenteresolver.
Cada desafio corresponde ao controlo de uma instalao virtual ITS PLC e est
organizadoemdozeexercciosdeprogramao.Estesestosequenciadosempequenas
tarefas, de forma a potenciarem uma aprendizagem simples, natural e eficiente. No
incio de cada misso so dadas explicaes sobre o ambiente em que a mesma se
desenrola, de modo que o leitor compreenda minimamente os problemas tpicos da
instalaoindustrialemuladaeointeresseprticodosexercciospropostos.Nofimde
cada misso so lanadas propostas de trabalho destinadas a um pblico com
conhecimentos mais avanados. Estas propostas esto organizadas segundo duas
perspectivas: por um lado, a integrao das aplicaes com sistemas de superviso e
consolasdeinterfacehomemmquina;poroutro,melhorararobustezdosprogramas
desenvolvidosporinclusodemecanismoslgicosdedetecoesuportedesituaes
anmalas.
AParte3AsSoluesiniciasecomalgumasconsideraessobreaprogramaoem
texto estruturado e a norma IEC 611313. Esta introduo tem em mente os leitores
menos familiarizados com estes temas, sugerindolhes tambm literatura, stios na
Internet e recursos de software julgados teis. Feita essa breve apresentao, surgem
ento as solues dos desafios lanados na Parte 2. Cada soluo compreende a
justificaodosprocedimentosaprogramar,porvezesapoiadanumgrafcet,seguidado
programacorrespondente,devidamentecomentado.
AParte4Eplogoencerraotextocomumconjuntosumriodeconcluses.

OJogo
Bemvindo ao jogo ITS PLC! Se no encontrou este livro absolutamente por acaso,
sabequeoITSPLCumpacotedesoftwaredesenvolvidopelaRealGamesLda.que

11

emulainstalaesindustriaisacontrolarporPLC.Informaessobreesteprodutoesto
disponveisnostiowww.realgames.pt.
poisimportanteque,antesdecontinuarestaleitura,sefamiliarizeminimamentecom
osoftwareemcausa,compreendendoasuafinalidadeepotencialidades,assimcomoas
caractersticaseosmeiosdecomandoedesensorizaodasinstalaesemuladas.Uma
verso no licenciada serve para este primeiro contacto. Pode obtla no stio da Real
GamesLda.,assimcomoorespectivomanualdeutilizao.
O principalobjectivo deste texto ajudlo a dar vida acada um dos cinco cenrios
quecompemoITSPLC.Paraisso,oleitor,quecomoquemdiz,ojogador,terde
interligar um PLC ao computador onde tem instalado o ITS PLC e programlo
correctamente.
Conhecendoaaplicao,facilmenteoleitordepreenderqueestejogolhepropecinco
misses.Emlatosenso,elasso:

AutomatizarumainstalaodeSorting;

AutomatizarumainstalaodeBatching;

AutomatizarumPaletizador;

AutomatizarumainstalaoPickandPlace;

AutomatizarumArmazmAutomtico.

O interesse prtico e os objectivos exactos de cada misso sero revelados


oportunamente.Paraj,importadizerquecadamissocompostaporumconjuntode
doze tarefas, a realizar pela ordem proposta, de modo que o jogador se familiarize
progressivamentecomosistemaaautomatizareadquiraascompetnciasnecessrias
para o completo e efectivo cumprimento da misso atribuda. Cumprir uma tarefa
significasubirumnvel.Venceroltimonvelsignificacompletaramisso.Completaras
cincomissessignificaterminarojogoeserumperitoemprogramaodePLCs!
Ajustificaoedemonstraodointeresseprticodecadamissosoaspectosaquefoi
dado um particular cuidado. Assim, cada misso iniciase com uma explicao dos
aspectos fsicos e funcionais da instalao emulada, permitindo compreender
devidamente o interesse, os objectivos e as dificuldades da misso em causa no
contextodeinstalaeseaplicaesreaiscongneres.
Cadatarefatemumenunciadomuitosimples,epreciso,queincluiocenrioemquese
desenrola,oobjectivoaatingireossinaisdeI/Oaconsiderar.Algumastarefasvisamo
comandoautomticodeapenaspartedoequipamentodisponvel,tendoojogadorde
comandar manualmente outras partes. Nesses casos, os enunciados explicam como e
porqu. O mesmo acontece quando a verificao da correco dos programas
12

desenvolvidosrequerasimulaodeavariasouaimposiodeumestadofuncionala
umoumaisactuadores.
Ojogadordispededuaspistaspararealizarcadatarefa.Utilizlasfaznaturalmente
sentido.Mascomearporprocurarassuasprpriaspistasfazbastantemais
Paracadatarefapropostahumaresoluodisponvel.Concludaumatarefa,ojogador
dever comparar a sua soluo com a fornecida. Se acabar por concluir que,
definitivamente, no capaz de realizar uma tarefa, deve ento consultar e estudar
cuidadosamente a soluo proposta, procurando entendla completamente antes de
passar tarefa seguinte. Mas importante que no desista cedo demais! E, tanto em
casodesucessocomo deinsucesso,devemeditarnoscomentriosejustificaesque
acompanhamasoluoproposta.
Completada uma misso, isto , terminada a automatizao de um sistema, h ainda
espaoparaalargaroshorizontesdamesma.Nessesentido,ojogadordesafiadopara
metasmaisambiciosasenunciadasemdoispacotesdeexercciossuplementares:

ITSSUPERSUPERvisoryEnvironmentsandSystemse

ITSDEEPDEpendableEnvironmentsProgramming.

Oprimeirovisaodesenvolvimentodesoluesflexveisedistribudasporintegraode
recursostecnolgicostaiscomoPLCs,consolasHMI,sistemasdesupervisoeoutros.
Osegundoencerraumconjuntodedesafiosdestinadosamelhoraraconfiabilidadedas
solues encontradas por incluso de tcnicas de deteco e suporte de situaes
anmalas. Mais do que exerccios muito especficos, com enunciados concretos e
rgidos, as propostas contidas nestes dois pacotes so essencialmente linhas
orientadorasdetrabalhosmaislatos,denvelmaiselevadoequeexigemmaistempo.
Cabe por isso aos formadores adaptlas aos equipamentos ao seu alcance e aos
interesses e conhecimentos dos seus formandos. Uma possibilidade interessante
considerloscomotemadaquelespequenosprojectosdedesenvolvimento,individuais
ou em grupo, que habitualmente so propostos aos formandos de nveis mais
avanados.

OsJogadores
OsoftwaredetreinoITSPLCumaplataformadidcticadeprogramaodePLCsque,
quandolimitadaaproblemassimples,podeedeveserutilizadaporformandosquedo
osprimeirospassosnestamatria.JprogramarumPLCparacomandaredotaroscinco
sistemasincludosnopacoteITSPLCdefuncionalidadesumtantoelaboradas,uma

13

tarefa que exige um leque relativamente amplo de conhecimentos e competncias.


Concretamente,nasseguintesmatrias:

Sistemas lgicos: variveis binrias e cdigos binrios; sistema de numerao


binrio,octalehexadecimal;operadoreslgicoselgebradeBoole;elementos
dememria;operaesdesetereset;operaessobreregistos;operaes
aritmticas,derotaoededeslocamento;

Especificao: representao funcional em diagramas temporais, diagramas de


estadoeGRAFCET;

PLCs:modelodefuncionamentodeumPLC;afectaoecablagemdeentradase
sadas;registoseorganizaointernadamemria;temporizadoresecontadores;
experinciamnimaemprogramaodePLCsenautilizaodeferramentasde
desenvolvimentoetesteassociadas;facilidadeemlerecompreenderomanual
deumPLC.

Setudoistolhefamiliar,entoconsidereseaptoacomearojogoelevloataofim.
Se, pelo contrrio, no conhece ou domina minimamente grande parte destes temas,
ento deve procurar melhorar um pouco os seus conhecimentos antes de aceitar os
desafiosqueaquiselanam.Humrolinfindveldeliteraturasobreestesassuntos.O
seu formador saber, seguramente, indicarlhe a bibliografia mais adequada aos seus
conhecimentos.
Paraquemsepreparaparacomearajogar,oconselhomaisbvioodeque,talcomo
nosjogosdecomputador,eviteabatota.Terdificuldadesemencontrarumasoluo,
etlaaovirardapgina,podenoseromelhorestmuloperseverana.Mas,sempre
quetiveratentaodeespreitararesoluo,lembresequeperderaoportunidadede
descobrirasuaprpriasoluoque,quemsabe,seriaatmaisinteressantedoquea
propostanoomelhorcontributoparaumaboaaprendizagem.
Procurepoisencontrarsempreassuasprpriassolues.Verificarque,dessemodo,os
seusconhecimentosevoluemesolidificamdeumaformamuitonaturaleirreversvel.Se
optarporespreitarsistematicamenteasoluosentirque,namaioriadoscasos,pouco
tempo depois, j no se lembrar do truque da soluo, concluindo que, afinal, no
aprendeutantoquantodesejaria.Talveznemtenhacompreendidoqueaprogramao
dePLCsvivedalgicaenodetruques!

OEquipamento
Certamentetemanooexactadoequipamentoquenecessitaparacomearojogo:um
computador com o ITS PLC instalado, e devidamente licenciado, e um PLC com um
14

nmeromnimodeentradasesadas.Verifiquequetipodeentradasesadastemoseu
PLCecertifiquesequeasligoucorrectamenteplacadeI/Oqueacompanhaoproduto.
Consulte o manual de utilizao do ITS PLC sobre esta questo. Tenha, alis, este
manual sempre por perto, pois vai precisar de consultar frequentemente o mapa de
entradasesadasdasinstalaesacontrolar.
PorpertodevertertambmomanualdoseuPLCedosoftwarededesenvolvimento
associado.Aajudaemlinhanemsempresuficiente.Tertambmmoumououtro
livro sobre sistemas lgicos e especificao em GRAFCET (de preferncia, a segunda
ediodanormaIEC60484)tambmumaboaideia.
Mesmo um PLC relativamente modesto tem capacidade para controlar as instalaes
apresentadas.Mas,setemumPLCrelativamentesofisticado,nodeixedeexploraras
suaspotencialidades,inventandonovosexercciosououtrasformasdeosresolverque
asempreguem.
Setempossibilidadedeligardoismonitoresaoseucomputador,devefazlo.Useum
paravisualizaroambienteITSPLCeoutroparaanalisaronlinetodaainformao
relativaexecuodoprogramanoPLCrecorrendoaumaferramentadedebugging.
Rapidamentecompreenderosbenefciosdestaestratgia.
Por ltimo, se uma pessoa que gosta de jogos de computador e se entusiasma
facilmentecomproblemaslgicos,aconselhooafazerseacompanhardeumagarrafa
trmicacomoseuchazinhopreferido.Talvezodia,ouanoite,sejalongo(a)...
Exposto o essencial sobre o ambiente do jogo ITS PLC, tempo de avanar para a
mquinadejogos!

15

PARTE2OSPROBLEMAS

Provavelmenteestjfrentedoseucomputador,devidamenteequipadoeprontoa
conheceroprimeirodesafio.Algumasbrevesnotasantesdecomear:
Conforme referido, os problemas so propostos em cinco mdulos, autocontidos,
seguindo a ordem por que as instalaes so apresentadas no software ITS PLC:
sorting, batching, paletizador, pick and place e armazm automtico. As
missesnotmnecessariamentedeserrealizadasporestaordem,masaconselhasea
queosejam.Issoporque,nosentidodeevitaraduplicaodeexplicaesdetalhadas,a
resoluodealgumastarefasremeteparaexplicaesprestadasemsoluesanteriores.
Mas, importante mesmo, que, dentro de cada misso, tente resolver as tarefas pela
ordem por que so apresentadas, uma vez que, no contexto da misso, cada tarefa
complementaaanterioresercomplementadapelaseguinte.Quandoacharqueesta
ser difcil evoluir numa misso, sugerese, como primeiro passo, que a abandone
temporariamente, sem consultar a soluo, e passe misso seguinte. Talvez esta lhe
proporcioneosensinamentoseainspiraoquelhepermitiroretomar,maistarde,a
missoquedeixouemsuspenso.
Importantetambmquesecertifiquesemprequecompreendeubemaquestoque
lhe posta antes de pensar na respectiva resoluo. Verifique tambm que o I/O
indicado no enunciado coerente com os objectivos da tarefa. Comece sempre por
definirminimamente,masdeformaobjectiva,osprocedimentosarealizar.Orecursoa
um diagrama temporal, diagrama de estados ou grafcet uma boa abordagem,
especialmente nos casos mais complexos. S depois se preocupe com o programa a
desenvolver.Seoenunciadodealgumproblemanolheparecerabsolutamenteclaro,
nousetalargumentoparaconsultarassolues.Procureresolveraquestotomando
ainterpretaoquelheparecermaisplausvel,enoamaissimples!
Porfim,doisconselhosprticos:
17

Ao longo das suas experincias vai certamente ter, por vezes, interesse em reiniciar o
seu sistema; isto , tanto a instalao virtual como o seu PLC. A instalao limpa
premindo o boto Limpar no painel do ITS PLC. Para reiniciar o PLC, sugerese a
seguinte dica: inclua no seu programa um procedimento para reinicializar as variveis
internas do PLC quando uma entrada no utilizada, por exemplo, um sensor ou uma
botoneira, forada ou accionada. Pode, desse modo, e sempre que quiser,
concretamente depois de premir Limpar, reiniciar o seu PLC sem o retirar do modo
run. Pode, tambm, optar por utilizar o selector Manual/Auto (Entrada 11) para o
mesmo fim. Mas, nesse caso, o PLC reiniciar sempre que a instalao lanada no
modoautomtico.Talsituaonemsempreamaisinteressante.
Emqualquercaso,convenientequenocoloqueoseuPLCemmodorunantesde
colocarainstalaoemmodoautomtico,pois,nessasituao,asvariveisinternasdo
programadoPLCpodemevoluirparavaloresdiferentesdospretendidosparaasituao
inicialdainstalao.
Feitasestasconsideraes,chegoufinalmenteomomentodeconhecerosdesafiosque
oesperam.BoaSorte!

18

Misso1
1:Auto
omatizzaod
deumaestaode
e
traansporrteetrriagem
mdem
mercadoriaseempaletes

OBBJECTIVO: ENCAM
MINHAR PALETES DO CA
AIS DE ENTRADA
A AOS
ELEEVADORESSDESAD
DA,SELECC
CIONAND
DOASPORALTURA
AS

19

AcercadestaMisso
O movimento de bens em transportadores automticos, tais como tapetes rolantes e
mesasdetransferncia,umatarefamuitocomumeminstalaesindustriais.Doponto
devistafuncional,umtapeterolantecomumssentidodemovimentaooelemento
de transporte automtico mais simples, podendo o seu estado, movimenta ou no
mercadoria, ser representado por uma varivel binria. H, contudo, transportadores
muitoflexveis,relativamentecomplexos,cujolequedeestadospossveisobviamente
muitomaisvasto.ocasodostransportadoressequenciais,comoamesarotativadesta
aplicao,que,servindosimultaneamentedeelementosdetransfernciaetriagem,tm
at,porvezes,diversospontosdeentradaousada.
Um transportador tem sua entrada algo que lhe fornece mercadoria; por exemplo,
outrotapete,umoperadorouumalimentadorautomtico.suasadahaveralgoque
recebemercadoria:umoutrotapete,umamesadetransferncia,umcaisdesadaou
umoperador.Amissodeumtransportadortransferirmercadoriasdeumpontode
partida a um ponto de chegada de forma eficiente. Eficincia pressupe, tipicamente,
um transporte de acordo com uma origem e um destino prdefinidos e realizado no
menortempoecomomenorconsumopossveldeenergia.Ouseja,requerque:

Umtapetenoestejaemmovimentocasonelenoexistaqualquermercadoria;

Um tapete que tenha mercadoria no esteja parado, a menos que tal seja
absolutamentenecessrio;

Os elementos de triagem encaminhem as mercadorias para os destinos


correctos.

Oprincipalobjectivodestamissomostrarque,mesmonumainstalaocomplexa,o
quedefactoexisteentradaesadadeumtransportadorpoucoimportaparaoseu
comando: importante a sincronizao do funcionamento de cada tapete com o dos
alimentadores e transportadores que tem sua entrada e sua sada. dessa
compreensoqueresultaacapacidadeparadesenvolverumasoluomodular,apoiada
numcontroladorcentralizadooudistribudo,eperfeitamenteutilizvelemsistemasde
transporteautomticoreaisedegrandedimenso.
Particularmenteimportanteemqualquersistemadetransporteflexvelconseguirgerir
todaainformaonecessriaaocorrectoencaminhamentodasmercadorias.Paratal,a
informao das mercadorias em trnsito, independentemente de ter origem em
sistemas de identificao mais ou menos sofisticados, como leitores de cdigos de
barrasoudeRFIDs,ouemvulgaressensoresdeproximidade,comonocasodapresente
aplicao, tem normalmente de seguir percursos e passar por processos de seriao e
triagemmuitosemelhantesaosdasprpriasmercadorias.

20

Tambmimportantenumsistemadetransporteaaberturadoscontroladoreslocais
troca de informao com elementos de dilogo homemmquina e sistemas de
superviso. Porltimo, mastambmdeimportnciavital,haquestodadetecoe
suporte eficaz de situaes errneas que possam conduzir degradao fsica da
instalaooudosbenstransportados.
Estamissotocaemtudoisto,comeandopelascoisasmaissimples.

21

Tarefa1:Transporteautomticodepaletesisoladasnotapetedeentrada

Cenrio:

Otapetedeentradaentraemmovimentoquandolhechegauma
palete,transportaaatmesarotativaepra.

Objectivo:

Comandarautomaticamenteotapetedeentradaparatransportar
paletesisoladas.

EstadoInicial:

Tapetedeentradasempaletes.

SinaisdeI/O:

Entradas:Sensores0e3.
Sadas:Actuador1.

Procedimentos
Manuais:

Comandarmanualmenteoalimentador,forandoelibertandoo
actuador0,demodoafazerchegarumapaleteaotapetede
entradasomentequandoesteestvazio.
Manteramesarotativaemcarga,forandooactuador2,paradar
sadaspaletesprovenientesdotapetedeentrada,lanandoas
paraocho.
Removercaixasepaletesqueseacumulematrsdamesarotativa,
mantendoadesobstruda.

Dicas:

Useumavarivelbinria,i.e.,umbitdememria,paradefinir
constantementeseotapetedeveestarounoemmovimento
Aentradaesadadepaletesnotapetecorrespondematransies
lgicasemsensores

22

Tarefa 2: Alimentao e transporte automtico de paletes isoladas no


tapetedeentrada

Cenrio:

OtapetedeentradafuncionacomonaTarefa1.Oalimentador
agoracomandadoautomaticamenteparaslanarumapaleteno
tapetedeentradaquandoesteestvazio.

Objectivo:

Automatizaroalimentador,eliminandoocomandomanualda
Tarefa1.

EstadoInicial:

Tapetedeentradasempaletes.

SinaisdeI/O:

Entradas:Sensores0e3ououtros,seacharmaisconveniente.
Sadas:Actuadores0e1.

Procedimentos
Manuais:

Manteramesarotativaemcarga,forandooactuador2,paradar
sadaspaletesprovenientesdotapetedeentrada,lanandoas
paraocho.
Removercaixasepaletesqueseacumulematrsdamesarotativa,
mantendoadesobstruda.
Foraravariasocasionaisnoalimentador,impedindoodefazer
chegarpaletesaotapetedeentrada,paraverificarqueesteltimo
efectivamentepraquandonotransportaqualquerpalete.

Dicas:

Notequeatransfernciadeumapaleterequeromovimento
simultneodotapetedeentradaedoalimentador
Notequequandootapetedeentradatransportaumapalete,talno
implicanecessariamentequeoalimentadordevaestarparado.
Definaumavarivelbinria,Busy_1,quesejaverdadeiraquandoo
tapetedeentradanoestemcondiesdereceberumapalete

23

Eagoraqueaprimeiramissofoicumprida
Parabns por ter cumprido esta misso! agora um perito em sistemas de transporte
automticos e, certamente, no teria dificuldades de maior em realizar programas
capazes de cobrir as seguintes alteraes instalao, pressupondo a existncia dos
sensoreseactuadoresnecessrios,quedeversertambmcapazdelistarcomtodaa
facilidade:

Otransporteentreoalimentadoreamesarotativaagoramaislongoepassou
aexigirdoistapetes,umaseguiraooutro;

Amesarotativatemagoradoistapetesdeentrada,comonovocolocadoatrs
dela.Recebepaletesaltasebaixasdeambos,identificadaspordoissensoresde
proximidade colocados entrada de cada tapete, e encaminhaas para os
elevadoresdesadaemfunodasrespectivasalturas;

Passaramaexistirpaletescomtrsalturas,quecontinuamaseridentificadaspor
sensores de proximidade colocados a cotas apropriadas no incio do tapete de
entrada.Aspaletesdevemserdevidamenteencaminhadasparatrselevadores
de sada. Para isso, o tapete da esquerda, alimenta agora uma segunda mesa
rotativa,aqualpodetransferirpaletesparadoistapetesdesadaqueconduzem
aspaletesparaoutrostantoselevadores.

Dominadas as questes funcionais da instalao, interessante pensarse em


acrescentarlheflexibilidadeeconfiananofuncionamento,doisrequisitosdeextrema
importncia prtica. Se estas questes lhe interessam, ento atente nas propostas
contidasnosdoispacotesdeexercciossuplementaresdestamisso,oITSSUPEReo
ITSDEEP,antesdepassarsegundamisso.
Cadaumdestes pacoteslanaumconjuntodequestescomobjectivosrelativamente
simples,decontornosflexveiseque,noseuconjunto,podemserencaradoscomoum
projecto ou um trabalho de fundo, no sentido em que requerem a deduo,
programao e avaliao de um leque considervel de procedimentos lgicos. So
desafios que exigem algum tempo e recursos, destinados a um pblico com
conhecimentos e interesses que transcendem a programao de PLCs, podendo,
inclusivamente,servirdetemaquelespequenosprojectosdedesenvolvimentoqueos
formadores habitualmente propem aos seus formandos de nveis mais avanados,
sejamestesdesenvolvidosindividualmenteouemgrupo.
Dado o mbito e a abrangncia das propostas, cabe pois ao leitor, caso os temas lhe
interessem, tenha conhecimentos para isso e equipamentos laboratoriais disponveis,
reflectirsobreamelhorsoluoparaosdesafiosITSSUPEReITSDEEPdestaedas
demaismisses.Oidealqueofaanocrculodoseugrupohabitualdetrabalho.

34


ITSSUPERIntegraodesistemasdesupervisoeterminaisdeoperao
O objectivo deste pacote aumentar a flexibilidade da soluo alcanada atravs de
trocas de informao entre o controlador da instalao, i.e., o PLC, e sistemas de
supervisoeinterfacehomemmquina.SetemumaHMIquepossaligaraoseuPLC,ou
um SCADA com que este possa comunicar, nem que seja um pacote de software de
demonstrao,hquelhesdaruso!ProgrameoseuSCADAouHMIpararecolherdoPLC
ainformaoaseguirlistada:

EstadodaInstalao:standby,pronta,alarme,etc;

Estadodecadatapete:inactivo,transportanpaletes,bloqueado,etc;

Estadodamesarotativa:pronta,carga,etc;

Alturasdaspaletesnotapetedeentradaporordemcronolgica;

Dadosdaproduo:
o Indicaodeproduocontnuaouporlotes;
o Nocasodeproduoporlotes:extenso,volumejproduzidoevolumea
produzir;
o Nmero de paletes, baixas e altas, entradas na instalao durante o
trabalhoactual;
o Nmerodepaletes,baixasealtas,jenviadas;
o Nmerodepaletes,baixasealtas,emtrnsito;
o Setiverrecursosparatal,horadeinciodoltimotrabalhoetempototal
defuncionamentodainstalaonasltimas24horas.

ProgrametambmoseusistemademodoqueoPLCpossareceberdeumaHMIoude
umSCADAosseguintescomandoseconfiguraes:

Ordens de arranque, limpeza, encerramento e relanamento, incluindo fazer o


sistema arrancar e terminar a horas predefinidas ou terminar ao fim de um
determinadotempo;

Configurao da produo: produo contnua ou por lotes com definio dos


respectivosparmetros,ouseja,quantidadesetiposdepaletes;

Configurao das polticas de encaminhamento das paletes: direita, esquerda,


alternado,triagemporalturas,etc;

Definiodalotaodotapetedeentrada.

35

ITSDEEPDetecoesuportedesituaesdeerro
OpropsitodestepacotecomplementaraprogramaodoPLCcomfuncionalidades
tendentesdeteco,suporteediagnsticodesituaesdeerro.Assituaesdeerro
maisgraves,nosendopossveisdesuportardeoutraforma,devemlevarparagemdo
sistema, colocandoo em modo de avaria ou outro julgado mais conveniente
standby,porexemplo.Todasassituaesdeerroemausfuncionamentosdetectados
devem ser identificados e assinalados atravs de um cdigo de erro. Caso tenha
achado o pacote ITS SUPER interessante, pode ainda complementlo com a
comunicaoaoSCADAouaafixaonaHMIdoscdigosdeerrosdetectados.
Propese, ento, que o leitor desenvolva pequenas funes, to eficientes quanto o
possvel, para cobrir as situaes indesejveis a seguir listadas, evitando assim o
funcionamento da instalao em situaes de risco. A eficincia destes mecanismos
medese por dois parmetros: a relao entre o nmero de casos detectados e o
nmero de casos ocorridos que se denomina cobertura e a quantidade de
deteceseinterveneserrneasquesedenominafalsosalarmes.Oprimeirodeve
aproximarsede100%;osegundo,de0.
Propeseaseguintelistadeeventosadetectar:

Hduasoumaispaletesencostadasumassoutrasentradadamesarotativa;

Deslocamentodapaletedurantearotaodamesa;

Perda,porencravamentoouqualqueroutromotivo,ousurgimentoinesperado
deumapaletenumtransportador;

Avaria em qualquer sensor e identificao da mesma sada sempre a 0 ou


semprea1;

Avariaemqualqueractuadoreidentificaodamesmaencravadoa0oua1.

Utilizeaspossibilidadesdeinteracodosoftwareedegeraodeavariasparatestaros
seusmecanismosdedetecodeerroseavalieastcnicasdesenvolvidas.

36

PARTE3ASSOLUES

Muito provavelmente, o secreto desejo do leitor, de que as solues lhe fossem


fornecidas na linguagem de programao do seu PLC, no se concretizar. Mas, com
tantasmarcasemodelosdePLCs,aprobabilidadedetalacontecerera,defacto,muito
baixa!
Naimpossibilidadedeapresentarassoluesnalinguagempreferidadecadautilizador,
optouse por fazlo numa linguagem muito eficiente, de crescente aceitao,
facilmente compreensvel mesmo para quem jamais contactou com ela, facilmente
traduzvel noutras linguagens de programao de PLCs e extremamente expressiva e
reveladora dos algoritmos de controlo empregues: o Texto Estruturado (Structured
TextST).

OTextoEstruturadoeaNormaIEC611313
OtextoestruturadoumalinguagemdeprogramaodePLCsmodernaecontemplada
na norma IEC 611313. A sua simplicidade e expressividade tmlhe granjeado um
nmerosemprecrescentedeadeptosentreprogramadoresefabricantesdePLCs.
Seaprimeiravezquecontactacomestalinguagem,consideretalfactocomomaisum
pontodeinteressedestelivrodeexerccios.Verqueempoucotemposermaisumf
do texto estruturado. E, se conhece minimamente as vulgares linguagens de
programao de alto nvel, como o BASIC, Pascal ou C, vai constatar que o texto
estruturado,afinal,umalinguagem muitofcildecompreendereutilizare,decerta
forma,jsuaconhecida.

109

Paramuitosautores,otextoestruturadoalinguagemquepermiteumaprogramao
mais rpida e eficiente dos modernos sistemas de controlo baseados em PLC.
Conquanto tal seja obviamente discutvel, a verdade que os benefcios desta
linguagem relativamente s mais clssicas so particularmente notrios em aplicaes
complexas.Masumoutrofactortemcontribudoemmuitoparaaeficienteconcepo,
realizao e reengenharia de solues baseadas em PLC: a norma IEC 61131. Se no
conheceestanormatempodeaconhecer.SetrabalhaouestudanumaUniversidade,
encontrlacertamentenabibliotecadasuainstituio.Senoocaso,aconsultade
alguns dos inmeros livros, artigos e stios na Internet que dedicam grande ateno a
esta norma, e em especial Parte 3 (IEC 611313), podloo ajudar. Apresentar as
solues dos exerccios propostos em texto estruturado serve assim tambm de
pretexto para incitar o leitor a conhecer a norma IEC 61131, pese embora muitos dos
seusaspectosfundamentaisnosereflictamnasresoluespropostas.
Mas se sua inteno continuar a utilizar uma linguagem de programao que nada
temavercomotextoestruturadoesquemasdecontactos,diagramasdeblocos,lista
de instrues ento, a norma IEC 611313 tambm para si, j que ela contempla
igualmenteestaslinguagens.Qualquerumadelaspodia,porisso,tersidoutilizadapara
apresentararesoluodosexercciospropostos,mantendoseosmesmospropsitosde
divulgaoeconformidadecomanorma.Nooforamporquetambmsubscrevemosa
mximadequeotextoestruturadoaformamaisclara,simpleseeficientedeexpor
umprogramadePLC,sobretudoquandohquefazloparaumpblicoheterogneo.
AnormaIEC611313incluialinguagem grficaSFC(SequentialFunctionChart)como
propsito de estruturar, sequenciar e desenvolver um programa de controlo.
Consequentemente,oSFCnoumaalternativaaotextoestruturadoouaqualquerum
das outras linguagens previstas na norma. A linguagem SFC um dos recursos mais
interessanteseimportantesdanormaIEC611313,sendomuitasvezesconfundidacom
o GRAFCET tal como definido na primeira verso da norma IEC 60484 em virtude da
semelhanasemnticaegrficadestas.OfactodoGRAFCETserumaimportanteporta
deacessocompreensodealgunsaspectosdanormaIEC611313,nomeadamenteem
termos deorganizaodecdigo, maisumarazopara asuaamplautilizaoneste
textoemdetrimentodeoutrasferramentasemetodologiasdeespecificao.
Se o PLC que utiliza minimamente compatvel com a norma IEC 611313 mas s
suportaaslinguagensmaisclssicasouse,dequalquermodo,aspretendecontinuara
utilizar, ento tem nestes exerccios um outro ponto de interesse: a traduo das
solues apresentadas para a sua linguagem de programao, mas usando a
semntica e simbologia prevista na norma IEC 611313. H, afinal, muitos motivos de
interessenestelivrodeexerccios!
Por ltimo, se adepto do texto estruturado e desenvolve habitualmente a sua
programao de acordo com a norma IEC 611313, vai certamente considerar os
110

programas apresentados deselegantes, ineficientes e at algo desconformes com o


esprito da norma. Concordando em absoluto que o texto estruturado e a norma IEC
611313 permitem solues bem mais interessantes do que as apresentadas por
exemplo, usando enumerated data types para lidar com evolues de mquinas de
estados, ou encapsulando e reutilizando sistematicamente cdigo do utilizador em
funes e blocos de funes h que dizer que tais abordagens lanariam, por certo,
grandes confuses nos desconhecedores da norma e da linguagem de programao
utilizada. E as solues apresentadas pretendem ter dois mritos: primeiro, e mais
fundamental,seremcompreensveisparaqualquerprogramadordePLCs,mesmoques
minimamente habilitado; segundo, proporcionarem a cada leitor o exerccio
complementar de as traduzirem ou optimizarem para a(s) sua(s) linguagem(ns) de
interesse. Consequentemente, se f do texto estruturado, encare as solues
apresentadascomopedaosdecdigoaoptimizardeacordocomanormaIEC611313
e,jagora,tambmcomanormaIEC61499.

LiteraturaeMateriaisdeApoio
Caso pretenda iniciarse na norma IEC 61131 e no texto estruturado tem mltiplos
pontosdepartida:
Encontrar a norma IEC 61131 numa biblioteca no dever ser difcil. Outra hiptese
adquirilajuntodaInternationalElectrotechnicalCommissionhttp://www.iec.ch.
A parte mais interessante da norma a Parte 3, toda ela dedicada s Linguagens de
Programao.TemadesignaoIEC611313.apresentada,discutidaeexemplificada
emdiversoslivros.Entreeles,destacamseosseguintes:

Robert W. Lewis Programming Industrial Control Systems Using IEC 11313


(IEEControlEngineeringSeries),1998ISBN:0852969503;

KarlHeinz John IEC 611313: Programming Industrial Automation Systems:


ConceptsandProgrammingLanguages,RequirementsforProgrammingSystems,
AidstoDecisionMakingTools.1995,SpringerVerlag.ISBN3540677526.Parte
deste livro est disponvel na Internet a partir da pgina pessoal do autor:
http://www.fennet.de/karlheinz.john/.

UmstioobrigatrioemmatriadenormasePLCsodaPLCOPENwww.plcopen.org.
Mltiplasinformaesteispodemaquiserencontradas.
UmaconsultaaoGoogle,ouaqualqueroutromotordebusca,sobreotemastructured
textprogrammingconduzaumalistainfindveldestioseartigosinteressantes.Entre
eles,olivroAutomatingManufacturingSystemswithPLCsporHughJack,disponvel,
111

data desta publicao, no stio claymore.engineer.gvsu.edu/~jackh/books/plcs e cuja


leituraabsolutamenterecomendada.
Se no possui um PLC compatvel com a norma IEC 611313, mas gostaria de
experimentar a programao em texto estruturado, ento sugerese uma viagem ao
mundodossoftPLCs.Muitosdestespacotesdesoftwaresototalmentecompatveis
com a norma IEC 611313. Tm um custo elevado, mas os seus fabricantes
disponibilizam verses gratuitas de demonstrao, muito bem documentadas e
exemplificadas, que, embora naturalmente limitadas, constituem ptimos pontos de
partida para a programao segundo a norma IEC 611313. Sugerese que conhea os
seguintesprodutosefabricantes:

ISaGRAFhttp://www.isagraf.com;

MULTIPROGhttp://www.kwsoftware.com;

CoDeSyshttp://www.3ssoftware.com;

TwinCATPLChttp://www.beckhoff.com.

Se no conhece os soft PLCs, ento este um excelente pretexto para, finalmente,


contactar com este interessantssimo meio de controlo de muitas das modernas
instalaesindustriais.Maisumpontodeinteressedestelivrodeexerccios!

AcercadasSolues
Tecidas algumas consideraes sobre a norma IEC 611313 , finalmente!, tempo de
passardivulgaodassoluesdosproblemaspropostos.
Cada resoluo compreende uma explicao e justificao, mais ou menos breve, dos
procedimentos utilizados, seguida do respectivo programa em texto estruturado,
devidamente comentado. Porque, na generalidade dos casos, as tarefas se vo
complementando medida que uma misso avana, a soluo de uma tarefa
vulgarmente o ponto de partida para a seguinte. Consequentemente, grande parte do
cdigo desenvolvido numa tarefa tende a ser reutilizado nas seguintes. Da, voltase a
frisar, a importncia de compreender bem a soluo de uma tarefa antes de avanar
paraaseguinte.
Nocasodesoluesmenostriviaisoupropensasaalgumaambiguidade,osprogramas
so desenvolvidos com base numa especificao prvia em GRAFCET, devidamente
comentada. importante referir que tais especificaes seguem a segunda edio da
normaIEC60484.Dadoqueestaversorelativamenterecente,provvelquealguns
leitores no conheam ainda suficientemente bem as alteraes introduzidas nesta
112

verso, podendo da resultar alguma estranheza relativamente a alguns aspectos


grficos e funcionais de uns tantos grafcets; por exemplo, a afectao de aces a
algumastransies.Embora,eapensarexactamentenosleitoresmenosfamiliarizados
comaversoemvigor,assoluesapresentadasapontemealertemparaalgumasdas
inovaesintroduzidasnasegundaediodanormaIEC60484,taisesclarecimentosno
dispensam a consulta da mesma. A promoo da segunda edio da norma IEC 60484
que, relativamente primeira, se distanciou bastante da linguagem SFC, outro
propsitodestelivro!
Adeclaraoeinicializaodasvariveisumaspectojdesiimportanteemqualquer
programa, mas uma questo particularmente relevante quando se programa de
acordocomanormaIEC611313.Nessecontexto,adeclaraodasvariveismereceum
espao prprio nas solues apresentadas, tal como deve tambm merecer uma
ateno especial por parte do leitor. E isto porque, a declarao das variveis
compreendetambmainicializao,implcitaouexplicita,dasmesmascomumvalorde
interesseparaosprogramasqueasutilizam.Comotal,adeclaraodeumavarivelno
deve ser vista como um mero formalismo de pouco interesse para as solues
apresentadas,masantescomoumainformaoimportante.Porexemplo,aatribuio
do valor inicial TRUE a uma varivel de estado revela, ou confirma, que a mesma
simbolizaumaetapaouestadoinicial.
Por questo de organizao, as variveis esto divididas em dois grupos: as que so
comunsatodasasmisseseasqueapenassovlidasdentrocadamisso.Oprimeiro
grupo composto exclusivamente pelas variveis de I/O. So apresentadas no ponto
seguinte.Maisfrente,jnaesferadassoluesdecadamisso,surgeadeclaraodas
variveisedasinstnciasdeblocosfuncionaisutilizadasnastarefasafectasmissoem
causa.
Como nota final, importa sublinhar, mais uma vez, que as solues apresentadas so
apenas solues possveis e, de forma alguma, as nicas ou as melhores. Sugerese,
por isso, que o leitor as compare com as suas, tentando listar vantagens e
inconvenientes relativos. A elaborao de um caderno de notas reflectindo as
conclusespessoaissobrearesoluodecadatarefaaltimapropostadestelivrode
exercciose,semdvida,umadasmaisimportantesparaformadoreseformandos.

DeclaraodasVariveisdeI/O
Asvariveisquerepresentamosparmetrosdeentradaedesadadeumprogramaso
globalmentedesignadasporvariveisdeI/O.AsvariveisdeI/Osofundamentaisem
qualquer programa, j que so o meio de troca de informao entre este e os seus
113

elementos perifricos, fsicos ou lgicos, tais como sensores, actuadores, sinalizadores


ououtrasaplicaesdesoftware.
NocasodaaplicaoITSPLC,acorrectatrocadeinformaoentreossistemasvirtuais
eoPLCexternoumacondionecessriaaoseucorrectofuncionamento.Paratal,
necessrioqueaoPLCchegueminformaessobreoestadodainstalao,naformade
variveis de entrada do PLC, e que o estado da instalao se altere de acordo com
aces decontrolo adequadas, reflectidas nasvariveis de sada do PLC. Esta troca de
informao requer uma ligao fsica entre o PLC e a placa de interface USB que
acompanhaoproduto.dessaligaofsicaqueresultaomapeamentodasvariveisde
I/OdoPLCnasvariveisdeI/OdossistemasvirtuaisITSPLC.
AdeclaraodasvariveisdeI/Otemtrspropsitos:atribuilhesnomesquepodemser
usados na escrita do programa, definir os tipos de variveis em jogo e afectlas aos
endereos fsicos de I/O do PLC. Consequentemente, ao declarar as variveis, cada
programador tender a apelidlas a seu gosto e a mapelas em funo do PLC
utilizado. De comum a todas as declaraes, haver apenas a afirmao de que cada
pontodeI/Ocorrespondeaumavarivelbooleana.
AnormaIEC611313prevahiptesede,nadeclaraodeumavarivel,afectlaaum
espao fsico do PLC (memria, entrada ou sada). Esta hiptese, particularmente
interessantenadeclaraodasvariveisdeI/OreflectesenoempregodoatributoAT.
Assim,assumindoumPLCcommdulosdeentradaesadade8bits,adeclaraodas
variveisdeI/Opodeserfeitadoseguintemodo:
(*****************************************************
Declarao das Variveis de Entrada e Sada
*****************************************************)
VAR_INPUT
In_0
In_1
In_2
In_3
In_4
In_5
In_6
In_7
In_8
In_9
In_10
In_11
In_12
In_13
In_14
In_15

114

AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT
AT

%IX0.0
%IX0.1
%IX0.2
%IX0.3
%IX0.4
%IX0.5
%IX0.6
%IX0.7
%IX1.0
%IX1.1
%IX1.2
%IX1.3
%IX1.4
%IX1.5
%IX1.6
%IX1.7

:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:

BOOL;
BOOL;
BOOL;
BOOL;
BOOL;
BOOL;
BOOL;
BOOL;
BOOL;
BOOL;
BOOL;
BOOL;
BOOL;
BOOL;
BOOL;
BOOL;

(*
(*
(*
(*
(*
(*
(*
(*
(*
(*
(*
(*
(*
(*
(*
(*

Sensor 0 *)
Sensor 1 *)
Sensor 2 *)
Sensor 3 *)
Sensor 4 *)
Sensor 5 *)
Sensor 6 *)
Sensor 7 *)
Sensor 8 *)
Sensor 9 *)
Sensor 10 *)
Selector de Modo Manual/Automtico *)
Botoneira Iniciar *)
Botoneira Parar *)
Botoneira Reiniciar *)
Botoneira Emergncia *)

END_VAR
VAR_OUPUT
Out_0
Out_1
Out_2
Out_3
Out_4
Out_5
Out_6
Out_7
Out_8
Out_9

AT
AT
AT
AT
AT
AT
AT
AT
AT
AT

%QX0.0
%QX0.1
%QX0.2
%QX0.3
%QX0.4
%QX0.5
%QX0.6
%QX0.7
%QX1.0
%QX1.1

:
:
:
:
:
:
:
:
:
:

BOOL;
BOOL;
BOOL;
BOOL;
BOOL;
BOOL;
BOOL;
BOOL;
BOOL;
BOOL;

(*
(*
(*
(*
(*
(*
(*
(*
(*
(*

Actuador 0 *)
Actuador 1 *)
Actuador 2 *)
Actuador 3 *)
Actuador 4 *)
Actuador 5 *)
Actuador 6 *)
Actuador 7 *)
Luz da botoneira Iniciar *)
Luz da botoneira Reiniciar *)

END_VAR
(*****************************************************
Fim da declarao
*****************************************************)

A generalidade dos ambientes de programao de PLCs prev procedimentos de


declarao de variveis mais ou menos semelhantes ao representado. Mas, admitindo
queadeclaraopodeserconfusaparaosleitoresmenosfamiliarizadoscomanorma
IEC611313,oqueimportareterdestadeclaraooseguinte:

Emtodasastarefas,detodasasmisses,asvariveisdeentradabooleanasIn_0,
In_1, , In_10 mapeiam, por esta ordem, os valores lgicos produzidos pelos
sensoresvirtuais0,1,,10;

Em todas as tarefas, de todas as misses, as variveis de entrada booleanas


In_11,In_12,,In_15mapeiam,porestaordem,oestadodoselectordemodoe
dasbotoneirasIniciar,Parar,ReiniciareEmergncia;

Emtodasastarefas,detodasasmisses,asvariveisdesadabooleanasOut_0,
Out_1, , Out_7 mapeiam, por esta ordem, os valores lgicos dos actuadores
virtuais0,1,,7;

Emtodasastarefas,detodasasmisses,asvariveisdesadabooleanasOut_8e
Out_9 mapeiam os valores lgicos dos sinalizadores luminosos das botoneiras
IniciareReiniciar,respectivamente.

A norma IEC 611313 possibilita a inicializao de uma varivel aquando da sua


declarao.EstapossibilidadenoteminteresseparaasvariveisdeI/Oe,nemsequer
possvel, porque no faz sentido, para as variveis de entrada. Por esse motivo, as
variveisdeI/Onosoinicializadasnarespectivadeclarao.

115

Misso1:Automatizaodeumaestaode
transporteetriagemdemercadoriasempaletes

VariveiseinstnciasdeblocosfuncionaisusadasnaMisso1
Acadatarefadecadamissocorrespondeumprogramaqueempregaumconjuntode
variveis e instncias de blocos de funes, cuja declarao exigida pela norma IEC
611313.Porm,apresentarassoluesdasdiferentestarefasseguindoesteprincpio,
levaria a que o cdigo de cada programa fosse antecedido de uma lista de variveis e
instncias de blocos funcionais, por vezes extensa, com muitas delas j introduzidas e
explicadasnassoluesdetarefasanteriores.
Para evitar sucessivas e fastidiosas declaraes, que em pouco ou nada contribuiriam
paraacompreensodossucessivosprogramas,eassimaligeirarodocumento,optouse
por reunir, numa nica declarao, as variveis e as instncias de blocos funcionais
relativas aos doze programas de cada misso. Essa declarao conjunta, que abre a
apresentaodassoluesdecadamisso,feitaemconformidadecomanormaIEC
611313,edevesertomadaemdevidacontanaapreciaodocdigocorrespondente
soluodecadatarefa.Emparticular,deespecialimportnciaaobservaodovalor
inicialatribudoacadavarivel.
DeacordocomanormaIEC611313,adefiniodovalorinicialdeumavarivelpermite
atribuirlheumvalordiferentedaquelequeseriaoseuvalorinicialpordefeito,oqual
funodotipodevarivel;porexemplo,variveisbooleanas,inteirasereaisiniciamse,
pordefeito,em0.Parecer,pois,estranhoque,nadeclaraodealgumasvariveis,lhes
sejam atribudos os valores que teriam por defeito; por exemplo, possvel observar
que muitas variveis booleanas so inicializadas em FALSE. Tal redundncia tem o
propsitoderevelarexplicitamenteovalorinicialdealgumasvarivelparticularmente
117

importantes.Porexemplo,nocasodeumavariveldeestado,oseuvalorinicialdeve
tipicamente reflectir uma condio inicial prevista no cenrio em que a tarefa se
desenrola;logo,temdeserinicializadacomTRUEouFALSE,emconformidade.Seessa
inicializaoforbemexplcita,tantomelhor...
Assim, e muito concretamente, optouse por inicializar explicitamente mesmo aquelas
variveis que implicitamente seriam inicializadas com os valores de interesse porque,
mostra a experincia, quando a inicializao de uma varivel no explcita, alguns
leitores tm tendncia a deduzir que o valor inicial dessa varivel indiferente, no
tomandodessemodoconscinciadaimportnciadovalorinicialque,pordefeito,lhe
atribudo.Emcoernciacomesteprincpio,entendeuseinicializarexplicitamentetodas
as variveis aquando da sua declarao, excepto aquelas cujo valor inicial , de facto,
irrelevante.
Os casos em que a mesma varivel deve ser inicializada com valores distintos em
diferentes tarefas so devidamente salientados nos comentrios que acompanham a
respectivadeclarao.Tambmsosalientadososcasosemqueosvaloresiniciaisso
apenasexemplificativos;porexemplo,parmetrosdeconfigurao,tabelasdereceitas,
etc. Em qualquer caso, a declarao de uma varivel encerra em comentrio o
significado da mesma, a codificao empregue e as tarefas em que utilizada. As
variveissoagrupadasemfunodoseucontextoe,dentrodecadagrupo,listadaspor
ordem alfabtica. Tal permite enquadrar devidamente a funcionalidade das diferentes
variveiseencontrarcomfacilidadeadeclaraodeumaqualquervarivel.Porltimo,
hquereferirqueadeclaraodasvariveisantecedeadeclaraodasinstnciasdos
blocosfuncionais.
Feitasestasexplicaes,segueseadeclaraodasvariveisempreguesnasdozetarefas
quecompemaMisso1,aqualcorrespondeseguintelistagem:
(********************************************************
Declarao das variveis e instncias de
blocos funcionais IEC 61131-3 usadas na Misso 1
********************************************************)
VAR

(* Declarao e inicializao de variveis *)

(* Variveis afectas ao comando do tapete de entrada *)


Busy_1 : BOOL := FALSE;
(* Tarefas 2-3, 5-12 *)
(* Disponibilidade do tapete de entrada: 0 -> Disponvel *)
Count : WORD := 16#8000;
(* Tarefas 3, 5-12 *)
(* Contador em anel, inicialmente a zero -> 8000H *)
Fila : WORD;
(* Tarefas 8-12 *)
(* Fila das alturas das paletes no tapete de entrada *)
Mem_1 : BOOL := FALSE;
(* Tarefas 1-3, 5-12 *)
(* Estado do tapete de entrada: 0 -> Sem paletes *)

118

Mem_timer : BOOL;
(* Tarefas 9-12 *)
(* Memria para reteno de Timer_1 *)
(* Variveis afectas ao comando da mesa rotativa *)
Busy_2 : BOOL := FALSE;
(* Tarefas 5-12 *)
(* Disponibilidade da mesa rotativa: 0 -> Disponvel *)
Carrega : BOOL := FALSE;
(* Tarefas 4-12 *)
(* Estado possvel da mesa rotativa *)
Descarrega : BOOL := FALSE;
(* Tarefas 4-12 *)
(* Estado possvel da mesa rotativa *)
Livre : BOOL := TRUE;
(* Tarefas 4-12 *)
(* Estado inicial da mesa rotativa *)
Mem_timeout_mesa : BOOL := FALSE;
(* Tarefas 11-12 *)
(* Memria para reteno de Timeout_mesa *)
Roda_carregada : BOOL := FALSE;
(* Tarefas 4-12 *)
(* Estado possvel da mesa rotativa *)
Roda_descarregada : BOOL := FALSE;
(* Tarefas 4-12 *)
(* Estado possvel da mesa rotativa *)
Sentido_descarga : BOOL := FALSE;
(* Tarefas 6-12 *)
(* Se 0, a descarga para tapete da direita *)
(* Variveis afectas ao comando do tapete de sada da direita *)
Busy_6 : BOOL := FALSE;
(* Tarefas 7-12 *)
(* Disponibilidade do tapete de sada da direita:
0 -> Disponvel *)
Mem_6 : BOOL := FALSE;
(* Tarefas 5-12 *)
(* Estado do tapete de sada da direita: 0 -> Sem paletes *)
Mem_timeout_direita : BOOL := FALSE;
(* Tarefas 11-12 *)
(* Memria para reteno de Timeout_direita *)
(* Variveis afectas ao comando do tapete de sada da esquerda *)
Busy_5 : BOOL := FALSE;
(* Tarefas 7-12 *)
(* Disponibilidade do tapete de sada da esquerda:
0 -> Disponvel *)
Mem_5 : BOOL := FALSE;
(* Tarefas 6-12 *)
(* Estado do tapete de sada da esquerda: 0 -> Sem paletes *)
Mem_timeout_esquerda : BOOL := FALSE;
(* Tarefas 11-12 *)
(* Memria para reteno de Timeout_esquerda *)
(* Variveis afectas aos modos de funcionamento da instalao *)
Automatico : BOOL := FALSE;
(* Tarefas 10-12 *)
(* Estado possvel da instalao - inicial na Tarefa 10 *)
Encerramento : BOOL := FALSE;
(* Tarefas 10-12 *)
(* Estado possvel da instalao *)
Limpeza : BOOL := FALSE;
(* Tarefas 11-12 *)
(* Estado possvel da instalao *)
Parada : BOOL;
(* Tarefas 10-12 *)
(* Instalao parada *)
Pronto : BOOL := FALSE;
(* Tarefas 10-12 *)

119

(* Estado possvel da instalao *)


Standby : BOOL := TRUE;
(* Tarefas 11-12 *)
(* Estado possvel da instalao - inicial nas Tarefas 11-12 *)
(* Instncias de Blocos de Funes *)
(* Deteco de transies descendentes *)
F_In_0 : F_TRIG;
(* Transio
F_In_3 : F_TRIG;
(* Transio
F_In_7 : F_TRIG;
(* Transio
F_In_8 : F_TRIG;
(* Transio
F_In_9 : F_TRIG;
(* Transio
F_In_10 : F_TRIG;
(* Transio

descendente de In_0 *)
descendente de In_3 *)
descendente de In_7 *)
descendente de In_8 *)
descendente de In_9 *)

(* Tarefas 2-3, 5-12 *)


(* Tarefas 1-12 *)
(* Tarefas 4-12 *)
(* Tarefas 6-12 *)
(* Tarefas 5-12 *)

(* Tarefas 6-12 *)
descendente de In_10 *)

(* Deteco de transies ascendentes *)


R_In_0 : R_TRIG;
(* Tarefa 1 *)
(* Transio ascendente de In_0 *)
R_Limpeza : R_TRIG;
(* Tarefas 11-12 *)
(* Transio ascendente de Limpeza *)
R_Parada : R_TRIG;
(* Tarefas 11-12 *)
(* Transio ascendente de Parada Instalao parou *)
(* Temporizadores *)
Timer_1 : TON;
(* Tarefas 9-12 *)
(* Usado no comando do tapete de entrada *)
Pisca_encerra_auto_1 : TON;
(* Tarefa 12 *)
(* Temporizador 1 do Pisca_encerra_auto *)
Pisca_encerra_auto_2 : TON;
(* Tarefa 12 *)
(* Temporizador 2 do Pisca_encerra_auto *)
Pisca_encerramento_1 : TON;
(* Tarefas 10-12 *)
(* Temporizador 1 do Pisca_encerramento *)
Pisca_encerramento_2 : TON;
(* Tarefas 10-12 *)
(* Temporizador 2 do Pisca_encerramento *)
Pisca_limpeza_1 : TON;
(* Tarefas 11-12 *)
(* Temporizador 1 do Pisca_limpeza *)
Pisca_limpeza_2 : TON;
(* Tarefas 11-12 *)
(*Temporizador 2 do Pisca_limpeza *)
Timeout_direita : TON;
(* Tarefas 11-12 *)
(* Timeout no comando do tapete de sada da direita *)
Timeout_entrada : TON;
(* Tarefas 11-12 *)
(* Timeout no comando do tapete de entrada *)
Timeout_esquerda : TON;
(* Tarefas 11-12 *)
(* Timeout no comando do tapete de sada da esquerda *)
Timeout_mesa : TON;
(* Tarefas 11-12 *)

120

(* Timeout no comando da mesa rotativa *)


(* Contadores *)
Conta_paletes : CTD;
(* Contador de paletes *)

(* Tarefa 12 *)

END_VAR
(********************************************************
Fim da declarao
********************************************************)

121

ResoluodaTarefa1
De acordo com o enunciado, o tapete de entrada deve movimentarse quando nele
existeumapalete.Ento,admitindoquepossvelrepresentaroestadodotapetepor
umavarivelbinria(oumemria),Mem_1,talqueMem_1=1seexisteumapalete
notapete,ocomandodestetransportadorpassasimplesmentepelaexpressoOut_1=
Mem_1.
Dadoquenoexisteumsensorqueindiqueseotapetetemounoumapalete,ovalor
lgico de Mem_1 ter de ser deduzido; concretamente, com base na observao da
entradaesadadepaletesnotapete.Assim,aentradadeumapaletedevefazerMem_1
=1ouseja,osetdeMem_1;asadadeumapaletedevefazerMem_1=0ouseja,
o reset de Mem_1. Mem_1 deve ser inicializada em 0 uma vez que dito que
inicialmentenohpaletesnotapetedeentrada.
Em termos lgicos, a entrada e sada de paletes no tapete reflectemse na transio
ascendente de In_0 (In_0 = 1) e na transio descendente de In_3 (In_3 = 1),
respectivamente. O set e o reset de Mem_1 devem pois ser motivados por estas
transies.
Oprogramacorrespondentepresentetarefaoseguinte:
(*****************************************
Misso 1 - Tarefa 1
*****************************************)
(**** DETECO DE EVENTOS RELEVANTES ****)
R_In_0 (CLK := In_0);
(* R_In_0.Q 1 quando In_0 tem uma transio ascendente. Sinaliza que
uma palete chegou ao tapete de entrada *)
F_In_3 (CLK := In_3);
(* F_In_3.Q 1 quando In_3 tem uma transio descendente. Sinaliza que
uma palete abandonou o tapete de entrada *)
(**** COMANDO DO TAPETE DE ENTRADA ****)
(* Definio da varivel de estado, Mem_1, em funo dos sinais de
entrada *)
IF R_In_0.Q THEN
Mem_1 := TRUE;
END_IF;

(* Quando chega uma palete *)


(* Set de Mem_1 *)

IF F_In_3.Q THEN
Mem_1 := FALSE;
END_IF;

(* Quando sai uma palete *)


(* Reset de Mem_1 *)

122

(* Definio da varivel de sada, Out_1, em funo do estado do tapete


de entrada *)
Out_1 := Mem_1;
(*****************************************
Fim do Programa
*****************************************)

123

ResoluodaTarefa2
Esteproblemabastantesimples,masencerraideiasdeimportnciafundamentalpara
ageneralidadedastarefasdapresentemissonarealidade,paraageneralidadedos
problemasdetransportedemercadoriasempassadeiras.
muitoimportantenotarqueotransportedeumapaletetemtrsfases.Vejaseparao
casodotapetedeentrada:

Acargadapaleterequeromovimentosimultneodoalimentadoredotapete
de entrada. Iniciase quando a palete detectada pelo sensor 0 e termina
quando o mesmo sensor deixa de a detectar. Assim, durante esta fase, o valor
lgicodeIn_01;

Otransporte,propriamenteditorequerunicamenteomovimentodotapetede
entrada. Durante esta fase, a palete no detectada pelos sensores colocados
nosextremosdotapete,peloqueIn_0=In_3=0;

Adescargadapaleterequeromovimentosimultneodotapetedeentradae
dosrolosdamesarotativa.Iniciasequandoapaletedetectadapelosensor3e
terminaquandoomesmosensordeixadeadetectar.Assim,duranteestafase,o
valorlgicodeIn_31.

Porqueacargadotapetedeentradacorrespondedescargadoalimentadortalcomo
adescargadotapetedeentradacorrespondecargadamesarotativaento,estando
o tapete de entrada indisponvel, isto , transportando ele uma palete, o alimentador
nopodedescarregar.Ouseja,oalimentadornopodepassarumapaleteparaalmda
posiodosensor0.Sopoderfazerquandootapetedeentradaficardisponvel,isto
,quandonelenoexistirqualquerpalete.
Umasoluogenrica,paraproblemasdestetipo,aceitarqueumtapeteAgeraosinal
Busy_A= 1 quando, por qualquer razo, est indisponvel para receber paletes. Ao ler
estesinal,umtapeteB,quealimenteA,ficaasaberquenodevemovimentarpaletes
paraalmdoseulimite.SopoderfazerquandootapeteAproduzirosinalBusy_A=
0.
A adaptao deste princpio ao problema em causa muito simples: o controlador do
tapetedeentradafazosetdeBusy_1apscarregarumapaleteisto,quandosente
umatransiodescendentedeIn_0eoresetdeBusy_1semprequeumapalete
descarregada isto , quando sente a transio descendente de In_3. Compete ao
comandodoalimentadorlerosinalBusy_1demodoque,chegandoumapaleteaofim
doalimentadoreestandootapetedeentradaocupado,omovimentosejasuspensoat
queotapetedeentradafiquedisponvel.

124

Outro aspecto importante que, por questes de eficincia, o tapete de entrada no


devepararapsdescarregarumapaletecaso,nessaaltura,jexistaoutrapaletenofinal
doalimentador.Assim,ascondiesdeset/resetdeMem_1tmdesermodificadas
relativamenteTarefa1.Umahiptesesfazeroresetnatransiodescendentede
In_3 se, nesse instante, In_0 = 0; outra, fazer o set quando In_0 = 1 e tornlo
dominantesobreoreset.Asoluoapresentadasegueasegundahiptese.
(*****************************************
Misso 1 - Tarefa 2
*****************************************)
(**** DETECO DE EVENTOS RELEVANTES ****)
F_In_0(CLK := In_0);
(* Palete foi carregada no tapete de entrada
- ou seja, foi descarregada do alimentador *)
F_In_3(CLK := In_3);
(**** COMANDO DO TAPETE DE ENTRADA ****)
(* Definio de Mem_1 e de Busy_1 *)
IF F_In_3.Q THEN
Mem_1 := FALSE;
Busy_1 := FALSE;
END_IF;

(* Quando uma palete abandona o tapete *)


(* Reset de Mem_1 *)
(* Reset de Busy_1 *)

IF F_In_0.Q THEN
Busy_1 := TRUE;
END_IF;

(* Quando uma palete carregada *)


(* Set de Busy_1 *)

IF In_0 THEN
Mem_1 := TRUE;
END_IF;

(* Havendo palete no fim do alimentador *)


(* Set de Mem_1 *)

(** NOTA IMPORTANTE:


Note que o set de Mem_1 agora para In_0 = 1 e dominante sobre o
reset uma vez que a instruo de set surge depois da de reset. Ento,
se F_In_3.Q e In_0 forem ambos verdadeiros, Mem_1 fica com o valor
lgico TRUE que entregar sada Out_1. Isso garante que o tapete de
entrada continua em movimento, sem transies a zero, caso j exista uma
palete sada do alimentador quando a anterior abandona o tapete de
entrada **)
(* Definio da sada Out_1 como na Tarefa 1 *)
Out_1 := Mem_1;
(**** COMANDO DO ALIMENTADOR ****)
(* Alimentador no est em movimento se tapete de entrada ocupado e h
uma palete no final do alimentador *)
Out_0 := NOT Busy_1 OR NOT In_0;

125

(* O mesmo que: Out_0 := NOT (Busy_1 AND In_0) *)


(*****************************************
Fim do Programa
*****************************************)

126

ResoluodaTarefa10
A instalao passou a ter trs estados (ou fases) possveis, cuja evoluo est
representadanografcetdaFiguraM1T10a:

AutomticoFuncionamentocontnuocomonaTarefa9;

Encerramento Alimentador no fornece paletes e os demais transportadores


transferemaspaletesaindaemtrnsito;

ProntoAinstalaonofuncionaporescassezdepaletes.

FiguraM1T10aEvoluoesinalizaodosmodosdefuncionamentodainstalao
O curioso deste funcionamento que, exceptuando o alimentador, todos os
transportadores,emtodosdosmodos,secomportamdaformadescritanaTarefa9!
por simples escassez de paletes ou seja, pelo facto do alimentador deixar de
fornecer paletes que a instalao entra na fase de encerramento, acabando depois
inactiva.Fazerainstalaoregressaraomodoautomtico,permitirqueoalimentador
volteafornecerpaletesqueosdiferentestransportadoresencaminhamdevidamente.
Assim,ocdigodocomandodoalimentadorquepermaneceuimutveldesdeaTarefa
2onicoquerequeralteraoemrelaotarefaanterior.Considerandoque,caso
exista uma palete na zona do sensor 0 no momento em que dada ordem de
encerramento, essa palete ainda enviada para o tapete de entrada, o comando do
alimentadorpassaaserdadopor:
Out_0 = (NOT In_0 OR NOT Busy_1) AND (In_0 OR NOT Encerramento) AND NOT
Pronto;

154

Ou,equivalentemente:
Out_0 = (NOT In_0 OR NOT Busy_1) AND (In_0 OR Automatico);

As variveis Automtico, Encerramento e Pronto so variveis internas que


tomamovalorlgico1quandoainstalaoestnorespectivomododefuncionamento,
permitindo programar facilmente o grafcet da Figura M1T10a. Reconhecer que a
instalaoestparadareconhecerquenenhumtransportadorcontmpaletes:
Parada = NOT Mem_1 AND Livre AND NOT Mem_5 AND NOT Mem_6;

Para sinalizar o encerramento da instalao necessrio realizar um pisca com as


caractersticas temporais desejadas que s funcione quando a varivel Encerramento
exibeovalorlgico1.
Aformamaissimplesderealizarumpiscaatravsdedoistemporizadoresdotipoon
delaycomaconfiguraomostradanaFiguraM1T10b:

FiguraM1T10bPiscaconstrudocomdoistemporizadoresondelay
A compresso deste esquema passa pela compreenso do diagrama temporal
representadonaFiguraM1T10c:

FiguraM1T10cDiagramatemporalparaopiscadaFiguraM1T10b
155

Considerese que, inicialmente, a condio de interesse genrica, Cond, que dever


fazer funcionar o pisca, est a 0. Isso faz com que as entradas e sadas dos
temporizadoresestejamtambmem0.
Oprimeirotemporizador,Timer_1,armadoaotempota,ouseja,quandoacondio
Cond no caso desta tarefa ser a varivel Encerramento toma o valor lgico 1.
Mantendose Cond a 1, a sada de Timer_1 vai a 1 ao tempo tb = ta + T_off, fazendo
Timer_2iniciararespectivatemporizao.Consequentemente,mantendoseConda1,a
sadadosegundotemporizadorvaia1aotempotc=tb+T_on,ouseja,umtempoT_on
aps o primeiro, desarmandoo. O desarme do primeiro temporizador desarma o
segundoque,porsuavez,rearmaoprimeiro.Significaistoque,aotempotcretomamse
ascondiesobservadasemta,peloqueocicloserepetircomumaperiodicidadeT=
T_on+T_off.
Assim,asadadoprimeirotemporizadoralternarcomumperodoT=T_off+T_one
umdutycycle=T_on/Tataotempotz,instanteemqueavariveldeinteresse,Cond,
passaaexibirovalorlgico0.
Assumindose que, no caso da presente tarefa, o pisca ser realizado por dois
temporizadoresdesignadosporPisca_encerramento_1ePisca_encerramento_2,ento
a sinalizao do estado da instalao atravs da luz da botoneira Iniciar feita pela
seguinteinstruo:
Out_8 = Parada OR Pisca_encerramento_1.Q;

OprogramacorrespondenteTarefa10oseguinte:
(*****************************************
Misso 1 - Tarefa 10
*****************************************)
(**** DETECO DE EVENTOS RELEVANTES ****)
F_In_0(CLK := In_0);
F_In_3(CLK := In_3);
F_In_7(CLK := In_7);
F_In_8(CLK := In_8);
F_In_9(CLK := In_9);
F_In_10(CLK := In_10);
(**** EVOLUO E SINALIZAO DOS MODOS DE FUNCIONAMENTO ****)
(* Evoluo das varveis de estado *)
IF Automatico AND NOT In_13 THEN
Encerramento := TRUE;
Automatico := FALSE;
END_IF;

156

(* Automtico -> Encerramento *)

IF Encerramento AND Parada THEN


Pronto := TRUE;
Encerramento := FALSE;
END_IF;

(* Encerramento -> Pronto *)

IF In_12 THEN
(* Quando a Botoneira Iniciar premida *)
Automatico := TRUE; (* Encerramento ou Pronto -> Automtico *)
Encerramento := FALSE;
Pronto := FALSE;
END_IF;
(* Deteco de instalao inactiva *)
Parada := NOT Mem_1 AND Livre AND NOT Mem_5 AND NOT Mem_6;
(* Materializao do Pisca de Encerramento *)
Pisca_encerramento_1(IN := Encerramento AND NOT Pisca_encerramento_2.Q,
PT := T#1s);
Pisca_encerramento_2(IN := Pisca_encerramento_1.Q, PT := T#1s);
(* Sinalizao do Modo *)
Out_8 := Pronto OR Pisca_encerramento_1.Q;
(**** COMANDO DO TAPETE DE SADA DA ESQUERDA ****)
(* Como na Tarefa 7 *)
IF F_In_10.Q THEN
Mem_5 := FALSE;
Busy_5 := FALSE;
END_IF;
IF F_In_8.Q THEN
Busy_5 := TRUE;
END_IF;
IF In_8 THEN
Mem_5 := TRUE;
END_IF;
Out_5 := Mem_5 AND (NOT In_10 OR In_15);
(**** COMANDO DO TAPETE DE SADA DA DIREITA ****)
(* Como na Tarefa 7 *)
IF F_In_9.Q THEN
Mem_6 := FALSE;
Busy_6 := FALSE;
END_IF;
IF F_In_7.Q THEN
Busy_6 := TRUE;
END_IF;

157

Vous aimerez peut-être aussi