Você está na página 1de 77

_____________________________Autmatos Programveis____________________________

1. CONCEPO DE UM AUTOMATISMO 1.1. CARACTERSTICAS DE UM AUTOMATISMO

j difcil imaginar a nossa vida sem automatismos. A sua presena entrou de tal forma nos nossos hbitos, que muitas vezes nem damos conta de como nos facilitam a vida; eles esto presentes no controlo da luz da escada, no elevador, no porto de garagem, na mquina de lavar roupa, no sistema de bombagem de gua e em muitos mais dispositivos de uso comum. Na verdade, os automatismos, so dispositivos que permitem que determinado sistema funcione de uma forma autnoma (automaticamente), sendo a interveno do operador reduzida ao mnimo indispensvel. Sendo bem concebido, um automatismo : - Simplifica consideravelmente o trabalho do operador. - Elimina ao operador as tarefas complexas, perigosas, pesadas ou indesejadas. Quando o automatismo aplicado a um processo industrial, tambm tem as seguintes vantagens : - Facilita as alteraes aos processos de fabrico. - Melhora a qualidade dos produtos fabricados, mantendo uma constncia das caractersticas dos mesmos. - Aumenta a produo - Permite economizar matria prima e energia. - Aumenta a segurana no trabalho. - Controla e protege os sistemas controlados.

1.2.

ESTRUTURA DE UM AUTOMATISMO
Podemos dividir um automatismo em trs blocos:

- Entradas Neste bloco encontram-se todos os dispositivos que recebem informaes do sistema a controlar. So em geral sensores, botoneiras, comutadores, fins de curso, etc. - Sadas Neste bloco temos todos os dispositivos actuadores e sinalizadores. Podem ser motores, vlvulas, lmpadas, displays, etc.. - Lgica Neste bloco encontra-se toda a lgica que vai permitir actuar o bloco de sadas em funo dos dados recebidos pelo bloco de entradas. este bloco que define as caractersticas de funcionamento do automatismo. Pode ser constitudo por rels, temporizadores, contadores, mdulos electrnicos, lgica pneumtica, electrnica programada, etc..

__________________________________________________________________________________________________

_____________________________Autmatos Programveis____________________________

Podemos ainda definir como parte de controlo, o conjunto dos blocos de entradas e de lgica. O bloco de sadas ser a parte operativa.

Exemplo: Automatismo de porta Numa porta automtica, o motor que acciona a abertura e fecho da mesma, constitui a parte operativa. O sensor de proximidade, os fins-de-curso, a chave de permisso e toda a lgica de explorao, constituem a parte de controlo.

__________________________________________________________________________________________________

_____________________________Autmatos Programveis____________________________

1.3.

IMPLEMENTAO DE UM AUTOMATISMO
A realizao de um automatismo deve iniciar-se pela especificao do mesmo a trs nveis:

1.3.1.

Especificaes funcionais

Visa-se com estas especificaes, detalhar todo o funcionamento do sistema a automatizar. Nesta descrio deve pormenorizar-se toda a lgica que vai permitir a correcta explorao do sistema. Voltando ao exemplo da porta automtica, a especificao funcional poderia ser: * Pretende-se que o automatismo de explorao deste sistema, permita comandar a abertura e fecho de uma porta de acesso. O comando poder ser automtico ou manual. Para o efeito, existir no frontal do quadro de comando, um comutador de duas posies para a seleco do modo. O modo manual usa duas botoneiras que permitiro respectivamente abrir e fechar a porta. Uma vez premida a botoneira de abertura, a porta abrir-se- at que seja atingido um fim de curso que detecta o limite de abertura da mesma. Premindo a botoneira de fecho, a porta fechar-se- at que seja premido um outro fim de curso que detecta o fecho. O modo automtico faz uso de dois sensores que detectam a proximidade de uma pessoa. Quado um deles activado inicia-se a abertura da porta. Esta permanece aberta at que tenha passado um tempo que pode ir de 5 at 20 segundos, aps o desaparecimento do sinal proveniente dos sensores de proximidade. Findo este tempo, a porta inicia o fecho. Se durante o fecho, o sensor de proximidade detectar a presena de uma pessoa, dever interromper a operao e abrir de novo a porta. 1.3.2. Especificaes tecnolgicas

Com estas especificaes, descreve-se o ambiente em que o sistema vai operar, assim como as caractersticas que os equipamentos a integrar devero possuir, de forma a permitirem o perfeito desempenho do automatismo. Concretizando com o exemplo anterior, poderia especificar-se: * O sensor que detecta a proximidade de uma pessoa, dever ser um modelo para ser montado sobre a porta (um no interior e outro no exterior) e dever ser de infravermelhos passivo, com sada por transstor. A sua sensibilidade dever ser tal, que a sada deste s active quando estiver uma pessoa a menos de 2 metros da porta. O motor que aciona a abertura e fecho da porta, ser elctrico, trifsico, ..,etc. 1.3.3. Especificaes operativas

Dizem respeito fiabilidade, segurana, disponibilidade, flexibilidade, manuteno, dilogo homem-mquina, etc.

__________________________________________________________________________________________________

_____________________________Autmatos Programveis____________________________

Voltando ao exemplo anterior poderia especificar-se neste ponto: * O comutador automtico-manual dever ser um modelo com chave. Dever existir um contador de operaes de abertura e fecho da porta, de forma a identificar o momento das operaes de manuteno que devero efectuar-se de 10.000 em 10.000 manobras...etc. A realizao de um automatismo, implica a execuo de uma srie de tarefas interdependentes. A figura abaixo mostra a sequncia de operaes necessrias implementao de um automatismo.

1.4.

OPES TECNOLGICAS

So vrias as opes tecnolgicas disponveis. No se pode partida dizer qual a melhor e pior, pois esta opo depende de vrias condicionantes: - Nmero de sistemas a automatizar - Ambiente de trabalho - Tipo de sinais de entrada/sada - Funo predominante - Actuadores predominantes Outra das condicionantes que deve estar sempre presente a relao preo/performance. Uma determinada soluo pode ser perfeita sob o ponto de vista puramente tcnico, mas invivel sob o ponto de vista financeiro. Ao nvel das caractersticas de implementao, podemos definir dois grandes grupos : - Lgica cablada - Lgica programada

__________________________________________________________________________________________________

_____________________________Autmatos Programveis____________________________

Na lgica cablada, o desempenho do automatismo definido pela interligao fsica de elementos discretos. A alterao do processo, normalmente implica refazer a cablagem. Como exemplo, podemos referir um circuito elctrico, composto por rels, rels biestveis, temporizadores, etc.. Na lgica programada, o desempenho do automatismo definido por uma srie de instrues ou cdigos que so programados no suporte de memria do sistema. Ao conjunto de instrues que definem o automatismo, chama-se programa. A alterao da lgica do processo a controlar apenas implica a alterao do programa. Como exemplo, temos o controlo numrico, autmato programvel, micro-computador, etc.. Podemos definir basicamente trs famlias tecnolgicas; Electromagntica , Electrnica e Pneumtica / Oleo-hidraulica. A tecnologia electrnica muito vasta e pode ser implementada atravs dos seguintes elementos: - Circuitos electrnicos dedicados - Sistemas electrnicos standard (ex.:controlo numrico) - Autmatos programveis - Micro e mini-computadores

1.5.

MTODOS GRFICOS PARA A DESCRIO DA LGICA DE UM AUTOMATISMO

Ao nvel das especificaes funcionais, possvel traduzir numa linguagem grfica toda a estrutura lgica do automatismo. Seguidamente apresentam-se algumas das mais usadas: 1.5.1. DIAGRAMA DE CONTACTOS

Este mtodo de representao, implementa a sequncia lgica usando contactos colocados em srie e paralelo, tal como num esquema elctrico. O smbolo de contacto ligeiramente alterado, como se poder ver nas figuras abaixo.

__________________________________________________________________________________________________

_____________________________Autmatos Programveis____________________________

1.5.2.

DIAGRAMA LGICO (LOGIGRAMA) Esta representao do automatismo, implementa a lgica, usando circuitos lgicos "E" e

"OU". Para representar o mesmo circuito do exemplo anterior, teramos:

1.5.3.

GRAFCET

O GRAFCET foi criado com o objectivo de permitir a representao de processos complicados, de uma forma simples. comparvel ao uso dos fluxogramas, simplesmente estes so usados na programao de computadores, enquanto o GRAFCET especialmente designado para mquinas e processos sequenciais. A principal diferena entre o fluxograma e o GRAFCET que na estruturao em GRAFCET, todas as sequncias possveis tm de ser perfeitamente definidas. O facto de se ter de prever todas as situaes uma grande vantagem, j que sequncias no previstas nunca podero ocorrer.

__________________________________________________________________________________________________

_____________________________Autmatos Programveis____________________________ O GRAFCET uma representao grfica das especificaes funcionais de um sistema de controlo e pode ser aplicado a qualquer sistema lgico de controlo de processos industriais. O nome GRAFCET tem origem numa abreviatura Francesa : GRAphe de Commande Etape-Transition (Grfico para controlo de estado-transio). originrio de Frana tendo sido sugerido em 1977 pela AFCET (Association Francaise pour la Cibernetique Economique et Technologie) o seu uso como ferramenta de descrio das especificaes de um controlo lgico. Como j foi dito, um sistema pode geralmente ser dividido num bloco operativo e num bloco de controlo. O bloco operativo executa determinadas operaes que so ditadas pelo bloco de controlo. A unidade de controlo, por sua vez, recebe feedback do bloco operativo por forma a manter-se actualizada da evoluo do processo. Quando se pretende usar o GRAFCET, devemos ter em considerao o bloco de controlo. Para o representar usamos uma sucesso alternada de ESTADOS e TRANSIES. Um processo decomposto em estados que sero activados sucessivamente.

Um ESTADO representa as aces executadas pelo bloco operativo quando esse estado est activo. A TRANSIO define as condies que vo permitir uma vez satisfeitas, a desactivao do estado que antecedente e a activao do estado seguinte. Pode-se ter num sistema basicamente trs tipos de processamentos: PROCESSAMENTO LINEAR Os estados do processo esto dispostos em linha. Independentemente das condies do processo, este consta de uma sucesso de passos que se executam sempre, e na mesma sequncia.

__________________________________________________________________________________________________

_____________________________Autmatos Programveis____________________________

PROCESSAMENTO ALTERNATIVO A determinada altura do processo, a sequncia pode tomar caminhos alternativos de acordo com as condies estabelecidas. Estas condies, no entanto, tm de assegurar que s uma das alternativas se pode verificar.

PROCESSAMENTO PARALELO Em determinado momento do processo, a sequncia pode tomar dois ou mais caminhos que se vo executar em paralelo; ao ser executada a transio, em vez de se activar um s estado, activam-se dois ou mais em simultneo. O nmero de estados nos vrios ramos pode ser diferente, ou sendo igual, no implica que em todos os ramos a transio de estado se verifique em simultneo.

Um processo sequencial geralmente consta de uma mistura de estes trs tipos de processamento, podendo dar origem a intrincados diagramas.
__________________________________________________________________________________________________

_____________________________Autmatos Programveis____________________________

2. AUTMATOS PROGRAMVEIS 2.1. RESUMO HISTRICO

A ideia de criar sistemas flexveis capazes de controlar processos, sempre norteou o esprito humano. Foi nos sistemas mecnicos que primeiro se desenvolveu este princpio. medida em que se foi conhecendo e desenvolvendo toda a tecnologia dos circuitos elctricos, logo se verificou que facilmente se poderia alterar as caractersticas de um circuito de controlo, recorrendo basicamente a rels e comutadores. Desta forma, diversas combinaes nos comutadores, davam origem a diferentes modos de funcionamento. Era o primeiro indcio de "programao". De acordo com as necessidades de controlo, foram-se desenvolvendo componentes tais como temporizadores, contadores, rels biestveis e um sem nmero de outros componentes que iam integrando sistemas cada vez mais complexos. Ainda hoje podemos admirar em alguns equipamentos "programadores de pinos". Estes programadores muito rudimentares, constavam de uma matriz de condutores que eram interceptados por uma cavilha ou pino que de acordo com a sua posio permitia definir a activao de determinado circuito. Em paralelo ao desenvolvimento de circuitos elctricos, apareceram tambm circuitos pneumticos. Tal como nos circuitos elctricos, nestes tambm foram desenvolvidos uma srie de elementos que tinham desempenhos idnticos aos componentes elctricos. A inveno da Unidade Central de Processamento (1938), d por sua vez origem ao microprocessador. com base neste componente que em 1969-70 aparecem nos EUA os primeiros autmatos programveis. Foi a indstria automvel quem primeiro os utilizou. Na Europa, s dois anos depois que comeam a ser empregues na indstria. Hoje j difcil falar em automatizao industrial, sem que se tenha de referir o autmato programvel. Sobre a tecnologia cablada, o autmato programvel tem inmeras vantagens: - muito mais fivel, pois o nmero de componentes mecnicos e de ligaes mnimo. - O desenvolvimento do programa pode ser feito em paralelo com a montagem dos equipamentos. O sistema por lgica cablada, s pode ser montado depois do projecto estar completamente concludo. - As alteraes do automatismo s implicam alteraes no programa. Na lgica cablada, qualquer alterao implica a alterao da cablagem e dos componentes. - O espao ocupado pelo autmato constante e independente da complexidade da lgica do automatismo.
__________________________________________________________________________________________________

_____________________________Autmatos Programveis____________________________ - No requer stocks de equipamento de reserva to elevados como nos sistemas por lgica cablada. Sobre os sistemas controlados por microprocessador ou microcomputador, o autmato no requer a presena de um perito em informtica ou em assembler para programar ou alterar um programa. A linguagem utilizada standard e pode ser facilmente apreendida por pessoas com uma formao mnima. Pode classificar-se a utilizao dos autmatos programveis em trs classes: - Controlo de mquinas ou automatismos simples e individualizados. - Controlo e sincronizao de diversas mquinas ou automatismos de uma linha de fabrico ou de um sistema complexo. - Superviso e controlo de uma unidade fabrico ou de um conjunto de sub-sistemas que podem eles mesmos serem tambm controlados por autmatos. So hoje inmeros os fabricantes de autmatos programveis. No mercado portugus so cerca de 30 as marcas presentes, encontrando-se por isso, uma grande diversidade de modelos. Quando se refere um autmato programvel, normal caracteriz-lo pelo nmero de Entradas+Sadas lgicas que este pode controlar. No incio, quando a linguagem de programao dos autmatos s inclua instrues booleanas, temporizadores e contadores, em funo do nmero de entradas+sadas, era usual catalog-los numa das trs gamas: Gama Baixa - E+S < 64 Gama Mdia - 64 < E+S < 256 Gama Alta - E+S > 256 Nesta diviso nunca devemos encarar os nmeros apontados, como fronteiras absolutas, mas sim como valores de referncia; cada fabricante tem fronteiras e conceitos prprios para a definio dos seus autmatos. Hoje no s o nmero de entradas+sadas que define a gama do autmato, mas tambm o tipo e nmero de instrues de programao disponveis, a velocidade de processamento, as facilidades de comunicao e outras caractersticas, que definem as potencialidades do PLC. Quanto sua apresentao, o autmato, pode ser: - Compacto - Integra no mesmo bloco todos os elementos necessrios sua operao ( entradas, sadas, CPU, memria e fonte de alimentao ). - Modular - constitudo por uma srie de mdulos que ligam a um bastidor (mdulo do CPU, cartas de entrada, cartas de sada, memria, fonte de alimentao, etc.). Tem a vantagem de ser mais verstil que os modelos compactos. Como desvantagem geralmente aponta-se o seu custo, que mais elevado, e o volume ocupado, que tambm maior quando comparado com idntico modelo compacto.

__________________________________________________________________________________________________

10

_____________________________Autmatos Programveis____________________________

2.2.

ESTRUTURA DE UM AUTMATO PROGRAMVEL


Do ponto de vista do utilizador, o autmato uma "caixa preta" que processa informao.

Os Controladores Lgicos Programveis (PLC's) podem apresentar aspectos fsicos diferentes, diferentes performances e custos muito dspares; no entanto, os seus elementos constituintes so fundamentalmente os mesmos. Sendo um equipamento capaz de controlar processos, naturalmente dispe de dispositivos de aquisio e sada de informaes. Sendo tambm um equipamento programvel, integra um microprocessador e uma memria para guardar o programa. Para alimentar os circuitos atrs descritos, existir tambm uma fonte de alimentao. Finalmente, para que possa ser introduzido o programa e para que possa existir um dilogo bsico para o exterior, dispe tambm a possibilidade de ligar dispositivos de programao. 2.2.1. ENTRADAS / SADAS

Sendo o autmato programvel destinado ao controlo de processos, tem obrigatoriamente de adquirir dados referentes ao sistema a controlar e fornecer sinais de comando. Existem diversos tipos de entradas e sadas; nos pargrafos seguintes so apresentadas algumas das verses possveis. Normalmente o estado lgico das entradas e sadas sinalizado por led's que quando ligados indicam a activao de determinada entrada ou sada. ENTRADAS Entradas usando rels Nesta verso, existe um rel cuja bobine excitada por uma tenso elctrica aplicada na entrada do PLC. Os contactos do rel fornecem ao CPU um estado lgico correspondente ao estado da entrada. Como podemos ver no esquema seguinte, estando a entrada do PLC alimentada, implica que o contacto do rel se feche e conduza a informao aos circuitos de aquisio de sinais do CPU. Caso desaparea a tenso na entrada do PLC,o contacto do rel abre, e o valor lgico do circuito passa a zero. Este sistema garante um isolamento galvnico entre a entrada e CPU, j que o contacto do rel isolado da bobine que o actua. Este tipo de entrada tem a vantagem de poder aceitar sem problemas, tenses alternadas ou contnuas, introduzindo no entanto, um atraso considervel aos sinais lidos. O consumo de corrente na entrada maior que nos circuitos usando semicondutores; este aspecto, pode ser de grande vantagem, quando se adquire um sinal que pode ser afectado pelas interferncias induzidas no cabo que liga o sensor ao autmato.

__________________________________________________________________________________________________

11

_____________________________Autmatos Programveis____________________________ Entradas por transstor Este tipo de entrada usa um transstor e um conjunto de resistncias para adquirir e converter os sinais na entrada, de forma a poderem ser lidos pelo CPU. Pode analisar-se na figura seguinte o funcionamento; Sempre que aparece um sinal positivo na "base" do transstor, o transstor conduz, fazendo com que Vo tenha um valor muito prximo de zero. Quando no h presena de tenso na entrada, Vo tem um valor prximo de Vcc.

Comparada com a entrada por rel, este tipo de entrada pelo facto de usar um semicondutor, reduz consideravelmente o atraso aos sinais de entrada e mais fivel, uma vez que elimina sistemas mecnicos (rel) ; A corrente absorvida pela entrada muito menor (na ordem da dezena de mA). Tem a desvantagem de no garantir isolamento elctrico entre a entrada e o CPU. Entrada por acopulador ptico Para superar a desvantagem de isolamento da entrada anteriormente descrita, esta pode ser isolada do CPU atravs do uso de um acopulamento ptico. O acopulador ptico constitudo por um LED (dodo foto emissor) e um foto-transstor encapsulados num material isolante, conforme indicado na imagem. A transmisso da informao do estado da entrada para o CPU, feita atravs do fluxo de fotes emitido pelo LED e recebido pelo foto-transstor. Ao ser atingido pelos fotes, o foto-transstor entra em conduo. Como o meio de transmisso deste fluxo dielctrico, consegue-se um ptimo isolamento galvnico. A corrente de entrada deste circuito tambm muito baixa. Nas entradas por semicondutor atrs descritas, h que respeitar a polaridade do circuito de entrada. Esta pode ser PNP ou NPN. Ao escolher-se um sensor , este dever estar em sintonia com a entrada onde vai ser ligado ; numa entrada PNP o comum tem de ser positivo. Para ultrapassar esta condicionante, existem circuitos de entrada onde o isolador ptico dispe de dois dodos led montados em
__________________________________________________________________________________________________

12

_____________________________Autmatos Programveis____________________________ paralelo mas opostos na polaridade. Assim, qualquer que seja o sentido da corrente na entrada, assegurada a polarizao do fototransstor e consequentemente a deteco de um sinal activo na entrada. SADAS As sadas do autmato realizam uma funo inversa das entradas, ou seja, permitir a actuao de elementos que integram o sistema a controlar. Podem ser de vrios tipos: Sada por rel O sinal proveniente do CPU, ataca a bobine de um rel. Na sada do autmato, esto disponveis os terminais do contacto do referido rel.

Regra geral, um autmato tem mais do que uma sada. Para que o nmero de terminais no seja exageradamente elevado, frequente agruparem-se sadas, havendo para o efeito um terminal comum. Deve haver algum cuidado ao efectuar as ligaes, pois deve assegurar-se que num mesmo comum no se juntem sinais incompatveis.

Este tipo de sada o mais frequentemente usado, por ser o mais verstil. Pode comutar correntes contnuas ou alternadas, de tenses muito diversas. A sua frequncia de resposta e o "bounce" so as suas principais desvantagens. Para reduzir o desgaste do contacto do rel quando este comuta cargas indutivas, deve usarse um dos dispositivos da figura abaixo, conforme se trate de corrente contnua ou alternada.

__________________________________________________________________________________________________

13

_____________________________Autmatos Programveis____________________________

Sada por transstor Este tipo de sada usa um transstor que recebe na "base" o sinal lgico proveniente do CPU; os terminais do "colector" e "emissor" so acessveis do exterior, para ligao aos circuitos a controlar. Para que possa existir isolamento galvnico entre o CPU e os circuitos exteriores ao autmato, frequente usar (em vez de um vulgar transstor) um fototransstor.

Este tipo de sada usada quando os sinais a controlar so de corrente contnua, baixa tenso, baixas correntes e de frequncia elevada. Sada por triac Nesta sada usa-se um triac como elemento activo na comutao das cargas. O sinal proveniente do CPU liga "gate" do triac ou ento activa o led de um foto-triac. Esta ltima opo a mais usada por garantir um perfeito isolamento entre o CPU e os circuitos exteriores ao autmato.

__________________________________________________________________________________________________

14

_____________________________Autmatos Programveis____________________________ A sada por triac usa-se na comutao de cargas trabalhando em corrente alternada. Tem a vantagem de poder comutar a frequncias elevadas, no sofrendo desgaste significativo, quando comparado com um rel. Alguns fabricantes apresentam cartas de sadas por triac com a caracterstica de comutarem cargas s quando a corrente alternada passa por zero; este pormenor faz reduzir a ocorrencia de ruidos parasitas na rede elctrica, que normalmente ocorrem quando a comutao realizada com rels. 2.2.2. CPU

este o bloco que tem a funo de ler os valores lgicos presentes nas entradas, executar as instrues que constituem o programa e transferir para as sadas as ordens provenientes dessas instrues. Tem ainda a seu cargo gerir todos os perifricos e diagnosticar defeitos que possam ocorrer internamente. Na base de tudo isto, est um ou mais microcessadores que de uma forma sequencial vo executando instrues a velocidades extremamente elevadas. A sequncia descrita no primeiro pargrafo, continuamente realizada. O tempo gasto para a realizar designado como tempo de ciclo (ou tempo de scan) e da ordem dos milisegundos. O tempo de ciclo depende de muitos factores dos quais se destacam: - Velocidade de trabalho do microprocessador(s) - Nmero de instrues do programa - Tipo de instrues usadas no programa - Nmero de perifricos O CPU tem ainda circuitos de endereamento de entradas e sadas, uma memria com o sistema operativo, interfaces para unidades externas, um circuito para a deteco de falhas de alimentao, e outros que interligam os anteriores. Para sinalizar o estado de funcionamento do CPU, normalmente existem no frontal do mesmo, sinalizadores luminosos (led's). comum encontrar as seguintes sinalizaes: - Presena de alimentao (POWER) - Erro no CPU (ERROR ou FAILURE) - Execuo do programa (RUN) - Falha da bateria de backup (BATTERY) Como o CPU um elemento vital de um autmato, exitem modelos que para garantirem uma grande fiabilidade de operao, dispem de duplo CPU; quando um deles falha, o outro entra imediatamente em servio, sem interromper o controlo do sistema.

__________________________________________________________________________________________________

15

_____________________________Autmatos Programveis____________________________

2.2.3.

Memria

na memria que se encontra o programa a ser executado pelo autmato. A memria tem como funo salvaguardar todas as instrues do programa, mesmo quando este no est a ser alimentado. A memria caracteriza-se pela sua capacidade que pode ser expressa de trs formas: - Nmero de bits ou Kbts (1 Kbts = 1024 bits) - Nmero de Bytes ou KB (1 Byte = 8 bits) - Nmero de Words ou KW (1 Word = 16 bits) Quanto sua tecnologia podem ser : - RAM (Random Access Memory) Estas memrias tm a vantagem de poderem ser escritas e alteradas facilmente. So as mais usadas quando se est na fase de desenvolvimento do programa ou quando o sistema a controlar sofre frequentes alteraes. Estas memrias perdem a informao quando a alimentao elctrica das mesmas falha; por isso, obrigam ao uso de uma pilha de recurso que assegura a sua alimentao no caso de uma falha de energia. - EPROM (Erasable Programable Read Only Memory) Esta memria no perde a informao nela gravada no caso de falhar a tenso. Tm como desvantagem o facto de ser muito morosa qualquer alterao, mesmo sendo de um s bit. Antes de ser programada por um equipamento prprio, tem de ser apagada por exposio aos raios ultravioletas. - EEPROM (Electricaly Erasable Programable Read Only Memory) Esta memria no perde informao por falta de tenso de alimentao e pode ser apagada e escrita pelo autmato. Tem vantagens sobre os modelos anteriores, mas os inconvenientes de ter um nmero limitado de ciclos de escrita e do seu custo ser mais elevado que o de uma RAM. -FLASHRAM Esta memria de tecnologia muito recente, tem caractersticas semelhantes s EEPROM, permitindo tambm escrita e leitura no prprio ciscuito onde usada. Limitada tambm pelo nmero de ciclos de escrita, apresenta vantagens sobre a EEPROM (uma delas, a velocidade de escrita). 2.2.4. Fonte de Alimentao

A fonte de alimentao tem por funo fornecer as tenses adequadas ao funcionamento do CPU. Para esse efeito, geralmente ligada aos 220v da rede, mas tambm existem modelos que aceitam tenses contnuas standard (ex.:24VDC). Para alm de fornecer tenses, a fonte de alimentao deve ter um bom comportamento no que diz respeito filtragem de ruido e picos, muito frequentes nas instalaes industriais.
__________________________________________________________________________________________________

16

_____________________________Autmatos Programveis____________________________

Encontramos com grande frequncia a equipar os autmatos, fontes de alimentao comutadas. Estas fontes renem para alm das caractersticas atrs exigidas, as seguintes: - Elevado rendimento - Ocupam um pequeno volume - Aceitam grandes variaes na entrada No esquema abaixo apresenta-se o esquema simplificado de uma fonte comutada (tambm conhecida como fonte switching).

Nos modelos alimentados a 220vac, por vezes, a fonte de alimentao tem uma sada auxiliar a 24vdc para alimentar os circuitos de entrada. 2.2.5. CONSOLA DE PROGRAMAO

O autmato programvel no necessita desta unidade para o seu funcionamento. No entanto, a consola de programao constitui o equipamento mais acessvel para introduzir ou alterar o programa que vai definir o funcionamento do automatismo e ainda monitorizar e alterar o estado das variveis. Normalmente a consola s necessria para a programao e colocao em servio do autmato. Esta unidade basicamente constituda por um teclado e um visor (display). Conforme a sua natureza, poder permitir a programao em linguagem mnemnica (conjunto de abreviaturas e smbolos que constituem as instrues do programa), linguagem de contactos, logigrama, etc.. H consolas mais sofisticadas que permitem guardar e ler programas gravados em suportes magnticos, programar memrias EPROM, e dispor ainda de uma srie de facilidades para o desenvolvimento de programas, tais como: monitorizao em tempo real das condies lgicas de determinado bloco de instrues, atribuir nomes s variveis, produzir listagens em impressora dos programas, etc. Os autmatos podem ser tambm programados por computadores pessoais. Devido ao seu custo cada vez mais baixo, versatilidade e portabilidade, comeam a ser cada vez mais usados na programao dos PLCs.

__________________________________________________________________________________________________

17

_____________________________Autmatos Programveis____________________________

3. PROGRAMAO DE AUTMATOS 3.1. PRINCPIOS GERAIS

No captulo anterior vimos o HARDWARE bsico de um autmato; neste captulo vamos analisar o SOFTWARE, ou seja, o conjunto de instrues e procedimentos que nos vo permitir implementar a lgica de controlo do automatismo. Ao programarmos um autmato, estamos a definir a forma como as sadas deste so actuadas, em funo de dados presentes nas entradas. Vamos ento ver como podemos ter acesso s informaes presentes nas entradas e como poderemos enderear uma determinada sada. Internamente e implementados pelo CPU existem bits, que no so mais do que posies de memria nas quais possvel reter uma informao lgica; ligado/desligado, verdadeiro/falso, ON/OFF ou 1/0. Estes elementos (aos quais tambm chamam rels por analogia com os circuitos electromagnticos) esto normalmente associados em grupos de 16. Um conjunto de 16 bits chama-se WORD (por vezes tambm se designa por CANAL). Dentro de cada word os bits esto numerados de 00 a 15 ou de 0 a F (0,1,..,9,A,B,..,F) conforme a notao usada pelo fabricante. As words esto numeradas a partir de 00. Os bits so endereados pelo nmero da word em que se encontram e pela posio que ocupam nessa word (h tambm autmatos onde o endereamento contnuo, ou seja, comea em zero e segue a numerao decimal, independentemente de serem bits de entrada, sada ou internos). Exemplo: - Se pretender enderear o 7 bit da 2 word, ento o seu endereo ser 106. - Se pretender enderear o 1 bit da 1 word, ento o seu endero ser 000. - Se pretender enderear o 13 bit da 4 word, ento o seu endereo ser 313 ou 3.C conforme a notao. Num autmato h vrias reas de rels(bits) das quais se destacam: - Rels de I/O - Rels com reteno - Rels de temporizadores e contadores - Rels especiais Os rels de I/O (input/output) so bits que podem estar associados a entradas ou sadas do autmato. Normalmente so em nmero superior ao nmero mximo de entradas+sadas possveis. Os bits que esto associados a entradas, tm o seu estado lgico definido pelo estado da entrada. Os bits associados a sadas reflectem nestas o seu estado. Esta rea de rels retm a informao enquanto o autmato se encontra alimentado. A partir do momento em que h uma falha na alimentao do autmato, todos os rels desta rea tomam o

__________________________________________________________________________________________________

18

_____________________________Autmatos Programveis____________________________ estado OFF, mantendo esse estado quando regressa a alimentao (os rels afectados pelas entradas tomam o valor presente nas mesmas). Normalmente num mesmo canal (word) dispomos ou s de entradas ou s de sadas. A assignao das entradas/sadas aos canais respectivos, depende de fabricante para fabricante e de modelo para modelo de autmato. Os rels de reteno, contrariamente aos anteriores, retm o seu estado mesmo quando h falha de alimentao do autmato. Estes rels no esto associados a entradas/sadas e so usados para guardar dados. Os rels de temporizadores e contadores so rels cujo estado est associado a um determinado temporizador ou contador. Nos rels especiais no possvel alterar directamente o seu estado. Este pode depender de funes que so executadas por programa ou pode ser determinado pelo CPU. So usados para monitorizar operaes do PLC, aceder a impulsos de clock e sinalizar erros. O programa que vai definir o automatismo, constitudo por numa srie de instrues e funes onde so operandos os rels(bits) atrs mencionados. Estas instrues e funes sero introduzidas na memria do autmato atravs de um perifrico destinado a esse fim e que poder ser uma consola de programao ou software especfico para PC. Os autmatos tm basicamente dois modos de operao: RUN e PROGRAM. - O modo RUN o modo normal de funcionamento do autmato. Neste modo o CPU executa o programa contido na memria. - Para se introduzir o programa, preciso que o autmato se encontre no modo PROGRAM. Neste modo, o autmato no executa o programa. Estes modos so normalmente seleccionados atravs de um comutador que se pode encontrar no frontal do autmato ou na consola de programao. Antes de introduzir um programa atravs da consola, deve converter-se o esquema de contactos numa lista de instrues entendidas pelo autmato. H no entanto dispositivos que permitem a programao directa em esquema de contactos ( por ex. Software para PC). O programa introduzido nos endereos de memria do programa. Cada endereo contm uma instruo, os seus parmetros de definio e todos os parmetros requeridos por essa instruo. Os endereos de memria do programa (linhas do programa) comeam em 0 e esto limitados pela capacidade da memria de programa. Cada fabricante de autmatos tem formas diferentes de levar a cabo a programao de um PLC e por isso as suas especificidades; As reas de rels tm designaes diversas, as instrues e funes tm mnemnicas e cdigos diferentes, e a sequncia de teclas na consola para levar a cabo a programao, difere de marca para marca. No entanto, conhecendo um modelo, facilmente nos integramos noutro pela simples consulta do respectivo manual, j que a lgica de programao dos sistemas existentes no mercado no difere no essencial. Para podermos abordar com objectividade a programao de um autmato vamos exemplificar com o autmato SYSMAC CPM1 da OMRON.
__________________________________________________________________________________________________

19

_____________________________Autmatos Programveis____________________________

FICHA TCNICA Modelo Autmato compacto Entradas Sadas Alimentao Consumo Expansibilidade Memria de programa : CPM1-20CDR-A : 12 digitais( 24 Vdc) : 8 por rel ( 2A/24Vdc-220Vac) : 220 Vac : 60 W max. : at 90 entradas/sadas. : FLASHRAM - 4kB

Conjunto de instrues : 135 Rels internos: Sem reteno : 68 x 16 Com reteno : 20 x 16 Words de dados : 1024 com reteno Temporizadores e Contadores: 127 Velocidade de processamento: 0,72 a 16,2 mS / instruo .Interface srie RS-232C em opo (CPM1-CIF01) .Uma entrada de contagem rpida (2KHz bidireccional). .Duas entradas de interrupt .Dois registos analgicos Dimenses : 180 x 90 x 85 mm Peso : 800 gr. Este autmato dispe das seguintes reas de memria: rea Rels Internos Rels Especiais Rels Auxiliares Rels com Reteno Temporizadores e Contadores Rels de Comunicao Rels Temporrios Memria de Dados Memria de Programa Smbolo IR SR AR HR TC LR TR DM UM Gama Words:000 a 019 e 200 a 231 Bits :00.00 a 019.15 e 200.00 a 231.15 Words:232 a 255 Bits :232.00 a 255.15 Words:AR00 a AR15 Bits :AR00.00 a AR15.15 Words:HR00 a HR19 Bits :HR00.00 a HR19.15 TC000 a TC127 Words:LR00 a LR15 Bits :LR00.00 a LR15.15 TR00 a TR07 (S Bits) Leitura/Escr.:DM0000 a DM1023 S leitura :DM6144 a DM6655 4 Kbytes

__________________________________________________________________________________________________

20

_____________________________Autmatos Programveis____________________________ Rels Internos - So usados para controlar os pontos de entradas/sadas, outros bits, temporizadores, contadores e para guardar temporariamente dados. As entradas neste autmato ocupam 12 bits do canal 0. As sadas ocupam 8 bits do canal 10. Rels Especiais Disponibilizam sinais de clock, flags, bits de control e status do sistema. Rels Auxiliares - Contm bits e flags para funes especiais. Retm o seu estado durante a ausncia de alimentao. Memria de Dados - So usados para memorizao e manipulao de dados. Retm os dados durante a ausncia de alimentao. Rels com Reteno - So usados para guardar e memorizar dados quando o autmato desligado. Rels de Temporizadores e Contadores - So como operandos das instrues LD(NOT), AND(NOT) e OR(NOT) informam o estado dos contadores e temporizadores com o mesmo endereo. Rels de Comunicao A sua principal funo est associada ao estabelecimento de comunicaes para troca de dados automtica com outros autmatos. Na ausncia desta funo, podem ser usados como rels de trabalho. Rels Temporrios - So usados para guardar de forma temporria estados de condies de execuo. Estes bits s podem ser usados nas instrues LD e OUT. Memria de Programa - usada para guardar o conjunto de instrues que constitui o programa do autmato. O nmero mximo de instrues que pode ser introduzido nesta memria, depende do tipo de instrues usadas.

RELS ESPECIAIS A rea de rels especiais uma continuao da rea de rels internos e ocupa os endereos 232.00 at ao 255.15. Seguidamente enumeram-se alguns dos rels especiais mais relevantes. 253.13 - Rel sempre a ON. 253.14 - Rel sempre a OFF 253.15 - Rel de 1 scan. Este rel encontra-se a ON durante a execuo do primeiro scan, passando em seguida a OFF. 254.00 - Clock com perodo de 1 minuto. Este rel est continuamente a oscilar (ON-OFF) sendo o perodo da oscilao de 1 minuto e o duty-cycle de 50%( o tempo a ON igual ao tempo em OFF).

__________________________________________________________________________________________________

21

_____________________________Autmatos Programveis____________________________ 254.01 - Clock com perodo de 0,02 segundos. 255.00 - Clock com perodo de 0,1 segundos. 255.01 - Clock com perodo de 0,2 segundos. 255.02 - Clock com perodo de 1 segundo. 255.03 - Flag de Erro (ER) na execuo de uma instruo. 255.04 - Flag de Carry (CY). 255.05 - Flag de "maior que". Este rel altera seu estado sempre que executada uma funo de comparao. 255.06 - Flag de "igual a". Este rel altera seu estado sempre que executada uma funo de comparao. 255.07 - Flag de "menor que". Este rel altera seu estado sempre que executada uma funo de comparao.

3.1.2.

CONSOLA DE PROGRAMAO

3.1.3.

TECLAS NUMRICAS

So as teclas brancas numeradas de 0 a 9. Estas teclas so usadas para introduzir valores numricos ou alfanumricos (recorrendo tecla SHIFT). Tambm so usadas associadas tecla FUN para programar instrues especiais.

TECLA CLR Esta tecla usada para limpar o display. Usa-se tambm quando necessrio limpar do visor a mensagem "PASSWORD". Para isso, deve digitar-se a sequncia CLR + MONTR.

__________________________________________________________________________________________________

22

_____________________________Autmatos Programveis____________________________

TECLAS DE OPERAO Estas teclas amarelas so usadas na edio do programa. Deste grupo destacam-se trs pela sua frequncia de uso. As teclas com as setas permitem incrementar ou decrementar o endereo da memria do programa de forma a visualizar as vrias instrues em memria. A tecla WRITE permite validar as instrues de programa escritas na consola. frente ser explicada a funo das restantes teclas. TECLAS DE INSTRUES Exceptuando a tecla SHIFT, as restantes teclas cinzentas servem para introduzir as instrues do programa. A tecla SHIFT permite aceder s funes superiores das teclas com dupla funo. Cada uma das restantes teclas cinzentas tem assignada uma funo indicada com uma abreviatura, que em seguida se explica. FUN SFT - Permite seleccionar uma funo especial. - Instruo SHIFT REGISTER (tambm pode ser programada com FUN+10).

NOT - Permite negar o estado de um rel (bit). AND - Instruo AND ("E" lgico). OR CNT LD - Instruo OR ("OU" lgico). - Instruo CONTADOR. - Instruo LD usada para iniciar uma condio ou bloco lgico.

OUT - Instruo de OUTPUT. Permite transferir um valor lgico para um rel. TIM TR LR - instruo TEMPORIZADOR. - Especifica um rel temporrio. - Especifica um rel ou canal de LINK.
__________________________________________________________________________________________________

23

_____________________________Autmatos Programveis____________________________

HR DM CH

- Especifica um rel ou canal com reteno de memria. - Especifica um canal DATA MEMORY. - Especifica um canal (IR, SR, HR, AR ou LR).

CONT - Especifica um contacto de um rel (IR, SR, HR, AR ou LR). # * - Especifica uma constante numrica - Especifica um endereamento indirecto, quando usado com DMs.

SELECTOR DE MODO A consola de programao est equipada com um comutador para controlar o modo do autmato. O modo seleccionado determina a operao do autmato, assim como as funes possveis com a consola de programao. O modo RUN o modo usado para a normal execuo do programa. Neste modo possvel a monitorizao de dados, mas a sua alterao no permitida. No modo MONITOR o programa executado tal como acontece no modo RUN, mas permite a monitorizao das instrues do programa "on-line", assim como monitorizar e alterar dados. Este modo normalmente usado na fase de teste e afinao de um programa. No modo PROGRAM o programa no executado. Este modo destinado alterao ou limpeza de reas de memria, assim como programao, alterao ou limpeza da memria de programa.

3.1.4.

OPERAO DA CONSOLA DE PROGRAMAO

INTRODUO DA PASSWORD Para aceder s funes da consola, necessrio introduzir uma password. Esta password igual em todos os modelos e no pode ser alterada. A sua funo no permitir que "curiosos" possam alterar o contedo do programa ou o funcionamento do autmato (pressupe-se que quem conhece a password tem tambm outros conhecimentos sobre o funcionamento deste equipamento).

__________________________________________________________________________________________________

24

_____________________________Autmatos Programveis____________________________

Sempre que aparece no ecr a mensagem "PASSWORD" deve digitar-se a seguinte sequncia de teclas:

LIMPEZA DA MEMRIA Para se inicializar a memria do autmato, deve executar-se a seguinte sequncia de teclas:

Aps a execuo desta sequncia, foram limpas do seu contedo a rea de memria e todas as reas de rels com reteno. LIMPEZA DE MENSAGENS DE ERRO Quaisquer mensagens de erro que se encontrem em memria, devem ser apagadas (Presume-se que as causas que originaram o aparecimento destas mensagens, foram eliminadas). Para visualizar uma mensagem deve digitar-se a seguinte sequncia:

Para anular a presente mensagem e visualizar a seguinte (se houver) deve premir-se novamente a tecla MONTR. OPERAES DE EDIO INTRODUO DE INSTRUES Uma vez o programa convertido em mnemnicas, pode iniciar-se a sua introduo na memria do autmato. As instrues do programa s podem ser introduzidas com o autmato em modo PROGRAM. A primeira instruo de um programa (LD) deve ser programada no endereo 00000 (este endereo aparece no canto superior esquerdo do ecr); as outras instrues ocuparo os endereos sucessivos.

__________________________________________________________________________________________________

25

_____________________________Autmatos Programveis____________________________ Tal como j foi dito, aps ter-se digitado uma linha do programa, deve validar-se esta, premindo a tecla WRITE; o endereo do programa incrementado automaticamente, possibilitando a introduo de uma nova linha de instruo. INSERO DE INSTRUES Pode acontecer um esquecimento ou querer acrescentar a um programa j introduzido, uma nova instruo. Para o fazer, deve posicionar-se no visr da consola de programao a linha de instruo que vai preceder a nova instruo; para o efeito use as teclas com as setas. Em seguida deve fazer-se a seguinte sequncia de teclas:

O ecr apresenta agora a mesma instruo, mas com o endereo incrementado; aps a sequencia anterior, o autmato duplicou a linha de instruo que estava a ser visualizada. Deve agora escrever-se a nova instruo, premindo WRITE no final. ELIMINAO DE INSTRUES Para retirar uma linha de instruo ao programa j introduzido, deve posicionar no visor da consola de programao a linha que pretende eliminar. Em seguida deve executar a seguinte sequncia de teclas:

BUSCA DE INSTRUES possvel procurar ou saber o nmero de ocorrncias de determinada instruo ou rel, sem ter de percorrer todo o programa (recorrendo s teclas com setas). Para tal, bastar executar a sequncia de teclas abaixo descrita, tendo ateno de que esta deve ser iniciada estando o visor limpo (s aparece no canto superior esquerdo o endereo 00000).

__________________________________________________________________________________________________

26

_____________________________Autmatos Programveis____________________________ Quando se faz SRCH, automaticamente procurada no programa a instruo ou rel. Se existir, ento aparecer no visor a linha do programa que contm a primeira ocorrncia. Para procurar novas ocorrncias, bastar premir a tecla SRCH. Quando no houver mais ocorrncias da instruo ou rel em causa, ento aparecer a ltima linha do programa, que dever ser END(01). MONITORIZAO ESTADO DE UM REL possvel monitorizar e alterar o estado de um rel. Para tal necessrio executar a seguinte sequncia de teclas, aps ter limpo o ecr premindo a tecla CLR.

Depois de executada esta sequncia, no ecr aparece o estado do rel em causa (ON ou OFF), tal como no exemplo que se segue. Visualiza-se aqui o estado do rel 200.00 que em princpio estar a OFF.

Sempre que se pretender, pode alterar-se o estado de um rel usando a consola de programao. Para tal basta aps monitorizar o seu estado, premir as teclas SET ou RESET, conforme se queira colocar a ON ou a OFF respectivamente. H que ter em ateno o facto de a consola no ter predominncia sobre o programa ou entradas fsicas; se forar a ON um rel associado a uma entrada que est no momento a OFF, este continuar a OFF. H no entanto forma de forar o estado de um rel nas condies do exemplo anterior. Para tal bastar anteceder o comando SET ou RESET com a tecla SHIFT. CONTEUDO DE UMA WORD (CANAL) possvel monitorizar e alterar o contedo de uma word. Para tal necessrio executar a seguinte sequncia de teclas, aps ter limpo o ecr premindo a tecla CLR.

__________________________________________________________________________________________________

27

_____________________________Autmatos Programveis____________________________

Depois de executada esta sequncia, no ecr aparece o contedo do canal em causa, tal como no exemplo que se segue. Visualiza-se neste caso o canal LR01, cujo contedo no exemplo 1234.

Pode alterar-se o contedo do canal premindo a tecla CHG e digitando o novo valor seguido de WRITE. Aproveitando o exemplo,

Digitando 7654 seguido de WRITE, alteraria o contedo do canal LR01 para o valor digitado.

__________________________________________________________________________________________________

28

_____________________________Autmatos Programveis____________________________

3.2.

INSTRUES DE TRATAMENTO LGICO

3.2.1.

Instrues Bsicas (LD, OUT, END )

Num esquema de contactos, temos a possibilidade de colocar rels em srie, em paralelo, operar com rels negados e/ou vrias combinaes entre estas hipteses. Vamos comear por analisar a programao de um circuito puramente acadmico, mas que nos vai servir como primeira abordagem programao.

Imaginemos um circuito controlado por um autmato cuja lgica a seguinte: - O estado da sada 10.00 dado pelo estado da entrada 0.00. Em linguagem de contactos, teramos a seguinte linha lgica:

A codificao em linguagem mnemnica do esquema anterior, ser : Endereo 00000 00001 00002 Instruo Dados LD OUT END(01) 000.00 010.00 <WRITE> <WRITE> <WRITE>

O que seria em linguagem corrente, qualquer coisa como: .Pega no estado do bit 000.00 .Coloca no bit 010.00 .Fim Para programarmos este simples programa, deveremos proceder seguinte sequncia: - Instalar a consola de programao no autmato - Ligar a alimentao
__________________________________________________________________________________________________

29

_____________________________Autmatos Programveis____________________________ - Colocar o comutador existente na consola no modo PROGRAM - Digitar a seguinte sequencia de PASSWORD: Limpar a rea de memria de programa do autmato usando a seguinte sequncia:

- Digitar cada linha da lista de instrues do programa. No esquecer de validar premindo a tecla WRITE.

- A ltima linha do programa dever ser : END(01)

- Usando as teclas com as setas, percorra as linhas do programa, confirmando as instrues introduzidas. - Se tudo est conforme, passe o comutador de estado do autmato para o modo RUN. - No havendo anomalias, o sinalizador de RUN no frontal do autmato deve acender. Nesta fase, o trabalho de programao est concludo, restando somente testar o correcto desempenho do programa implementado no autmato. Para o efeito, introduza um sinal de 24Vdc na entrada 0.00. O led sinalizador da entrada dever acender-se e com ele tambm deve acender o led referente sada 10.00. Para a programao deste simples exemplo, usam-se trs instrues: LD - usada para iniciar uma linha lgica ou bloco com o status do bit especificado. OUT - transfere o resultado das condies lgicas que antecedem esta instruo para o bit especificado. END(01) - Indica o fim do programa. imprescindvel o seu uso. Para implementar circuitos lgicos, dispomos ainda das seguintes instrues: AND - realiza um E lgico com o bit especificado OR - realiza um OU lgico com o bit especificado NOT - nega o estado do bit ao qual est associado AND LOAD - realiza um E lgico entre dois blocos lgicos. OR LOAD - realiza um OU lgico entre dois blocos lgicos.

__________________________________________________________________________________________________

30

_____________________________Autmatos Programveis____________________________ 3.2.2. Instruo AND

Pretende-se implementar um circuito lgico que activa a sada 10.02 do autmato, s se as entradas 0.00 e 0.01 e 0.02 estiverem activas (a ON). O esquema de contactos correspondente ser:

Em linguagem mnemnica teramos: Endereo 00000 00001 00002 00003 00004 Instruo LD AND AND OUT END(01) Dados 000.00 000.01 000.02 010.02

O autmato ao interpretar cada linha do programa, vai executar as funes de uma forma sequencial e vai guardando de imediato o resultado lgico resultante da execuo. Exemplificando com o programa anterior e admitindo que os bits tomavam o seguinte estado, 0.00 - ON 0.01 - OFF 0.02 - ON teramos: LD 000.00 AND 000.01 0.00 est a ON. Guarda o valor ON na memria. Executa a funo AND do estado de 0.01 com o estado em memria; neste caso, OFF e(AND) ON resulta OFF. Guarda o valor OFF na memria. Executa a funo AND do estado de 0.02 com o estado em memria; neste caso, ON e(AND) OFF resulta OFF. Guarda o valor OFF na memria. Actualiza o estado lgico do bit 10.00 com o estado lgico contido na memoria (neste caso OFF).

AND 000.02

OUT 010.02

__________________________________________________________________________________________________

31

_____________________________Autmatos Programveis____________________________

3.2.3.

Instruo NOT

Pegando no exemplo anterior, pretende-se que a sada 10.02 fique activa se as entradas 0.00 e 0.02 estiverem a OFF e a entrada 0.01 estiver a ON (considera-se que uma entrada est a ON quando o led que a sinaliza, se encontra ligado). A representao em linguagem de contactos, ser:

Em linguagem mnemnica seria: Endereo 00000 00001 00002 00003 00004 Instruo LD NOT AND AND NOT OUT END(01) Dados 000.00 000.01 000.02 010.02

A funo NOT pode ser usada conjuntamente com as funes LD, AND, OR e OUT.

3.2.4.

Instruo OR

Pretende-se implementar um circuito lgico que active a sada 10.03 quando a entrada 0.01 estiver a OFF ou quando as entradas 0.02 ou 0.03 estiverem a ON.

__________________________________________________________________________________________________

32

_____________________________Autmatos Programveis____________________________

O esquema de contactos correspondente ao especificado ser:

A codificao em linguagem mnemnica ser: Endereo 00000 00001 00002 00003 00004 Instruo LD NOT OR OR OUT END(01) Dados 000.01 000.02 000.03 010.03

3.2.5.

Instruo AND LOAD

A instruo AND LOAD permite colocar em srie dois blocos lgicos, ou seja, permite realizar um E lgico entre dois blocos. Pretende-se implementar um circuito, capaz de activar a sada 10.00 sempre que a entrada 0.00 ou 0.01 estiverem a ON e as entradas 002 ou 003 estiverem tambm a ON. O esquema de contactos ser:

A programao deste esquema de contactos implica que faamos um tratamento diferente do circuito. Assim vamos dividir o circuito em dois blocos A e B.

__________________________________________________________________________________________________

33

_____________________________Autmatos Programveis____________________________

A linguagem mnemnica correspondente ser: Endereo 00000 00001 00002 00003 00004 00005 00006 Instruo LD OR LD OR AND LD OUT END(01) Dados 000.01 000.02 000.03 000.04 010.00

Tudo se passa como se estivssemos a programar dois blocos lgicos independentes, e os ligssemos no fim em srie (com a instruo AND LD). Para mais fcil compreenso, vamos fazer a analogia da programao deste circuito com o clculo de resistncias equivalentes. Vamos supor que cada bit do esquema acima uma resistncia elctrica.

Para calcularmos a resistncia equivalente do circuito, teramos de calcular primeiro o paralelo da resistncia 0.00 com a resistncia 0.01, seguidamente calcular o paralelo da resistncia 0.02 com a resistncia 0.03 e ento finalmente calcular a srie das resistncias equivalentes anteriormente calculadas.

3.2.6.

Instruo OR LOAD

A instruo OR LOAD permite colocar em paralelo dois blocos lgicos, ou seja, permite realizar um OU lgico entre dois blocos.

__________________________________________________________________________________________________

34

_____________________________Autmatos Programveis____________________________

Exemplo: Pretende-se implementar um circuito lgico capaz de activar a sada 10.00 sempre que as entradas 0.00 e 0.01 ou as entradas 0.02 e 0.03 estiverem simultaneamente a ON. O esquema de contactos ser:

A programao deste esquema de contactos implica, tal como no caso anterior, um tratamento diferente do circuito. Vamos dividir o circuito em dois blocos A e B.

A linguagem mnemnica correspondente ser: Endereo 00000 00001 00002 00003 00004 00005 00006 Instruo LD AND LD AND OR LD OUT END(01) Dados 000.01 000.02 000.03 000.04 010.00

Tudo se passa como se estivssemos a programar dois blocos lgicos independentes, e os ligssemos no fim em paralelo (com a instruo OR LD).

__________________________________________________________________________________________________

35

_____________________________Autmatos Programveis____________________________

Exemplo 1

No diagrama anterior, h necessidade de criar vrios blocos lgicos para se poder traduzir correctamente em linguagem mnemnica o esquema em causa. Note-se que uma instruo AND LD ou OR LD junta s dois blocos lgicos. Sempre que definimos um bloco lgico, necessrio come-lo com uma instruo LOAD.

A linguagem mnemnica correspondente ser: Endereo 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 Instruo LD AND LD AND OR LD OR AND AND NOT LD AND OR AND LD OUT END(01) Dados 000.01 000.02 000.07 000.08 000.10 000.03 000.04 000.05 000.06 000.09 010.00

__________________________________________________________________________________________________

36

_____________________________Autmatos Programveis____________________________

No incio do captulo indicou-se que o autmato guardava os resultados de cada operao lgica, resultantes da execuo do programa, numa memria; na verdade esta memria no nica, mas faz parte de um ficheiro LIFO (last in, first out) ou seja um ficheiro onde o ltimo valor a ser guardado, o primeiro a sair (Tal como um monte de fichas, a primeira ficha a ser colocada no monte, a ltima ser retirada). Sempre que se inicia um bloco lgico, adicionada uma ficha ao ficheiro, que guarda os valores lgicos decorrentes da execuo do programa do bloco em causa. Sempre que o autmato encontra uma instruo AND LD ou OR LD, usa as duas ltimas fichas colocadas no ficheiro e executa a operao lgica AND ou OR usando o valor lgico contido nessas fichas. Neste autmato, o nmero mximo de fichas (de posies de memria) oito. Tal como na traduo de um texto, a converso de linguagem de contactos para mnemnica, dever ser to fiel quanto possvel. Se a codificao for bem feita, ento a partir do cdigo possvel refazer o esquema de contactos. Para tal, a leitura do esquema de contactos dever fazer-se de cima para baixo e da esquerda para a direita. Exemplo 2 No exemplo seguinte, pretende-se a linguagem mnemnica correspondente ao esquema de contactos.

Tal como no exemplo anterior, vai ser necessrio criar vrios blocos lgicos que iro depois ser associados usando instrues AND LOAD e OR LOAD. Para facilitar a codificao, na figura seguinte assinalam-se os diversos blocos em que se deve subdividir o esquema.

__________________________________________________________________________________________________

37

_____________________________Autmatos Programveis____________________________

A linguagem mnemnica correspondente ser: Endereo 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 Instruo LD LD LD LD LD LD LD AND OR LD AND LD OR LD AND LD OR LD AND LD OUT END(01) Dados 000.00 000.01 000.02 000.03 000.04 000.05 000.06 000.07

010.00

Para melhor se entender o desempenho do ficheiro LIFO (anteriormente descrito) e a sua relao com as instrues AND LOAD e OR LOAD, mostra-se na figura seguinte a evoluo dos valores lgicos correspondentes ao exemplo 2.

__________________________________________________________________________________________________

38

_____________________________Autmatos Programveis____________________________

O exemplo exposto apresenta-se um pouco confuso no que respeita sua codificao em linguagem mnemnica. No entanto, respeitando o esquema tal e qual ele se apresenta, a soluo indicada a nica correcta. Quando no necessrio respeitar o desenho do esquema de contactos, podemos introduzir pequenas alteraes, de forma a simplificar a sua programao. O esquema de contactos que se segue um bom exemplo disso; com algumas alteraes no esquema, e sem alterar a lgica, possvel reduzir o trabalho e o nmero de instrues para a programao do esquema inicialmente proposto neste exemplo.

A linguagem mnemnica correspondente ao esquema anterior, seria: Endereo 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 Instruo LD AND OR AND OR AND OR AND OUT END(01) Dados 000.06 000.07 000.05 000.04 000.03 000.02 000.01 000.00 010.00

__________________________________________________________________________________________________

39

_____________________________Autmatos Programveis____________________________ 3.2.7. Uso de TRs

Conforme j foi anteriormente referido, existem neste autmato 8 rels temporrios (TR). Estes no devem ser usados como rels internos, sendo o seu uso s destinado converso de um esquema de contactos para linguagem mnemnica. O TR (rel temporrio) serve para guardar temporariamente o estado lgico de um ponto do circuito onde este se ramifica. Esse valor lgico ser posteriormente lido para programar o restante circuito, reduzindo assim o nmero de instrues. Exemplo:

A linguagem mnemnica correspondente ser: Endereo 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 Instruo LD AND AND OUT AND OUT AND OUT LD AND OUT LD AND OUT END(01) Dados 000.00 000.01 000.02 TR0 000.03 TR1 000.04 010.00 TR1 000.05 010.01 TR0 000.06 010.02

Em cada malha podem usar-se at oito rels temporrios (do TR0 ao TR7) e no necessrio seguir qualquer ordem sequencial no seu uso. No mesmo programa, podem usar-se os mesmos TR's quantas vezes for necessrio.

__________________________________________________________________________________________________

40

_____________________________Autmatos Programveis____________________________ 3.2.8. Instruo INTERLOCK

A instruo INTERLOCK (IL(02)) est sempre associada instruo INTERLOCK CLEAR (ILC(03)), sendo esta ltima sempre antecedida pela primeira. A instruo INTERLOCK sempre antecedida de uma condio lgica que define a actuao da instruo IL(02). Quando o resultado da condio lgica que antecede IL(02) OFF, todas as instrues OUT contidas entre esta instruo e a instruo ILC(03) tomam o estado OFF, independentemente do estado das condies que lhes do origem; a todos os temporizadores feito o reset. Se a condio que antecede a instruo IL(02) estiver a ON, a parte do programa entre IL(02) e ILC(03) no afectada. Podem usar-se vrias funes IL(02) com uma s funo ILC(03). ATENO: Os rels encravados por funes KEEP(11) no so afectados por esta instruo. Como j repararam, as instrues IL(02) e ILC(03) so representadas junto com um nmero entre parntesis. Este nmero o cdigo das funes e usado em conjunto com da tecla FUN, para programar as mesmas no autmato (tal como a instruo END(01)).

Exemplo:

__________________________________________________________________________________________________

41

_____________________________Autmatos Programveis____________________________

A linguagem mnemnica correspondente ser: Endereo 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 Instruo LD AND AND IL(02) LD OUT LD IL(02) LD OUT LD OUT ILC(03) END(01) Dados 000.00 000.01 000.02 000.06 010.02 000.03 000.04 010.00 000.05 010.01

A instruo INTERLOCK pode ser usada como alternativa aos TR's; o circuito anterior tem um desempenho idntico ao esquema que se segue:

3.2.9.

Instruo KEEP(11)

A instruo KEEP(11), permite definir um rel como biestvel, sendo o seu estado definido por duas condies lgicas; uma de SET e outra de RESET. O rel especificado na instruo ficar activo desde que a condio de SET tenha tomado o valor ON. O rel s desactivar quando existir um valor ON na condio de RESET. Caso haja simultaneidade das duas condies a ON, a condio de RESET a predominante.

__________________________________________________________________________________________________

42

_____________________________Autmatos Programveis____________________________ Abaixo apresenta-se um diagrama de tempos exemplificativo.

Exemplo: frequente encontrar comandos de motores que dispem de duas botoneiras; uma para ligar e outra para desligar. Implementando um circuito semelhante usando um autmato, poderamos ter o seguinte diagrama de contactos:

Ao rel 0.00 seria ligada a botoneira de ARRANQUE e ao rel 0.01 a botoneira de PARAGEM. O motor seria comandado pelo rel 10.00. Normalmente, por questes de segurana, os circuitos de comando de desactivao de equipamentos, usam botoneiras com contacto normalmente fechado. Se por qualquer razo houver uma ruptura nas ligaes dos comandos, isso implica a interrupo do circuito e consequentemente a imediata paragem dos equipamentos. Por essa razo, vamos usar no exemplo uma botoneira de paragem normalmente fechada. A ligao dos vrios elementos ao autmato seria como se ilustra na figura que se segue.

__________________________________________________________________________________________________

43

_____________________________Autmatos Programveis____________________________

Em linguagem mnemnica teramos o seguinte programa: Endereo 00000 00001 00002 00003 00004 Instruo LD OR AND OUT END(01) Dados 000.00 010.00 000.01 010.00

Usando a instruo KEEP(11) poder-se-ia programar o mesmo controlo de uma forma mais simples:

A codificao em linguagem mnemnica seria: Endereo 00000 00001 00002 00003 Instruo LD LD NOT KEEP(11) END(01) Dados 000.00 000.01 010.00

Nota: Sempre que existam vrios blocos lgicos a controlar uma instruo, estes so programados em primeiro lugar e s depois programada a instruo em causa.

3.2.10.

Instrues SET e RESET

Em alternativa instruo KEEP(11) que congrega as condies de activao e desactivao de um bit, existem duas instrues que permitem manipular o estado de um bit, em circunstncias semelhantes. Essas instrues so SET e RESET. Quando a condio lgica que antecede a instruo SET vai a ON (ilustrada no exemplo seguinte pelo bit 0.00) , o bit manipulado pela instruo (10.00) tambm levado a ON, mantendose nesse estado.
__________________________________________________________________________________________________

44

_____________________________Autmatos Programveis____________________________

Para programar a funo SET usando a consola de programao, executar a seguinte sequncia de teclas:

Situao semelhante acontece com a instruo RESET, pois quando a condio lgica que antecede esta instruo vai a ON (ilustrada no exemplo pelo bit 0.02) , o bit manipulado (10.00) em simultneo levado a OFF, permanecendo nesse estado.

Para programar a funo RESET usando a consola de programao, executar a seguinte sequncia de teclas:

3.2.11.

Instrues DIFU(13) e DIFD(14)

A instruo DIFU(13) permite activar um rel durante um ciclo de scan, sempre que a condio lgica que antecede a instruo, transita do estado OFF para ON.

__________________________________________________________________________________________________

45

_____________________________Autmatos Programveis____________________________

A funo DIFD(14) permite activar um rel durante um ciclo de scan, sempre que a condio lgica que antecede a instruo, transita de um estado ON para OFF.

Retomando o exemplo apresentado na instruo anterior (comando de um motor), vamos requint-lo por forma a aumentar a segurana do comando, aproveitando para o efeito a instruo DIFU(13). Vamos admitir que a botoneira de arranque encrava, mantendo o circuito fechado. Quando o operador pretender parar o motor, este realmente pra, mas s enquanto a botoneira de paragem estiver premida; logo que o operador larga a botoneira, o arranque do motor inevitvel, pois o sinal de arranque est presente. Usando a instruo DIFU(13) podemos conseguir um sinal muito breve num rel auxiliar, que por sua vez activa a instruo KEEP(11). Desta forma, a ordem de ligar o motor s acontece quando houver uma transio de OFF para ON no sinal de arranque. O esquema de contactos que se segue mostra o comando do motor j dotado deste melhoramento.

__________________________________________________________________________________________________

46

_____________________________Autmatos Programveis____________________________ A codificao em linguagem mnemnica seria: Endereo 00000 00001 00002 00003 00004 00005 Instruo LD DIFU(13) LD LD NOT KEEP(11) END(01) Dados 000.00 019.00 019.00 000.01 010.00

3.3.

TEMPORIZADORES E CONTADORES

Ao falarmos das reas de rels no incio do captulo, fez-se referncia rea de TC. Esta rea partilhada por Temporizadores e Contadores. A cada nmero TC podemos associar um s temporizador ou contador. 3.3.1. TEMPORIZADORES Para definir um temporizador existem duas instrues disponveis: TIM e TIMH(15). A instruo TIM permite definir um temporizador de atraso operao com a preciso de 0.1 segundo podendo este ter um alcance mximo de 999.9 segundos. O valor de PRESET (tempo inicial) pode ser especificado por uma constante ou pelo contedo de uma word. Associado a cada temporizador existe um contacto TIM N (sendo N o nmero do temporizador). A instruo TIM sempre antecedida por uma condio lgica, que estando a ON activa o temporizador; este comea a decrementar o tempo pre-seleccionado e quando atinge o zero, fecha o contacto TIM N. Se a condio lgica passar a OFF, implica o RESET do temporizador e consequentemente a abertura do contacto TIM N. No exemplo seguinte pode ver-se a representao em linguagem de contactos da instruo TIM.

__________________________________________________________________________________________________

47

_____________________________Autmatos Programveis____________________________ A codificao em linguagem mnemnica seria: Endereo 00000 00001 00002 00003 00004 Instruo LD TIM LD OUT END(01) Dados 000.00 10 #0050 TIM 10 010.00

O diagrama de tempos correspondente ser:

A instruo TIM programa-se usando uma tecla prpria para o efeito, existente na consola de programao. Para programar a instruo TIMH(15) necessrio usar a tecla FUN e o cdigo 15. Esta instruo permite implementar um temporizador idntico ao implementado pela instruo TIM, com a diferena de que este tem uma preciso de 0.01 segundo e um alcance mximo de 99.99 segundos. O contacto deste temporizador tem a designao TIM N tal como na instruo TIM.

Usando a instruo TIM ou TIMH podem implementar-se temporizaes de atraso desoperao, temporizaes mistas (atraso operao e desoperao) e temporizaes por impulso.

__________________________________________________________________________________________________

48

_____________________________Autmatos Programveis____________________________ 3.3.2. CONTADORES

H vrias mtodos para implementar contadores. Neste captulo vamos apenas abordar a programao da instruo CNT e CNTR(12). A instruo CNT permite a programao de um contador decrescente. Este identificado com um nmero, tal como acontece nos temporizadores. especificado tambm o valor de PRESET que pode ser uma constante ou o valor contido numa word. A instruo CNT est associada a duas condies lgicas; Na primeira quando acontece uma transio de estado de OFF para ON, faz decrementar em uma unidade o contedo do contador. Na segunda, sempre que est a ON, faz o RESET ao contador e consequentemente o contedo do contador toma o valor de PRESET. A cada contador est associado um contacto CNT N (sendo N o nmero do contador), que vai a ON sempre que o contador toma o valor ZERO. Quando o contador atinge o valor zero, permanece nesse valor at que seja efectuado o RESET ao contador. Na figura seguinte v-se a representao de um contador em linguagem de contactos:

Um pormenor importante de se referir, que ao contrrio dos temporizadores, os contadores retm o seu contedo, mesmo aps a falha de alimentao do autmato. Tirando partido deste pormenor, pode implementar-se um temporizador com reteno do tempo decorrido, usando para o efeito um contador e um rel de clock da rea de rels especiais, conforme se mostra no exemplo seguinte:

__________________________________________________________________________________________________

49

_____________________________Autmatos Programveis____________________________ A codificao em linguagem mnemnica seria: Endereo 00000 00001 00002 00003 00004 00005 Instruo LD LD NOT CNT LD OUT END(01) Dados 255.02 000.01 14 #3600 CNT 14 10.03

A instruo CNTR(12) permite programar um contador reversvel. Tal como na instruo CNT, este identificado com um nmero. especificado tambm o valor de PRESET que pode ser uma constante ou o valor especificado por um canal. A instruo CNTR(12) tem associadas trs condies lgicas. Na primeira condio lgica, uma transio de OFF para ON faz incrementar o valor do contador. Na segunda condio, uma transio de OFF para ON faz decrementar uma unidade ao valor do contador. A terceira condio lgica faz o RESET ao contador, sempre que esteja a ON. O RESET neste contador faz com que o seu contedo v a zero. Associado ao CNTR(12) h um contacto de um rel que designado tal como nos contadores anteriormente descritos (CNT X ;sendo X o n atribudo ao contador). Esse contacto vai a ON sempre que h uma transio de 0 para o valor de preset ou deste para 0.

__________________________________________________________________________________________________

50

_____________________________Autmatos Programveis____________________________

3.4.

INSTRUES DE TRATAMENTO DE DADOS

Nos pargrafos anteriores, vimos instrues que operam com condies lgicas. Vamos agora ver instrues que operam sobre words, ou seja, sobre a informao contida num conjunto de 16 bits. Num bit, podemos ter apenas dois estados: ON ou OFF. Num conjunto de 16 bits, vai ser possvel codificar mais informao. Antes de apresentar algumas instrues de tratamento de dados, vamos analisar os sistemas numricos.

3.4.1.

SISTEMAS NUMRICOS

O sistema numrico que melhor conhecemos e que usamos diriamente o SISTEMA DECIMAL. Tal como o nome indica, este sistema numrico dispe de dez smbolos, uados na seguinte sequncia: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. Quando se esgotam os smbolos, repete-se a sequncia, colocando o smbolo seguinte esquerda. Se o smbolo esquerda um 0, ento este no se representa. Para melhor explicar esta mecnica, vamos ver o exemplo abaixo. Neste exemplo, representam-se os 0 esquerda s para que seja mais fcil compreenso. 000 001 002 ..... 0 0 9 Esgotados os smbolos, repete-se 0 1 0 a sequncia colocando esquerda 0 1 1 o smbolo seguinte. 012 ..... 019 020 ..... 099 100 ..... Compreendida esta mecnica, facilmente perceberemos o que se passa com os outros sistemas numricos. Num circuito elctrico, facilmente podemos definir dois estados: ligado/desligado ou com tenso/sem tenso. Podem-se ento usar estes dois estados como base de um sistema numrico; um sistema binrio. Para simplificar a representao dos estados ligado e desligado usam-se os smbolos 1 e 0 respectivamente.

__________________________________________________________________________________________________

51

_____________________________Autmatos Programveis____________________________ Podemos codificar valores numricos numa base binria, usando a mecnica que j foi anteriormente explicada para o sistema decimal. 000 001 010 011 100 101 110 111 = = = = = = = = 0 1 2 3 4 5 6 7

frente da representao binria, colocou-se o valor decimal correspondente. Para converter um valor binrio em decimal, somam-se os pesos dos dgitos.

Para que a converso de um valor binrio em decimal seja mais fcil, existe um sistema de codificao que usa quatro bits para codificar valores de 0 a 9, desaproveitando as restantes 6 combinaes possveis. Esta forma de codificar valores numricos em binrio chama-se BCD. Para codificar o valor decimal 947, temos a seguinte codificao BCD:

Note-se que a codificao BCD pelo simples facto de desperdiar 6 combinaes do binrio, reduz o valor mximo codificado numa word: 9999 em BCD, contra 65535 em Binrio.

__________________________________________________________________________________________________

52

_____________________________Autmatos Programveis____________________________

3.4.2.

Instruo CMP(20)

Esta instruo permite comparar dois valores numricos sendo o resultado dado pelo estado de trs rels especiais. A instruo CMP(20) sempre antecedida por uma condio lgica que quando est a ON permite a execuo da comparao.

Sempre que esta instruo executada, comparado o valor contido em A, com o valor contido em B. A e B podem conter uma constante ou o contedo de uma word, temporizador ou contador. - Se A>B ento o rel 25505 vai a ON. - Se A=B ento o rel 25506 vai a ON. - Se A<B ento o rel 25507 vai a ON. No exemplo que se segue, compara-se sempre (usa-se para o efeito um rel sempre a ON 253.13) o contedo do contador 15 com a constante 4. Conforme o valor do contador 15 teremos activo o rel 10.00 se o contador tiver um valor maior que 4; o rel 10.01 passar a ON se o contador 15 tiver o valor 4; ser o rel 10.02 a ir a ON se o CNT15 tiver um valor inferior a 4.

__________________________________________________________________________________________________

53

_____________________________Autmatos Programveis____________________________

A codificao em linguagem mnemnica seria: Endereo 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 Instruo Dados LD LD CNT LD OUT CMP(20) AND OUT LD AND OUT LD AND OUT END(01) 000.01 000.02 15 #0010 253.13 TR0 CNT15 #0004 255.05 010.00 TR0 255.06 010.01 TR0 255.07 010.02

__________________________________________________________________________________________________

54

_____________________________Autmatos Programveis____________________________ 3.4.3. Instruo MOV(21)

A instruo MOVE permite copiar o valor contido em A para o destino expresso em B, sempre que a condio lgica que antecede esta instruo esteja a ON."A" pode ser um canal, um temporizador/contador ou uma constante. "B" pode ser um canal ou temporizador/contador.

No exemplo que se segue, a instruo MOV(21) copia o contedo do contador 23 para o canal de sadas ( canal 10). O contador decrementa ao ritmo do impulso gerado pelo rel 255.02. Quando o contador chega a 0 automaticamente resetado e volta ao valor inicial. Para que a instruo MOV(21) seja sempre executada, antecedida por um rel sempre a ON (253.13).

__________________________________________________________________________________________________

55

_____________________________Autmatos Programveis____________________________

A codificao em linguagem mnemnica seria: Endereo 0000 0001 0002 0003 0004 0005 Instruo LD LD CNT LD MOV(21) END(01) Dados 255.02 CNT23 23 #0099 253.13 CNT23 002

3.4.4.

Instruo MOVN(21)

A instruo MOVE NOT permite copiar o contedo negado de A para o destino expresso em B, sempre que a condio lgica que antecede esta instruo esteja a ON.

Tal como na instruo MOV(21), em "A" pode ser especificado um canal, um temporizador/contador ou uma constante e em "B" pode ser especificado um canal ou temporizador/contador.

3.4.5.

Instruo SFT(10)

A instruo SHIFT permite implementar um registo deslocamento comeando na word A e acabando na word B. A word A dever ter um endereo menor ou igual word B e as duas devem pertencer mesma rea de memria.

__________________________________________________________________________________________________

56

_____________________________Autmatos Programveis____________________________ Esta instruo controlada por trs condies lgicas: - A primeira, define o estado do bit que "entra" no canal A. No momento do deslocamento, o bit 0 da word A ter o estado lgico desta condio. - A segunda, define o momento do deslocamento, que se verifica sempre que houver uma transio de OFF para ON nesta condio. - A terceira, a condio de RESET. Quando o seu estado ON, os bits das words afectadas pela instruo SHIFT, so forados a OFF.

3.4.6.

Instruo XCHG(73)

Sempre que a condio que antecede a instruo verdadeira, XCHG(73) troca o contedo dos dois canais operandos desta instruo.

__________________________________________________________________________________________________

57

_____________________________Autmatos Programveis____________________________

Por cada scan efectuado com a condio de execuo activa, esta instruo coloca o contedo do canal especificado em A no canal especificado em B e o contedo de B em A.

__________________________________________________________________________________________________

58

_____________________________Autmatos Programveis____________________________

3.5.

PROGRAMAO DE PROCESSOS SEQUENCIAIS

So inmeras as situaes de comando onde as tarefas a executar se repetem sempre na mesma sequncia ou em sequncias pr-determinadas. No autmato dispomos de diversas "ferramentas" para levar a cabo a programao de processos sequenciais; - A primeira forma de o fazer usando a funo KEEP(11) ou uma forma mais primria de "encravar" rels de controlo, recorrendo a encravamentos discretos ou recorrendo s funes SET/RESET. - A segunda alternativa passa pelo uso da funo SFT(10). Esta funo est particularmente adaptada para a programao de sequncias lineares. - Existe uma outra alternativa que usando duas funes dedicadas implementao de GRAFCET: STEP(08) e SNXT(09). Em todos estes mtodos h um factor comum: existe um rel por cada estado da sequncia, que quando est a ON indica a activao desse estado. Quando se verifica a condio de transio, o rel que est a ON passa a OFF e em simultneo o rel que sinaliza o estado seguinte passa a ON. Este mtodo semelhante a uma corrida de estafetas; existe um testemunho que transita de atleta para atleta, conferindo a cada um deles a legitimidade da corrida. Para concretizar cada mtodo, vamos usar um exemplo muito simples, mas que vai permitir um melhor esclarecimento da mecnica usada. No nosso exemplo vamos implementar o controlo de trs electrovlvulas A, B e C. Num determinado processo, estas electrovvulas trabalham na sequncia que se descreve a seguir: 1 estado Nenhuma electrovlvula est ligada A transio para o estado seguinte acontece quando a botoneira Bot for premida. As electrovlvulas A e B esto activadas. A transio para o estado seguinte acontece quando o fim-de-curso FC1 for actuado. As electrovlvulas A e C esto activadas. A transio para o estado seguinte acontece quando o fim-de-curso FC2 for actuado. A electrovlvula C est activada. A transio para o estado seguinte acontece quando o fim-de-curso FC3 for actuado. Nenhuma electrovlvula est ligada. Estado final.

2 estado -

3 estado -

4 estado -

5 estado -

___________________________________________________________________________________ 59

_____________________________Autmatos Programveis____________________________

Em grafcet teramos qualquer coisa como:

3.5.1.

IMPLEMENTAO USANDO AS FUNES SET / RESET

Usando funes SET e RESET pode-se implementar o problema acima descrito, criando um rel (auxiliar) que sinaliza o estado que se encontra activo. Pode por exemplo, atribuir-se aos rels 10.00, 10.01, 10.02 e 10.03 essa tarefa (o 5 estado no necessita de rel de controlo). Sabemos entretanto que o rel 10.00, que sinaliza o estado 1, fica activo at que o sinal da botoneira fique presente. Nesse momento o rel 10.00 passa a OFF e em simultneo activado o rel 10.01 que sinaliza o estado 2. O mesmo procedimento seria usado para activar os restantes rels da sequncia. Resumindo, a condio de transio quando satisfeita faz o SET do rel que sinaliza o estado seguinte. Em simultneo a condio de transio faz o RESET do rel que sinaliza o estado presente.

___________________________________________________________________________________ 60

_____________________________Autmatos Programveis____________________________

Abaixo apresenta-se o esquema de contactos respectivo.

___________________________________________________________________________________ 61

_____________________________Autmatos Programveis____________________________

3.5.2.

IMPLEMENTAO USANDO A FUNO KEEP(11)

Usando funes KEEP(11) pode-se tambm implementar o problema anterior usando o mesmo princpio. Resumindo, a condio de transio quando satisfeita faz o SET do rel que sinaliza o estado seguinte e em simultneo, a condio de transio faz o RESET do rel que sinaliza o estado presente. Abaixo apresenta-se o esquema de contactos respectivo.

___________________________________________________________________________________ 62

_____________________________Autmatos Programveis____________________________ 3.5.1. IMPLEMENTAO USANDO A FUNO SFT(10)

Este mesmo problema pode ser implementado usando a funo SHIFT REGISTER ( SFT(10)). Para tal, no canal que contem os rels de controlo, vai assegurar-se que em qualquer instante est um s bit a ON. Ao usar a instruo SFT(10) para implementar uma sequncia, convm que os rels, que servem de controlo aos estados, sejam contguos. Assim, vamos usar os rels do canal 10 para implementar o controlo (tal como no exemplo anterior). Para nos assegurarmos de que no existe nenhum rel a ON nesse canal quando activamos o 1 estado, faz-se uma comparao do canal 10 com #0000 (constante zero). Se o resultado da comparao for igual, significa que no h nenhum rel a ON no canal e por isso pode-se activar o 1 estado (estado inicio). A activao do rel 10.00 (rel que controla o primeiro estado) pode ser feita executando a instruo MOV(21) e transferindo #0001(constante um) para o canal 10. Em seguida so programadas as condies de transio, que sempre que so verdadeiras activam a ON o rel auxiliar 19.00. Este rel usado na instruo SFT(10) na entrada de clock, o que quer dizer que sempre que este rel vai a ON, vai activar o deslocamento dos bits do canal 10. Desta forma, consegue-se a desactivao de um rel e a activao do imediatamente seguinte. Note-se que o rel 10.04, correspondente ao estado final, tambm usado no comando da instruo SFT(10). Quando este rel vai a ON, activa o RESET do canal controlado pelo shift register, levando a OFF todos os rels desse canal, e consequentemente originando a inicializao do processo. No final so programadas as sadas de comando. Agrupam-se a cada sada os rels de controlo de estados, de forma a activar a sada de acordo com o grafcet. Este mtodo de programao bastante eficaz em sequncias predominantemente lineares, com muitos estados.
___________________________________________________________________________________ 63

_____________________________Autmatos Programveis____________________________

3.5.2.

IMPLEMENTAO USANDO AS FUNES STEP(08) e SNXT(09)

Existem em alguns autmatos, instrues dedicadas implementao de grafcet. No autmato OMRON CPM1 elas so as funes STEP e STEP NEXT. A funo STEP(08) programada directamente do barramento esquerdo e como tal no antecedida por qualquer condio lgica. Esta funo pode ser programada de duas formas: com um rel como operando e sem rel.

Quando usada com um rel (R), a funo STEP(08) define o incio de uma seco do programa designada ESTADO. Quando usada sem rel de operando, a funo STEP(08) define o fim da implementao de grafcet no programa. A sua representao esquemtica como a figura seguinte documenta.

Para activar um estado existe a instruo STEP NEXT ( SNXT(09) ), qual est associado um rel (rel de controlo). SNXT(09) sempre antecedida por uma condio lgica, tal como se pode constatar pela representao grfica seguinte.

Sempre que a condio lgica que antecede SNXT(09) vai a ON, a instruo faz activar o estado definido pelo rel especificado e em simultneo desactiva o estado presente (se existir).

___________________________________________________________________________________ 64

_____________________________Autmatos Programveis____________________________ A seco de programa que se encontra entre a instruo STEP(08) e a instruo SNXT(09) s executada, se o rel de controlo dessa seco estiver a ON. Estando a OFF, as instrues que se encontram entre STEP(08) e SNXT(09) so ignoradas pelo autmato ( como se no existissem). Para concretizar a aplicao destas instrues, vamos implementar o processo sequencial que nos tem vindo a servir de exemplo. A soluo apresentada usando funes STEP(08) e SNXT(09) poder parecer primeira vista um pouco confusa, pois aparecem vrias instrues OUT para uma mesma sada e tambm aparece uma instruo SNXT(09) tendo por operando um rel que no parece ter nehuma relao com o programa. - O facto de aparecerem vrias instrues OUT para a mesma sada ( A e C ) justifica-se pelo facto de o autmato s "ver" uma de cada vez. Como j foi dito, apenas as instrues que esto entre STEP(08) e SNXT(09) do estado activo, so tidas em conta pelo autmato; todas as outras contidas noutros estados no activos so pura e simplesmente omitidas, tudo se passando como se no existissem no programa. Para reforar esta ideia, repare-se que na soluo apresentada, as sadas esto condicionadas por um rel sempre a ON (253.13). - A ltima instruo SNXT(09) tem por operando o rel 19.00. Este rel no tem qualquer funo activa no programa (podia ser outro qualquer) e usado porque por imposio da funo SNXT(09) somo obrigados a especificar um; a sua funo a de receber o "testemunho" do ltimo estado activo.

___________________________________________________________________________________ 65

_____________________________Autmatos Programveis____________________________

3.6.

INSTRUES DE CLCULO ARITMTICO

Encontramos com frequncia nos autmatos mais recentes instrues que permitem a execuo de operaes aritmticas, embora esta no seja uma mquina vocacionada para o clculo numrico. Dependendo do autmato, poderemos encontrar as operaes bsicas (soma, subtraco, multiplicao e diviso) ou outras mais sofisticadas, como sendo o clculo em virgula flutuante, funes trigonomtricas, raiz quadrada, etc.. A base numrica tambm pode ser diversa: binrio, BCD, etc.. Vamos neste captulo analisar o uso das operaes aritmticas bsicas em BCD e outras funes associadas.

3.6.1.

SOMA EM BCD O autmato que estamos a usar dispe de duas funes soma em BCD.

A primeira que vamos analisar a funo ADD(30). Esta funo permite adicionar dois valores numricos A e B e coloca o resultado da adio no canal especificado em C. Os valores numricos especificados em A e B podem ser constantes ou o contedo de um canal, contador ou temporizador.

Nota: Esta instruo afecta o rel de CARRY.

___________________________________________________________________________________ 66

_____________________________Autmatos Programveis____________________________

3.6.2.

REL DE CARRY

J foi dito que num canal ou word pode codificar-se em BCD um valor numrico decimal at 9999. Vamos analisar o que se passa quando for executada a funo soma atrs descrita, tendo como operadores o canal 10 e o canal 12. O canal 10 contm o valor #9999 e o canal 12 contm o valor #9999. Quando a operao soma for executada, o canal 5 recebe o resultado da operao, tal como no exemplo abaixo.

Neste exemplo, o resultado da operao 19998, e como tem 5 dgitos, no possvel colocar todo o valor no canal 5 (canal do resultado); O canal 5 recebe o valor 9998 e a presena do dgito mais significativo (1) sinalizada por um rel especial que passa a ON e que se chama REL DE CARRY.

___________________________________________________________________________________ 67

_____________________________Autmatos Programveis____________________________ O rel de carry (abreviadamente CY) tem no autmato CPM1 o endereo 255.04. Este rel uma vez a ON, s passa a OFF se for executada a funo CLC(41).

Esta funo s executada se a condio lgica que a antecede estiver a ON. Para concretizar o que foi apresentado, vamos ver como poderia ser implementado um contador ascendente. Neste exemplo, usa-se o rel 0.00 como entrada de impulsos e o rel 0.01 usado para fazer o reset ao contador. Para que a funo de adio seja executada uma s vez quando o rel 0.00 passa a ON, recorre-se funo DIFU(13) para detectar a transio e activar um rel auxiliar durante um s ciclo de scan. Esse rel depois usado para controlar a execuo da funo ADD(30). Quando se trabalha com nmeros positivos, boa norma fazer executar a funo CLC(41) antes de executar uma funo aritmtica. Desta forma limpa-se o rel de CARRY ( colocado a OFF) que poderia ter sido colocado a ON por outra operao aritmtica existente no programa e que caso estivesse activo falsearia o resultado da operao a executar.

___________________________________________________________________________________ 68

_____________________________Autmatos Programveis____________________________ 3.6.3. Instruo INC(38)

A instruo INC(38) deriva de um caso particular da adio em BCD. Sempre que a condio de execuo est activa, esta instruo faz incrementar uma unidade ao contedo do canal especificado em A, em cada scan. ATENO: O contedo de A deve ser BCD.

Usando esta instruo podemos simplificar o contador ascendente que foi dado como exemplo na exposio da instruo ADD(30), como abaixo se mostra.

___________________________________________________________________________________ 69

_____________________________Autmatos Programveis____________________________

3.6.4.

SUBTRACO EM BCD

A funo SUB(31) permite subtrair ao valor contido em A o valor contido em B e coloca o resultado no canal especificado em C.

Tal como na funo ADD(30) os valores numricos especificados em A e B podem ser constantes ou o contedo de um canal, contador ou temporizador. No caso da operao de subtraco, o resultado nunca excede quatro dgitos. H no entanto a possibilidade de o resultado ser negativo ( quando A for menor que B ). Esta ocorrncia assinalada pelo mesmo rel de carry atrs mencionado. O CY vai a ON se o resultado da operao for menor que zero e em C colocado o "complemento a 10" da subtraco.

___________________________________________________________________________________ 70

_____________________________Autmatos Programveis____________________________

Para se obter o valor absoluto da subtraco quando o resultado menor que zero, deve-se subtrair o resultado obtido a zero (como no exemplo seguinte).

3.6.5.

Instruo DEC(39)

Tal como acontecia com a instruo INC(38), a instruo DEC(39) deriva de um caso particular da subtraco em BCD. Sempre que a condio de execuo est activa, esta instruo faz decrementar uma unidade ao contedo do canal especificado em A, em cada scan. ATENO: O contedo de A deve ser BCD.

Usando as instrues j expostas, possvel implementar de outra forma, um contador bidireccional com funcionamento idntico ao contador reversvel ( instruo CNTR(12)), como poderemos ver no diagrama de contactos que se segue.

___________________________________________________________________________________ 71

_____________________________Autmatos Programveis____________________________

3.6.6.

MULTIPLICAO EM BCD

A funo que permite efectuar o produto de dois valores numricos BCD, a funo MUL(32).

___________________________________________________________________________________ 72

_____________________________Autmatos Programveis____________________________ Sempre que a condio lgica que antecede a funo est a ON, o valor em A multiplicado pelo valor contido em B e o resultado da operao colocado no canal especificado em C e no imediatamente seguinte. Os quatro dgitos menos significativos do resultado so colocados no canal especificado em C e os quatro restantes dgitos mais significativos so colocados no canal C+1.

No exemplo que se segue, faz-se o produto do contedo do canal DM10 (neste exemplo 1234) pela constante 100. O resultado colocado no canal HR18.

3.6.7.

DIVISO EM BCD A funo DIV(33) permite efectuar o quociente de dois valores numricos BCD.

___________________________________________________________________________________ 73

_____________________________Autmatos Programveis____________________________ Sempre que a condio lgica que antecede a funo est a ON, o valor em A dividido pelo valor contido em B e o resultado da operao colocado no canal especificado em C e no imediatamente seguinte. O quociente colocado no canal especificado em C e o resto colocado no canal C+1.

No exemplo que se segue, faz-se o quociente do contedo do canal DM150 (neste exemplo 17) pela constante 3. O resultado colocado no canal DM200.

Nas operaes aritmticas apresentadas anteriormente, apenas possvel trabalhar com operandos de 4 dgitos ( uma word) em BCD. H no entanto situaes que obrigam a trabalhar valores maiores que 9999 e para o fazer temos de recorrer codificao em Binrio. Em Binrio possvel codificar numa word um valor que pode ir at 65535, contra 9999 em BCD. Existem tambm no autmato CPM1 as instrues aritmticas bsicas para operar com valores binrios, de forma anloga s instrues aritmticas BCD. ADB(50) - soma binria SBB(51) - subtraco binria MLB(52) - multiplicao binria DVB(53) - diviso binria

___________________________________________________________________________________ 74

_____________________________Autmatos Programveis____________________________ H a acrescentar ainda duas instrues que permitem converter valores entre as duas bases numricas j enunciadas.

3.6.8.

Instruo BIN(23)

Sempre que a condio de execuo que a antecede esteja a ON, esta instruo permite converter o contedo BCD contido num canal em A para Binrio, sendo o resultado da converso colocado no canal especificado em B.

3.6.9.

Instruo BCD(24)

Esta instruo permite converter o contedo na base Binria contido num canal em A para BCD, sendo o resultado da converso colocado no canal especificado em B.

3.7.

FUNES DE EXECUO DIFERENCIAL

Vimos no captulo 3.2 uma funo que permite detectar uma transio de OFF para ON: DIFU(13). At agora era a nica forma de permitir a execuo controlada de uma instruo ( o
___________________________________________________________________________________ 75

_____________________________Autmatos Programveis____________________________ contador ascendente usando a funo ADD(30) disso um bom exemplo) e assegurar que a mesma era executada uma s vez. H no entanto uma alternativa que permite dotar uma instruo da capacidade de ser executada, s quando houver uma transio de OFF para ON na condio de execuo. Essa alternativa consiste em adicionar o smbolo @ instruo. Para adicionar o smbolo @ instruo que se pretende programar, deve premir-se a tecla NOT aps digitar a tecla FUN e o cdigo da funo. Desta forma, a instruo em causa s ser executada uma vez e sempre que existir uma transio de OFF para ON na condio lgica que a antecede. Concretizando com um exemplo, vamos ver como se poderia tambm programar o contador bidireccional apresentado aquando da instruo DEC(39).

3.8.

ENDEREAMENTO INDIRECTO

Esta facilidade pode ser encontrada em alguns autmatos. O uso do endereamento indirecto permite dotar os programas de uma grande flexibilidade e reduzir a extenso dos mesmos. Normalmente, quando especificado o contedo de um canal da rea de DMs numa instruo, a instruo executada considerando o valor contido nesse DM. Por exemplo, quando se
___________________________________________________________________________________ 76

_____________________________Autmatos Programveis____________________________ executa a instruo MOV(21) tendo o DM100 como primeiro operando e o CH2 como segundo operando, o contedo do DM100 copiado para o canal 2.

Se o DM100 contm o valor 350, ento o CH10 tomar esse valor. no entanto possvel usar endereos indirectos de DMs como operandos de muitas instrues. Para especificar um endereo indirecto de um DM, deve-se anteceder o endereo (ex. DM100) por um asterisco (*DM100). Desta forma, o contedo do DM no contm o valor a processar pela instruo; Em vez disso o contedo do DM, contm o endereo de um outro DM, encontrando-se neste ltimo o valor a ser considerado pela instruo. Retomando o exemplo dado anteriormente, se especificssemos *DM100 (em vez de DM100) e o contedo do DM100 fosse o mesmo (350), o canal 10 tomaria o valor do DM apontado pelo contedo de DM100, neste caso o DM350.

O endereamento indirecto pode ser usado em todas as instrues que aceitem DMs como operandos. NOTA: O contedo do DM contendo o apontador, deve estar compreendido entre 0 e 1999, ou seja, rea de DM existentes.
___________________________________________________________________________________ 77