Curso - clp, Notas de aula de Mecatrônica
jorge-alves-55
jorge-alves-55

Curso - clp, Notas de aula de Mecatrônica

131 páginas
50Números de download
1000+Número de visitas
Descrição
CURSO DE PROGRAMAÇÃO DE CLP E MICROCONTROLADOR
60 pontos
Pontos de download necessários para baixar
este documento
Baixar o documento
Pré-visualização3 páginas / 131
Esta é apenas uma pré-visualização
3 mostrados em 131 páginas
Esta é apenas uma pré-visualização
3 mostrados em 131 páginas
Esta é apenas uma pré-visualização
3 mostrados em 131 páginas
Esta é apenas uma pré-visualização
3 mostrados em 131 páginas
NORMALIZAÇÃO DE REPRESENTAÇÃO COMERCIAL

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

1

APRESENTAÇÃO

O entendimento do mundo está na atualização de nosso conhecimento técnico e científico.

Decidimos fazer um estudo de uma área pouco

explorada, de pouco conhecimento prático, mas que está a todo momento nos envolvendo em nossa casa, no lazer e no trabalho: CLP.

Dividiremos nosso ensino em dias de estudo,

equivalentes há 30 minutos diários de leitura, dando passos a um assunto envolvente, você se empolgará em colocar em prática os novos conhecimentos adquiridos na área de microprocessamento e lógica de programação, sentindo-se não apenas um aluno, mas uma pessoa que brinca com algo que lhe abrirá os olhos a esse mundo de tecnologia, não mais admirada por pouco entendê-la, mas sim, admirando, entendendo e utilizando.

Agradeço à Deus

pela oportunidade de passar esses conhecimentos, que com muito esforço

venho retribuir em agradecimento da vida.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

2

CONTEÚDO DO MÓDULO DE ENSINO 1) Curso de linguagem de programação dedicada a compilador para microprocessador. 2) CLP dedicado. 3) Cabo de programação do CLP. 4) Software de programação do CLP. 5) Manual de comandos do CLP. 6) Exemplo de programas. OBS. Pré – requisitos:

1º DIA - INTRODUÇÃO : TECNOLOGIA

Nosso curso não é de eletrônica, porém é bom saber que a evolução de equipamentos com processamento de informações, foi decorrente do desenvolvimento da microeletrônica.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

3

A tecnologia microprocessada está a todo o momento aprimorada para que possamos projetar e processar informações do nosso meio sem necessariamente entendermos de microeletrônica, para comandar um equipamento ou para que este possa tomar decisões seguindo uma lógica previamente estabelecida.

Desde o inicio dos tempos, sempre foi necessário

equipamentos, que de certa forma controlassem de algum modo certas condições, como por exemplo: temperatura de um forno, controle da direção de um barco, controle de potência de uma caldeira, controle de velocidade de um motor, etc.

Foram utilizados a princípio, recursos pessoais e

mecânicos para proceder certos controles e tomadas de certas decisões.

Com o surgimento de novas tecnologias, como balanças,

bi-metálicos, pressostatos, etc, foram possíveis regulagens e tomadas de pequenas decisões em comandos de equipamentos sem necessidade do uso pessoal.

Observamos que para ser realizado um determinado

controle ou ajuste, é necessária uma outra informação que chamaremos de entrada.

A entrada de informação gerará uma atuação ou contra-

reação em equipamentos não processados, porém garantirá uma situação pré-estabelecida.

As entradas podem ser: um pressostato, um micro-fim-

de-curso, uma botoeira, uma temperatura, uma chave, uma palavra, um código, etc.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

4

A atuação motivada pela entrada, chamaremos de SAÍDA, que pode ser: um relé, uma tensão, uma corrente, um código, uma palavra, um som, etc.

A necessidade de controles mais complexos fez com

que fossem criados dispositivos de entrada e saída, mais complexos, mas somente com o desenvolvimento da eletrônica foram possíveis controles mais precisos, controles com amortecimento, surgindo controles com lógica e memória.

A maneira mais simples de trabalhar com lógica em

comandos, foi usando números binários, ou seja, trabalhar com dois dígitos (0 ou 1), representando dois estados simples de representação.

Números decimais Números binários

0 0

1 1

2 10

3 11

10 1010

25 11001

Números decimais utilizam 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9

para representar os demais números. Números binários utilizam 0 e 1, para representar os

demais números. A lógica booleana é a matemática desenvolvida para se

trabalhar com números binários 0 e 1. O desenvolvimento de memórias que pudessem

armazenar dados ou informações e programas, pode

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

5

desenvolver rapidamente os microprocessadores, desenvolvendo-se assim o microcontroladores.

Microprocessadores são dispositivos de

processamento abertos, que necessitam de uma grande quantidade de periféricos para realizarem a captura de informações externas e gravar informações, buscar dados, interagir com os meios, normalmente utilizados por um PC ou processamentos de grande magnitude.

Microcontroladores são dispositivos que por si próprio

já tem muitos dispositivos para interagir com os meios, necessitando de poucos periféricos, utilizados para comando de aparelhos portáteis, equipamentos industriais e por serem de baixo custo são utilizados em CLP´s e outros equipamentos de desenvolvimento.

Com o desenvolvimento de controles mecânicos e de

controles elétricos e pneumáticos, teve-se a necessidade de poder interagi-los formando sistemas mais complexos, e surgiram os comandos elétricos, utilizando sistemas eletromecânicos e comandos com placas eletrônicas dedicadas. O problema para esses sistemas estava na dificuldade de se fazer qualquer mudança do comando ou procedimentos de controle, necessitando muitas vezes do desenvolvimento de um novo projeto de placa eletrônica.

As fábricas automotivas buscaram alternativas para esse

problema, surgindo os PLC´s ou CLP´s. CLP: é um equipamento que utiliza um microcontrolador

que já tem dispositivos de coleta de informações, armazenamento e saída de informações, onde pode ser programado, quantas vezes forem necessárias, substituindo assim as antigas placas eletrônicas dedicadas.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

6

Os CLP´s facilitam nossas vidas, mesmo se não forem

engenheiros, pode-se automatizar equipamentos, mecânicos, elétricos, pneumáticos e de uso no nosso lar.

1a. PRÁTICA:

Conhecer o equipamento:

~ ~ + C S1 S2 S3 S4 S5 S6

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10

- Ligação 220 Volts. - O led acenderá e iniciará um programa exemplo, que acionará em seqüência S1 – S6. - C representa o terminal comum dos relés internos S1 a S6 representados pelos led´s correspondentes, são as saídas. - E1 a E10, são as entradas que são acionadas pela tensão

(+).

2º DIA – ELEMENTOS DOS MICROPROCESSADORES

A área de microprocessamento é muito abrangente e nos dedicaremos a equipamentos que utilizarão a tecnologia de microcontroladores, mas para isso vamos ter agora, uma visão geral de microprocessadores.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

7

ELEMENTOS 1) FAMÍLIAS LÓGICAS: Vamos iniciar com linguagem binária, ou matemática de dois dígitos 0 e 1, simplificando, assumimos que:

SIM ou VERDADEIRO = 1 NÃO ou FALSO = 0

Tabela Lê-se a) OU ou OR A + B = C A ou B = C

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 1

Tabela Lê-se b) E ou AND A ٠ B = C A e B = C

0 ٠ 0 = 0

0 ٠ 1 = 0

1 ٠ 0 = 0

1 ٠ 1 = 1

Tabela Lê-se c) NÃO ou (NOR) A + B = C A ou B invertido = C

0 + 0 = 1

0 + 1 = 0

1 + 0 = 0

1 + 1 = 0

SÍMBOLO A C B

SÍMBOLO A C B

SÍMBOLO A C B

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

8

Tabela Lê-se d) NÃO E ou (NAND) A ٠ B = C A e B invertido = C

0 ٠ 0 = 1

0 ٠ 1 = 1

1 ٠ 0 = 1

1 ٠ 1 = 0

Tabela Lê-se e) OU EXCLUSIVA A + B = C A ou exclusiva B = C

0 0 = 0 0 1 = 1 1 0 = 1 1 1 = 0

Tabela Lê-se f) E COINCIDÊNCIA A B = C A E Coincidência B = C

0 0 = 1 0 1 = 0 1 0 = 0 1 1 = 1

Todos os outros elementos lógicos, derivam destes. 2) CIRCUITOS INTEGRADOS DIGITAIS: Representam eletricamente e fazem as operações lógicas acima descritas e suas associações. a) CMOS – São circuitos integrados digitais, cujas características são: o Série 54C / 74 C e 4000. o Alimentação 3 a 18 Volts. o Utilizam tecnologia Mosfet.

SÍMBOLO A C B

SÍMBOLO A C B

SÍMBOLO A C B

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

9

b) TTL – São circuitos integrados digitais, cujas características são: o Série 54 / 74. o Alimentação única de 5 Volts. o Utilizam somente transistores.

3) COMBINAÇÕES LÓGICAS:

Combinando-se os elementos lógicos mais simples

podemos elaborar equações matemáticas binárias, mais complexas, exemplos: o Flip-Flop (memórias

simples); o Contadores; o Divisores; o Codificadores;

o Decodificadores; o Multiplex; o Demultiplex; o Memórias; o Microprocessadores.

4) ELEMENTOS NÃO LÓGICOS:

São os chamados conversores analógicos para digitais (A/D) e conversores digitais para analógicos (D/A).

Os conversores A/D são componentes eletrônicos muito importantes, pois codificam valores analógicos (como: temperatura, pressão, tensão, etc) em números binários.

Conversores de tensão em freqüência (V/F) são conversores mais simples, mas com mesma eficiência, convertendo valores de tensão em pulsos ou freqüência.

5) MEMÓRIAS ELETRÔNICAS OU MEMÓRIAS SEMICONDUTORAS:

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

10

São locais onde são armazenados dados e programas em um sistema digital. a) Memória Ram ou memória de acesso aleatório, é destinada a leitura e gravação. A memória Ram necessita de alimentação para manter os dados armazenados. Uma memória Ram de 1024 x 4 representa que é formada por 64 linhas de 16 colunas (64x16 = 1024) de palavras de 04 bits (dígitos binários). Um byte = 4 bits. b) Ram Dinâmica (DRAM) usando tecnologia CMOS possibilitam concentrar até quatro vezes mais informações do que a Ram estática. As DRAM necessitam de pulsos de tensão para que os dados não se percam chamados de REFRESH (refrescamento). c) Memória ROM Memória de leitura, são memórias construídas por uma matriz de semicondutores que depois de gravados não perdem mais os dados e não podem ser mais regravados, sendo divididos em: c.1) PROM São programadas pelo usuário, a gravação é feita por gravadores especiais que queimam fusíveis internos. c.2) EPROM São memórias alteráveis podendo ser gravadas, apagadas e gravadas com os processos: o UVPROM – Utilizam luz ultravioleta que incidirá numa

janela no CI. o EPROM – Utiliza pulsos elétricos, apagamento,

assumindo nível lógico zero. Uma memória EPROM (2716) tem 16 K de memória,

representando uma organização de 2048 palavras de 08 bits cada, sendo alimentada por 5 volts. Obs.: 08 bits representa uma palavra de 08 dígitos binários ou 02 bytes.

Microprocessadores: É um conjunto de circuitos lógicos, encapsulados numa única pastilha de larga escala de

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

11

integração (LSI), capaz de realizar diversas funções, de forma seqüencial.

Temos 05 partes principais: circuitos de entrada, memória, unidade de controle, unidade de lógica e aritmética, saída.

Classificação dos microprocessadores: Conforme já vimos um bit assume o valor de 0 ou 1, o

microprocessador contém os circuitos necessários para a execução das funções de uma unidade central de processamento, funções codificadas em uma palavra de vários bits.

Os bytes são padronizados em palavras de 04 bits, 08 bits, 16 bits, 32 bits e 64 bits. Convencionou-se classificar os microprocessadores pela quantidade de bits em sua palavra (byte). São chamados de microprocessadores de 04 bits, 16 bits, 32 bits e 64 bits.

Estrutura dos microcomputadores:  Microprocessador;  Memória Rom e Ram;  Memória externa (flexível e rígida);  Periféricos de entrada (teclado, modem);  Periféricos de saída (vídeo, som).

ENTRADA SAÍDA UNIDADE DE CONTROLE

UNIDADE DE LÓGICA E ARITMÉTICA

MEMÓRIA

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

12

2a. PRÁTICA:

Faça as ligações no CLP conforme indicado:

~ ~ + C S1 S2 S3 S4 S5 S6

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10

Pode-se usar um fio ligado diretamente da saída (+) ás entradas E1 e E2, fazendo assim a função do interruptor fechado. LEGENDA INTERRUPTOR INTERRUPTOR FECHADO ABERTO LED “E” LIGADO = 1 LED “E” APAGADO = 0

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

13

Preencha a tabela verdade de acordo com o obtido nas saídas S1 e S2. TABELA VERDADE

E3 E4 E5 S1 S2

0 0 0 1 0

0 0 1 1 0

0 1 0 1 0

0 1 1 1 0

1 0 0 1 0

1 0 1 1 0

1 1 0 1 0

1 1 1 0 1

E3 E4 S1 E5 E3 E4 S2 E5 De acordo com o obtido nas saídas S1 e S2, responda: a) Qual a porta lógica de S1 ? ____________________________________________

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

14

____________________________________________ b) Qual a porta lógica de S2 ? ____________________________________________ ____________________________________________ c) Qual o símbolo da porta de saída S1 ? d) Qual o símbolo da porta de saída S2 ?

3º DIA – TERMOS TÉCNICOS TERMOS TÉCNICOS USADOS PARA CIRCUITOS MICROCONTROLADORES

Obs: Não é necessário saber os termos técnicos para sabermos programar o CLP, mas é interessante para entendermos a filosofia do mesmo.

1) Acumulador: É um registrador utilizado durante as operações de entrada e saída de dados.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

15

2) Registrador de instrução: Estes registradores operam como se fossem memórias Rom do chip, guardando código de instruções para controlar o chip.

3) Decodificação de instruções: Tem a função de decodificar as instruções contidas nos registradores.

4) Stack Pointer: Esse é um registrador que fornece um endereço de código de construção à unidade de memória, durante cada operação de busca de instrução.

5) Pinagens Padrões ou universais: a) Alimentação: VSS = terra ou GND VBB = - 5V VCC = + 5V VDD = + 12V b) Endereçamento: A0 – A15. c) Comunicação: BI-Direcional D0 – D7. d) Modo de espera: DBIN. e) Estado de espera de comando externo: WAIT. f) Escrita de memória externa: WR. g) Sinal de entrada que coloca via de dados e via de endereços em alta impedância: HOLD. h) Sinal de saída que coloca via de dados e via de endereços em alta impedância: HLDA. i) Sinal de entrada que avisa que tem sinal na via de dados: READY. j) Interrupção habilitada: INTE. k) Requisição de interrupção: INT. l) Retorno à posição zero da memória: RESET. m) Requisição de memória externa – MREQ n) Sinal para ativar o refrescamento de memória: RFSH o) Entrada prioritária acima da interrupção: NMI p) Sinal de relógio: Clock q) Sinal de atraso de leitura externa: RDY

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

16

Obs: Vale ressaltar os itens ‘g’ e ‘j’ .

g) A saída de um circuito digital pode assumir 03 estados:  0 = zero volts ;  1 = tensão de alimentação ;  Z = alta impedância, que representa que a saída não

mais alimentará com 0 volt ou 5 volts, mas ficará a disposição para receber informação sem interferir com o meio.

j) A interrupção de um processamento significa a parada na seqüência do programa para fazer outra instrução mais prioritária e depois retornar ao programa antes parado.

Obs: O clock representa a velocidade de processamento. O processamento segue dois caminhos distintos: 1º - Todo programa segue em seqüência pelo clock do circuito, dando prioridade às interrupções. 2º - O programa de timer independente segue individualmente sem necessitar do clock ou freqüência de processamento. OUTRAS FUNÇÕES :

Divisor somador, unidade de multiplexação e divisão, unidade de teste e proteção, unidade de segmentação, unidade de paginação, decodificador, fila de instrução, controle de barramento, porto, modo virtual, nível de prioridade. TIPOS DE CLP´S:

Temos basicamente 03 tipos principias:  Os CNC´s ;  Os CLP´s industriais ;  Os CLP´s compactos.

1) CNC (Controlador de comando numérico)

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

17

É um CLP dedicado e programável para atender a uma faixa de atividades.

No desenvolvimento das máquinas operatrizes de usinagem, sempre se procurou soluções que permitissem aumentar a produtividade e qualidade oferecendo flexibilidade necessária para usinagem de diferentes configurações de peças.

Os CLP´s de comando numérico (CNC) surgiram nos Estados Unidos nos meados de 1950, no MASSACHUSSETS INSTITUTE OF TECNOLOGY, desenvolvendo um sistema aplicável a máquinas-ferramentas para controlar a posição de fusos, de acordo com dados fornecidos do processador.

Comando numérico é um equipamento eletrônico capaz de receber informações e transmiti-las em forma de comando à máquina operatriz, de modo que esta sem a intervenção do operador, realize as operações na seqüência programada.

Seus programas são dedicados a funções matemáticas e entrada de sensores de posição, tensão, etc, e controlando bombas, motores trifásicos, servo mecanismo de precisão, utilizando um programa de CAD, chamado de MASTERCAN, familiarizado com desenhos em 2 e 3 dimensões.

2) CLP Industrial

Os CLP´s industriais tem uma constituição muito flexível de entradas e saídas, sendo todo ele modular e expansível em módulos armazenados em um Rack, adequando a necessidade do complexo, trabalhando independente ou se comunicando a outros CLP´s formando um gerenciamento complexo chamado de sistema supervisório, contendo interfaces homem–máquina, teclados, monitores, entradas

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

18

A/D e D/A, modens, todos em módulos se comunicando com o módulo CPU principal.

Os CLP´s industriais são de custo elevado por necessitarem de vários módulos de entrada, alimentação, processamento e saída, são utilizados em processos complexos.

3) CLP´s Compactos

São CLP´s que carregam em um único bloco, a fonte, o processador, a unidade de entrada digital e/ou analógica e saída digital e/ou analógica.

São equipamentos pequenos, de fácil programação e poucas vezes necessitando de equipamentos externos como:  IHM – Interface homem – máquina;  A/D e/ou D/A – Conversores.

Temos basicamente três tipos de linguagem para programação de CLP:

1º) Linguagem Estruturada - É uma linguagem de alto nível, de fácil compreensão e implementação, usando códigos de funções em forma de palavras ou termos de referência. 2º) Linguagem Ladder - Usando símbolos elétricos e diagramas, é usada por técnicos eletricistas e em áreas específicas.

3º) Linguagem em Diagrama de Bloco - Usando símbolos de blocos de funções, é usada em pneumática e em áreas específicas.

Obs: Para nosso curso abranger todas as áreas daremos uma introdução em linguagem de símbolos (Lader e diagrama de blocos) e vamos aprender a trabalhar com linguagem estruturada por ser universal.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

19

3a. PRÁTICA:

Ligar cargas à saída do CLP:

~ ~ + C S1 S2 S3 S4 S5 S6

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10

Objetivo: Utilização do CLP na ligação de cargas. Observar o funcionamento das lâmpadas, acendimento, apagamento, e ordem como ocorre. LEGENDA INTERRUPTOR LÂMPADA 02 PILHAS ABERTO DE 3 VOLTS TIPO AA (de lanterna) LIGADAS EM SÉRIE

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

20

4º DIA – INTRODUÇÃO A LINGUAGEM DE PROGRAMAÇÃO

TERMOS UTILIZADOS:

1) INFORMAÇÃO – Informações e dados são representados por meio de sinais.

2) SINAIS BINÁRIOS – São grandezas físicas a que se atribuem somente dois estados, como um contato aberto ou fechado de um interruptor.

3) SINAIS ANALÓGICOS – É a representação de uma grandeza que pode assumir no decorrer do tempo, qualquer valor dentro de uma faixa de valores.

4) INFORMAÇÃO DIGITALIZADA – Digitalizar uma grandeza analógica significa dividir a mesma, em vários segmentos, de forma que se possa fazer posteriormente uma relação, entre uma quantidade de segmentos e a grandeza medida. 5) ELEMENTOS DE COMANDO – São ligados à entrada do CLP, como acionadores binários, botões, sensores, etc, ou ligados à saída acionando contactores, relés, iluminação, controles, etc.

6) PROCESSAMENTO DO PROGRAMA – Quando escrevemos o programa, o compilador do Software, o transfere de forma binária para a memória do CLP, armazenado de forma seqüencial em que se encontram a lista de instruções, sendo processado de forma seqüencial e repetitiva.

7) TEMPO DE CICLO – Tempo necessário para a execução do programa (SCAN).

8) MEMÓRIA DE IMAGEM – No início de cada ciclo de programa, o sistema operacional verifica o estado atual de

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

21

todas as entradas e registra esta informação em uma área de memória que chamaremos de imagem das entradas, de maneira análoga à entrada, temos também uma memória imagem das saídas, após cada processamento as imagens de entrada e saída são atualizadas na memória específica.

CARACTERÍSTICAS DO CLP:

CLP NT - Entrada AC: 24 Vca/ 110 Vca/ 220 Vca; - 06 saídas a relé ou 06 saídas a transistor; - 08 entradas digitais; - 02 entradas rápidas; - 01 entrada analógica resistiva - 01 saída RS 232 - Endereçamento fixo: 02 portos: (entrada ou saída

do processador interno do CLP)

CLP NT.8 - Entrada AC: 24 Vca/ 110 Vca/ 220 Vca; - 10 saídas a relé ou 10 saídas a transistor; - 02 saídas a transistor PWM; - 01 saída para display; - 08 entradas digitais; - 02 entradas rápidas; - 02 entradas analógicas – 5V - 01 saída RS 232 - Endereçamento fixo: 02 portos: (entrada ou saída

do processador interno do CLP) CLP CONTROLE

- Entrada AC: 24 Vca/ 110 Vca/ 220 Vca; - 06 saídas a relé ou 06 saídas a transistor; - 08 entradas digitais; - 02 entradas rápidas; - 01 entrada analógica resistiva

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

22

- 01 saída RS 232 - Endereçamento fixo: 02 portos: (entrada ou saída

do processador interno do CLP) Porto D: D.0 – RX D.1 – TX D.2 – I e INT 1 D.3 – I e INT 2 D.4 – I D.5 – controle entrada D.6 – controle saída

Porto B: B.0 – I/O B.1 – I/O B.2 – I/O B.3 – I/O B.4 – I/O B.5 – I/O B.6 – I B.7 – I

Obs.: I – representa entrada; O – representa saída; I/O – entrada e saída; RX – recebe dados da serial; TX – transmite dados para serial;  Endereçamento Indicado:

Saída do CLP: S1 – B0 S2 – B1 S3 – B2 S4 – B3 S5 – B4 S6 – B5

As informações do porto B0 a B5 saem para as saídas S1 a S6 respectivamente, quando o porto D6 = 1.

Entrada do CLP: D4 entrada AD resistiva E1 – D2 E2 – D3

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

23

E3 – B0 E4 – B1 E5 – B2 E6 – B3 E7 – B4 E8 – B5 E9 – B6 E10 – B7

Os portos D2 e D3 são independentes e são INTERRUPÇÕES. As informações das entradas do porto B0 a B7 são lidas quando o porto D5 = 1.

Observe bem as entradas E1 e E2. Elas são ditas INTERRUPÇÕES pois, se necessário (um botão de STOP ou emergência, por exemplo), necessitarmos parar a execução do programa que esteja sendo executado e executarmos outra tarefa. Isto será melhor esclarecido adiante. LINGUAGEM POR DIAGRAMA DE BLOCOS: Funções: 1) Função E

símbolo A Q B entrada saída

TABELA DIAGRAMA

A B Q

0 0 0

0 1 0

1 0 0

1 1 1

2) Função OU

& “

A

B

Q

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

24

símbolo A Q B entrada saída

TABELA DIAGRAMA

A B Q

0 0 0

0 1 1

1 0 1

1 1 1

3) Inversor símbolo A Q entrada saída TABELA DIAGRAMA

A Q

0 1

1 0

4) Função NÃO E Símbolo A Q B

>= 1 “

A B

Q

& “

A

Q

& “

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

25

entrada saída TABELA DIAGRAMA

A B Q

0 0 1

0 1 0

1 0 0

1 1 0

5) Função NÃO OU símbolo A Q B entrada saída TABELA DIAGRAMA

A B Q

0 0 1

0 1 1

1 0 1

1 1 0

A

B

Q

>= 1 “

A B

Q

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

26

6) Função OU EXCLUSIVO símbolo A B Q A B entrada saída TABELA DIAGRAMA

A B Q

0 0 0

0 1 1

1 0 1

1 1 0

7) Contador símbolo E Q RST entrada saída E – entrada de contagem; RST – entrada para zerar contagem; C – número de vezes para contagem; S – quando a contagem = C, a saída é 1.

&

>= 1

A

B

Q

&

C

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

27

8) Temporizador: símbolo E Q entrada saída E – Habilitador do contador T – escolha do tempo π ╨ ▀ - Tipos: de pulso único, cíclico, temporizador comum e randômico, respectivamente.

Obs:Demais símbolos e comandos são chamados de dedicados, onde realizam operações matemáticas como soma, multiplicação, divisão, comparação, substituição, leitura e conversão de entradas analógicas, leitura de pulsos, etc.

4a. PRÁTICA: EXERCÍCIOS RESOLVIDOS 1) Automatizar um portão com controle de um único botão, para fechar e abrir. ABRE M1 M2

T π ╨ ▀

PORTÃO

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

28

O portão é acionado por motor. O portão fica em cima de um trilho com cremalheira. Existem dois sensores ou micros fim de curso, M1 e M2. o M1 – indica portão fechado; o M2 – indica portão aberto; o A – Botão para abrir e fechar o portão.

Se o portão estiver abrindo e ultrapassado um intervalo de tempo e M2 ainda não tiver sido acionado, o motor será desligado. TABELA

A M1 M2

0 0 0 Espera tempo (portão abrindo)

0 0 1 Portão aberto

0 1 0 Portão fechado

0 1 1 Defeito

1 0 1 Fechar portão

1 1 0 Abrir portão

1 1 1 defeito

DIAGRAMA A R1 A R2 M1 R1 R2 A M2 M2 M1 T T R1 R2 T

M

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

29

Obs: Podemos ver que para fazermos essa automação teríamos que usar:

o 01 botão com 03 contatos disponíveis; o 02 relés auxiliares; o 01 temporizador e o 02 micros com contatos disponíveis.

A lâmpada deverá ficar acesa somente no movimento do portão, indicando defeito se não apagar.

PROGRAMA CLP – DIAGRAMA DE BLOCO A R1 SAÍDA FECHAR M2 MOTOR T A A 10seg R2 SAÍDA ABRIR M1 MOTOR T

LEGENDA: M – MOTOR A – BOTÃO PARA ABRIR E FECHAR PORTÃO M1 – MICRO QUE INDICA PORTÃO FECHADO M2 – MICRO QUE INDICA PORTÃO ABERTO R1 – RELÉ AUXILIAR ESQUERDO R2 – RELÉ AUXILIAR DIREITO T – TEMPORIZADOR - LÂMPADA

>= 1

>= 1

&

>= 1

>= 1

&

T

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

30

M1 M2 SAÍDA M1 LÂMPADA M2

Obs. Os desenhos já estão gravados no software de programação do CLP que usa esse tipo de linguagem bastando somente dizer, qual comando usar que na tela do PC aparecerá o desenho específico. A linguagem é simples, mas complicado ao entendimento na primeira vista.

~ ~ + C S1 S2 S3 S4 S5 S6

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10

A M1 M2

&

>= 1

&

M

220 Vca

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

31

5º DIA – LINGUAGEM DE PROGRAMAÇÃO LADER É a linguagem mais simples de visualização da estrutura de programação, mas restrita a um determinado meio de utilização. SIMBOLOGIA

1) Entrada ou contato auxiliar aberto 2) Entrada ou contato auxiliar fechado 3) Saída ou relé virtual 4) Associação OR A B C 5) Associação AND A B C 6) Associação AND + OR A B C E D

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

32

7) Associação AND contida no OR A B C F D E 8) Associação NÃO E (NAND) A B C 9) Associação NÃO OU A B C EXEMPLO DE UMA ASSOCIAÇÃO COMPLEXA 10) Temporizador tempo número

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

33

tipo 11) Contador C RST 12) Funções especiais função – equação 13) Comparadores 14) Contadores especiais 15) Temporizadores Especiais

V1 Símbolo V2 Q

Símbolos ! = F “ igual a “ > F “ maior “ < F “ menor ” >= “ maior ou igual “ <= “ menor ou igual “ >< “ diferente “

CU CD S Q R

CU – Entrada de contagem crescente. CD – Entrada de contagem decrescente. R – Reset. S – Trava.

Símbolo Q R

Símbolos SP – pulso SE – prolongamento sinal SD – retardo na ligação SS – retardo com retenção SF – retardo no desligamento

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

34

16) Leitor de palavras

BINÁRIO 20 21 22 23 24 25 26 27 28 29

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10

DECIMAL 1 2 4 8 16 32 64 128 256 512

Função que lê as palavras como se fossem números. W

5a. PRÁTICA: EXERCÍCIO Controle de duas esteiras alimentadoras de uma linha de produção. Sensor 3 Sensor 1 ESTEIRA PRINCIPAL Motor 2 Motor 1 Sensor 2 ESTEIRA ALIMENTADORA PAINEL DE COMANDO

SAÍDA

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

35

Condições: 1) Ao ligar o sistema é ligado o motor1 e depois de 15 segundos, o motor 2. 2) As esteiras são para transporte de caixas. Quando o sensor 1 for acionado, desliga a esteira principal. 3) Se os sensores 2 e 3 estiverem acionados ao mesmo tempo, desliga a esteira de alimentação. 4) Se os térmicos dos motores foram acionados, liga o alarme, acionando o botão de rearme alarme pela botoeira e os térmicos não forem desabilitados, desliga a sirene, mas a lâmpada da botoeira ficará ligada. Entradas: Sensor 1 – E1 Sensor 2 – E2 Sensor 3 – E3 Térmico M1 – E4 Térmico M2 – E5 Botão Liga – E6 Botão Desliga – E7 Botão Rearme Alarme – E8 Saídas: Contactor M1 + Lâmpada liga – S1

Alarme Liga Desl. Rearme Alarme

Térmico M1

Térmico M2

LEGENDA: SINALEIRO BOTOEIRA C/ LÂMPADA ALARME SONORO

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

36

Contactor M2 – S2 Lâmpada térmico M1 – S3 Lâmpada térmico M2 – S4 Alarme acústico – S5 Lâmpada alarme – S6 Obs. - Não terá lâmpada na botoeira desliga. - Os sinaleiros dos térmicos ficarão ligados quando estiverem Ok. PROGRAMA LADER E4 E5 AUX.1 E6 AUX.1 E7 AUX.2 AUX.2 Temp1 15seg AUX.1 S6 Temp2 1seg S6 T2 E8 S5 S5 E1 AUX.2 S1 E2 E3 AUX.3

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

37

AUX.3 T1 S2 E4 S3 E5 S4 EXEMPLO DE COMO PODE SER FEITA A LIGAÇÃO NO CLP:

~ ~ + C S1 S2 S3 S4 S5 S6

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10

E1 – sensor 1 E2 – sensor 2 E3 – sensor 3 E4 – térmico M1

E5 – térmico M2 E6 – liga E7 – desliga E8 – rearme alarme

6º DIA – LINGUAGEM ESTRUTURADA – INÍCIO 6a. PRÁTICA:

220 Vca

M1 M2

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

38

Entraremos agora ao estudo de linguagem estruturada,

muito poderosa e muito abrangente, que podemos utilizar em todos os ramos da automação: predial, comercial, industrial e de diversão.

O CLP NT utiliza esta linguagem e você terá um excelente CLP para ser utilizado em qualquer área, em automações industriais, comerciais, ou até mesmo em sua residência.

Dividiremos esta etapa em:  Instalação do compilador da linguagem estruturada,

sendo necessário um PC com windows 95 (ou superior) e saída paralela disponível.

 Conhecimento dos comandos principais e exercícios e exercícios práticos.

Gostaríamos que aproveitasse e se dedicasse com

entusiasmo às próximas páginas e paralelamente utilizaremos o CLP para juntos, podermos visualizar outras possibilidades que ao nosso redor podemos colocar comandos e ações processadas, assegurando maior eficiência, velocidade e segurança ao sistema ou equipamento que para o próximo curso entraremos no mundo das interfaces homem-máquina e dos conversores A/D. Juntamente com o conversor A/D ou IHM (interface homem- máquina) que virá com o curso de mesmo valor.

Inserir o disquete ou CD no drive específico e através do explorer do windows, dar um duplo clique no arquivo (SETUP.EXE). 1) Abrirá uma janela de apresentação do programa compilador. Clique na tecla (NEXT).

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

39

2) Abrirá outra janela de aceitação do programa. Clique em (YES). 3) Abrirá a janela de informações. Escreva seu “nome” e “companhia” ou “profissão” e clique em (NEXT). 4)Abrirá outra janela mostrando o local onde será instalado o programa. Clique em (NEXT). 5) Abrirá outra janela indicando o grupo onde o programa será instalado, clique em (NEXT). 6) Abrirá a ultima janela para encerrar a instalação, clique em (NEXT). 7) Como chamar o programa instalado: Abra com o explorer do windows o arquivo em: C:\PROGRAM FILES\MCS ELETRONICS\BASCON-AVR Dando um duplo clique. JANELA DO PROGRAMA.

BASCOM - ٱ x

FILE EDIT PROGRAM TOOLS OPTIONS WINDOW HELP

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

NOME E CAMINHO DO ARQUIVO - ٱ x

PROGRAMA

Comandos da palheta principal do programa (de 1 à 21).

FILE

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

40

1 FILE OPEN: para abrir um arquivo.

2 ou teclando CTRL + O,

FILE CLOSE: Fecha o programa. Se ainda não foi salvo,

perguntará qual nome e onde guarda-lo.

3 FILE SAVE: salvar o programa.

FILE SAVE AS: salvar o programa com outro nome e/ou

outro diretório.

4 FILE PRINT PREVIEW: prepara o arquivo para impressão.

5 FILE PRINT: imprime o arquivo atual na impressora

escolhida do windows.

FILE EXIT: sair do programa.

6 : visualiza impressão.

EDIT

EDIT UNDO ou teclando CTRL + Z: desmancha o último texto

manipulado.

EDIT REDO ou teclando CTRL + SHIFT + Z: refaz o último

texto desmanchado.

7 EDIT CUT ou teclando CTRL + X : corta o texto

selecionado.

8 EDIT COPY ou teclando CTRL + C : coloca o texto

selecionado na tela de programa.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

41

9 EDIT PASTE ou teclando CTRL + V : cola o texto dentro da

pasta na posição atual.

12 EDIT FIND ou teclando CTRL + F : verifica o texto em seu

programa, posiciona o cursor no texto.

EDIT FIND NEXT – F3 : Busca o último item especificado.

EDIT REPLACE: repõe o texto em seu programa.

PROGRAM

PROGRAM COMPILE – F7 : com esta opção você pode

compilar seu programa atual e será salvo automaticamente. Compilar um programa significa transforma-lo em linguagem binária para podermos gravar no CLP. Obs. Quando compilamos um programa o compilador gera os seguinte arquivos:  PROGRAMA.BIN : Arquivo binário.  PROGRAMA.DB6 : Arquivo para simulador.  PROGRAMA.OBJ : Arquivo objeto.  PROGRAMA.ERR : Arquivo de erros do programa.  PROGRAMA.RPT : Arquivo de relatório.  PROGRAMA.EEP : Arquivo de imagem da EPROM.

13 PROGRAM SYNTAX CHECK SHORTCUT ou teclando

CTRL + F7 : verifica erros de sintaxe no programa.

15 PROGRAM SHOW RESULT ou teclando CTRL + W : dá

informações em forma de relatório do programa, como:  nome do programa;

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

42

 data e hora da ultima compilação ;  versão do compilador;  freqüência em baud na transmissão;  memória Ram, etc.

14 PROGRAM SIMULATE – F2 : Abrirá uma nova janela

onde podemos simular o programa antes de gravarmos no CLP. JANELA DO PROGRAMA.

AVR SIMULATOR - ٱ x

1 2 3 4 5 6 7 8 9 10 11 12 13

VARIÁVEL LOCAL VISUALIZAR ABRIR INTERRUPÇAO

VARIÁVEL VALOR HEXADECIMAL BINÁRIO

PROGRAMA

LINHA DE PROGRAMA

a) THE TOOLBAR:

1 Inicia a simulação, o simulador pausará quando você

pressionar o botão 2 PAUSE.

3 Botão Stop : pára a simulação e zera todas as variáveis.

4 Botão Step – F8 : executará uma linha de programa e

pausará.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

43

5 Botão Step Over ou teclando SHIFT + F8 : faz a mesma

função do Botão Step, porém executa sub-programas.

6 Botão Run To : simulará a atual linha.

9 Este botão abrirá a janela de registro mostrando os valores

dos registros em hexadecimal.

10 Este botão abrirá uma janela e mostrará os registros de

I/O.

11 Este botão abrirá a janela de memória do programa,

durante a simulação. Você poderá mudar os valores das

variáveis na janela de registro 10 e também na janela de

memória.

Debaixo da barra de ferramenta na etiqueta com as páginas, podemos acrescentar variáveis clicando duas vezes na coluna VARIABLE.

A tecla LOCALS demonstra as variáveis em sub ou função.

A tecla “WATCH OU VISUALIZAR” é usada para entrar com uma expressão que será avaliada durante estimulação.

A tecla “UP ou ABRIR” : exibe a posição no microprocessador SREG REGISTER, bastando escolher os FLAGS, que mostram os quadrados em branco, bastando marca-los, escolhendo para mostrar os valores mínimos e máximos do SOFTWARE STACK, o HARDWARE STACK e FRAME POINTER.

A tecla INTERRUPTS : desabilita o programa em execução.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

44

7 Botão “THE HARDWARE SIMULATOR” : Abrirá uma janela

que simulará em forma de pontos luminosos os portos do processador: Porto B0 à B6; Porto D0 à D7.

13 Tecla “PROGRAM SEND TO CHIP” abrirá uma janela

oferecendo opções do programa. JANELA DO PROGRAMA.

AVR SP PROGRAMMER - ٱ x

FILE BUFFER CHIP

1 2 3 4 5 6 7 8 9 10 CHIP 90S2313 ▼

Escolher

FLAS ROM CCPROM

1 FILE EXIT : retorna para o editor.

2 BUFFER CLEAR : limpa buffer.

BUFFER LOAD FROM FILE : carrega o arquivo dentro do buffer. BUFFER SAVE TO FILE : salva o conteúdo.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

45

CHIP IDENTIFIQUE : Abrirá uma janela para escolhermos o processador do CLP. Veremos na próxima aula. WRITE BUFFER INTO CHIP : Programa o buffer dentro do chip ROM ou EEPROM. READ CHIPCODE INTO BUFFER : Lê os códigos ou dados do chip. RCEN : Escreve um bit para habilitar o oscilador interno, é uma variável do simulador do compilador.

7º DIA – PREPARANDO O PROGRAMA PARA CONVERSAR COM O CLP

JUNTOS 7a. PRÁTICA

Na tela principal, tecle na palheta superior em OPTION,

escolha COMPILER, escolha CHIP, aparecerá uma janela de configuração, proceda como se segue.

BASCON – AVR Options x Compiler Communication Environment Simulator Programmer Monitor Printer

Chip Output Communication 12C,SPI, 1 WIRE LCD

Chip 90S2313

XRAM NONE

HW Stack 32 NONE Framesize 50

Ok Cancel

Flash ROM 2K2

SRAM 128

EEPROM 128

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

46

Janela para selecionar o tipo de processamento, selecionando RAM externa, especifica o tamanho máximo de programa, especifica o tamanho do frame. Cada local tem um espaço para armazenar. OPTIONS COMPILER OUTPUT

Para a seleção e geração de um arquivo binário, seleção e geração de um arquivo DEBUG, seleção de arquivo HEXADECIMAL, seleciona arquivo REPORT, seleciona arquivo de erro.

Para selecionamento dos arquivos necessários para simulação, debugar e compilar o programa escrito para gravar no CLP.

BASCON – AVR Options x Compiler Communication Environment Simulator Programmer Monitor Printer

Para selecionamento dos arquivos necessários para simulação, debugar e compilar o programa escrito para gravar no CLP.

Output

Chip Communication 12C,SPI, 1 WIRE LCD

Ok Cancel

Binary file

Debug file

HEX file

Report file

Error file Size warning

AVR Studio object file

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

47

OPTIONS COMPILER COMMUNICATION

BASCON – AVR Options x Compiler Communication Environment Simulator Programmer Monitor Printer

Seleciona a velocidade de transmissão de dados em BAUD e a freqüência de clock do CLP. OPTIONS COMPILER 12C, SPI, 1 WIRE

BASCON – AVR Options x Compiler Communication Environment Simulator Programmer Monitor Printer

Janela para selecionar a porta de comunicação do CLP para programação. OPTIONS COMPILER LCD

BASCON – AVR Options x Compiler Communication Environment Simulator Programmer Monitor Printer

Communication

Chip Output 12C,SPI, 1 WIRE LCD

Ok Cancel

Frequency 10.000.000

Baudrate 9600 ▼

Error 1%

12C, SPI, 1WIRE Output Communication LCD

Ok Cancel

Chip

12C SCL port

SDA port

1 WIRE

1 Wire

PORT B.0

PORT D.0 ▼

PORT B.0 ▼

SPI

Clock

MOSI

MISO

SS □ Use Hardxare SPI

PORT B.0

PORT B.0

PORT B.0

PORT B.0

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

48

Janela de selecionamento do DISPLAY do simulador a ser usado. OPTIONS COMMUNICATION

BASCON – AVR Options x Compiler Communication Environment Simulator Programmer Monitor Printer

Esta janela tem opções de modificar o sinal de comunicação para o terminal emulador. OPTIONS ENVIRONMENT

BASCON – AVR Options x

LCD LCD type

Output Communication 12C, SPI, 1WIRE

Ok Cancel

Chip

BUS mode

◙ 4-bit ○ 8-bit

LCD address

RS ddress

□ Make upper 3 bits 1 in LCD designer

16 * 1 a

8000

C000

Enable

RS

DB7

DB6 DB5 DB4

PORT D.8

PORT D.7

PORT D.2

PORT D.3

PORT D.5

PORT D.4

Data mode

◙ pin ○ bus

Com Port Handshake Baudrate Emulation Panity Font Databits Backcolor Stopbits

Ok Cancel

COM 1

1200 ▼

None ▼

TTY

None

1

8

Font

Navy ▼

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

49

Compiler Communication Environment Simulator Programmer Monitor Printer

Janela de opções de manipulação do editor de

programa.

OPTIONS ENVIRONMENT OF FONT BACK GROUND COLOR – Cor do editor windows, cor do fundo. KEYWORD COLOR – Cor reservada para trabalho. COMMENT COLOR – Comentário da cor. ASC COLOR – Cor usada para ASM. HW REGISTERS – Cor usada para janela de registros. FONT – clique no LABEL para selecionar outra fonte do editor windows.

Editor

Font IDE

Autoindent Comment position

Reformat Code

Don´t change case

Reformat BAS files

Smart TAB

Sintax highlight

Show margin

Keymapping

No reformat extension

TAB size

060

3

DEFAULT ▼

DAT

Size of new editor window

Normal Maximized

Ok Cancel

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

50

BASCON – AVR Options x Compiler Communication Environment Simulator Programmer Monitor Printer

DESCRIÇÃO DE OPÇÕES

BASCON – AVR Options x Compiler Communication Environment Simulator Programmer Monitor Printer

Janela para configurar as barras de ferramentas. Passando por essa etapa e configurando todas essas janelas já podemos nos comunicar com nosso CLP podendo gravar o nosso programa no CLP NT. ATALHOS DO PROGRAMA EDITOR

Font

Editor IDE

Back ground color Editor Font

ASM color

Keyword color

Comment color

HW register color

Italic

Bold

Font ▼

Ok Cancel

White

Navy

Green

Purple

Maroon

IDE

Font

Tooltips File location

Show Toolbar

Save file as .. for new files

Ok Cancel

Editor

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

51

Não é necessário decorar todas, o tempo fará com que você utilize alguns com mais freqüência. LEFT ARROW – um caractere para esquerda. RIGHT ARROW – um caractere para direita. UD ARROW - uma linha acima. DOWN ARROW – uma linha abaixo. HOME – para começo da linha. END – para fim da linha. PAGE UP – página acima. CTRL + Y – apagar linha corrente. F1 – ajuda. F3 – finalizar texto. F5 – rum programa. F7 – compilar programa. CTRL + F7 – checar sintaxe. CTRL + M – simular. CTRL + N – novo arquivo. CTRL + P – imprimir arquivo. CTRL + S – salvar arquivo. CTRL + W – resultado em relatório da compilação. PALAVRAS RESERVADAS

São as palavras que representam os comandos, e por isso não devemos usa-las como comentário de programa, nem como nome de variável ou constante. Λ ! ; $BAUD $CRYSTAL $DATA $DEFAULT $END

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

52

$EEPROM $EXTERNAL $INCLUDE $LCD $LCDRS $LCDPUTCTRL $LCDPUTDATA $LIB $REGFILE $SERIAL INPUT $SERIAL INPUT 2 LCD $SERIAL OUTPUT $XRAMSIZE $XRAMSTART 1WRESET 1WREAD 1WWRITE ACK ABS ( ) ALIAS AND AS ASC ( ) AT BAUD BCD BIT BITWAIT BLINK BOOLEAN BYTE

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

53

BYVAL CAPTURE1 CASE CHR ( ) CLS CLOSE COMPARE1A COMPARE1B CONFIG CONST COUNTER COUNTER0 COUNTER1 COUNTER2 CPEEK ( ) CRYSTAL CURSOR DATA DEBOUNCE DECK DECLARE DEFBIT DEFBYTE DEFLNG DEFWORD DEGSNG DEFLCDCHAR DEFINT DEFWORD DELAY DIM DISABLE DISPLAY

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

54

DO DOWNTO ELSE ELSEIF ENABLE END ERAM ERASE ERR EXIT EXTERNAL FOR FOURTH FOURTHLINE FUNCTION GATE GETAD ( ) GETRCS ( ) GOSUB GOTO HEXVAL ( ) HIGH ( ) HOME 12CRECEIVE 12CSEND 12CSTART 12CSTOP 12CRBYTE 12CWBYTE IDLE

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

55

IF INCR INKEY INP ( ) INPUT INPUTBIN INPUTHEX INT0 INT1 INTEGER INTERNAL INSTR IS LCASE ( ) LCD LEFT LEFT ( ) LEN ( ) LOAD LOCAL LOCATE LONG LOOKUP ( ) LOOKUPSTR ( ) LOOP LTRIM ( ) LOW ( ) LOWER LOWERLINE MAKEBCD ( ) MAKEDEC ( ) MAKEINT ( ) MID ( )

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

56

MOD MODE NACK NEXT NOBLINK NOSAVE NOT OFF ON OR OUT OUTPUT PEEK ( ) POKE PORTA PORT B PORT A PORT C PORT D PORTE PORTF POWERDOWN PRINT PRINTBIN PULSE OUT PWM1A PWM1B READ READEEPROM REM RESET

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

57

RESTORE RETURN RIGHT RIGHT ( ) ROTATE RTRIM ( ) SELECT SERIAL SET SHIFT SHIFTLCD SHIFTCURSOR SHIFTIN SHIFTOUT SOUND SPACE ( ) SPIINIT SPII SPIMOVE SPIOUT START STEP STR ( ) STRING ( ) STOP STOP TIMER SUB SWAP THEN THIRD THIRDLINE TIMER 0 TIMER 1

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

58

TIMER 2 TO TRIM ( ) UCASE UNTIL UPPER UPPERLINE VAL ( ) VARPTR ( ) WAIT WAITKEY ( ) WAITMS WAITUS WATCHDOG WRITEEEPROM WEND WHILE WORD XOR XRAM

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

59

FUNDAMENTOS DE LINGUAGEM 1) CARACTERES  Numéricos : 0 a 9.  Alfanuméricos : A a Z.

2) DÍGITOS  Binários : 0 e 1.  Hexadecimal :0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D,E,F.

3) CARACTERES ESPECIAIS  BLANC (espaço) :  SINGLE (apostrofo) : ‘  ASTERISKS (multiplicação) : *  PLUG SIGN (soma) : +  COMMA (vírgula) : ,  MINUS SIGN (menos) : -  PERIOD (ponto decimal) : .  SIASH (divisão) : /  COLON : :  DOUBLE : “  SEMICOLON : ;  LESS TRAN (menor) : <  EQUAL SING : =  GREATER THAN (maior) : >  BACKSLASH (divisão inteira) : \  EXPONENT : ^

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

60

4) TIPOS DE DADOS a) BIT (1/8 BYTE) = 0 ou 1. b) BYTE = 0 a 255. c) INTEGER = -32,768 A + 32,767. d) WORD = 0 A 65535. e) LONG = -2147483648 A 2147483648. f) SINGLE = 32 BIT g) STRING = acima de 254 BYTES.

É muito importante se distinguir os valores máximos e mínimos de cada TIPO, pois, dependendo do programa, pode-se ter grandes dores de cabeça procurando por cálculos que não dão certo.

5) TIPOS DE VARIÁVEIS. a) valor constante, ex. A = 5 , C = 1,1. b) variáveis alfanuméricas, ex. abc = def , f = j. c) constantes, ex. temp = C+5. d) variável hexadecimal – prefixo &H, ex. a = &H A e) variável binária, ex. C = &B101011.6) OPERADORES a) ARITMÉTICOS : +, -, *, \, Λ. b) RELACIONAIS : = igualdade X = Y. <> diferença X <> Y. < menor que X < Y > maior que X > Y <= menor ou igual X <= Y.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

61

>= mayor ou igual X >= Y. c) LÓGICOS: NOT: negação. AND: conjunção. OR: disjunção. XOR: exclusive OR. Ex. Se X = Y and Z, escreva: X = J. Obs. Se lê : se em X, Y and Z, escreva X = J, quer dizer, se Y ou Z assumir o mesmo valor X = J.

8º DIA – PROGRAMANDO O CLP E CONHECENDO OS COMANDOS

JUNTOS 8a. PRÁTICA

Para começar a programar, devemos conhecer a

estrutura do programa. 1a. Descrição das variáveis. 2a. Rotinas do programa. 3a. Sub-rotinas do programa. 4a. Descrição dos timer internos; Descrição das interrupções. Para jogar os programas do PC ao CLP, basta mandar compilar o programa, teclando F7,quando estiver na tela principal e o programa não aparecendo nenhum erro, clicar

em 18 (Run Programmer) da tela principal com o botão direito

do mouse, na tela que aparecer, escolher V AUTO VERIFY,

LPT 378 PORT DELAY 0, quando for gravar o CLP, clicar

com o botão esquerdo do mouse na tecla 18(Run Programer), que o programa será carregado no CLP.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

62

Estaremos ensinando e utilizando cada comando de programa da forma necessária ao uso de forma utilizável.

Obs. Todos os exemplos podem ser compilados e gravados no CLP. 1O. comando: $BAUD e $CRYSTAL

Para escolher a velocidade de transmissão e CLOCK do CLP independente do DEFAULT original. Sintaxe: $BAUD = variável. $CRYSTAL = variável. Obs. Quando colocamos um apostrofo (‘) no início da linha de programa, a linha fica somente como comentário de programa, não sendo compilada. EXEMPLO PROGRAMA 1

Quando tiver sinal na entrada E1, a saída S1 ficará piscando em intervalos de 2 segundos. ‘ programa exemplo_led piscando declarações. ‘ DECLARAÇÕES config portb = input ‘ port B = entrada. config portd = input ‘ input D = entrada. portb = 0 ‘ pinos do porto B estão em baixa. portd = 255 ‘ pinos do porto D estão em alta. declare sub sair ( ) declare sub ler() ‘ sub-rotina. $baud = 1200 $crystal = 10000000 ‘ 10 MHz dim E1 as byte ‘ ROTINAS DO PROGRAMA do ler

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

63

if E1 = 0 then portb.0 = 1 sair wait 2 else portb.0 = 0 sair wait 2 end if loop sub sair() portd.6 = 0 waitms 10 port.6 = 1 waitms 10 end sub return sub ler() portb = 255 portd.5 = 1 E1 = pind.5 Portd.5 = 0 Portb = 0 End sub return

Neste primeiro exemplo vemos as sub rotinas sub sair() e sub ler(). Estas rotinas são deveras importante na utilização do CLP-NT, pois elas controlam o estado do controlador de Entrada/Saída.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

64

2O. comando: ALIAS

Indica uma variável a um pino. Sintaxe: variável alias pino. EXEMPLO PROGRAMA 2

Fazer uma lógica E com duas entradas E1, E2 e saída S1. ‘ programa exemplo_porta E de 2 entradas. ‘ DECLARAÇÕES config portb = inputconfig portd = inputportb = 0portd = 255declare sub sair ( )dim E as byte ‘ ROTINAS DO PROGRAMA do E1 alias portd.2 E2 alias portd.3 E = E1 and E2 Portb.0 = E Sair loop sub sair ( ) ‘ rotina para dar portd.6 = 0 ‘ um pulso no waitms 10 ‘ porto D6 para portd.6 = 1 ‘ ativar a saída end sub return ‘ S1 = B0

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

65

3O. comando: ABS ( )

Retorna o valor absoluto de um valor numérico. Sintaxe: VAR = ABS (var2) Onde VAR = BYTE, INTEGER, WORD, LONG VAR 2 = INTEGER, LONG

Obs. O comando “print” manda os dados para a saída serial do CLP NT.

Utilizaremos um pequeno software, para receber as informações do CLP no PC, leia a última página.

EXEMPLO PROGRAMA 3 dim A as integer ‘ declaração dim C as integer ‘ declaração open “ comd.1:1200,8,n,1,inverted” for output as #1 portd = 0 portb = 0 portd.6 = 1 waitms 10 portd = 0 A =-8 C = abs(A) Print #1 , C Wait 2 Loop end Chame o programa Terminal e escolha 1200baud e Hex e conectar o terminal na serial do computador.

(80)

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

66

4O. comando: ASC

Converte um valor STRING em um valor ASCII. Sintaxe: VAR = ASC (STRING) Onde VAR = BYTE, INTEGER, WORD, LONG STRING = STRING, CONSTANT EXEMPLO PROGRAMA 4 dim A as byte dim C as string *10 ‘ 10 dígitos alfanuméricos open “comd.1:1200,8,n,1,inverted” for output as #1 portb = 0 portd = 0 portd.6 = 1 waitms 10 portd = 0 do A = “ABC” C = abs(A) print #1 , C wait 2 loop programa Terminal, escolha end 1200 baud e hex 5O. comando: BCD

Converte a variável em STRING Sintaxe: PRINT BCD (VAR)

(BB) (C0) (02)

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

67

LCD BCD (VAR) Onde VAR = BYTE, INTEGER, WORD, LONG, CONSTANT 6O. comando: CHR

Converte uma variável ou uma constante em caracter Sintaxe: PRINT CHR (VAR) Onde S = CHR (VAR) EXEMPLO PROGRAMA 6 - Generico dim A as byte A = 65 Print CHR (a) End 7O. comando: CONFIG INTX

Configura interrupção. O CLP NT tem 2 interrupções, que podemos usar como contador rápido, calcular velocidade, freqüência, tempo de subida, tempo de descida. Sintaxe: CONFIG INT X = ESTADO Onde ESTADO = RISING FALLING RISING – Gerar uma interrupção quando o pino estiver ativo FALLING – Gerar uma interrupção quando o pino, ativo, for desativado. X = 0 ou 1. O Valor de X pode ser 0 ou 1, definindo a interrupção a ser utilizada. EXEMPLO PROGRAMA 7

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

68

O programa calculará o tempo de rotação de uma máquina, se maior que 100, desligar a máquina. Micro ou sensor Eixo da máquina disco E1 = D2 entrada de sinal do micro S1 = saída para desligar o motor ‘ DECLARAÇÕES config int0 = rising config timer1 = timer , prescaler = 64 portb = 0 portd = 255 config portd = input dim velocidade as Word dim tempo as Word declare sub sair() on timer1 timer_isr on int0 int0_isr enable timer1 enable int0 enable interrupts start timer 1 do if velocidade > 100 then portb.0 = 0 sair else portb.0 = 1 sair

O fator prescaler= 64 serve

para definir o tempo de

ativação do timer.

Toda vez que se passarem

64ms a rotina timer_isr

será executada.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

69

end if wait 2 loop sub sair() portd.6 = 0 waitms 10 portd.6 = 1 waitms 10 end sub return int0_isr: velocidade = velocidade + 1 if tempo > 100 then tempo = 0 end if return timer1_isr: tempo = tempo + 1 if tempo > 1000 then tempo = 0 end if return Obs: as sub rotinas é uma constante em muitos programas do CLP, como as sub rotinas de SAIR, LER e interrupições. Veremos mais à frente o modo de se trabalhar melhor com os timers do CLP.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

70

~ ~ + C S1 S2 S3 S4 S5 S6

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10

micro

9º DIA – CONTINUAÇÃO DOS COMANDOS JUNTOS

9a. PRÁTICA 8O. comando: CONFIG TIMER0

Configura o temporizador ou contador0. Sintaxe: CONFIG TIMER0 = COUNTER, EDGE CONFIG TIMER0 = TIMER 0, PRESCALE = 1, 8, 64, 256, 1024 EDGE = RISING/FALLING VER EXEMPLO ANTERIOR

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

71

9O. comando: CONFIG TIMER1

Configura o temporizador ou contador 1. Sintaxe: CONFIG TIMER1 = COUNTER, EDGE = RISING/FALLING,

NOICE CANCEL = I/O, CAPTURE EDGE = RISING/FALLING,

CONFIG TIMER1 = TIMER, PRESCALE = 1, 8, 64, 254, 1024 CONFIG TIMER1 = PWM, PWM = 8,

COMPARE A PWM = CLEAR UP/CLEAR DOWN/DISCONNECT, COMPARE B PWM = (SEE A)

Obs. EDGE: selecionar para contra em alto ou baixo. CAPTURE EDGE: captura o tempo de uma entrada de registro em alto ou baixo. NOICE CANCELING: para cancelar ruído você pode providenciar valor1. PRESCALE: o time é conectado a um sistema de clock, seleciona um divisor de clock com os parâmetros de valores 1, 8, 64, 256, 1024. O time pode ser usado no modo PWM. Este modo tem a função de gerar pulsos modulados. Este modo é deveras importante para controles transistorizados de motores CC por exemplo.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

72

10O. comando: CONFIG WATCHDOG

Programa tempo para verificar travamento do programa.

Sintaxe: CONFIG WATCHDOG = TIME TIM = mili-segundos = 16, 32,64,128,256,512,1024 e 2048 resetando o programa após esse tempo, caso o programa não recomece. EXEMPLO PROGRAMA 10 “declarações portb = 0 portd = 255 config watchdog = 2048 ‘ 2 seg ≈ start watchdog ‘ início watchdog dim I as word ‘ I = constant declare sub sair() portb.0 = 1 sair wait 2 for I = 1 to 10000 waitms 1 portb.0 = 0 next end sub sair() portd.6 = 0 waitms 10 portd.6 = 1 waitms 10 end sub

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

73

return Obs. O programa nunca chegará a contagem de I = 10000, porque estrapolará o tempo de 2,048 seg, resetando o programa. 11O. comando: CONFIG PORT

Configura o porto ou o pino. Sintaxe: CONFIG PORT X = STATE CONFIG PINO Y = STATE STATE INPUT – direciona os dados para entrada. OUTPUT – direciona os dados para saída. EXEMPLO PROGRAMA 11

Programa de alarme residencial, usando 8 entradas, 1 botão de rearme alarme, 1 botão de desliga sirene, 1 saída para ligar uma lâmpada de sinalização e uma saída para ligar a sirene. As 8 entradas são micros ou sensores instalados em janelas e portas. ‘ DECLARAÇÕES config portb = input config portd = input portb = 0 portd = 255 portd.5 = 0 dim E1 as byte, E2 as byte, E3 as byte, E4 as byte dim E5 as byte, E6 as byte, E7 as byte, E8 as byte dim E9 as byte, E10 as byte, A as byte declare sub ler() declare sub sair() ‘ ROTINAS DO PROGRAMA do

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

74

ler if A = 0 then if E3=0 or E4=0 or E5=0 or E6=0 or E7=0 or E8=0 or E9=0 or E10=0 portb.0 = 1 portb.1 = 1 A = 1 Sair Wait 1 End if End if If A = 1 and E2 = 0 then Portb.1 = 0 Portb.0 = 0 Sair Wait 1 End if If A = 1 and E1 = 0 then Portb = 0 Sair A = 0 Wait 4 End if Loop Sub sair() Portd.6 = 0 Waitms 10 Portd.6 = 1 Waitms 10 End sub Return Sub ler() Portb = 255

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

75

Portd.5 = 1 Waitms 10 E1 = pind.2 E2 = pind.3 E3 = pinb.0 E4 = pinb.1 E5 = pinb.2 E6 = pinb.3 E7 = pinb.4 E8 = pinb.5 E9 = pinb.6 E10 = pinb.7 Portb = 0 Portd.5 = 0 End sub return

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

76

~ ~ + C S1 S2 S3 S4 S5 S6

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10

Botões Micros

220 Vca

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

77

12O. comando: CPEEK

Retorna um byte armazenado em código de memória. Sintaxe: VAR = CPEEK EXEMPLO PROGRAMA 12 - Generico dim I as integer, B1 as byte for I = 0 to 31 para I = 0 ate 31 b1 = cpeek (I) print hex (b1); “ “ ; wait 1 next end 13O. comando: DEBOUNCE

Para ler o resultado de uma entrada do CLP conectado a uma chave. Sintaxe: DEBOUNCE Px, y, STATE, LABEL [,SUB] Px,y = ex. Pinb.0 STATE = SE O PINO ESTA ALTO OU BAIXO LABEL = especifica o próximo estado do pino. EXEMPLO PROGRAMA 13 - Generico config debounce = 30 ‘ espera de 25 ms declare sub PC ( ) debounce port.0, 0, pc, sub wait 1 pc ( ) print “port.0” return

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

78

14O. comando: DECR

Decrementa a variável de 1 unidade. Sintaxe: DECR (VARIÁVEL) VAR = BYTE, INTEGER, WORD, LONG, SINGLE EXEMPLO PROGRAMA 14 - Genérico ‘ programa exemplo decremento dim A as byte A = 5 decr A print A end 15O. comando: DECLARE FUNCTION

Descrimina o uso da função. Sintaxe: DECLARE (FUNÇÃO), (TIPO FUNÇÃO) 16O. comando: DECLARE SUB

Descrimina sub-rotina. Sintaxe: DECLARE (Nº SUB-ROTINA) EXEMPLO PROGRAMA 16 Exemplos anteriores 17O. comando: DELAY

Executa o programa em menor tempo. Sintaxe: DELAY EXEMPLO PROGRAMA 17 ‘ programa para escrever 5 em binário ‘ na saída declare sub sair() portb = 0

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

79

portd = 255 portd.5 = 0 do portb = 0 sair wait 4 delay portb = 1 sair wait 4 delay loop sub sair() portd.6 = 0 waitms 10 portd.6 = 1 waitms 10 end sub return 18O. comando: DIM

Para dimensionar uma variável. Sintaxe: DIM (VARIÁVEL) AS (TIPO) EXEMPLOS ANTERIORES 19O. comando: CONST

Para declarar constantes. Sintaxe: CONST (NOME) EXEMPLO PROGRAMA 19 – Genérico const a = 5 const b = 20 watms a

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

80

print chr (b) end

10º DIA – CONTINUAÇÃO DOS COMANDOS JUNTOS

10a. PRÁTICA 20O. comando: DISABLE

Para desabilitar interrupções. Sintaxe: DISABLE (INTERRUPÇÃO) INTERRUPÇÕES: INT0 – interrupção externa 0 – E1 INT1 – interrupção externa 1 – E2 0VF0, TIMER0, COUNTER0 – clock independente 0 0VF1, TIMER1, COUNTER1 – clock independente 1 CAPTURE1, ICP1 – captura de clock externo COMPARE1A, 0C1A – compara timer 1A externo COMPARE1B, 0C1B – compara timer 1B externo SPI – interruptor SPI URXC – sinal serial RX do CLP UTXC – sinal serial TX do CLP UDRE – sinal de dados em registro SERIAL – desabilita URXC, UTXC E UDRE ACI – interrupção sinal comparador ADC – converter A/D O programa abaixo é parte do código de um protocolo de transmissão: . . . On Urxc Recebe_dados_modbus Enable Urxc Enable Interrupts

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

81

Portd = 255 Portb = 0 Main_loop: Waitms 100 Portb = 0 Sair Enable Serial Reset A Reset Udr.3 Reset Udr.4 Processa = 0 Do If Processa = 1 Then Disable Serial Portb.1 = 1 Sair Waitms 50 Goto Processa_dados End If Portb = 0 Sair Loop . . .

Observe aqui o comando Disable

Serial. Sua finalidade é a de

desabilitar temporariamente o

recebimento de dados, e dar

continuidade ao processamento

de dados. Se não houvesse esse

desabilitamento, o programa

nunca iria ter tempo de enviar

os dados requisitados!

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

82

21O. comando: DO-LOOP

Para as seguintes instruções sempre faça. Sintaxe: DO Comandos LOOP (UNTIL – CONDIÇÃO) EXEMPLO PROGRAMA 21 ‘ programa pisca led dim E1 as byte declare sub ler() declare sub sair ( ) portb = 0 portd = 255 dim a as byte do ler If E1 = 0 then portb.0 = 1 ‘ led pisca, enquanto sair ‘ E1 estiver acionada wait 4 portb.0 = 0 sair end if loop sub ler() portb =255 portd.5 = 1 waitms 10 E1 = pind.2 Portb = 0 Potd.5 = 0 End sub

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

83

Return Sub sair() Portd.6 = 0 Waitms 10 Portd.6 =1 Portb = 0 End sub return 2 pilhas Lâmpada de lanterna 3Volts

~ ~ + C S1 S2 S3 S4 S5 S6

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10

22O. comando: IF_THEN_ELSE

Se a instrução for verdadeira fará isso, senão fará aquilo. Sintaxe: If (condição) then (instrução)

220 Vca

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

84

else (senão – instrução) end if EXEMPLO PROGRAMA 22 – Genérico dim b as byte dim a as byte b = 10 a = 10 If a > 10 then print chr (a) else print chr (b) end if 23O. comando: ENABLE

Liga (habilita) uma interrupção. Sintaxe: ENABLE (INTERRUPÇÃO) EXEMPLO PROGRAMA 23 - Generico Genérico enable interrupts ‘ habilita todas interrupções enable timer1 ‘ habilita timer1 24O. comando: END

Para terminar o programa em execução. Sintaxe: END EXEMPLO PROGRAMA 24 ‘ programa para ligar seis saídas ‘ em seqüência com intervalo de segundos declare sub sair ( ) portb = 0 portd = 255 do

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

85

portb = 0 wait 4 portb.0 = 1 sair wait 4 portb.0 = 1 sair wait 4 portb.1 = 1 sair wait 4 portb.2 = 1 sair wait 4 portb.3 = 1 sair wait 4 portb.4 = 1 sair wait 4 portb.5 = 1 sair loop end sub sair portd.6 = 0 waitms 10 portd.6 = 1 waitms 10 end sub return 25O. comando: EXIT

Para sair a qualquer momento de uma estrutura.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

86

Sintaxe: EXIT FOR EXIT DO EXIT WHILE EXIT SUB EXIT FUNCTION EXEMPLO PROGRAMA 25- Generico Genérico If a >= b1 then do a = a + 1 If a=100 then Exit do ‘ sai do DO end if loop end if Obs. É necessário relembrar a estrutura interna do CLP.

PORTB portB.0 portB.1 portB.2 portB.3 portB.4 portB.5 portB.6 portB.7

PORTD portD.2 portD.3 portD.4 portD.5 portD.6

ENTRADAS RÁPIDAS portD.2 – E1 portD.3 – E2 são independentes ENTRADAS DIGITAIS portB.0 – E3 portB.1 – E4 portB.2 – E5 portB.3 – E6 portB.4 – E7 portB.5 – E8 portB.6 – E9 portB.7- E10

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

87

SAÍDAS A RELÉ portB.0 – S1 portB.1 – S2

portB.2 – S3 portB.3 – S4 portB.4 – S5 portB.5 – S6

SAÍDA DIGITAL portD.4 – S7 DB_____ 7 SAÍDA SERIAL RS 232 portD.0 – RX – DB – verificar portD.1 – TX – DB – verificar sinal 0volts – DB – verificar Obs. Para ler os sinais das entradas é necessário que coloquemos: portB = 255 portD.5 = 1 Obs. Para habilitar as saídas é necessário dar um pulso no portD.6 como nos exemplos do sub-rotina sair: Sub sair ( ) portd.6 = 0 waitms 10 portd.6 = 1 end sub 5 volts 0 volts

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

88

11º DIA – CONTINUAÇÃO DOS COMANDOS

JUNTOS 11a. PRÁTICA

26O. comando: FOR NEXT

Executa um bloco de instruções dentro de uma contagem Sintaxe: for (var = start) to/downto end (step-valor) Step = pulos ou multiplicador na contagem EXEMPLO PROGRAMA 26 - Generico ‘ programa de contagem de 1 a 10 ‘ de 2 em 2 dim a as byte for a = 1 to 10 step 2 print chr (a) next wait 1 end

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

89

27O. comando: GOSUB

Encaminha para uma sub-rotina. Sintaxe: gosub (rotina) EXEMPLO PROGRAMA 27

Controle de compressor e descarga do mesmo. serpentina

P P = pressostatodescarga ou dreno ‘ programa para controle de compressor dim A as byte, E1 as byte, E2 as byte, E3 as byte dim E4 as byte, dim B as byte dim segurança as word dim descarga as Word declare sub ler ( ) declare sub sair ( ) declare sub ligar ( ) declare sub desligar ( ) declare sub segur ( )

MOTOR D0 COMPRESSOR

COMPRESSOR

BALÃO

DE AR

QUADRO DE COMANDO

TÉRMICO MOTOR SIRENE

LIGA DESLIGA

T E1 – TÉRMICO E2 – PRESSOSTATO E3 – LIGA E4 – DESLIGA S1 – LIGA MOTOR S2 – LIGA DRENO S3 – LIGA SIRENE

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

90

config timer1 = timer, prescale = 64 on timer1 timer1_isr enable timer1 enable interrupts start timer 1 portb = 0 portd = 255 do gosub ler If E1 = 1 gosub desliga end if If E1 = 1 and A = 1 then gosub segur end if If E1 = 0 and E3 = 0 then gosub ligar A = 1 end if If E1 = 0 and E4 = 0 then gosub desligar A = 0 end if If segurança > 60 then gosub segur end if If descarga > 950 then gosub descar end if If E2 = 0 then segurança = 0 end if goto sub sair ( ) portd.6 = 1

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

91

waitms 10 portd.6 = 1 portb = 0 sub sair return sub ler ( ) portd = 255 portd.5 = 1 E1 = portd.2 E2 = portd.3 E3 = portb.0 E4 = portb.1 portb = 0 portd.5 = 0 end sub return sub desliga ( ) portb = 0 A = 0 gosub sair end sub return sub liga ( ) portb.0 = 1 gosub sair portb = 0 end sub return sub segur( ) portb.2 = 1 gosub sair

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

92

A = 0 segurança = 0 end sub return sub descar If descarga > 950 and a = 1 then portb.1 = 1 gosub sair wait 3 portb = 0 gosub sair else descarga = 0 end if end sub return timer1_isr: B = B + 1 descarga = descarga + 1 If B = 950 then segurança = segurança + 1 B = 0 end if return

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

93

2º contato do pressostato

C1 D S

~ ~ + C S1 S2 S3 S4 S5 S6

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10

Obs. A válvula do dreno acionará com intervalo de 15 min / 3seg e a segurança verificará o intervalo máximo do pressostato para desligar o compressor. 28O. comando: GOTO

Vai para uma rotina especificada. Sintaxe: goto (nome rotina) EXEMPLO PROGRAMA 28 - Generico Genérico Início: a = a + 1 If a< 10 then goto início end if

220 Vca

C1 – contactor para ligar motor D – bobina do dreno S - sirene

E1 – TÉRMICO E2 – PRESOSTATO E4 – LIGA E5 – DESLIGA

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

94

end

29O. comando: HEX Muda o valor de um string em hexadecimal.

Sintaxe: variável = hex (x) EXEMPLO PROGRAMA 29 – Genérico dim a as byte, s as string * 10 a = 123 s = hex (a) print chr (s) end 30O. comando: HEXVAL

Converte uma string de valor hexadecimal em um valor numérico. Sintaxe: variável = hexval (x) EXEMPLO PROGRAMA 30 – genérico dim a as integer, s as string * 15 s = “c” a = hexval (s) print chr (a) end 31O. comando: HIGH

Reaver o bit mais significativo de uma variável. Sintaxe: variável = high (s) EXEMPLO PROGRAMA 31 – genérico dim i as integer, z as byte i = &h1001

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

95

z = high (i) print chr (z) end 32O. comando: IF_THEN_ELSE_END IF

Dependendo se a condição for verdadeira ou falsa irá fazer um bloco de instruções. EXEMPLO PROGRAMA 32 - generico dim a as integer a = 10 If a = 10 then print chr (a) else a = 20 print chr (a) end if end 33O. comando: INCR

Incrementa uma variável de cada vez Sintaxe: incr (variável) EXEMPLO PROGRAMA 33 - generico Genérico do incr a print chr (a) loop until a >4 end

1 2 3 4

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

96

12º DIA – CONTINUAÇÃO DOS COMANDOS

JUNTOS 12a. PRÁTICA

34O. comando: INPUT

Comando usado para dar entrada de dados durante a execução do programa. Sintaxe: input (“prompt”), variável EXEMPLO PROGRAMA 34 - Genérico Genérico config portb = input 35O. comando: LEFT

Especifica o número a esquerda do caractere. Sintaxe: variável = high (s) EXEMPLO PROGRAMA 35 – Genérico dim s as string * 10, z as string * 10 s = “abcdefg” z = left (s,5) print chr (z) end

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

97

36O. comando: LEN

Comprimento de uma string (254 máximo). Sintaxe: variável = len (string) EXEMPLO PROGRAMA 36 – genérico dim s as string * 12 dim a as byte s = “teste” a = len (s) print chr (a) 37O. comando: LOW

Busca o byte menos significativo tido de uma variável. Sintaxe: variável = low (s) EXEMPLO PROGRAMA 37- Genérico dim i as integer, z as byte i = &h1001 z = low (i) print chr (z) end

4

1

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

98

38O. comando: MAKEBCD

Converte a variável a um valor BCD. Sintaxe: variável1 = makebcd (variável2) Obs. Que é valor BCD ? É a substituição de cada valor decimal em um byte, ex: 132 – valor decimal onde: 1 = 0001 (binário) 3 = 0011 (binário) 2 = 0010 (binário) 132 decimal convertido em BCD = 0001 0011 0010 EXEMPLO PROGRAMA 38 – Genérico dim a as byte a = 65 a = makebcd (a) print chr (a) end 39O. comando: MAKEDEC

Converte valores BCD em decimal. Sintaxe: variável1 = makedec (variável2)

0110 0101

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

99

40O. comando: ON INTERRUPT

Executa uma sub-rotina especificada por uma interrupção E1_pind.2 e E2_pwd.3 no CLP Este comando também pode ser estendido para interrupções de RS232, Timers, etc. INT0, INT1, INT2, INT3, INT4, INT5, TIMER0, TIMER1, TIMER2, ADC, EEPROM, CAPTURE1, CAPTURE2, COMPARE1A, COMPARE1, COMPARE1C. Cada um desses tipos de interrupção é utilizado dependendo do processador do CLP. Os nomes mais utilizados no compilador são: OC1, OVF2, ICP1, OC1A, OC1B, OVF1, OVF0, SPI, URXC, UDRE, UTXC, ADCC, ERDY e ACI. Podemos, utilizando a interupção URXC, por exemplo, fazer com que o CLP responda, ao enviarmos um sinal de requisição do estado dele. EXEMPLO PROGRAMA 40 ‘ programa exemplo ‘ fica piscando o led ‘ até detectar uma interrupção em E1 portb = 0 portd =255 declare sub novo declare sub sair( ) enable interrupts enable int0 on int0 novo nosave do portb.0 = 1

Observe o comando ON INT0 NOVO

NOSAVE. O NOVO, refere-se à sub-rotina

que será executada quando a interrupção

correspondente a entrada E1 for ativa. O

NOSAVE refere-se ao NÃO salvamento das

variáveis utilizadas pela microprocessador.

(SREG, R31, R16 e R11 à R0 não são salvos).

RECOMENDA-SE sempre salvar estes

registradores (removendo este NOSAVE).

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

100

sair wait 2 portb.0 = 0 sair wait 2 loop novo: portb.1 = 1 sair wait 3 portb.1 = 0 sair wait 3 return sub sair ( ) portd.6 = 0 waitms 10 portd.0 = 1 portb = 0 end sub return

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

101

~ ~ + C S1 S2 S3 S4 S5 S6

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10

41O. comando: ON VALUE

Especifica a partir de um valor para qual sub-rotina deve ir. Sintaxe : on (variável) goto/gosub (rotina), (rotina) EXEMPLO PROGRAMA 41- Genérico Genérico x = 2 on x gosub prim, seg, ter ‘ ......................0......1.....2 x = 0 on x gosub prim, seg, ter end seg: print chr (x) return

220 Vca

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

102

prim: ter: print chr (x) return 42O. comando: PRINT

Envia os dados para a saída RS 232 do CLP. Sintaxe : print (tipo de variável); “variável” EXEMPLO PROGRAMA 42 ‘demo print portb = 0 portd = 255 dim A as byte, B1 as byte, C as integer open “comd.1:1200,8,n,1,inverted” for output as #1 do A = 1 print #1 , A wait 1 print #1 wait2 B1 = 10 Print #1, hex (b1) ‘verificar no programa Terminal.exe C = &ha000 ‘escolher 1200Baumd e hex Print #1, hex (c) loop end

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

103

43O. comando: PRINT BIN

Envia para serial, valores binários. Sintaxe : input bin variável (variável) EXEMPLO PROGRAMA 43 - Genérico dim a (10) as byte, c as byte for c = 1 to 10 a (c) = a next print bin a (1) end

13º DIA – CONTINUAÇÃO DOS COMANDOS JUNTOS

13a. PRÁTICA 44O. comando: RESET

Leva o valor do bit ou variável. Sintaxe : input bin variável (variável) EXEMPLO PROGRAMA 44- Genérico dim b1 as bit, b2 as byte dim i as integer reset portb.3 reset b1 reset b2.0 reset i.15

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

104

45O. comando: RETURN

Retorno de uma sub-rotina. Sintaxe : return EXEMPLO PROGRAMA 45 ‘ chave estrela triângulo com proteção ‘ da passagem de estrela para triângulo dim A as byte dim E3 as byte, E6 as byte, E4 as byte, E5 as byte declare sub sair declare sub ler declare sub liga declare sub desliga declare sub alarme portb = 0 portd = 255 A = 0 do ler If E6 = 0 and E5 = 0 then If E3 = 0 and E4 = 1 and A = 0 then liga end if If E3 = 1 and E4 = 0 then desliga end if If E6 = 0 and E5 = 0 then liga else desliga alarme end if else desliga

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

105

alarme end if loop sub liga ( ) portb = 0 portb.0 = 1 portb.1 = 1 sair wait 15 portb.1 = 0 wait 1 ler if E5 = 1 then desliga alarme else portb = 0 portb.0 = 1 portb.2 = 1 sair A = 1 End if return sub sair ( ) portd.6 = 0 waitms 10 portd.6 = 1 end sub return sub ler( ) portb = 255 portd.5 = 1 portb = 255 E3 = pinb.0 E4 = pinb.1

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

106

E5 = pinb.2 E6 = pinb.3 portb = 0 portd.5 = 0 end sub return sub desliga( ) portb = 0 sair A = 0 end sub return sub alarme( ) portb.3 = 1 sair end sub return

C1 C2 C3

~ ~ + C S1 S2 S3 S4 S5 S6

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10

L D C2 TÉRMICO

220 Vca

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

107

Ao acionar a botoeira L (liga), e o térmico estiver ok e C2 estiver desligado, liga C1 e C2, espera 15 segundos, desliga C2, espera C2 desligar, ligando C3. C1 C2 R S T C3 46O. comando: RIGHT

Especifica os caracteres à direita de um string. Sintaxe : variável = right (var1, st) EXEMPLO PROGRAMA 46 - Genérico dim s as string * 15, z as string * 15 s = “abcdefg” z = right (s,2) print z end

PAINEL ERRO L D D

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

108

47O. comando: SELECT_CASE_END SELECT

Executa de uma vez vários blocos. Sintaxe : select case (variável) EXEMPLO PROGRAMA 47- Genérico Genérico dim a as byte, b as byte, c as byte do do c = 0 a = a + 1 b = a * 2 select case A

case 1 : c = b case 2 : c = b case 3 : c = b

end select print chr (c) wait 1 If b >= 3 then exit do

goto a = 0 loop

48O. comando: SET

Coloca em uma unidade uma variável. Sintaxe : set bit Set variável.x EXEMPLO PROGRAMA 48 – Genérico dim b1 as byte, b2 as byte dim c as word, l as long set b.1

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

109

set b2.1 set c.15 set l.31 end 49O. comando: SPIIN, SPIINIT

Spiin - Lê as entradas do CLP. Spiinit – Lê da direita para esquerda.

Sintaxe : spiinit spiin ( variável, bytes) EXEMPLO PROGRAMA 49- Genérico dim a(10) as byte config spi = soft varia1 = pinb.0 varia2 = pinb.1 varia3 = pinb.2 varia4 = pinb.3 spiinit spiin a(1), 4 end 50O. comando: SPIOUT

Leva a saída uma variável. Sintaxe : spiout (variável, bytes) EXEMPLO PROGRAMA 50 Genérico config spi = soft din1 = pind.5 din2 = portd.7 din3 = p1.2 din4 = portd.3 spiinit dim a(10) as byte, x as byte

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

110

spiout a(1), 5 spiout x, 1 end 51O. comando: STOP / START

Stop – para parar uma interrupção. Start – inicia uma interrupção.

Sintaxe : start (interrupção) stop (interrupção) EXEMPLO PROGRAMA 51- Genérico config timer1 = timer, prescale = 64 enable timer1 start timer1 52O. comando: STR

Transforma o número em um string. Sintaxe : variável = str (x) EXEMPLO PROGRAMA 52- Genérico dim a as byte, s as string * 10 a = 123 s = str (a) print s end

123

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

111

53O. comando: STRING Transforma um string com repetição em caracteres

ASCII Obs. Caracteres ASCII são códigos onde dois números representam um caractere alfanumérico. Ex. 65 = a Sintaxe : variável = string (m,n) EXEMPLO PROGRAMA 53- Genérico dim s as string * 15 s = string (5,65) print s end 54O. comando: SUB

Define um procedimento de uma sub-rotina. Sintaxe : sub name (variável1) EXEMPLO PROGRAMA 54-Genérico declare sub zerar ( ) sub zerar ( ) portb = 0 end sub return 55O. comando: SWAP

Troca o valor de duas variáveis. Sintaxe : swap (variável1, variável2)

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

112

EXEMPLO PROGRAMA 55-Generico dim a as integer, b1 as integer a = 1 : b1 = 2 print a; b1 swap a, b1 print a; b1 end

14º DIA – CONTINUAÇÃO DOS COMANDOS JUNTOS

14a. PRÁTICA 56O. comando: VAL

Converte um string representado por um número em um número decimal. Sintaxe : valor = val (s) EXEMPLO PROGRAMA 56- Genérico dim a as byte, s as string * 10 s = “123” a = val (s) print a end

1 2 2 1

123

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

113

57O. comando: WAIT

Suspende o programa em segundos. Sintaxe : wait segundo EXEMPLO PROGRAMA 57- Genérico dim a as byte a = 4 do wait 3 print a b = b + 1 If b > 4 then b = 0 exit do end if loop 58O. comando: WAITKEY

Espera até um caractere na serial Sintaxe : valor = waitkey EXEMPLO PROGRAMA 58 Genérico dim a as byte a = waitkey ( ) print a

( valor recebido)

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

114

59O. comando: WAITMS Suspende o programa em mili-segundos.

Sintaxe : waitms ms EXEMPLO PROGRAMA 59 Genérico waitms 10 print “ * ” 60O. comando: WAITUS

Suspende o programa em micro-segundos. Sintaxe : waitus (microsegundos) EXEMPLO PROGRAMA 60 Genérico waitus 100 print “ * ”

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

115

61O. comando: WHILE-WEND Faça enquanto.

Sintaxe : WHILE <condições> <instruções> WEND EXEMPLO PROGRAMA 61 Controle de nível da caixa d’água. Caixa d’água Bóia de mercúrio E3 Bomba caixa d´água S1 T2 T1 S2 Bóia de mercúrio E4 bomba do poço poço

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

116

ENTRADAS: E3 – Bóia caixa d´água E4 – Bóia cisterna E5 – Rearme E6 – Térmico T1 E7 – Térmico T2 SAÍDAS S1 – Bomba poço S2 – Bomba caixa S3 – Cisterna cheia – sinaleiro S4 – Caixa cheia – sinaleiro S5 – Alarme

SINÓTIPO LÂMPADA LIGADA

CAIXA CHEIA OU MOTOR LIGADO

REARME E3 ALARME

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

117

Obs. Se após 1 hora, a bomba não encher a cisterna, toca

alarme. Se após 1 hora a bomba não encher a caixa, toca o

alarme. S2 não liga, se nível da cisterna está baixo.

‘ declaração do programa declare sub sair ( ) declare sub ler ( ) declare sub tempo ( ) declare sub alarme1 ( ) config portb = input portb = o portd = 255 dim E3 as byte, E4 as byte dim E5 as byte, E6 as byte dim E7 as byte, T1 as byte dim T2 as byte, T3 as byte do ler while E6 = 0 and E7 = 0 and T1 < 100 and T2 <100 If E3 = 0 and E4 = 0 then Portb.2 = 1 Portb.3 = 1 sair T1 = 0 T2 = 0 End If If E3 =0 and E4 = 0 then Portb.1 = 1 Portb.2 = 1 sair T1 = 0

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

118

End If If E3 = 1 and E4 = 0 then Portb.0 = 1 Portb.3 = 1 sair T2 = 0 End If If E3 = 1 and E4 = 1 then Portb = 0 sair T1 = 0 T2 = 0 Alarme1 End If tempo ler wend T1 = 0 T2 = 0 While E5 = 1 Portb.4 = 1 Sair Wait1 Portb = 0 Sair Wait 1 ler Wend Loop Sub tempo( ) T3 = T3 + 1 Wait 1 If T3 > 60 then T1 = t1 + 1

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

119

T2 = t2 + 1 T3 = 0 End If Return Sub sair Portd.6 = 0 Waitms 10 Portd = 1 Portb = 0 End sub Return Sub ler ( ) Portb = 255 Portd.5 = 1 E3 = pinb.0 E4 = pinb.1 E5 = pinb.2 E6 = pinb.3 E7 = pinb.4 Portb = 0 Portd.5 = 0 End sub Return Sub alarme 1 ( ) Portb.3 = 1 sair end sub return

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

120

OBS: os programas genéricos são pedaços de outros programas , mais que você pode utiliza-los em seus próprios programas

C1 C2 L1 L2 L3

~ ~ + C S1 S2 S3 S4 S5 S6

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10

L1 – caixa cheia L2 – poço cheio L3 – defeito C1 – contactor motor caixa d´água C2 – contactor motor poço E3 – bóia caixa E4 – bóia do poço E5 – rearma

220 Vca

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

121

Observação: Exemplo: portb 0 1 0 0 1 0 S6 S5 S4 S3 S2 S1- Representa Portb.6 Quando configuramos portb = 255 ou portd = 255 liberamos para leitura das entradas, juntamente com portd.5 = 1 e portb.6 = 0.

15º DIA – CONTINUAÇÃO DOS COMANDOS JUNTOS

15a. PRÁTICA 62O. Comando: RND

Gera um numero aleatório. Sintaxe : variavel = RND EXEMPLO PROGRAMA 62 - Generico dim I as integer do I = RND (100) print chr ( I ) wait 1 loop end

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

122

63O. Comando: CHECKSUM Retorna o valor de um string.

Sintaxe : b = checksum ( variável ) b = contagem dos bytes da variável string EXEMPLO PROGRAMA 63 - genérico dim s as string * 10 s = “ teste “ print checksum ( s ) end 64O. Comando: GETRC

Transfere o valor de um potenciômetro externo de valor de 1000R para uma variável no CLP NT. Sintaxe : variável = getrc ( pin,numero ) Obs.: deve-se conectar o fio vermelho da saída do cabo de programação a um potenciômetro de 1000 R e o fio preto do conector ao cursor do potenciômetro. O valor da variável quando o potenciômetro estiver no valor mínimo estará em torno de 200 e quando estiver com o valor maximo sera em torno de 1. EXEMPLO PROGRAMA 64 Controlar as saídas de S1 a S6 de acordo com a regulagem do potenciômetro ligado a um balancim Motor Potenciômetro balancim

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

123

Comando para controlar tensão de esteira de uma maquina . Acionando a entrada de um inversor de freqüência para manter a tensão da esteira constante , lendo a leitura do potenciômetro . Resistores de 2200 R

~ ~ + C S1 S2 S3 S4 S5 S6

preto vermelho

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10

Potenciômetro. 1000 R Inversor Motor - +

220 Vca

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

124

‘declarações dim p as Word portb = 0 portd = 255 portd.4 = 0 declare sub sair ( ) do p = getrc(pind , 4) while p < 200 and p > 180 portb.0 = 1 sair p = getrc(pind , 4) wend while p < 180 and p > 160 portb.1 = 1 sair p = getrc(pind , 4) wend while p < 160 and p > 140 portb.2 = 1 sair p = getrc(pind , 4) wend while p < 160 and p > 140 portb.2 = 1 sair p = getrc(pind , 4) wend while p < 140 and p > 100 portb.3 = 1 sair p = getrc(pind , 4) wend

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

125

while p < 100 and p > 70 portb.4 = 1 sair p = getrc(pind , 4) wend while p < 70 portb5 = 1 sair p = getrc(pind , 4) wend loop sub sair ( ) portd.6 = 0 waitms 10 portd = 1 portb = 0 end sub return Exemplo geral envolvendo todos os principais comandos Programa de comunicação serial de no Maximo 100 CLPs interligados via serial, mandando informações de velocidade e pulsos das maquinas onde os CLPs estam instalados para um computador. Entrada E1 pegara informação de velocidade da maquina. Entrada E2 pegara informações de produção da maquina. As entradas de E3 a E9 servira para codificar o numero da maquina. A entrada E10 codificara a ultima maquina.

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

126

Maq. 100 --------------- Maq. 1 computador comunicação RS 232 CLP 100 CLP 1 PC RX/ TX/GND ‘Declarações open “comd.1:1200,8,n,1,inverted” for output #1 declare sub transmite ( ) declare sub atualiza ( ) declare sub guarda ( ) declare sub zerar ( ) ‘ Configura interrupções config int0 = rising config int1 = rising config timer1 = timer, prescale = 64 config portb = input config portd = &B00000010 portb = 255 portd = 255 ‘Configura variaveis dim num as byte , x as byte , a_lin as byte dim numero as byte , b as byte , c as Word dim d as Word , e as byte , f as byte , g as byte dim h as byte , b_lin as byte , c_lin as word dim d_lin as word , e_lin as word dim f_lin as word , g_lin as word dim h_lin as word , Bb as byte , Cc as byte dim Dd as byte , Ee as byte , Ff as byte dim Gg as byte , Gg as byte , Hh as byte master alias pinb.7

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

127

dim pos as byte , tempo as Word dim pulso as Word , temlarg as Word dim largura as word , veloc as word ‘Ativa interrupções on urxc rec_isr on timer timer1_isr on int1 int_isr on int0 int0_isr enable urxc enable timer1 enable int0 enable int1 enable interrupts start timer1 do if master = 1 then num = pinb – 128 else num = pinb end if numero = num while master = 0 and x < c_lin x = x + 1 wait 1 atualiza transmite wend while master = 1 and x < c_lin tempo = 0 pos = 1 while pos < 9 and tempo < 10 wend

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

128

x = x + 1 if tempo > 10 then atualiza transmite end if transmite guarda wend x = 0 atualiza loop sub guarda ( ) b = b_lin c = c_lin d = d_lin e = e_lin f = f_lin g = g_lin h = h_lin end sub return sub atualiza ( ) b = x c = numero d = veloc if pulso >= 1000 then e = 1 pulso = pulso – 1000 else e = 0 end if f = 0 ‘ reserva g = 0 ‘ reserva

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

129

h = 0 ‘ reserva end sub return sub transmite ( ) print #1, chr (254) waitms 10 print #1,chr (x) waitms 10 print #1,chr (c) waitms 10 print #1,chr (d) waitms 10 print #1,chr (e) waitms 10 print #1,chr (f) waitms 10 print #1,r (g) waitms 10 print #1,chr (h) waitms 10 end sub return rec_isr : select case pos case 1 : a_lin = udr case 2 : b_lin = udr case 3 : c_lin = udr case 4 : d_lin = udr case 5 : e_lin = udr case 6 : f_lin = udr case 7 : g_lin = udr case 8 : h_lin = udr end select

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

130

if a_lin = 254 then ‘apontador pos = pos + 1 else pos = 1 end if return timer1_isr: tempo = tempo + 1 templarg = templarg + 1 return int1_isr: pulsos = pulsos + 1 return int0_isr: largura = largura + 1 if largura >= 10 then veloc = templarg templarg = 0 largura = 0 end if return

CURSO DE LINGUAGEM DE PROGRAMAÇÃO DEDICADA A COMPILADOR PARA MICROPROCESSADOR E CLP (JORGE AUGUSTO)

131

~ ~ + C S1 S2 S3 S4 S5 S6

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10

Exercício: faça as ligações... Finalizações e observações gerais.

Até o momento nenhum comentário
Esta é apenas uma pré-visualização
3 mostrados em 131 páginas