Você está na página 1de 7

Introduo

Estudou-se em Tpicos Especiais em Sistemas Digitais automao de projetos usando Controlador Lgico Programvel (CLP) e Controlador de Interface Periferica (PIC). Para o CLP usou-se linguagem Ladder, e para PIC, Assembly. Como exemplo didtico foi usado uma esteira onde devia rejeitar madeira ou metal dependendo de uma chave que o operador controlava. A deteco da pea era feita por um sensor capacitivo e a deteco de metal era feita por um sensor indutivo. Um pisto pneumtico foi usado para a rejeio da pea. Alm desses dois sensores, um sensor ptico era usado para mudar o sentido da esteira quando uma pea passasse por ele. Abaixo esto algumas fotos para ilustrar os sensores e atuadores da esteira.

Sensor ptico

Sensor Indutivo

Pistes Pneumticos

Sensor Capacitivo

1. CLP
Os CLPs so computadores industrias usados para automao de sistemas. Tem como caracterstica alta durabilidade, alta confiabilidade com relao a falhas, facilmente reprogramveis e capacidade de se comunicar com outros CLPs ou computadores. Um CLP composto basicamente por uma CPU, que controla todas as atividades do CLP, e as interfaces de entradas e sadas do sistema. Como principio de funcionamento, os CLPs recebem uma entrada, executa o programa armazenado na memria e atualiza as sadas que atuam nos dispositivos de campo. Os programas so normalmente feitos em Ladder, que uma linguagem que mais se aproxima dos esquemas eltricos baseados em painis de rels.

1.1. Projeto
O projeto consiste em configuras uma esteira para separao de peas de metal e de madeira. A esteira movimentada por um motor, reconhece as peas por um sensor capacitivo (X1), reconhece metal por um sensor indutivo (X2), inverte o movimento da esteira atravs de um sensor ptico (X0) e rejeita as peas atravs de um pisto pneumtico. O funcionamento do pisto e do motor esto tabelados abaixo. Movimento Direita Esquerda Parada Y0 1 0 0 1 Tabela Motor Y1 0 1 0 1 Movimento Y2 Y3 Rejeita 1 0 Retorna 0 1 No 0 0 Permitido 1 1 Tabela Pisto

O programa em Ladder est logo abaixo:

2. PIC
PIC uma famlia de microcontroladores que podem processar dado de 8, 16 e 32 bits. Esses microcontroladores usam arquitetura Harvard e conjunto de instruo RISC (35 e 76 instrues). A programao pode ser feita por memria FLASH, EEPROM e OTP. Os processadores do PIC podem ter at 48MHz, e podem ser de 12, 14 e 16 bits, usando ciclo de instruo mnimo de 4 perodos de clock, garantindo alta velocidade de processamento. A interrupo pode ser interna ou externa. A linguagem de programao usada foi o Assembly, mas tambm aceita C. Algumas das vantagens do PIC so o baixo consumo de energia e alta faixa de tenso de alimentao. Para as aulas praticas utilizou-se o PIC16F84A, que utiliza memria flash. Alm disso, este microcontrolador tem 68 bytes de RAM, timer interno e controles PIC de I/O. Tambm foi utilizado o kit Smart PIC que j tem implementado diversos dispositivos perifricos, como LED, chaves e sadas seriais.

2.2. Projeto
O projeto exatamente o mesmo feito com o CLP, automao de uma esteira, porm desta vez foi usado linguagem Assembly. O programa feito segue logo abaixo:

LIST P=16F84A INCLUDE "P16F84A.INC" __CONFIG _WDT_OFF & _CP_OFF & _HS_OSC & _PWRTE_ON ; configuraes gerais ; watchdog timer desabilitado ; proteo de cdigo desabilitado ; oscilador high-speed (20MHz) ; temporizador de power-on habilitado ERRORLEVEL -302 FLAG EQU 0X20 ; flag para indicao dos sensores CHAVE EQU 0X21 ; flag para indicao da posio da chave R0 EQU 0X22 ; registradores utilizados nas temporizaes R1 EQU 0X23 R2 EQU 0X24 R3 EQU 0X25 ORG 0 GOTO PROG ORG CALL 4 ATRASO

COMF CHAVE,1 BTFSC CHAVE,0

; atraso de 100ms que evita re-chamada da ;interrupo devido a rudos da chave mecnica ; inverte o byte chave bit a bit, mas interessa ;apenas o bit 0 ; chave em 0: apaga led (rejeita madeira)

SETLED CLRLED FIMINT

GOTO GOTO BSF GOTO BCF BCF RETFIE

SETLED ; chave em 1: acende led (rejeita metal) CLRLED PORTB,5 ; acende o led FIMINT PORTB,5 ; apaga o led INTCON,INTF ; habilita prxima chamada de interrupo

;**************************************************************************** PROG BSF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF BCF MOVLW MOVWF BSF BSF STATUS,RP0 B'11111111' TRISA B'00000001' TRISB B'11010110' OPTION_REG STATUS,RP0 0X90 INTCON CHAVE,0 PORTB,5 ; seleciona o banco 1 ; porta A: entradas ; porta B: sadas, exceto RB0 ; configura a interrupo externa sensvel a ;descida de borda ; retorna ao banco 0 ; habilita interrupo externa ; padro inicial: rejeita metal ; acende led

INICIO

OPTICO GOTO

BSF PORTB,1 BCF PORTB,2 BSF PORTB,3 BCF PORTB,4 BSF FLAG,0 BSF FLAG,1 BTFSC PORTA,1 OPTICO

; esteira move-se para a esquerda ; pisto retorna ; inicializa o sensor indutivo ; inicializa o sensor capacitivo ; mantm-se em loop enquanto sensor ptico no ;ativado ; com presena de pea... ;... esteira move-se para a direita ; teste do sensor de metal ; se metal presente, assinala o flag,0 ; teste do sensor de presena ; se pea presente, assinala o flag,1 ; teste da chave ; se 1, rejeita metal ; se 0, rejeita madeira ; testa o flag de presena ; se no assinalado -> pea no presente -> retorna ;aos testes dos sensores ; se assinalado -> pea presente -> testa flag de ;metal ; se madeira, libera a pea ; se metal, rejeita a pea

SENSOR

BCF BSF BTFSS BCF BTFSS BCF BTFSC GOTO GOTO

PORTB,1 PORTB,2 PORTA,3 FLAG,0 PORTA,2 FLAG,1 CHAVE,0 REJMET REJMAD

REJMET

BTFSC FLAG,1 GOTO SENSOR BTFSC FLAG,0 GOTO LIBERA GOTO REJEITA

REJMAD

BTFSC FLAG,1 GOTO SENSOR BTFSC FLAG,0 GOTO REJEITA GOTO LIBERA

; testa o flag de presena ; se no assinalado -> pea no presente -> retorna ;aos testes dos sensores ; se assinalado -> pea presente -> testa flag de ;metal ; se madeira, rejeita a pea ; se metal, libera a pea

LIBERA LOOPL

MOVLW MOVWF CALL DECFSZ GOTO GOTO MOVLW MOVWF CALL DECFSZ GOTO BSF BCF CALL GOTO

0X37 R3 ATRASO R3,1 LOOPL INICIO 0X22 R3 ATRASO R3,1 LOOPR PORTB,4 PORTB,3 ATRASO INICIO

; registrador carregado com valor 55 ; atraso de 100ms ; permanece em loop 55 vezes => 5,5s de atraso ; reinicia o processo (esteira para esquerda)

REJEITA LOOPR

; registrador carregado com valor 35 ; atraso de 100ms ; permanece em loop 35 vezes => 3,5s de atraso ; aciona o pisto ; atraso de 100ms ; reinicia o processo (retorna pisto, esteira ;para esquerda)

; Sub-rotina de atraso de 100ms ; Valores dos registradores R0, R1 e R2 obtidos segundo a frmula ; tempo=((((3*R2)+5)*R1+5)*R0+4)*0,2e-6 ; A frmula considera o n. de instrues da rotina e o tempo de instruo 0,2us ; R0 = 56, R1 = 23 e R2 = 128 ATRASO LOOP0 LOOP1 LOOP2 MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF DECFSZ GOTO DECFSZ GOTO DECFSZ GOTO RETURN 0X38 R0 0X17 R1 0X80 R2 R2,1 LOOP2 R1,1 LOOP1 R0,1 LOOP0

END

Concluso