conjunto de instruÇÕes dware - schneider-electric.com · bmovx movimentação de bloco de dados...

118
1 CONJUNTO DE INSTRUÇÕES DWARE Manual Rev. 1.90 Setembro / 2006 Ref.2-002.190

Upload: lyphuc

Post on 04-Oct-2018

226 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

1

CONJUNTO DE INSTRUÇÕES

DWARE

Manual Rev. 1.90 Setembro / 2006 Ref.2-002.190

Page 2: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

2

Este manual não pode ser reproduzido, total ou parcialmente, sem autorização por escrito da Atos. Seu conteúdo tem caráter exclusivamente técnico/informativo e a Atos se reserva no direito, sem qualquer aviso prévio, de alterar as informações deste documento.

Page 3: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

3

Serviço de Suporte Atos

A Atos conta com uma equipe de engenheiros e representantes treinados na própria fábrica e oferece a seus clientes um sistema de trabalho em parceria para especificar, configurar e desenvolver software usuário e soluções em automação e presta serviços de aplicações e startup. A Atos mantém ainda o serviço de assistência técnica em toda a sua linha de produtos, que é prestado em suas instalações. Com o objetivo de criar um canal de comunicação entre a Atos e seus usuários, criamos um serviço denominado Central de Atendimento Técnico. Este serviço centraliza as eventuais dúvidas e sugestões, visando a excelência dos produtos e serviços comercializados pela Atos.

Central de Atendimento Técnico De Segunda a Sexta-feira Das 7:30 às 12:00 h e das 13:00 às 17:30 h Telefone: 55 11 5547 7411 E-mail: [email protected]

Page 4: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

4

Page 5: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Índice

5

Índice

1. INTRODUÇÃO ............................................................................................................................ 9

• Tabela de Instruções ..............................................................................................................................9 • Restrições das Instruções ...................................................................................................................11 • Lista de PSEUDO-Instruções existentes ............................................................................................11 • Lista de instruções existentes (por driver) ........................................................................................12 • Lista de drivers para programação das CPUs ...................................................................................14

SÉRIE MPC4004..................................................................................................................................................... 14 SÉRIE TICO ............................................................................................................................................................ 14 SÉRIE EXPERT ...................................................................................................................................................... 15

2. CONJUNTO DE INSTRUÇÕES ................................................................................................ 17

• Instruções Básicas ...............................................................................................................................17 LD ............................................................................................................................................................................ 17 LDN ......................................................................................................................................................................... 17 LDI ........................................................................................................................................................................... 17 OUT ......................................................................................................................................................................... 18 OUTN ...................................................................................................................................................................... 18 OUTI ........................................................................................................................................................................ 18 OUTIN ..................................................................................................................................................................... 19 OUTR ...................................................................................................................................................................... 19 SETR ....................................................................................................................................................................... 20 MONOA ................................................................................................................................................................... 20 MONOD................................................................................................................................................................... 21 TMR......................................................................................................................................................................... 21 CNT ......................................................................................................................................................................... 22 CNT2 ....................................................................................................................................................................... 23 LDX.......................................................................................................................................................................... 24 LDW......................................................................................................................................................................... 24 OUTX....................................................................................................................................................................... 25

• Instruções de Comparação..................................................................................................................26 CMP......................................................................................................................................................................... 26 FCMP ...................................................................................................................................................................... 27

• Instruções Aritméticas .........................................................................................................................28 SUM......................................................................................................................................................................... 28 FSUM ...................................................................................................................................................................... 28 SUMB ...................................................................................................................................................................... 29 SUMBL .................................................................................................................................................................... 29 SUB ......................................................................................................................................................................... 30 FSUB ....................................................................................................................................................................... 30 SUBB....................................................................................................................................................................... 31 SUBBL..................................................................................................................................................................... 31 DIV........................................................................................................................................................................... 32 FDIV ........................................................................................................................................................................ 32 DIVB ........................................................................................................................................................................ 33 DIVBL ...................................................................................................................................................................... 34 DVBLL ..................................................................................................................................................................... 34 MULT....................................................................................................................................................................... 35 FMUL....................................................................................................................................................................... 35 MULTB .................................................................................................................................................................... 36

Page 6: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Índice

6

MULBL .....................................................................................................................................................................37 • Instruções de Movimentação de Dados .............................................................................................38

MOV.........................................................................................................................................................................38 MOVK.......................................................................................................................................................................38 TAB ..........................................................................................................................................................................39 ATAB........................................................................................................................................................................39 VTAB........................................................................................................................................................................40 FTAB........................................................................................................................................................................40 MOVX.......................................................................................................................................................................41 WLDX.......................................................................................................................................................................42 BMOVX ....................................................................................................................................................................43 SCRLL......................................................................................................................................................................44

• Instruções de Deslocamento...............................................................................................................48 SFR..........................................................................................................................................................................48 SFRW.......................................................................................................................................................................49 SHIFB.......................................................................................................................................................................51 SHIFN ......................................................................................................................................................................52 SHIFL.......................................................................................................................................................................53

• Instruções de Conversão de Dados....................................................................................................55 CONV.......................................................................................................................................................................55 CONVL.....................................................................................................................................................................55 FCONV.....................................................................................................................................................................56 BCDAS.....................................................................................................................................................................57 BCDAP.....................................................................................................................................................................57

• Instruções de Trabalho com Relógio e Calendário ...........................................................................59 LDATA......................................................................................................................................................................59 LTIME.......................................................................................................................................................................60 SDATA .....................................................................................................................................................................61 STIME ......................................................................................................................................................................61 LDAT2......................................................................................................................................................................62 SDAT2......................................................................................................................................................................63

• Instruções de Contagem Up/Down .....................................................................................................64 UPDD.......................................................................................................................................................................64 UPDB .......................................................................................................................................................................65 UPDDC ....................................................................................................................................................................66 UPDBC.....................................................................................................................................................................67

• Instruções de Operações Lógicas com 16 bits..................................................................................68 WNOT ......................................................................................................................................................................68 WAND ......................................................................................................................................................................68 WOR ........................................................................................................................................................................69 WXOR......................................................................................................................................................................70

• Instruções de Movimentação entre Bits e Estados...........................................................................71 BITW ........................................................................................................................................................................71 WBIT ........................................................................................................................................................................72 WBITX......................................................................................................................................................................74

• Instruções Especiais ............................................................................................................................76 JMP..........................................................................................................................................................................76 CALL ........................................................................................................................................................................76 ADSUB.....................................................................................................................................................................76 ADSUD.....................................................................................................................................................................77 ASCB .......................................................................................................................................................................78 PRINT ......................................................................................................................................................................79 FATOR.....................................................................................................................................................................80 CTCPU.....................................................................................................................................................................82 CCS..........................................................................................................................................................................84

Page 7: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Índice

7

LDIA......................................................................................................................................................................... 84 DINT1 ...................................................................................................................................................................... 85 PID........................................................................................................................................................................... 86 PID_I........................................................................................................................................................................ 87 OUTIS...................................................................................................................................................................... 91 SCL.......................................................................................................................................................................... 91 SCL2G..................................................................................................................................................................... 94 SCHED .................................................................................................................................................................... 96 TXPR ....................................................................................................................................................................... 99 CEP ....................................................................................................................................................................... 100 AJUST ................................................................................................................................................................... 101 FILT ....................................................................................................................................................................... 102 MED....................................................................................................................................................................... 104 RAIZQ.................................................................................................................................................................... 106

3. TEMPO DE EXECUÇÃO DAS INSTRUÇÕES........................................................................ 107

4. CONJUNTO DE PSEUDO INSTRUÇÕES .............................................................................. 109

GAV ....................................................................................................................................................................... 109 TMRX .................................................................................................................................................................... 112 CAV ....................................................................................................................................................................... 113 SYNC..................................................................................................................................................................... 114

Page 8: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Índice

8

Page 9: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 1 - Introdução

9

1. Introdução

O conjunto de instruções DWARE possibilita maior flexibilidade de programação ao usuário, sendo composto de instruções lógicas e aritméticas, atuando sobre bits, palavras ou blocos de dados, além de instruções especiais de conversão de dados, calendário, impressão de dados, ponto flutuante, etc.

A tabela a seguir apresenta os mnemônicos (em ordem alfabética) das instruções, sua breve

descrição e a página do manual onde a instrução é descrita com detalhes. • Tabela de Instruções

MNEMÔNICO DESCRIÇÃO PÁGINA

ADSUB Soma/subtrai uma constante de conteúdo de registro (Hex) 76ADSUD Soma/subtrai uma constante de conteúdo de registro (Dec) 77AJUST Ajusta o ZERO e o FUNDO DE ESCALA 101ASCB Conversão ASCII para decimal/hexadecimal 78ATAB Armazena tabela 39BCDAS Conversão de dados Decimais p/ASCII 57BCDAP Conversão de dados BCD p/ASCII com ponto decimal 57BITW Transfere 16 estados p/um registro de 16 bits 71BMOVX Movimentação de bloco de dados indexados na origem e no destino 43CALL Chamada de sub-rotina 76CCS Calcula CHECK SUM 83CEP Calcula Menor, Maior Valor e Média de uma FIFO 100CMP Compara conteúdo de registros 26CNT Contador 22CNT2 Simula um Contador 23CONV Conversor Dec/Hex ou Hex/Dec 55CONVL Conversor Dec/Hex ou Hex/Dec de 32 bits 55CTCPU Contador Rápido (CPU) 82DIV Divisão Decimal 32DIVB Divisão Hexadecimal 33DIVBL Divisão binária longa (Hexadecimal) 34DVBLL Divisão binária de 32 bits (Hexadecimal) 34FATOR Ajusta o ZERO e o FUNDO DE ESCALA de uma E.A. 80FCMP Comparação de ponto flutuante 27FCONV Conversão entre ponto flutuante e BCD 56FDIV Divisão de ponto flutuante 32FILT Filtro de amostras 102FMUL Multiplicação de ponto flutuante 35FSUB Subtração de ponto flutuante 30FSUM Soma de ponto flutuante 28JMP Salto para endereço de desvio 76LD Começa a operação em uma linha ou bloco com chave (NA) 17LDATA Leitura de dia/mês/ano 59LDAT2 Leitura de dia/mês/ano c/ 4 dígitos 62LDI Entrada imediata 17LDIA Atualiza canal de entrada analógica 84LDN Começa a operação em uma linha ou bloco com chave (NF) 17LDW Começa linha com chave (NA) do tipo “bit endereçável” 24LDX Começa linha com chave (NA) indexada 24LTIME Leitura de hora/min/seg. 60MED Média aritmética 104MONOA Monoestável de uma varredura no acionamento 20MONOD Monoestável de uma varredura no desacionamento 21MOV Copia conteúdo de um registro para outro 38

Page 10: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 1 - Introdução

10

MNEMÔNICO DESCRIÇÃO PÁGINA

MULT Multiplicação Decimal 35MOVX MOV indexado no destino 40MULT Multiplicação Decimal 35MULTB Multiplicação Hexadecimal 36MULBL Multiplicação Hexadecimal de 32 bits 37OUT Saída 18OUTI Saída não em fim de linha 18OUTIN Saída invertida não em fim de linha 19OUTIS Atualiza saída analógica 87OUTN Saída invertida 18OUTR Saída imediata 19OUTX Saída indexada 25PID Calcula PID 84PRINT Transferência de dados p/interface serial 79RAIZQ Cálculo da raiz quadrada 106SCL Gera uma reta tipo mx+b dados dois pares x, y 91SCL2G Gera uma parábola 94SCRLL Rotação de dados de uma tabela 44SDATA Acerto de dia/mês/ano 61SDAT2 Acerto de dia/mês/ano/século 63SETR Set/Reset (estado interno) 20SFR Deslocamento de estados internos 48SFRW Deslocamento de bits 49SHIFB Deslocamento de bit 51SHIFN Deslocamento de nibble (4 bits) 52SHIFL Deslocamento de “n” bits 53STIME Acerto de hora/min/seg. 61SUB Subtração Decimal 30SUBB Subtração Hexadecimal 31SUBBL Subtração Hexadecimal de 32 bits 31SUM Soma Decimal 28SUMB Soma Hexadecimal 29SUMBL Soma Hexadecimal de 32 bits 29TAB Carregamento de um bloco de dados 39TMR Temporizador 21TXPR Carregamento de blocos de impressão 95UPDB Contador Up/Down Hexadecimal 65UPDBC Incrementa e compara (Hex) 67UPDD Contador Up/Down decimal 64UPDDC Incrementa e compara (Dec) 66VTAB Recupera dados da tabela 40WAND AND (bit a bit) do conteúdo de dois registros de 16 bits 68WBIT Transfere os 16 bits de um registro para 16 estados internos 72WBITX WBIT indexado e com auto incremento/decremento 74WLDX MOV indexado na origem 42WNOT Complemento de registro de 16 bits 68WOR OR (bit a bit) do conteúdo de dois registros de 16 bits 69WXOR XOR (bit a bit) do conteúdo de dois registros de 16 bits 70

Page 11: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 1 - Introdução

11

MNEMÔNICO DESCRIÇÃO PÁGINA

CAV Contador de Alta Velocidade (CPU) 113GAV Gaveta ou Arquivo de Receitas 109SYNC Sincronismo 114TMRX Temporizadores de 1ms 112

Observações: Os operandos tipo registro são formados por 2 bytes (exceto OP3 da multiplicação que tem 4 bytes) , que necessitam estar na mesma página. Exemplo: OP1 = 5FE OP1 corresponde aos bytes 5FE/5FF que estão na mesma página. OP3 = 5FE (caso da multiplicação OP3 deveria corresponder aos bytes 5FE/5FF/600/601 porém por haver uma mudança de página OP3 = 5FE/5FF/500/501). • Restrições das Instruções: Restrições dos drivers – Existem recursos de programação e hardware suportados apenas por um driver específico. A tabela abaixo mostra as instruções inexistentes para cada driver existente no WinSUP. Instruções Inexistentes:

MPC2200 MPC4004L MPC4004 MPC4004G MPC4004R MPC2440 MPC4004R

AJUST AJUST AJUST FATOR FATOR FATOR CEP CEP CEP CEP

CONVL CONVL DVBLL DVBLL FATOR FATOR LDAT2 LDAT2 MULBL MULBL

PID PID Pseudo Pseudo

SCL SCL SDAT2 SDAT2 SHIFL SHIFL SUBBL SUBBL SUMBL SUMBL TXPR TXPR

• Lista de PSEUDO-Instruções existentes

INSTRUÇÃO CAV GAV SYNC TMRX

MPC4004 MPC4004G MPC4004R MPC4004T MPC2440 IHM1755

MPC4004L MPC2200

Page 12: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 1 - Introdução

12

• Lista de instruções existentes (por driver) INSTRUÇÃO MPC4004 MPC4004L MPC4004G MPC4004R

MPC2440 MPC4004T MPC2200 175212Vx 175243Vx 175272Vx 175210XE 1755Vx

ADSUB ADSUD AJUST

ASCB

ATAB BCDAS BCDAP

BITW BMOVX CALL CCS

CEP

CMP CNT CNT2

CONV CONVL CTCPU

DINT1

DIV DIVB DIVBL DVBLL FATOR

FCMP

FCONV

FDIV

FILT

FMUL

FSUB

FSUM

FTAB

JMP LD LDATA LDAT2

LDI LDIA LDN LDW

LDX LTIME MED

MONOA MONOD MOV MOVK MOVX MULT

Page 13: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 1 - Introdução

13

INSTRUÇÃO MPC4004 MPC4004L MPC4004G MPC4004R

MPC2440 MPC4004T MPC2200 175212Vx 175243Vx 175272Vx 175210XE 1755Vx

MULTB MULBL OUT OUTI OUTIN OUTIS OUTN OUTR OUTX PID PID I

PRINT RAIZQ

SCHED

SCL SCL2G

SCRLL

SDATA SDAT2 SETR SFR SFRW

SHIFB SHIFN SHIFL STIME SUB SUBB SUBBL SUM SUMB SUMBL TAB TMR TXPR UPDB UPDBC UPDD UPDDC VTAB WAND WBIT WBITX WLDX WNOT WOR WXOR

Page 14: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 1 - Introdução

14

• Lista de drivers para programação das CPUs Cada um destes drivers é utilizado em um conjunto de CPUs com características distintas. A seguir são listados todos os drivers existentes e suas CPUs correspondentes: SÉRIE MPC4004

DRIVER CPUs DRIVER CPUs DRIVER CPUs

MPC4004R 4004.05R 4004.06R 4004.09R

MPC4004T 4004.05T 4004.06T 4004.09T

MPC4004

4004.01 4004.02 4004.04 4004.09 4004.11 4004.12

MPC4004G

4004.04B 4004.05B 4004.06B 4004.09B 4004.05E 4004.06E 4004.09E

MPC4004L 4004.11L 4004.12L

SÉRIE TICO Todas as CPUs da série TICO são programadas pelo driver MPC2200, mas somente os modelos listados abaixo possuem as instruções LDAT2 e SDAT2. Isso se deve ao fato destas instruções trabalharem com o relógio interno do controlador, recurso inexistente nos outros modelos da série.

DRIVER CPUs

MPC2200

2200.11 2200.12 2200.19 2200.21 2200.22 2200.29 2200.39 2200.71

2200.21R 2200.22R 2200.29R 2200.39R

CPU’s c/ relógio

2200.71 2200.21R 2200.22R 2200.29R 2200.39R

Page 15: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 1 - Introdução

15

SÉRIE EXPERT Os controladores da série EXPERT são programados através dos drivers MPC4004, IHM1755 e MPC2440. Deve-se observar que dependendo do controlador EXPERT adquirido, algumas instruções não estarão habilitadas em seu firmware, mesmo estando disponíveis no WinSUP. A tabela a seguir relaciona os controladores da série EXPERT separados por código de firmware. É através deste código que você poderá identificar na tabela de instruções, quais as instruções existentes para a CPU que está utilizando.

DRIVER FIRMWARE CPUs DRIVER FIRMWARE CPUs

MPC4004 175243Vx 1752P43 1752P43T

MPC4004 175272Vx

1752P71 1752P72 1752P74

1752P74T 1752P76 1752P77 1752P78

MPC4004 17516Vx 1752P16

MPC4004 175210xE 1752P10F 1752P10R

IHM1755 1755Vx

1755P02 1755P12 1755P22 1755P32

1755P02S 1755P12S 1755P22S 1755P32S

MPC4004 175212Vx

1752P12 1752P22 1752P32 1752P42 1752P51 1752P54 1752P56 1752P57 1752P58 1752P61 1752P64 1752P66 1752P67 1752P68

MPC2440 2372000X 2440.00 Observação: os modelos terminados com /S/R/RS também estão relacionados nesta listagem, mas sem a terminação.

Page 16: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 1 - Introdução

16

Page 17: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

17

2. Conjunto de Instruções • Instruções Básicas LD Load ou carregamento. Começa a operação em cada lógica ou bloco lógico através de contato NA. É uma instrução de um operando. A instrução LD faz com que o conteúdo de um estado interno especificado pelo operando (estado ON ou OFF) se armazene em um registro de operações lógicas. Para formar operações lógicas esta instrução deve ser combinada com outras instruções como OR, AND.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Enquanto o EI 100 estiver ligado, o EI 180 estará ligado.

LDN Carregamento de NF. É similar a instrução LD, porém para contatos NF

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Enquanto o EI 100 estiver desligado, o EI 180 estará ligado.

LDI Load ou carregamento imediato. Começa a operação em cada lógica ou bloco lógico através de contato NA correspondente a uma entrada da faixa E100 a E107(no MPC1600 EXX0 a EXX7 que correspondem aos 8 primeiros estados internos especificados da primeira unidade de entrada configurada). É uma instrução de um operando. A instrução LDI faz com que o conteúdo de uma entrada (estado ON ou OFF) especificada pelo operando, se armazene em um registro de operações lógicas no instante em que a instrução é executada. Para formar operações lógicas esta instrução deve ser combinada com outras instruções como OR, AND.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Essa instrução garante que o estado (ON ou OFF) da entrada 100 será carregado no instante da execução da instrução.

Page 18: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

18

OUT Output. Coloca o resultado de uma operação lógica em um estado interno especificado pelo operando. Este estado interno pode ser uma saída, um estado interno auxiliar ou um estado interno auxiliar com retenção.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Enquanto o EI 100 estiver ligado, o EI 180 estará ligado. OUTN Output negado. Coloca o resultado invertido de uma operação lógica em um estado interno especificado pelo operando. Este estado interno pode ser uma saída, um estado interno auxiliar ou um estado interno auxiliar com retenção.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

OUTI Output Output intermediário. Coloca o resultado de uma operação lógica (armazenada no primeiro registro de operações lógicas) em um estado interno especificado pelo operando (sem alterar o conteúdo do primeiro registro de operações lógicas) podendo portanto ser continuada a seqüência de operações lógicas da linha.

SÍMBOLO EM DIAGRAMA DE RELÉS 1° EXEMPLO DE PROGRAMAÇÃO

Enquanto o EI 100 estiver ligado o EI 180 estará ligado. Enquanto o EI 100 e o EI 101 estiverem ligados o EI 181 estará ligado.

SÍMBOLO EM DIAGRAMA DE RELÉS 2° EXEMPLO DE PROGRAMAÇÃO

Enquanto o EI 100 estiver ligado os EI's 180 e 181 estarão ligados.

Page 19: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

19

OUTIN Output negado não em fim de linha. Coloca o resultado invertido de uma operação lógica (armazenada no primeiro registro de operações lógicas) em um estado interno especificado pelo operando (sem alterar o conteúdo do primeiro registro de operações lógicas) podendo portanto ser continuada a seqüência de operações lógicas da linha.

SÍMBOLO EM DIAGRAMA DE RELÉS 1° EXEMPLO DE PROGRAMAÇÃO

Enquanto o EI 100 estiver desligado o EI 180 estará ligado. Enquanto os EI's 100 e 101 estiverem ligados o EI 180 estará desligado e o EI 181 estará ligado.

SÍMBOLO EM DIAGRAMA DE RELÉS 2° EXEMPLO DE PROGRAMAÇÃO

Enquanto o EI 100 estiver desligado os EI's 180 e 181 estarão respectivamente: ligado e desligado. OUTR Output imediato. Coloca o resultado de uma operação lógica imediatamente em uma saída física especificada pelo operando, válida na faixa S180 a S187.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Quando o EI 100 ligar o OUTR não esperará pelo término da varredura para atualizar o EI 180. Essa atualização é feita imediatamente.

Page 20: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

20

SETR SET-RESET. Permite executar um estado interno com retenção (LATCH). É composta por duas entradas: • (S)ET - Se a entrada é acionada, mesmo durante um único período de varredura, o estado interno

especificado pelo operando é acionado; • • (R)ESET - se a entrada é acionada, mesmo durante um único período de varredura o estado

interno especificado pelo operando é desacionado. Se ambas as entradas são acionadas a entrada RESET tem prioridade.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

EI 100 ligado por um pulso ou constantemente ligado = EI 180 é ligado; desligando o EI 100, o EI 180 se manterá ligado (efeito memória ou LATCH). Ligando o EI 101 o EI 180 é desligado e permanecerá desligado até que exista novo pulso ligado no EI 100 que só ligará o EI 180 desde que o EI 101 seja desligado (sempre prevalece a entrada R). MONOA Monoestável no acionamento. Realiza o acionamento de um estado interno especificado por uma única varredura quando as condições lógicas de entrada passam do estado desativado (OFF) para o estado ativado (ON). Quando a condição lógica de entrada está desativada o estado interno especificado permanece desativado.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

No exemplo apresentado, a saída 180 será acionada pelo tempo de uma varredura toda vez que a entrada 100 passar do estado OFF para o estado ON.

Page 21: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

21

MONOD Monoestável no desacionamento. Realiza o acionamento de um estado interno especificado por uma única varredura quando as condições lógicas de entrada passam do estado ativado (ON) para desativado (OFF). Quando a condição lógica de entrada está ativada (ON) o estado interno especificado permanece desativado.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

No exemplo apresentado, a saída 180 será acionada pelo tempo de uma varredura toda vez que a entrada 100 passar do estado ON para estado OFF. TMR Simula um temporizador com retardo na energização. É composta por 2 entradas: • HABILITA - permite a contagem do temporizador, quando a condição lógica da entrada é ativada.

Caso contrário a contagem é zerada. • START/STOP - Quando ativada permite a contagem e quando desativada pára a contagem (sem

zerar).

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Inicialmente deve-se presetar este temporizador no endereço (400/401). Este endereço é devido ao estado interno utilizado (000), (consultar mapeamento dos temporizadores/contadores). Este valor de preset pode ser colocado na memória de várias formas, por exemplo, através de um campo de edição e uma IHM ou através de uma instrução que escreva dados na memória do CLP.

Page 22: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

22

Estando a entrada 100 acionada, quando a entrada 101 for acionada a contagem de tempo é iniciada, e neste caso alocada, ou atualizada no endereço (440/441) efetivo. E com a entrada 100 desacionada o valor da contagem é zerado. Se a entrada 101 for desacionada a temporização para e não zera continuando assim que a entrada 101 for acionada novamente. Neste exemplo, quando o valor da contagem de tempo (end. 440/441) se igualar ao valor de preset (end.400/401) o E.I. 000 será acionado e conseqüentemente a saída 180 também. CNT Simula um contador. É composta por duas entradas: • (H)ABILITA - Permite que ocorra a contagem, quando a condição lógica da entrada é ativada.

Caso contrário a contagem é zerada. • (S)TART/STOP - na Transição de OFF para ON incrementa a contagem. Para isto a entrada

HABILITA deve estar ativada.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Inicialmente deve-se presetar este contador no endereço (400/401). Este endereço é devido ao estado interno utilizado (000), consultar mapeamento dos temporizadores/contadores. Este valor de preset pode ser colocado na memória do CLP de várias formas, por exemplo, através de um campo de edição em uma IHM ou através de uma instrução que escreva dados na memória. Estando a entrada 100 acionada, a cada acionamento da entrada 101 o conteúdo do endereço (440/441) efetivo é incrementado de uma unidade. E com a entrada 100 desacionada o valor da contagem é zerado. Neste exemplo, quando o valor da contagem (end.440/441) se igualar ao valor de preset (end.400/401) o EI 000 será acionado e conseqüentemente a saída 180 também.

Page 23: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

23

CNT2 Simula um contador. Se a entrada (H)abilita estiver acionada e houver uma transição de OFF para ON na entrada (P)ulso, esta instrução executará o incremento de uma unidade no conteúdo do endereço apontado em OP2 (valor efetivo do contador) e a comparação entre um valor BCD de 4 dígitos (0000 a 9999) contido no endereço apontado por OP1 (preset do contador) com o valor BCD de 4 dígitos (0000 a 9999) contido no endereço apontado por OP2 (valor efetivo do contador). Se o valor efetivo do contador for igual ao valor do preset do contador, será acionado o estado interno declarado em EI e o valor efetivo do contador não será mais incrementado. Estando a entrada (H)abilita desacionada, o valor efetivo do contador será zerado, independente da entrada (P)ulso. Se a entrada (H)abilita estiver desacionada e o valor de preset do contador for igual a zero, o estado interno declarado em EI será estará acionado. A instrução CNT2 é composta das seguintes entradas: • (P)ULSO - na transição de OFF para ON incrementa uma unidade do valor contido no endereço

apontado por OP2. Para isto a entrada (H)abilita deve estar acionada. • (H)ABILITA – executa a comparação, e estando desacionada zera o valor contido no endereço

apontado por OP2.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Estando o estado interno 100 acionado, o valor contido nos endereços 2002 e 2003 (valor efetivo da contagem) será igual a 0000 e o estado interno 0200 estará acionado se o valor contido nos endereços 2000 e 2001 (valor do preset para contagem) também for igual a 0000. Estando o estado interno 100 acionado, a cada acionamento do estado interno 101 o valor contido nos endereços 2002 e 2003 (valor efetivo da contagem), será incrementado de uma unidade. O estado interno 0200 estará desacionado se o valor contido no endereços 2002 e 2003 (valor efetivo da contagem) for menor que o valor contido nos endereços 2000 e 2001 (valor de preset para contagem). O estado interno 0200 estará acionado se o valor contido no endereços 2002 e 2003 (valor efetivo da contagem) for igual ao valor contido nos endereços 2000 e 2001 (valor de preset para contagem).

Page 24: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

24

LDX Load ou carregamento indexado. Começa a operação em uma linha lógica com um contato normalmente aberto. É uma instrução de um único operando. A instrução faz com que um estado interno, especificado pelo conteúdo do operando (estado ON ou OFF) se armazene em um registro de operações lógicas.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Se o conteúdo de 700 for: A instrução LDX 700 carregará no registro de operações lógicas o estado (ON ou OFF) do estado interno 200. Importante: O operando deve ser sempre par, pois indica um registro índice (ou ponteiro) e deve estar entre 400 e 7FF. LDW Começa linha com chave (NA) do tipo “bit endereçável”. Executa o carregamento do conteúdo do bit selecionado por OP2, do registro apontado por OP1, em um registro interno de operações lógicas. Se o conteúdo do bit selecionado for igual a “1”, equivalerá a condição OFF para o restante da lógica. Se o conteúdo do bit selecionado for igual a “0”, equivalerá a condição ON para o restante da lógica. Esta instrução só pode ser utilizada no início de uma linha de programa, podendo a seguir ser combinada com outras instruções tais como AND, ANDN, OR, ORN, LD ou LDN.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Enquanto o bit 13 do registro 3000 estiver em “1”, o EI 180 estará desacionado. Conseqüentemente, enquanto o bit 13 do registro 3000 estiver em “0”, o EI 180 estará acionado.

0 2 0 0 700 701

Page 25: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

25

OUTX Output indexado. Coloca o resultado de uma operação lógica (ON ou OFF) em um estado interno especificado pelo conteúdo do operando (registro índice). Este estado interno indexado pode ser uma saída ou um estado interno auxiliar.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Se o conteúdo de 702 for:

A instrução OUTX com o OP1= 702 estará representando o EI 180. Portanto quando o EI 100 estiver ligado o EI 180 também estará e quando o EI 100 for desativado, conseqüentemente o EI 180 será desativado. Importante: O operando deve ser sempre par, pois indica um registro índice (ou ponteiro). Utilizando os drivers MPC4004, MPC4004G, MPC4004L ou MPC2200, este endereço deve estar entre 400 e 7FF. Utilizando os drivers MPC4004R ou MPC4004T, este endereço deve estar entre 400 e 7FF se os EI's utilizados estiverem entre 0000 e 03FF. Caso utilize os EI's E000 a EFFF, utilize os registros 800 a DFFE.

0 1 8 0702 703

Page 26: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

26

• Instruções de Comparação CMP Comparação entre conteúdos de registros. Esta instrução executa a comparação dos 16 bits de um registro de palavras indicado por OP1 com outro registro indicado por OP2. É uma instrução de entrada única: • (H)ABILITA – quando acionada permite que a comparação seja executada e após sua execução

os flags de comparação estarão na seguinte condição:

se (OP1) > (OP2) LIGA 0F8 se (OP1) = (OP2) LIGA 0F9 se (OP1) < (OP2) LIGA 0FA

Onde: (OP1) e (OP2) indicam o conteúdo dos registros OP1 e OP2 definidos na instrução. O conteúdo dos registros não é alterado por uma instrução de comparação.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Os E.I.s 0F8, 0F9 e 0FA são flags de comparação, portanto cada vez que se habilitar as diversas instruções CMP em um programa, esses flags serão alterados. Para se preservar as saídas em caso de não habilitação da comparação em uma determinada varredura, podemos utilizar a instrução JMP. Se no exemplo acima o estado interno 200 é derivado de uma operação MONOA ou MONOD, quando na varredura a instrução CMP não é executada, ocorre um salto no programa de modo a não atualizar os estados internos ativados pelos flags 0F8, 0F9 e 0FA. Se o estado interno 200 for ativado e o conteúdo dos registros 600 e 800 forem, por exemplo, 1000d e 0999d respectivamente, após a execução da instrução somente EI 0F8 estará ligado. Para 600=0999d e 800=0999d somente o EI 0F9 estará ligado. Finalmente, para 600=0999d e 800=1000d somente o EI 0FA estará ligado. Importante: Note que não importa o momento, somente um dos três EI's estará ligado após a execução da instrução.

Page 27: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

27

FCMP Comparação entre valores com ponto flutuante. Esta instrução executa a comparação de 2 números em ponto flutuante indicado por OP1 e OP1+2 com outro registro indicado por OP2 e OP2+2. Observação: Os valores de ponto flutuante estão armazenados segundo a norma ANSI/IEEE Std 754-1985. É uma instrução de entrada única (habilitada): No caso a entrada habilita acionada a instrução é executada e após sua execução os flags de comparação estarão na seguinte condição:

se (OP1) > (OP2) LIGA 0F8 se (OP1) = (OP2) LIGA 0F9 se (OP1) < (OP2) LIGA 0FA

Onde: (OP1) e (OP2) indicam o conteúdo dos registros OP1 e OP2 definidos na instrução. O conteúdo dos registros não é alterado por uma instrução de comparação.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Os EI's 0F8, 0F9 e 0FA são flags de comparação, portanto cada vez que se habilitar as diversas instruções CMP em um programa, esses flags serão alterados. Para se preservar as saídas em caso de não habilitação da comparação em uma determinada varredura, podemos utilizar a instrução JMP. Se no exemplo acima o estado interno 200 é derivado de uma operação MONOA ou MONOD, quando na varredura a instrução CMP não é executada, ocorre um salto no programa de modo a não atualizar os estados internos ativados pelos flags 0F8, 0F9 e 0FA. Se o estado interno 200 for ativado e o conteúdo dos registros 600/602 e 800/802 forem, por exemplo, 1,35d e 1,34d respectivamente, após a execução da instrução somente EI 0F8 estará ligado. Para 600=1,34d e 800=1,35d somente o EI 0F9 estará ligado. Finalmente, para 600=1,34d e 800=1,34d somente o EI 0FA estará ligado. Importante: Note que não importa o momento, somente um dos três EI's estará ligado após a execução da instrução.

Page 28: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

28

• Instruções Aritméticas SUM Soma BCD. Esta instrução contém três operandos e uma entrada (Habilita). • (H)ABILITA - Quando a entrada habilita é acionada o conteúdo de OP1 é somado em BCD com o

conteúdo de OP2 e o resultado é colocado no registro OP3. Se ocorrer "overflow", o E.I. 0FF será acionado.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Sempre que o EI 200 estiver ligado será executada a soma dos conteúdos dos registros 400 e 404 o resultado colocado no registro 600. Se o resultado for superior a 9999 o EI 0FF será ligado. Supondo que o registro 400 contenha o valor 0100d e o registro 404 contenha 0050d, quando EI 200 for ligado o registro 600 passará a ter o valor 0150d. FSUM Soma em ponto flutuante. Esta instrução contém três operandos e uma entrada (Habilita). Quando a entrada habilita é acionada os 32bits a partir de OP1 são somados com os 32 bits a partir de OP2, o resultado é colocado no registro OP3 e OP3+2. Se ocorrer "overflow", o estado interno 0FF será acionado. Observação: Os valores de ponto flutuante estão armazenados segundo a norma ANSI/IEEE Std 754-1985.

SÍMBOLO EM DIAGRAMA DE RELÉS

EXEMPLO DE PROGRAMAÇÃO

Page 29: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

29

Sempre que o EI 200 estiver ligado será executada a soma dos conteúdos dos registros 400/402 com os registros 404/406. O resultado é colocado no registro 600/602. Se o resultado for superior a + ou - [3,402823E+38] o EI 0FF será ligado. Se o resultado for inferior a + ou - [1,175495E-38] o valor será arredondado para zero. Supondo que o registro 400/402 contenha o valor 3,52d e o registro 404/406 contenha 2,99d, quando EI 200 for ligado o registro 600/602 passará a ter o valor 6,51d. SUMB Soma binária. Esta instrução contém três operandos e uma entrada (Habilita). Quando a entrada habilita é acionada o conteúdo de OP1 é somado em binário com o conteúdo de OP2 e o resultado é colocado no registro OP3. Se ocorrer "overflow", o E.I. 0FF será acionado.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Se o estado interno 200, derivado de uma operação MONOA ou MONOD, estiver acionado, o conteúdo do registro 400 é somado ao conteúdo do registro 404 e o resultado da adição na base hexadecimal é colocado no registro 600.

SUMBL Soma Binária de 32 Bits. Esta instrução contem três operandos e uma entrada Habilita. Quando a entrada habilita é acionada o conteúdo de OP1 é somado em binário com o conteúdo de OP2 e o resultado é colocado no registro OP3. Se ocorrer "overflow", o estado interno 0FFh será acionado.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Page 30: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

30

Se o estado interno 200, derivado de uma operação MONOA ou MONOD estiver acionado o conteúdo do registro 400 é somado ao conteúdo do registro 404 e o resultado da adição binária é colocado no registro 600. SUB Subtração BCD. Esta instrução contém três operandos e uma entrada (Habilita). Quando a entrada habilita é acionada o conteúdo do registro OP1 é subtraído em BCD do conteúdo do registro OP2 e o resultado é colocado no registro OP3. Se o conteúdo de OP1 for maior que o conteúdo de OP2, o E.I. 0FF será desacionado.

(OP3) = [(OP2) - (OP1)]

SÍMBOLO EM DIAGRAMA DE RELÉS

EXEMPLO DE PROGRAMAÇÃO

Se o estado interno 200, derivado de uma operação MONOA ou MONOD, estiver acionado, o conteúdo do registro 400 é subtraído do conteúdo do registro 404 e o resultado da subtração na base decimal é colocado no registro 600. FSUB Subtração em ponto flutuante. Esta instrução contém três operandos e uma entrada (Habilita). Quando a entrada habilita é acionada os 32 bits a partir do registro OP1 são subtraídos dos 32 bits do registro OP2 e o resultado é colocado nos 32 bits a partir do registro OP3. Se o conteúdo de OP1 for maior que o conteúdo de OP2, o estado interno 0FF será desacionado. Observação: Os valores de ponto flutuante estão armazenados segundo a norma ANSI/IEEE Std 754-1985.

(OP3) = [(OP2) - (OP1)]

Page 31: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

31

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Se o estado interno 200, derivado de uma operação MONOA ou MONOD, estiver acionado, o conteúdo do registro 400/402 é subtraído do conteúdo do registro 404/406 e o resultado da subtração (em ponto flutuante) é colocado no registro 600/602. Se o resultado for superior a + ou - [3,402823E+38] o EI 0FF será ligado. Se o resultado for inferior a + ou - [1,175495E-38] o valor será arredondado para zero. SUBB Subtração binária. Esta instrução contém três operandos e uma entrada (Habilita). Quando a entrada habilita é acionada o conteúdo do registro OP1 é subtraído em binário do conteúdo do registro OP2 e o resultado é colocado no registro OP3. Se o conteúdo de OP1 for maior que o conteúdo de OP2, o E.I. 0FF será desacionado.

(OP3) = [(OP2) - (OP1)]

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Se o estado interno 200, derivado de uma operação MONOA ou MONOD, estiver acionado, o conteúdo do registro 400 é subtraído do conteúdo do registro 404 e o resultado da subtração na base hexadecimal é colocado no registro 600. SUBBL Subtração binária de 32 bits. Esta instrução contém 3 operandos e uma entrada (HABILITA). Quando a entrada habilita é acionada o conteúdo do registro OP1 é subtraído em binário do conteúdo do registro OP2 e o resultado é colocado no registro OP3.

(OP3) = [(OP2) - (OP1)]

Page 32: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

32

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Se o estado interno 200, derivado de uma operação MONOA ou MONOD estiver acionado o conteúdo do registro 400 é subtraído do conteúdo do registro 404 e o resultado da subtração binária é colocado no registro 600. DIV Divisão BCD. Esta instrução contém três operandos e uma entrada (habilita). Quando a entrada habilita é acionada, o conteúdo do registro OP1 (dividendo) é dividido pelo conteúdo do registro OP2 (divisor) e o quociente (parte inteira) é colocado no registro OP3. O resto da divisão é colocado em um registro especial (780h). Nesta operação há a restrição de que o divisor (apontado por OP2) seja um número menor ou igual a 255.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

No exemplo acima, se o conteúdo de 400 for 0090d, de 404 for 0020d e a entrada 200 for acionada através de uma instrução MONOA ou MONOD, o conteúdo de 600 será igual a 0004d e o conteúdo de 780 será igual a 000Ah. (O resto é sempre dado em hexadecimal) A divisão por zero (conteúdo de OP2 = 0) não é executada, ou seja, o comportamento é o mesmo da entrada Habilita desacionada. FDIV Divisão com ponto flutuante. Esta instrução contém três operandos e uma entrada (habilita). Quando a entrada habilita é acionada, o conteúdo do registro OP1/OP1+2 (dividendo) é dividido pelo conteúdo do registro OP2/OP2+2 (divisor) e o quociente (parte inteira) é colocado nos registro OP3 e OP3+2. Se ocorrer "overflow", o estado interno 0FF será acionado.

Page 33: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

33

Se o resultado for superior a + ou - [3,402823E+38] o EI 0FF será ligado. Se o resultado for inferior a + ou - [1,175495E-38] o valor será arredondado para zero. Observação: Os valores de ponto flutuante estão armazenados segundo a norma ANSI/IEEE Std 754-1985.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

No exemplo, se o conteúdo de 400 for 2,55d, de 404 for 0,25d e a entrada 200 for acionada através de uma instrução MONOA ou MONOD, o conteúdo de 600 será igual a 10,2d. A divisão por zero (conteúdo de OP2 = 0) não é executada, ou seja, o comportamento é o mesmo da entrada Habilita desacionada. DIVB Divisão binária. Esta instrução contém três operandos e uma entrada (habilita). Quando a entrada habilita é acionada, o conteúdo do registro OP1 (dividendo) é dividido pelo conteúdo do registro OP2 (divisor) e o quociente (parte inteira) é colocado no registro OP3. O resto da divisão é colocado em um registro especial (780h). Nesta operação há a restrição de que o divisor (apontado por OP2) seja um número menor ou igual a 0FFh.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Se o conteúdo de 400 for 0090h, de 404 for 0020h e a entrada 200 for acionada através de uma instrução MONOA ou MONOD, o conteúdo de 600 será igual a 0004h e o conteúdo de 780 será igual a 0010h. (O resto é sempre dado em hexadecimal). A divisão por zero (conteúdo de OP2 = 0) não é executada, ou seja, o comportamento é o mesmo da entrada Habilita desacionada.

Page 34: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

34

DIVBL Divisão binária longa. Esta instrução contém três operandos e uma entrada (habilita). Quando a entrada habilita é acionada, o conteúdo do registro OP1 (dividendo) é dividido pelo conteúdo do registro OP2 (divisor) e o quociente (parte inteira) é colocado no registro OP3. O resto da divisão é colocado em um registro especial (780 h). Nesta operação o divisor (apontado por OP2) é um número cujo máximo é FFFFh. Se o conteúdo de OP2 for menor ou igual a FFh, utilize a instrução DIVB.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

A divisão por zero (conteúdo de OP2 = 0) não é executada ou seja o comportamento é o mesmo da entrada Habilita desacionada. No exemplo, suponha a seguinte situação: Se o estado interno 200 for acionado através de uma instrução MONOA ou MONOD, teremos:

DVBLL Divisão binária. Esta instrução contém 3 operandos e uma entrada (habilita). Quando a entrada habilita é acionada, o conteúdo do registro OP1 (dividendo) é dividido pelo conteúdo do registro OP2 (divisor) e o quociente (parte inteira) é colocado no registro OP3. O resto da divisão é colocado em um registro especial (780h).

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

A divisão por zero (conteúdo de OP2 = 0) não é executada, ou seja, o comportamento é o mesmo da entrada Habilita desacionada.

400 7777h 404 FFFFh

RESULTADO DA DIVISÃO RESTO DA DIVISÃO

600 0000h 780 7777h

Page 35: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

35

Sempre que o EI 200 estiver ligado será executada a divisão dos conteúdos dos registros 400 e 402 pelo conteúdos dos registros 404 e 406. O resultado é colocado nos registros 600 e 602 e o resto nos registros 780 e 782. Supondo que os registros 400 e 402 contenham respectivamente os valores 1500 e 010F e os registros 404 e 406 os valores 010F e 0050, após o EI 200 ser ligado o resultado nos registros 600 e 602 serão respectivamente 0000 e 0013. Os registros 780 e 782 que contem o resto serão armazenados com 00E2 e FB1F. MULT Multiplicação BCD. Esta instrução contém três operandos e uma entrada (habilita). Quando a entrada habilita é acionada, o produto do conteúdo de OP1 e do conteúdo OP2 é colocado no registro OP3. Se ocorrer "overflow", o EI 0FFh será acionado.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Note que OP3 aponta para o byte mais significativo do produto, que está contido em 4 bytes (8 dígitos) a partir de OP3 (Multiplicação de valor de 4 dígitos por valor de 4 dígitos implica em um produto de 8 dígitos). A escolha da parte do resultado a ser usado em outra operação fica a critério do programador. (Flutuação do ponto decimal). No exemplo, se o conteúdo de 400 for 0002d, de 404 for 0005d e a entrada 200 for acionada através de uma instrução MONOA ou MONOD, o conteúdo de 600 será igual a 0000d e o conteúdo de 602 será igual a 0010d. FMUL Multiplicação em ponto flutuante. Esta instrução contém três operandos e uma entrada (habilita). Quando a entrada habilita é acionada, o produto do conteúdo de OP1/OP1+2 e do conteúdo OP2/OP2+2 é colocado nos registro OP3/OP3+2. Se o resultado for superior a + ou - [3,402823E+38] o EI 0FF será ligado. Se o resultado for inferior a + ou - [1,175495E-38] o valor será arredondado para zero. Observação: Os valores de ponto flutuante estão armazenados segundo a norma ANSI/IEEE Std 754-1985.

Page 36: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

36

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Se o conteúdo de 400/402 for 1,25d, de 404/406 for 1,55d e a entrada 200 for acionada através de uma instrução MONOA ou MONOD, o conteúdo de 600/602 será igual a 1,9375d. MULTB Multiplicação binária. Esta instrução contém três operandos e uma entrada (habilita). Quando a entrada habilita é acionada, o produto do conteúdo de OP1 e do conteúdo OP2 é colocado no registro OP3. Se ocorrer "overflow", o EI 0FFh será acionado.

SÍMBOLO EM DIAGRAMA DE RELÉS

EXEMPLO DE PROGRAMAÇÃO

Note que OP3 aponta para o byte mais significativo do produto, que está contido em 4 bytes (8 dígitos) a partir de OP3 (Multiplicação de valor de 2 bytes por valor de 2 bytes implica em um produto de 4 bytes). No exemplo, se o conteúdo de 400 for 0002h, de 404 for 0005h e a entrada 200 for acionada através de uma instrução MONOA ou MONOD, o conteúdo de 600 será igual a 0000h e o conteúdo de 602 será igual a 000Ah.

Page 37: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

37

MULBL Multiplicação binária de 32 bits. Esta instrução contém 3 operandos e uma entrada (habilita). Quando a entrada habilita é acionada, o produto do conteúdo de OP1 e do conteúdo OP2 é colocado no registro apontado por OP3. Se ocorrer "overflow", o EI 0FFh será acionado.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Note que OP3 aponta para o byte mais significativo do produto, que está contido em 8 bytes a partir de OP3. (Multiplicação de valor de 4 bytes por valor de 4 bytes implica em um produto de 8 bytes). Sempre que o EI 200 estiver ligado será executada a multiplicação do conteúdo de 400 e 402 pelo conteúdo de 404 e 406. O resultado é armazenado nos registros 600, 602, 604 e 606. Supondo que o registro 400 e 402 contenham os valores 2222 e 2222 e os registros 404 e 406 os valores 1111 e 1111, após o EI 200 ser acionado os registros 600, 602, 604 e 606 conterão, respectivamente, os valores 0246, 8ACF, 0ECA e 8642.

Page 38: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

38

• Instruções de Movimentação de Dados MOV Movimentação de dados. Se a entrada habilita estiver acionada, transfere o conteúdo do registro apontado por OP1 para OP2.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Se a entrada 100 estiver fechada o conteúdo do registro 600 é copiado para o registro 800. Então após a execução da instrução o conteúdo de 800 será o mesmo de 600. MOVK Carregamento de constante em um registro. Esta instrução executa a colocação de um valor de 16 bits em um registro de palavras indicado por OP1. A instrução tem uma única entrada (Habilita).

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

No exemplo acima, se o estado 200, derivado da operação MONOA estiver acionado, o valor 1234 é colocado no registro 600 (posições 600 e 601 da memória).

1 2 3 4600 601

Page 39: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

39

TAB Carregamento de constantes em uma tabela de dados. Esta instrução possibilita o carregamento de até 16 constantes de 16 bits a partir de um registro indicado por OP1. A instrução especifica também a quantidade de constantes que serão carregadas e tem uma única entrada (Habilita). Os valores a serem carregados são declarados imediatamente após a instrução.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Quando o estado interno 200 for acionado, o registro 600 passará a conter 1234, 602 conterá 5678 e assim por diante. Observação: A tabela de dados deve começar e terminar dentro de uma mesma página, neste exemplo a página começa em 600 e terminando conseqüentemente em 6FF. ATAB Armazena bloco de dados. É uma instrução de uma única entrada (habilita). A instrução copia um bloco de dados de até 64 bytes para uma região de armazenamento correspondendo a uma das 64 tabelas possíveis. Onde OP1 aponta para o primeiro byte; NB é o número de bytes (01 a 64) que serão armazenados e NT é o número da tabela (01 a 64) que vai receber os bytes. Armazenar os 32 presets dos temporizadores/contadores na tabela 1

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

No exemplo acima, os 64 bytes entre os registros 400 e 43E que são exatamente os 32 presets de temporizadores/contadores foram armazenados numa região da memória identificada por tabela 01. Isso ocorreu após o acionamento do estado interno 200.

Page 40: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

40

VTAB Recupera bloco de dados. É uma instrução de uma única entrada (Habilita). A instrução copia um bloco de dados de até 64 bytes de uma região de armazenamento para a região de dados. Onde OP1 aponta para o primeiro byte da região de dados; NB é o número de bytes (01 a 64) que serão copiados e NT é o número da tabela (01 a 64) fonte dos dados.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

No exemplo acima, após o acionamento do estado interno 200 ocorrerá o carregamento de 64 bytes que estão na região de memória de armazenamento identificada por tabela 64 para 64 bytes a partir do endereço 400 na região da memória de dados. FTAB Carregamento de constantes em ponto flutuante em uma tabela de dados. Esta instrução, disponível somente para os drivers MPC4004R, MPC4004T e MPC2440, possibilita o carregamento de até 16 valores em ponto flutuante a partir de um registro indicado por OP1. A instrução especifica também a quantidade de constantes que serão carregadas e tem uma única entrada (Habilita). Os valores a serem carregados são declarados imediatamente após a instrução utilizando-se "." (ponto) para fazer a separação de decimal.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Quando o estado interno 200 for acionado, o registro 600 passará a conter 1,23 em ponto flutuante, 604 conterá -4,56, 608 conterá -2,66 e assim por diante.

Page 41: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

41

MOVX Movimentação de dados indexada no destino. Se a entrada Habilita estiver acionada o conteúdo do registro apontado por OP1 será transferido para o registro cujo índice (endereço) é apontado pelo registro OP2. A instrução tem ainda uma entrada AI (auto incremento), que quando ativada provoca um decremento automático no índice (conteúdo de OP2), caso contrário provoca um incremento. Como o incremento ou decremento é feito antes da execução da transferência, é necessário que o conteúdo inicial do índice seja duas unidades a menos ou a mais conforme a operação seja de incremento ou decremento respectivamente. É uma instrução de duas entradas: A/I - quando ativada provoca um decremento automático, caso contrário um incremento; H - HABILITA - se acionada executa a função anterior

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Se o estado interno 200, derivado de uma operação MONOA ou MONOD estiver acionado a instrução será executada, caso contrário a próxima linha de programa será iniciada. Suponha que através de instruções realizadas anteriormente, a estrutura de dados esteja da seguinte maneira antes da execução:

Valor Reg. 0 0 801 0 7 800

X X 703 X X 702 7 8 701 5 6 700 X X 6FF X X 6FE

3 4 601 1 2 600

Page 42: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

42

Se a entrada 100 estiver acionada o conteúdo do registro índice 800 passará para 6FE, caso contrário passará para 702, portanto ficando a estrutura de dados da seguinte forma:

E100 = ON Reg. E100 = OFF

F E 801 0 2 0 6 800 0 7

X X 703 3 4 X X 702 1 2 7 8 701 7 8 5 6 700 5 6 3 4 6FF X X 1 2 6FE X X

3 4 601 3 4 1 2 600 1 2

WLDX Movimentação de dados indexada na origem. Se a entrada Habilita estiver acionada o conteúdo do registro cujo índice (endereço) é apontado por OP1 será transferido para o registro apontado pelo registro OP2. A instrução tem ainda uma entrada AI (auto incremento), que quando ativada provoca um decremento automático no índice (conteúdo de OP1), caso contrário provoca um incremento. Como o incremento ou decremento é feito antes da execução da transferência, é necessário que o conteúdo inicial do índice seja duas unidades a menos ou a mais conforme a operação seja de incremento ou decremento respectivamente. É uma instrução de duas entradas: (AI) - quando ativada provoca um decremento automático, caso contrário um incremento; (H) - HABILITA - se acionada executa a função anterior

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Se o estado interno 200, derivado de uma operação MONOA ou MONOD estiver acionado a instrução será executada, caso contrário a próxima linha de programa será iniciada.

Page 43: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

43

Suponha que através de instruções realizadas anteriormente a estrutura de dados esteja da seguinte maneira antes da execução:

Valor Reg. X X X X 800

7 8 5 6 702 X X X X 700 3 4 1 2 6FE

0 0 0 7 600

Se a entrada 100 estiver acionada o conteúdo do registro índice passará para 6FE, caso contrário para 702, portanto ficando a estrutura de dados da seguinte forma:

E100 = ON E100 = OFF 3 4 801 7 8 1 2 800 5 6

5 6 703 7 8 7 8 702 5 6 X X 701 X X X X 700 X X 3 4 6FF 3 4 1 2 6FE 1 2

F E 601 0 2 0 6 600 0 7

BMOVX Movimentação de bloco de dados indexados na origem e no destino. Se a entrada Habilita estiver acionada será copiada uma determinada quantidade de bytes (n), a partir do endereço apontado por OP1 (origem), para uma outra região que começa no endereço apontado por OP2 (destino). A instrução BMOVX pode ler toda a memória do CP utilizado e pode escrever em qualquer região da memória que não seja a região de uso interno do sistema. A instrução tem uma única entrada (HABILITA). Onde n é o número de bytes do bloco (se n = 0 o bloco será de 256 bytes).

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Page 44: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

44

Observação: Não é necessário que o todo o bloco seja colocado em uma única página de destino. No exemplo, suponhamos a seguinte situação: Quando o estado interno 200 for acionado através de uma instrução MONOA OU MONOD, ocorrerá a "cópia" de 64 bytes a partir do endereço apontado por 600 (400) para 64 bytes a partir do endereço apontado por 800 (6D2). Observe que neste caso o bloco de dados de destino (6D2 a 711) começou na página 6 (6D2 a 6FF) e terminou na página 7 (700 a 711).

400 XXXX 6D2 XXXX XXXX XXXX

XXXX

64 BYTES

43E XXXX

64 BYTES XXXX

710 XXXX

SCRLL Scroll de dados de uma tabela de “n” posições. Se a entrada (H)abilita for acionada com a entrada (S)entido desacionada, os conjuntos de dados (OP3 = quantidade de bytes dos conjuntos) iniciados no endereço apontado por OP1 e contidos nas “n” posições da tabela (OP2 = número de posições da tabela) serão deslocadas no sentido crescente da tabela, ou seja da primeira à última posição, descartando-se o último conjunto. Se a entrada (H)abilita for acionada com a entrada (S)entido acionada, os conjuntos de dados iniciados no endereço apontado por OP1 e contidos nas “n” posições da tabela serão deslocadas no sentido decrescente da tabela, ou seja da última à primeira posição, descartando-se o primeiro conjunto. Se a entrada (H)abilita for acionada com a entrada (C)arrega acionada, o valor declarado de K será carregado em toda a tabela, independente da entrada (S)entido. Esta última possibilidade implementada na instrução permite a inicialização da tabela com valores predefinidos. A instrução SCRLL permite a movimentação de no máximo 10000 bytes (determinados pela multiplicação do valor de OP2 pelo valor de OP3) em toda região de registros do CP. A instrução SCRLL é composta das seguintes entradas: • (S)ENTIDO - indica se o deslocamento dos dados contidos nas “n” posições da tabela é no sentido

da primeira para última posição da tabela (S desacionado) ou no sentido da última para primeira posição da tabela (S acionado);

• (C)ARREGA - Carrega constante K; • (H)ABILITA - se acionada executa as funções anteriores.

600 0400 800 06D2

Page 45: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

45

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Estando o estado interno 202 acionado, quando estado interno 200 for acionado através de uma instrução MONOA OU MONOD o valor FF será carrega na tabela, do endereço 6000 até 603B.

ANTES DEPOIS 6000 AB 6000 FF 6001 FF 6001 FF 6002 44 6002 FF 6003 77 6003 FF 6004 68 6004 FF

Primeira Posição (01)

6005 16

Primeira Posição (01)

6005 FF 6006 99 6006 FF 6007 09 6007 FF 6008 35 6008 FF 6009 CC 6009 FF 600A F6 600A FF

Primeira Posição (02)

600B 86

Primeira Posição (02)

600B FF “ “ “ “ “ “ “ “ “ “ “ “

6030 9F 6030 FF 6031 00 6031 FF 6032 32 6032 FF 6033 99 6033 FF 6034 FF 6034 FF

Penúltima Posição (09)

6035 B3

Penúltima Posição (09)

6035 FF 6036 66 6036 FF 6037 88 6037 FF 6038 A3 6038 FF 6039 15 6039 FF 603A 04 603A FF

60 BYTES

Última Posição (10)

603B 09

60 BYTES

Última Posição (10)

603B FF

Page 46: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

46

Estando o estado interno 201 desacionado, quando o estado interno 200 for acionado através de uma instrução MONOA OU MONOD, ocorrerá o scroll do conteúdo da posição 01 da tabela, localizada entre os endereços 6000 e 6005, para a posição 02 da tabela, localizada entre os endereços 6006 e 600B, e assim sucessivamente até que o conteúdo da posição 09, localizada entre os endereços 6030 e 6035 seja transferido para a posição 10, localizada entre os endereços 6036 e 603B.

ANTES DEPOIS 6000 11 6000 11 6001 12 6001 12 6002 13 6002 13 6003 14 6003 14 6004 15 6004 15

Primeira Posição (01)

6005 16

Primeira Posição (01)

6005 16 6006 21 6006 11 6007 22 6007 12 6008 23 6008 13 6009 24 6009 14 600A 25 600A 15

Primeira Posição (02)

600B 26

Primeira Posição (02)

600B 16 “ “ “ “ “ “ “ “ “ “ “ “

6030 91 6030 81 6031 92 6031 82 6032 93 6032 83 6033 94 6033 84 6034 95 6034 85

Penúltima Posição (09)

6035 96

Penúltima Posição (09)

6035 86 6036 A1 6036 91 6037 A2 6037 92 6038 A3 6038 93 6039 A4 6039 94 603A A5 603A 95

60 BYTES

Última Posição (10)

603B A6

60 BYTES

Última Posição (10)

603B 96

Page 47: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

47

Estando o estado interno 201 acionado, quando o estado interno 200 for acionado através de uma instrução MONOA OU MONOD, ocorrerá o scroll do conteúdo da posição 10 da tabela, localizada entre os endereços 6036 e 603B, para a posição 09 da tabela, localizada entre os endereços 6030 e 6035, e assim sucessivamente até que o conteúdo da posição 02, localizada entre os endereços 6006 e 600B seja transferido para a posição 01, localizada entre os endereços 6000 e 6005.

ANTES DEPOIS 6000 11 6000 21 6001 12 6001 22 6002 13 6002 23 6003 14 6003 24 6004 15 6004 25

Primeira Posição (01)

6005 16

Primeira Posição (01)

6005 26 6006 21 6006 31 6007 22 6007 32 6008 23 6008 33 6009 24 6009 34 600A 25 600A 35

Primeira Posição (02)

600B 26

Primeira Posição (02)

600B 36 “ “ “ “ “ “ “ “ “ “ “ “

6030 91 6030 A1 6031 92 6031 A2 6032 93 6032 A3 6033 94 6033 A4 6034 95 6034 A5

Penúltima Posição (09)

6035 96

Penúltima Posição (09)

6035 A6 6036 A1 6036 A1 6037 A2 6037 A2 6038 A3 6038 A3 6039 A4 6039 A4 603A A5 603A A5

60 BYTES

Última Posição (10)

603B A6

60 BYTES

Última Posição (10)

603B A6

Page 48: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

48

• Instruções de Deslocamento

SFR Deslocamento de estados internos. A instrução de deslocamento é uma instrução de dois operandos e funciona como uma entrada serial a um registro de deslocamento, sendo composta das seguintes entradas: • (D)ADOS - Entrada de dados (ON ou OFF). • (S)ENTIDO - indica se o deslocamento é no sentido de OP1 para OP2 (S acionado) ou OP2 para

OP1 (S desacionado). • (R)ESET - se ativado desliga todos os estados dentro da faixa OP1 a OP2. • (H)ABILITA - se acionada executa as funções anteriores.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Sempre que o EI 200 estiver ligado os dados (ON/OFF) presentes nos EI's de 180 a 187 serão deslocados no sentido crescente ou decrescente dependendo do EI 101 (quando ligado sentido é de OP1 para OP2, caso contrário sentido é de OP2 para OP1). O dado que estiver presente na entrada D entrará em uma extremidade do intervalo de EI's e o dado da outra extremidade será perdido. Ligando os EI's 200 e 201 simultaneamente todos os EI's de 180 até 187 serão desligados (passados para OFF). Supondo que os EI's de 180 até 187 estão com o dado OFF e que o EI 200 é derivado de uma instrução MONOA, segue o endereçamento de memória e seu conteúdo antes, durante e depois de uma sequência de 3 pulsos ON pelo EI 200 com os EI's 100 e 101 ligados e EI 102 desligado.

Page 49: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

49

SFRW Executa o deslocamento de bits a partir do bit15 do conteúdo do registro inicial (OP1) até o bit0 do conteúdo do registro final (OP2). Se a entrada (H)abilita for acionada e estando a entrada (L)impa acionada, todos os bits contidos entre os registros iniciais e finais serão limpos, ou seja, o valor FFFFh será escrito no conteúdo dos registros. Se a entrada (H)abilita for acionada e estando a entrada (L)impa desacionada, o valor “1” representado para entrada (D)ado desacionada será deslocado para conteúdo do bit15 do registro inicial, cujo conteúdo será deslocado para conteúdo do bit14, cujo conteúdo será deslocado para o conteúdo do bit13 e assim sucessivamente até que o conteúdo do bit0 do registro final seja descartado. Se a entrada (H)abilita for acionada e estando a entrada (L)impa desacionada, o valor “0” representado para entrada (D)ado acionada será deslocado para conteúdo do bit15 do registro inicial, cujo conteúdo será deslocado para conteúdo do bit14, cujo conteúdo será deslocado para o conteúdo do bit13 e assim sucessivamente até que o conteúdo do bit0 do registro final seja descartado. A instrução SFRW é composta pelas seguintes entradas: • (D)ADO – se a entrada LIMPA desacionada e em conjunto com o acionamento da entrada

HABILITA, coloca o valor “1” (entrada DADO desacionada) ou “0” (entrada DADO acionada) no bit15 do conteúdo do registro inicial, deslocando seu conteúdo e todos os bits a partir dele até o bit0 do conteúdo do registro final.

• (L)IMPA – se acionada em conjunto com a entrada HABILITA, coloca o dado FFFFh no conteúdo de todos os registros entre os registro inicial (OP1) e registro final (OP2).

• (H)ABILITA - se acionada executa a operação limpa ou deslocamento de bits.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Estando o estado interno 201 acionado, quando o estado interno 200 for acionado através de uma instrução MONOA OU MONOD, o valor FFFFh será carregado nos 8 registros compreendidos entre 3000 e 300E.

Page 50: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

50

ANTES DO ACIONAMENTO DO EI 200 DEPOIS DO ACIONAMENTO DO EI 200

REGISTRO CONTEÚDO EM HEXA

CONETÚDO EM BINÁRIO

b15 b0 REGISTRO CONTEÚDO

EM HEXA CONETÚDO EM

BINÁRIO b15 b0

3000 F890 1111100010010000 3000 FFFF 1111111111111111 3002 0000 0000000000000000 3002 FFFF 1111111111111111 3004 A055 1010000001010101 3004 FFFF 1111111111111111 3006 3777 0011011101110111 3006 FFFF 1111111111111111 3008 0101 0000000100000001 3008 FFFF 1111111111111111 300A FFFF 1111111111111111 300A FFFF 1111111111111111 300C 1234 0001001000110100 300C FFFF 1111111111111111 300E 9999 1001100110011001 300E FFFF 1111111111111111

Estando o estado interno 201 desacionado e o estado interno 202 desacionado, quando o estado interno 200 for acionado através de uma instrução MONOA OU MONOD, o bit15 do registro 3000 assumirá o valor “1”, correspondente a entrada 202 desacionada, deslocando seu conteúdo e todos os bits a partir dele até o bit0 do conteúdo do registro 300E, que será descartado.

ANTES DO ACIONAMENTO DO EI 200 DEPOIS DO ACIONAMENTO DO EI 200

REGISTRO CONTEÚDO EM HEXA

CONETÚDO EM BINÁRIO

b15 b0 REGISTRO CONTEÚDO

EM HEXA CONETÚDO EM

BINÁRIO b15 b0

3000 0000 0000000000000000 3000 8000 1000000000000000 3002 0000 0000000000000000 3002 0000 0000000000000000 3004 0000 0000000000000000 3004 0000 0000000000000000 3006 0000 0000000000000000 3006 0000 0000000000000000 3008 0000 0000000000000000 3008 0000 0000000000000000 300A 0000 0000000000000000 300A 0000 0000000000000000 300C 0000 0000000000000000 300C 0000 0000000000000000 300E 0007 0000000000000111 300E 0003 0000000000000011

Estando o estado interno 201 desacionado e o estado interno 202 acionado, quando o estado interno 200 for acionado através de uma instrução MONOA OU MONOD, o bit15 do registro 3000 assumirá o valor “0”, correspondente a entrada 202 acionada, deslocando seu conteúdo e todos os bits a partir dele até o bit0 do conteúdo do registro 300E, que será descartado.

ANTES DO ACIONAMENTO DO EI 200 DEPOIS DO ACIONAMENTO DO EI 200

REGISTRO CONTEÚDO EM HEXA

CONETÚDO EM BINÁRIO

b15 b0 REGISTRO CONTEÚDO

EM HEXA CONETÚDO EM

BINÁRIO b15 b0

3000 FFFF 1111111111111111 3000 7FFF 0111111111111111 3002 FFFF 1111111111111111 3002 FFFF 1111111111111111 3004 FFFF 1111111111111111 3004 FFFF 1111111111111111 3006 FFFF 1111111111111111 3006 FFFF 1111111111111111 3008 FFFF 1111111111111111 3008 FFFF 1111111111111111 300A FFFF 1111111111111111 300A FFFF 1111111111111111 300C FFFF 1111111111111111 300C FFFF 1111111111111111 300E FFF8 1111111111111000 300E FFFC 1111111111111100

Page 51: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

51

SHIFB Deslocamento de bit. Provoca um deslocamento de um bit em um registro de palavras. A instrução tem duas entradas: • (S)ENTIDO - Quando ativada permite executar um deslocamento à direita e quando desativada

permite executar um deslocamento à esquerda. • (H)ABILITA - quando a condição lógica da entrada é ativada a instrução é executada.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Sempre que o EI 200 estiver ligado o conteúdo do registro 880 será deslocado 1 bit no sentido crescente ou decrescente dependendo do EI 100. Supondo que o registro 880 esteja carregado com o dado 0001 e que o EI 200 é derivado de uma instrução MONOA, segue o endereçamento de memória e seu conteúdo antes, durante e depois de uma seqüência de 3 pulsos ON pelo EI 200 com o EI 100 desligado. Visualização bit a bit: Visualização no registro:

Page 52: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

52

SHIFN Deslocamento de nibble. Provoca um deslocamento de 4 bits (NIBBLE) em um registro de palavras. A instrução tem duas entradas: • (S)ENTIDO - Quando ativada permite executar um deslocamento à direita e quando desativada

executa um deslocamento à esquerda. • (H)ABILITA - quando a condição lógica da entrada é ativada a instrução é executada.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Sempre que o EI 200 estiver ligado o conteúdo do registro 880 será deslocado 1 nibble no sentido crescente ou decrescente dependendo do EI 100. Supondo que o registro 880 contém o dado FFFF e que o EI 200 é derivado de uma instrução MONOA, segue o endereçamento de memória e seu conteúdo antes, durante e depois de uma sequência de 3 pulsos ON pelo EI 200 com o EI 100 desligado. Visualização bit a bit: Visualização no registro:

Page 53: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

53

SHIFL Deslocamento de bit. Provoca um deslocamento de 'n' bits em um registro de 32 bits. A instrução tem 2 entradas: • (S)ENTIDO - Quando ativada permite executar 'n' deslocamentos à direita; Quando desativada

executa 'n' deslocamentos à esquerda. • (H)ABILITA - quando a condição lógica da entrada é ativada a instrução é executada.

SÍMBOLO EM DIAGRAMA DE RELÉS

EXEMPLO DE PROGRAMAÇÃO

Sempre que o EI 200 estiver ligado a palavra de 32 bits armazenada a partir do registro 880 será deslocada 2 bits no sentido crescente ou decrescente dependendo do EI 100. Supondo que em etapas anteriores do programa houve o carregamento dos registros 880 e 882 com os dados 0000 e 0001 respectivamente, e que o EI 200 é derivado de uma instrução MONOA, segue o endereçamento de memória e seu conteúdo antes, durante e depois de uma sequência de 3 pulsos ON pelo EI 200 com o EI 100 desligado. Visualização bit a bit:

Page 54: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

54

Visualização no registro:

Page 55: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

55

• Instruções de Conversão de Dados CONV Conversão BCD/BIN ou BIN/BCD. É uma instrução de dois operandos, onde OP2 define para onde vai o resultado da conversão e OP1 onde está a fonte de dados para conversão, a instrução tem duas entradas: • (D)ECIMAL - estando a entrada D acionada a conversão é feita considerando a fonte (OP1) como

um dado em hexadecimal portanto uma conversão binário para BCD. Caso a entrada D esteja desacionada a conversão é feita BCD para binário. Se a conversão binário para BCD implica em um número maior que 9999, a parte mais significativa deste número será perdida.

• (H)ABILITA - se acionada executa as funções anteriores.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Sempre que o EI 200 estiver ligado o conteúdo do registro 600 será convertido, de hexadecimal p/ decimal ou vice-versa dependendo do EI 100, e armazenado no registro 800. Supondo que o registro 600 esteja carregado com o valor FFh, ao acionar o EI 200 com o EI 100 ligado o registro 800 passará a conter o valor 0255d. CONVL Conversão bcd/bin ou bin/bcd de 32 bits. É uma instrução de dois operandos, onde o operando 2 define para onde vai o resultado da conversão e o operando 1 onde está a fonte de dados para conversão, a instrução tem duas entradas: (D)ECIMAL - estando a entrada D acionada a conversão é feita considerando a fonte (OP1) como um dado em hexadecimal portanto uma conversão binário para BCD. Caso a entrada D esteja desacionada a conversão e feita BCD para binário. Se a conversão binário para BCD implica em um número > 99999999, a parte mais significativa deste número será perdida. (H)ABILITA - se acionada executa as funções anteriores

SÍMBOLO EM DIAGRAMA DE RELÉS

EXEMPLO DE PROGRAMAÇÃO

Page 56: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

56

Sempre que o EI 200 estiver ligado o conteúdo dos registros 600 e 602 serão convertidos, de hexadecimal p/ decimal ou vice-versa dependendo do EI 100, e armazenado nos registros 800 e 802. Supondo os registros 600 e 602 foram carregados com os dados 0000 e FFFF, e que o EI 200 foi acionado com o EI 100 ligado, foram carregados nos registros 800 e 802 respectivamente os valores 0006 e 5535. FCONV Conversão Float/BCD ou BCD/Float. É uma instrução de três operandos, onde OP2 define para onde vai o resultado da conversão, OP1 onde está a fonte de dados para conversão e OP3 qual EI indicará se o número a ser convertido é positivo ou negativo, a instrução tem duas entradas: Float/Decimal - Estando a entrada F/D acionada a conversão é feita considerando a fonte (OP1) como um dado em BCD, portanto uma conversão BCD para Float. Caso a entrada F/D esteja desacionada a conversão é feita Float para BCD. Se a conversão de Float para BCD implica em um número superior a + ou - [9999.9999], a instrução não será executada e o EI 0FFh será ligado. HABILITA - se acionada executa as funções anteriores. Observação: Os valores de ponto flutuante estão armazenados segundo a norma ANSI/IEEE Std 754-1985.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

No exemplo, sempre que o EI 200 estiver ligado o conteúdo do registro 600 será convertido (obedecendo ao sinal indicado no EI 206), de float p/ BCD ou vice-versa, dependendo do EI 100, e armazenado no registro 800.

Page 57: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

57

BCDAS Conversão de dados decimais para ASCII. É uma instrução de dois operandos que provoca a conversão de um dado em BCD ou HEXADECIMAL de 4 dígitos em 4 bytes ASCII correspondentes. A fonte para conversão é indicado por OP1 e o destino é indicado por OP2. A instrução tem uma entrada Habilita.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Sempre que o EI 100 estiver ligado o conteúdo do registro 880 será convertido de hexadecimal ou decimal para o equivalente ASCII de cada dígito e armazenado nos registros 882 e 884. Supondo que em etapas anteriores do programa houve o carregamento do registro 880 com o dado 1234, quando o EI 100 for acionado os registros 882 e 884 serão carregados com os valores 3132 e 3334. Cada dígito original convertido produz um byte em ASCII. Ver tabela ASCII na página 58. BCDAP Conversão de dados decimais para ASCII com colocação de ponto decimal. É uma instrução de três operandos que provoca a conversão de um registro BCD em ASCII, levando em consideração a colocação do ponto decimal (.), vírgula (,) ou dois pontos (:). A fonte para conversão é indicada por OP1 e o destino é indicado por OP2 e o byte de controle em OP3. Mnemônico para lista de instruções: BCDAP OP1 OP2 OP3

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

ONDE: OP1 – Endereço de origem OP2 – Endereço destino OP3 – Byte de controle H – Entrada Habilita – Permite cálculo

Page 58: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

58

Byte de controle: Define a posição do ponto, vírgula ou ponto decimal segundo a tabela mostrada abaixo:

BYTE DE CONTROLE VALOR À SER MOSTRADO

01 XXX.X 02 XX.XX 03 X.XXX 11 XXX,X 12 XX,XX 13 X,XXX 21 XXX:X 22 XX:XX 23 X:XXX

Observação: OP1 OP2 devem estar na mesma página No exemplo apresentado, se o conteúdo de F00 for igual a 9876d e o estado interno 100 for acionado, através de MONOA ou MONOD, o conteúdo de F02 será igual a 3938,o conteúdo de F04 será igual a 372E e o conteúdo de F06 será igual a 36xx. Cada dígito original convertido produz um byte em ASCII. TABELA ASCII

Page 59: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

59

• Instruções de Trabalho com Relógio e Calendário LDATA Ler data. É uma instrução de um operando tendo uma entrada ASC/BCD e uma entrada Habilita. Esta instrução é utilizada para se conhecer em qualquer instante a data fornecida por um calendário da CPU cujos dados são colocados em registros a partir de OP1.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Estando a entrada A/B desacionada a leitura é feita no formato BCD. Com a entrada A/B acionada o formato será ASCII (possibilitando a impressão direta). O formato dos dados será o seguinte:

FORMATO BCD OP1+3 0 0 OP1+2 DIA+ DIA- OP1+1 MÊS+ MÊS- OP1 ANO ANO-

No exemplo apresentado, se o estado interno auxiliar 200 estiver acionado (através de uma instrução MONOA ou MONOD) os registros 600, 601, 602 e 603 serão atualizados com os seguintes dados:

603 0 0 602 DIA+ DIA- 601 MÊS+ MÊS- 600 ANO ANO-

Nesse caso esses dados serão fornecidos pela CPU. Os dados poderão ser vistos se uma tela de um campo de visualização de oito dígitos for programada na IHM utilizada.

FORMATO ASCIIOP1+7 ASCII DE ANO- OP1+6 ASCII DE ANO OP1+5 ASCII DE / OP1+4 ASCII DE MÊS- OP1+3 ASCII DE MÊS+ OP1+2 ASCII DE / OP1+1 ASCII DE DIA- OP1 ASCII DE DIA+

Page 60: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

60

LTIME Ler hora. É uma instrução de um operando tendo uma entrada ASC/BCD e uma entrada Habilita. Esta instrução é utilizada para se conhecer em qualquer instante a hora fornecida por um relógio em tempo real e cujos dados são colocados em registros a partir de OP1.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Estando a entrada A/B desacionada a leitura é feita no formato BCD. Com a entrada A/B acionada o formato será ASCII (possibilitando a impressão direta). O formato dos dados será o seguinte:

FORMATO BCD OP1+3 0 0 OP1+2 SEG+ SEG.- OP1+1 MIN+ MIN- OP1 HORA+ HORA-

No exemplo apresentado, se o estado interno 200 estiver acionado (através de uma instrução MONOA ou MONOD) os registros 800 a 807 serão atualizados com os seguintes dados:

807 ASCII DE SEG.- 806 ASCII DE SEG+ 805 ASCII DE : 804 ASCII DE MIN- 803 ASCII DE MIN+ 802 ASCII DE : 801 ASCII HORA- 800 ASCII HORA+

Nesse caso esses dados serão fornecidos pela CPU. Os dados poderão ser vistos se uma tela de um campo de visualização de oito dígitos do tipo ASCII for programada na IHM utilizada.

FORMATO ASCII OP1+7 ASCII DE SEG.- OP1+6 ASCII DE SEG+ OP1+5 ASCII DE : OP1+4 ASCII DE MIN- OP1+3 ASCII DE MIN+ OP1+2 ASCII DE : OP1+1 ASCII HORA- OP1 ASCII HORA+

Page 61: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

61

SDATA Acerta data. É uma instrução de um operando, tendo uma entrada Habilita. Esta instrução serve para acertar a data de um calendário a partir de dados apontados por OP1.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

O formato de dados necessário é o seguinte: Uma possibilidade para acertar a data do calendário da CPU seria a seguinte: Programar uma tela de um campo de edição de oito dígitos, com registro inicial igual a 600, para poder entrar com a data correta quando desejar. E no programa usuário colocar a instrução SDATA mostrada acima. Quando o estado interno 200 for acionado através de MONOA ou MONOD, o valor que foi carregado a partir de 600, via teclado da IHM, será enviado para a CPU como data atual. STIME Acerta hora. É uma instrução de um operando, tendo uma entrada Habilita. Esta instrução serve para acertar a hora de um relógio em tempo real a partir de dados apontados por OP1.

SÍMBOLO EM DIAGRAMA DE RELÉS

EXEMPLO DE PROGRAMAÇÃO

O formato de dados necessário é o seguinte: Uma possibilidade para acertar a hora/min/seg da CPU seria a seguinte:

OP1+3 0 0 OP1+2 DIA+ DIA- OP1+1 MÊS+ MÊS-

OP1 ANO ANO-

OP1+3 0 0 OP1+2 SEG+ SEG.- OP1+1 MIN+ MIN-

OP1 HORA+ HORA-

Page 62: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

62

Programar uma tela de um campo de edição de oito dígitos, com registro inicial igual a 800, para poder entrar com a hora/min/seg. corretos quando desejar. E no programa usuário colocar a instrução STIME mostrada acima. Quando o estado interno 200 for acionado através de MONOA ou MONOD, o valor que foi carregado a partir de 800, via teclado da IHM, será enviado para a CPU como hora/min/seg. atuais. LDAT2 Ler data. É uma instrução de um operando tendo uma entrada ASC/BCD e uma entrada Habilita. Esta instrução é utilizada para se conhecer em qualquer instante a data fornecida por um relógio em tempo real e cujos dados são colocados em registros apontados por OP1. Esta instrução se difere da LDATA por trazer o ano em 4 dígitos. Fornece também o dia da semana, representado por números de 0 a 6, onde 0 representa o domingo.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Estando a entrada A/B desacionada a leitura é feita no formato BCD. Com a entrada A/B acionada o formato será ASCII (possibilitando a impressão direta). O formato dos dados será o seguinte :

FORMATO BCD OP1+5 0 Dia da semana (0-6) OP1+4 0 0 OP1+3 DIA+ DIA- OP1+2 MÊS+ MÊS- OP1+1 ANO+ ANO-

OP1 SECULO+ SECULO-

FORMATO ASCII OP1+11 BCD do dia da semana (0 a 6) OP1+10 0 OP1+9 ASCII DE ANO- OP1+8 ASCII DE ANO+ OP1+7 ASCII DE SECULO- OP1+6 ASCII DE SECULO OP1+5 ASCII DE / OP1+4 ASCII DE MÊS- OP1+3 ASCII DE MÊS+ OP1+2 ASCII DE / OP1+1 ASCII DE DIA-

OP1 ASCII DE DIA+

Page 63: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

63

No exemplo apresentado, se o estado interno auxiliar 200 estiver acionado (através de uma instrução MONOA ou MONOD) os registros 600, 601, 602, 603 e 604 serão atualizados com os seguintes dados:

604 0 0 603 DIA+ DIA- 602 MÊS+ MÊS- 601 ANO+ ANO- 600 SECULO + SECULO -

Nesse caso esses dados serão fornecidos pela CPU.Os dados poderão ser vistos se uma tela de um campo de visualização de oito dígitos for programada na IHM utilizada. SDAT2 Acerta data. É uma instrução de um operando, tendo uma entrada Habilita. Esta instrução serve para acertar a data de um calendário a partir de dados apontados por OP1.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

O formato de dados necessário é o seguinte: Uma possibilidade para acertar a data do calendário da CPU seria a seguinte: Programar uma tela de um campo de edição de oito dígitos, com registro inicial igual a 600, para poder entrar com a data correta quando desejar. E no programa usuário colocar a instrução SDAT2 mostrada acima. Quando o estado interno 200 for acionado através de MONOA ou MONOD, o valor que foi carregado a partir de 600, via teclado da IHM, será enviado para a CPU como data atual.

OP1+3 ANO+ ANO- OP1+2 SECULO+ SECULO- OP1+1 MÊS+ MÊS-

OP1 DIA+ DIA-

Page 64: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

64

• Instruções de Contagem Up/Down UPDD Aumenta ou diminui de uma unidade o conteúdo de um registro. A contagem se dá em BCD. É composta das seguintes entradas: • (I)NC/DEC - se acionada produz diminuição na contagem; caso contrário produz aumento na

contagem. • (R)ESET - se acionada o conteúdo do registro é zerado. • (H)ABILITA - se acionada executa as funções anteriores

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Se o conteúdo do registro 600 for inicialmente igual a 0000d e estando as entradas 100 e 101 desacionadas, assim que o estado interno 200 for acionado através de uma instrução MONOA ou MONOD o conteúdo de 600 passará a ser igual a 0001d, portanto a cada acionamento do E.I. 200 o conteúdo de E.I. 600 será incrementado de uma unidade. Agora se a entrada 100 estiver acionada e o E.I. 200 for acionado o conteúdo de 600 será decrementado de uma unidade, deste modo se o conteúdo de 600 fosse igual a 0000d passaria a ser igual a 9999d. Para zerar o conteúdo de 600 é necessário acionar a entrada 101 e o E.I. 200. Em caso de não se desejar zerar o registro em nenhuma condição, a entrada RST pode ser ligada ao contato invertido da entrada HABILITA.

Page 65: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

65

UPDB Aumenta ou diminui de uma unidade o conteúdo de um registro. A contagem se dá em hexadecimal. É composta das seguintes entradas: • INC/DEC - se acionada produz diminuição na contagem; caso contrário produz aumento na

contagem. • RST - se acionada o conteúdo do registro é zerado. • HABILITA - se acionada executa as funções anteriores

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Se o conteúdo do registro 600 for inicialmente igual a 0000h e estando as entradas 100 e 101 desacionadas, assim que o estado interno 200 for acionado através de uma instrução MONOA ou MONOD o conteúdo de 600 passará a ser igual a 0001h, portanto a cada acionamento do estado interno 200 o conteúdo de estado interno 600 será incrementado de uma unidade. Agora se a entrada 100 estiver acionada e o estado interno 200 for acionado o conteúdo de 600 será decrementado de uma unidade, deste modo se o conteúdo de 600 fosse igual a 0000h passaria a ser igual a FFFFh. Para zerar o conteúdo de 600 é necessário acionar a entrada 101 e o estado interno 200. Em caso de não se desejar zerar o registro em nenhuma condição, a entrada RST pode ser ligada ao contato invertido da entrada HABILITA.

Page 66: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

66

UPDDC Incrementa e compara (decimal). Aumenta ou diminui uma unidade do conteúdo, em BCD, do registro indicado por OP1 e executa a comparação dos 16 bits deste registro com os 16 bits do registro indicado por OP2. Esta instrução tem três entradas: • INC/DEC - se acionada produz diminuição na contagem; caso contrário produz aumento. • RESET - se acionada o conteúdo do registro indicado por OP1 é zerado. • HABILITA - se acionada executa as funções anteriores

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Após a execução da instrução os flags de comparação estarão na seguinte condição:

Se (OP1) > (OP2) liga 0F8 Se (OP1) = (OP2) liga 0F9 Se (OP1) < (OP2) liga 0FA

Onde (OP1) e (OP2) indicam os conteúdos dos registros indicados por OP1 e OP2. Supondo inicialmente 600=0000d, quando o estado interno 200 for acionado pela primeira vez, através de MONOA ou MONOD, e estando a entrada 100 desacionada o conteúdo de 600 irá para 0001d este valor será comparado com o conteúdo do registro 602 que resultará no acionamento de um dos estados de comparação (0F8, 0F9, 0FA). Se ao invés de a entrada 100 estar desacionada estivesse acionada, o conteúdo de 600 iria para 9999d e ocorreria a comparação da mesma forma. Para zerarmos o conteúdo de 600 temos que acionar a entrada 101 e acionar o estado 200.

Page 67: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

67

UPDBC Incrementa e compara (hexadecimal). Aumenta ou diminui uma unidade do conteúdo, em binário, do registro indicado por OP1 e executa a comparação dos 16 bits deste registro com os 16 bits do registro indicado por OP2. Esta instrução tem 3 entradas: • (I)NC/DEC - se acionada produz diminuição na contagem; caso contrário produz aumento. • (R)ESET - se acionada o conteúdo do registro indicado por OP1 é zerado. • (H)ABILITA - se acionada executa as funções anteriores.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Após a execução da instrução os flags de comparação estarão na seguinte condição:

Se (OP1) > (OP2) liga 0F8 Se (OP1) = (OP2) liga 0F9 Se (OP1) < (OP2) liga 0FA

Onde (OP1) e (OP2) indicam os conteúdos dos registros indicados por OP1 e OP2. Neste exemplo ocorrerá o mesmo que no exemplo da instrução UPDDC, porém os conteúdos dos registros estarão na base hexadecimal.

Page 68: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

68

• Instruções de Operações Lógicas com 16 bits WNOT Complementa conteúdo de registro. Se a entrada Habilita estiver acionada, o conteúdo do registro OP1 é complementado e armazenado no registro OP2.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Suponha os dados iniciais conforme ao lado: WAND AND (bit a bit) do conteúdo de dois registros de 16 bits. Se a entrada Habilita estiver acionada é executada uma operação lógica AND entre o conteúdo do registro OP1 e o conteúdo do registro OP2. O resultado da operação é colocado no registro OP2.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

XX800 XX

AA 600 AA

55

800 55

AA 600 AA

ANTES DO ACIONAMENTO DE E100

APÓS O ACIONAMENTO DE E100

Page 69: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

69

Suponha os dados iniciais conforme ao lado: WOR OR (bit a bit) do conteúdo de dois registros de 16 bits. Se a entrada Habilita estiver acionada é executada uma operação lógica OR entre o conteúdo do registro OP1 e o conteúdo do registro OP2. O resultado da operação é colocado no registro OP2.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Suponha os dados iniciais conforme ao lado:

FF800 FF

00 600 00

00

800 00

00 600 00

55800 55

AA 600 AA

FF

800 FF

AA 600 AA

ANTES DO ACIONAMENTO DE E100

APÓS O ACIONAMENTO DE E100

ANTES DO ACIONAMENTO DE E100

APÓS O ACIONAMENTO DE E100

Page 70: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

70

WXOR XOR (bit a bit) do conteúdo de dois registros de 16 bits. Se a entrada Habilita estiver acionada é executada uma operação lógica XOR (OR exclusivo) entre o conteúdo do registro OP1 e o conteúdo do registro OP2. O resultado da operação é colocado no registro OP2.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Suponha os dados iniciais conforme ao lado:

AA800 AA

AA 600 AA

AA

800 AA

AA 600 AA

ANTES DO ACIONAMENTO DE E100

APÓS O ACIONAMENTO DE E100

Page 71: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

71

• Instruções de Movimentação entre Bits e Estados BITW Movimentação de estado para palavra. Esta instrução realiza a transferência do conteúdo (ON/OFF) de 16 estados internos consecutivos para um registro de 16 bits. É uma instrução de dois operandos onde OP2 indica o registro que vai receber as informações dos estados internos a partir do OP1, que é o primeiro estado interno dos 16 utilizados e corresponde ao bit 0 do registro OP2/OP2+1.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Se o estado interno 200, derivado de uma operação MONOA ou MONOD, estiver acionado, os estados internos 100 a 10F são transferidos para os bits do registro 600. Se os estados internos 100 a 10F estiverem no seguinte formato: 100 = ON 108 = OFF 101 = OFF 109 = OFF 102 = ON 10A = ON 103 = OFF 10B = OFF 104 = OFF 10C = OFF 105 = OFF 10D = OFF 106 = OFF 10E = OFF 107 = OFF 10F = OFF Após a execução da instrução o conteúdo do registro 600 será FBFAh. Importante: um E.I. ON corresponde a um bit 0 e um E.I. OFF corresponde a um bit 1.

Page 72: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

72

WBIT Movimentação de palavra para estado. Esta instrução executa a transferência de 16 bits de um registro de palavras para 16 estados internos consecutivos. É uma instrução de dois operandos onde OP2 indica o primeiro estado interno da seqüência de 16 e OP1 indica o registro de palavras de onde irá ocorrer a transferência. A instrução tem ainda uma entrada Habilita.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Se o estado interno 200, derivado de uma operação MONOA ou MONOD estiver acionado, os bits do registro 600 serão transferidos para os estados internos (neste caso, saídas) 180 a 18F.

Page 73: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

73

Por exemplo, se o conteúdo do registro 600/601 for FAFBh os estados internos 180 a 18F serão afetados da seguinte forma: 180 = OFF 188 = ON 181 = OFF 189 = OFF 182 = ON 18A = ON 183 = OFF 18B = OFF 184 = OFF 18C = OFF 185 = OFF 18D = OFF 186 = OFF 18E = OFF 187 = OFF 18F = OFF Importante: um bit 0 corresponde a um E.I. ON e um bit 1 corresponde a um E.I. OFF.

Page 74: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

74

WBITX Movimentação de palavra para estado no modo indexado com auto incremento ou auto decremento. Esta instrução executa a transferência de 16 bits de um registro de palavras para 16 estados internos consecutivos. É uma instrução de dois operandos onde o OP2 indica o primeiro estado interno de uma seqüência de 16 estados internos e OP1 indica um registro de palavras índice, ou seja o conteúdo de OP1 aponta para os 16 bits a serem transferidos. Como o incremento ou decremento é feito antes da execução da transferência, é necessário que o conteúdo inicial do índice seja 2 unidades a menos ou a mais conforme a operação seja de incremento ou decremento respectivamente. É uma instrução de duas entradas: • AUTO INCREMENTO - quando ativada provoca um decremento automático; caso contrário um

incremento automático; • HABILITA - se acionada executa a função anterior

SÍMBOLO EM DIAGRAMA DE RELÉS

EXEMPLO DE PROGRAMAÇÃO

Se o estado interno 200, derivado de uma operação MONOA ou MONOD estiver acionado a instrução será executada, caso contrário a próxima linha de programa será iniciada. Suponha que através de instruções realizadas anteriormente a estrutura de dados seja: Ao executar-se a instrução WBITX, com a entrada 100 desacionada, o registro índice 800 que tinha o conteúdo 600, passará a ter 602 e então os bits do reg. 602 serão copiados, ou colocados, nos estados internos 180 a 18F.

0 6 0 0800 801

Page 75: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

75

Se a entrada 100 estiver acionada o conteúdo do registro índice 800 passará a ser 5FE. Importante: um bit 0 corresponde a um E.I. ON e um bit 1 corresponde a um E.I. OFF.

AUTO DECREMENTO AUTO INCREMENTO F E 0 2 0 5 800 0 6 800

Page 76: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

76

• Instruções Especiais JMP Salto no programa. Controla a seqüência de execução do programa de usuário. Caso a entrada esteja acionada a operação salto é executada, caso contrário a seqüência de programa será a próxima linha do diagrama de relés.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

No exemplo acima, se a entrada 100 estiver acionada a próxima linha de programa a ser executada será a linha 3, que neste caso contém a indicação de desvio (LABEL 00), a qual é feita através da tecla L na edição do programa usuário, portanto neste ciclo de varredura, a linha 2 não será executada permanecendo sem alteração a saída 180. CALL Chamada de subrotina. Controla o desvio de execução de um programa de usuário, com retorno para a instrução seguinte ao CALL. Caso a entrada esteja acionada a operação chamada de sub-rotina é executada, caso contrário a seqüência de programa será a próxima linha do diagrama de relés. É necessária uma instrução RET no final da sub-rotina para voltar ao ponto seguinte à origem do CALL. As chamadas podem ser encadeadas em até 4 chamadas.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

ADSUB Aumenta/diminui valor constante de registro binário. A instrução soma ou subtrai uma constante de valor K (máximo 12 bits), em binário, do conteúdo de um registro indicado por OP1. É composta das seguintes entradas: • (A)UM/DIM - se acionada produz subtração; caso contrário produz soma. • (R)ESET - se acionada o conteúdo do registro indicado por OP1 é zerado. • (H)ABILITA - se acionada executa as funções anteriores

Page 77: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

77

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Neste exemplo ocorrerá o mesmo que no próximo exemplo, porém utilizando a base hexadecimal. ADSUD Aumenta/diminui valor constante de registro BCD. A instrução soma ou subtrai uma constante de valor K (máximo 999), em BCD, do conteúdo de um registro indicado por OP1. É composta das seguintes entradas: • (A)UM/DIM - se acionada produz subtração; caso contrário produz soma. • (R)ESET - se acionada o conteúdo do registro indicado por OP1 é zerado. • (H)ABILITA - se acionada executa as funções anteriores

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Se o estado interno 200, derivado de uma instrução MONOA ou MONOD, estiver acionado, estando a entrada 101 e a entrada 100 desacionadas o conteúdo do registro 600 será aumentado de 12 unidades, agora se a entrada 100 estiver acionada o conteúdo do registro 600 será diminuído de 12 unidades. O conteúdo do registro 600 será zerado quando a entrada 101 estiver acionada e o estado interno 200 for acionado.

Page 78: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

78

ASCB Converte 8 códigos ASCII em 8 dígitos BCD ou Hexadecimais correspondentes. Se a entrada (H)abilita for acionada, o conteúdo de 8 bytes iniciados no endereço apontado por OP1 será convertido em 8 dígitos BCD ou Hexadecimais e o resultado da conversão irá para o conteúdo de 4 bytes iniciados no endereço apontado por OP2. A instrução ASCB é composta da seguinte entrada:

• (H)ABILITA - se acionada executa a conversão.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Quando o estado interno 200 for acionado através de uma instrução MONOA ou MONOD, os valores contidos nos endereços 2000 a 2007 serão convertidos para BCD ou Hexadecimal correspondentes e o resultado da conversão será colocado no conteúdo dos endereços 2008 a 200B. Exemplo 1:

DADOS EM ASCII DADOS CONVERTIDOS ENDEREÇO VALOR ENDEREÇO VALOR

2000 30 2001 31 2008 01

2002 32 2003 33 2009 23

2004 34 2005 35 200A 45

2006 36 2007 37 200B 67

Exemplo 2:

DADOS EM ASCII DADOS CONVERTIDOS ENDEREÇO VALOR ENDEREÇO VALOR

2000 30 2001 41 2008 0A

2002 42 2003 43 2009 BC

2004 30 2005 44 200A 0D

2006 45 2007 46 200B EF

Page 79: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

79

PRINT Envio de dados para o canal serial. Através desta instrução os dados enviados são as palavras contidas entre os operandos OP1 e OP2. A instrução tem uma entrada Habilita, necessitando também para ser ativada que um flags de controle (0FB) impressora/rede esteja na posição impressora a mais de uma varredura de programa e que o flag de impressora em uso (0FC) esteja desativado.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Como a transferência é feita diretamente da memória de dados, é necessário que o formato da memória de dados esteja em ASCII e que OP1 seja menor que OP2.

Para a impressão de:

Neste formato (centralizado) em uma impressora serial de 32 colunas deve-se carregar o seguinte bloco de dados : F00=2020 F02=2020 F04=2020 F06=2020 F08=2020 F0A=2020 F0C=2020 F0E=4154 F10=4F53 F12=0A0D F14=0A0D F16=2020 F18=2020 F1A=2020 F1C=4155 F1E=544F F20=4D41 F22=4341 F24=4F20 F26=494E F28=4455 F2A=5354 F2C=5249 F2E=414C O registro F00 foi escolhido como início do bloco de dados (ver exemplo apresentado). Deste modo se o estado interno especial 0FB estiver acionado (indicando impressora), quando o estado interno 200 for acionado através de MONOA ou MONOD, o bloco de dados acima será transferido para o canal serial do CP utilizado.

ATOSAUTOMAÇÃO INDUSTRIAL

Page 80: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

80

FATOR Ajuste de escala de entrada analógica. Esta instrução possibilita o ajuste da escala de uma entrada analógica definida pelo parâmetro EA. OP1 será um registro que conterá o valor relativo ao zero da escala ajustada (início da escala ajustada) e OP2 será um registro que conterá o valor relativo ao fundo de escala para a escala ajustada (fim da escala ajustada). TIPO definirá se o valor de leitura da EA será apresentado em BCD (decimal) ou BIN (hexadecimal). A instrução possui duas entradas: ZERO/FUNDO DE ESCALA - Define se o ajuste será de ZERO (início da escala ajustada), quando desacionado ou de FUNDO de ESCALA (fim da escala ajustada), quando acionado. (H)ABILITA - permite a execução do ajuste da escala.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Se a entrada 100 (Habilita) for acionada, com a entrada 101(Z/F) desacionada o conteúdo de OP1(600) e o valor efetivo real da EA serão os dados para o cálculo do fator. (OP2 - OP1) = Fator (Fundo de Escala Real - Zero Real) A partir desse fator a escala de leitura da entrada analógica 33 estará ajustada para o novo "Zero" (início de escala). Agora se a entrada 100 (Habilita) for acionada, com a entrada 101(Z/F) acionada, o conteúdo de OP2(602) e o valor efetivo real da EA serão os dados para o cálculo do fator. (OP2 - OP1) = Fator (Fundo de Escala Real - Zero Real) A partir desse fator a escala da entrada analógica 33 estará ajustada para o novo valor de FUNDO de ESCALA (final de escala). Observação: Se o conteúdo de OP2 for menor que o conteúdo de OP1, o efetivo da EA ficará com o valor fixo 9999 para a escala em decimal e FFFF para a escala em hexadecimal. O mesmo acontece com o valor Zero Real > Fundo de escala Real. Além desta forma de visualização de erro de operação, no MPC1600 o conteúdo dos registros 0FDC e 0FDDh apresentam outra forma de sinalização desta ocorrência:

Page 81: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

81

Exemplo ilustrativo: A escala real é fixa e possui valores entre 0000d e 4095d. Supondo que a escala ajustada deva ir de um ponto qualquer escolhido na escala real (neste caso 0076d) e adotado como início da escala ajustada neste caso (OP1) = 0000d, até um ponto na escala real (neste caso 3834d) e adotado como final da escala ajustada, neste caso (OP2) = 1750d, ocorrerá o seguinte: .......................................Escala Real............................................................ 0000 0076 3834 4095 ........................Faixa a ser ajustada................................ ................................Escala Ajustada............................... 0000 (offset) 1750 (fundo de escala) Vamos agora calcular o fator: (OP2 = 1750) - (OP1 = 0000) = 0,4656 (F.E. Real = 3834) - (Zero Real = 0076) Se pegarmos um ponto na escala real, por exemplo 1956d teremos na escala ajustada : (1956 - 0076) x 0,4656 = 0875d (meio da escala ajustada) Observação: a instrução FATOR permite a adequação de escala em várias aplicações, como na leitura de posição, de pressão, de peso e outros. Tornando mais simples a utilização das entradas analógicas.

Page 82: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

82

CTCPU Contador rápido CPU. Esta instrução faz a comparação do efetivo do contador rápido presente na CPU com o conteúdo de um registro (OP1), considerando-se OP1 como um registro de 16 bits. Pode-se escolher que tipo de comparação será executada (efetivo >, < ou = ao conteúdo de OP1) e quando o resultado da comparação for verdadeiro será acionado um único estado interno (OP2) em cada bloco, escolhido de 180 a 187. No mesmo programa usuário só poderá haver oito instruções CTCPU, das quais somente uma habilitada por vez. O estado interno 3FF quando acionado indica valor "negativo" no efetivo do contador. A instrução possui duas entradas: RESET - quando ativada permite o reset do efetivo do contador rápido presente na CPU. HABILITA - quando acionada a instrução é executada.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Observação: " # " poderá ser >, < ou = No exemplo apresentado, se o estado interno 200 for acionado, através de uma instrução MONOA ou MONOD, o registro correspondente ao efetivo do contador rápido receberá conteúdo igual a 00000000. Se a entrada 201 for acionada, estando o estado interno 200 desacionado, a instrução começará a verificar se o efetivo do contador é maior que o conteúdo de 800/802 e quando isso ocorrer a saída 187 será acionada, permanecendo acionada enquanto a instrução estiver habilitada e a condição for verdadeira.

Page 83: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

83

Exemplo de aplicação Esta aplicação demonstra a utilização da instrução CTCPU em uma máquina que faz o avanço de um filme, onde esse avanço é feito em duas etapas: - etapa 1 com avanço rápido (velocidade alta). - etapa 2 com avanço lento (velocidade baixa). Supondo que cada avanço seja de 1000 mm (pulsos do encoder), a troca de velocidade alta para velocidade baixa é feita em 900 mm. Observe o gráfico: Velocidade 1o CTCPU habilitada V1 2o CTCPU habilitada V2 Pulsos de Encoder 900 1000 Deste modo teremos o trecho de programa abaixo:

Quando a entrada 201 for acionada, o estado interno 200 também será acionado durante uma varredura (através da instrução MONOA), deste modo o efetivo do contador será resetado. Na próxima varredura a saída 180 será acionada e assim permanecerá enquanto o efetivo for menor que o conteúdo do registro 800/802. Com o desacionamento da saída 180 ocorrerá a habilitação da segunda instrução CTCPU e da mesma forma a saída 181 ficará acionada até que o efetivo do contador fique com um valor igual ou superior ao conteúdo do registro 700/702.

Page 84: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

84

CCS Esta instrução calcula o “CHECK SUM” (OU EXCLUSIVO) de todos os bytes que estiverem dentro de um intervalo apontado por OP1 e OP2. O resultado da operação é colocado no registro OP3 no formato 00XX on XX é o byte de CHECK SUM. Mnemônico para lista de instruções: CCS OP1 OP2 OP3

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Onde: OP1 – Endereço Inicial OP2 – Endereço Final OP3 – Resultado H – Entrada (Habilita) – permite o cálculo Observação: OP1 e OP2 devem estar na mesma página Supondo que tenhamos o seguinte conteúdo nos registros: 720 721 722 723 Inicialmente calcula-se o XOR. 12 34 56 78 (bits iguais = 0, bits diferentes = 1) 12 = 0001 0010 26 = 0010 0110 34 = 0011 0100 56 = 0101 0110 XOR= 26 = 0010 0110 XOR= 70 = 0111 0000 70 = 0111 0000 78 = 0111 1000 XOR= 08 = 0000 1000 LDIA Atualiza canal de entrada analógica. É uma instrução de uma única entrada (habilita). A instrução atualiza o canal de entrada analógica selecionado. Onde OP1 define o canal a ser atualizado.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

O exemplo apresentado atualiza o primeiro canal de entrada analógica.

Page 85: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

85

DINT1 Desabilita interrupção1. A instrução DINT1, disponível somente para os driver MPC4004R, MPC4004T e MPC2440, habilita/desabilita a interrupção 1 no controlador. Ela é utilizada para regiões do programa de usuário que não podem ser interrompidas. Abaixo exemplifica-se um método de programação da instrução DINT1. No exemplo acima, as rotinas ROT2, ROT3 e ROT4 nunca sofrerão a atuação da interrupção, pois o bloco DINT1, que está habilitado com o contato 0F6, está desabilitando esta configuração de hardware, que só volta a ser habilitada após a rotina ROT4.

Page 86: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

86

PID Calcula PID. Esta instrução contém três operandos, uma entrada Habilita e uma de Reset para carregar o valor inicial da somatória do erro. Quando a entrada Habilita (H) é acionada e a entrada Reset (R) estiver acionada, o valor inicial da somatória do erro é transferido para a região de parâmetros e efetuado o cálculo do PID (deve ser utilizado um MONOA na entrada Reset (R), caso contrário o valor inicial da somatória do erro será transferido para a região de parâmetros toda varredura). Se a entrada Habilita (H) é acionada e a entrada Reset (R) estiver desacionada, é efetuado apenas o cálculo do PID. A instrução PID segue a seguinte equação: S = P + I + D

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Onde: OP1 – Variável de entrada (efetivo) (0 – 9999) OP2 – Ponteiro do bloco de dados OP2 - Set point (0 – 9999) OP2+02 - Banda (0 – 255) OP2+04 - Kp (ganho proporcional) (0 – 100%) OP2+06 - Ki (ganho integral) (4 – 250 rep/min) OP2+08 - Kd (ganho derivativo) (0 – 25,0 min.) OP2+0A - RESERVADO OP2+0C - Valor mínimo da saída (0 – 1000) OP2+0E - Valor máximo da saída (0 – 1000) OP2+10 - Tempo (2 – 25,0 seg.) OP2+12 - Estado interno de aquecimento OP2+14 - Valor inicial somatória do erro (0 – 9999) OP2+16 - RESERVADO OP2+18 - RESERVADO OP2+1A - RESERVADO OP2+1C - RESERVADO OP2+CE - RESERVADO OP3 – Variável de saída (0 – 1000) Observação: O valor inicial da somatória do erro pode ser positivo ou negativo. Os valores positivos vão de 0 a 4999, e os negativos de 5000 a 9999. Se não for efetuado o carregamento do valor inicial da somatória do erro, teremos um valor indefinido no mesmo.

Page 87: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

87

PID_I Algoritmo PID padrão ISA. A instrução PID_I está presente nos drivers MPC4004R, MPC4004T e MPC2440. O PID padrão ISA é inserido através de blocos ladder (pelo WinSUP 2.5), resultando nas seguintes características para cada driver: Esta instrução contém três operandos com definição do tipo de controle, uma entrada de habilitação do bloco (H) e uma de definição de modo Manual / Automático (MAN). Entrada [H]: Se habilitada realiza o calculo de controle PID; Entrada [MAN]: Se habilitada, define controle como modo MANUAL (valor de saída definido pelo usuário); Quando desabilitada, valor de saída volta a ser definido pelo controle PID.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Onde:

Page 88: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

88

Descrição dos parâmetros: OP1: Endereço da variável de entrada. Este endereço sempre deve existir. OP2: Endereço inicial do bloco de parâmetros. Este endereço sempre deve existir. OP3: Endereço da variável de saída. Este endereço sempre deve existir. Setpoint: Valor a ser atingido. Período de amostragem Período de tempo em que a instrução faz a amostragem da variável de processo (PV) e efetua o algoritmo de controle. Este parâmetro deve ser configurado entre 1 e 50, sendo que 1 equivale a 0.1 segundos e 50 a 5.0 segundos. Ganho proporcional Ganho do termo proporcional do PID. Este valor deve ser configurado entre 1 e 1000, sendo que para 1 o ganho é de 0.1% e para 1000 o ganho é de 100.0% Ganho integral Ganho do termo integral do PID. Este valor deve ser configurado entre 1 e 3600 segundos. Para desativar o termo integral deixe este valor com zero. Ganho derivativo Ganho do termo derivativo do PID. Este valor deve ser configurado entre 1 e 900 segundos. É importante observar que este ganho deve ser no mínimo 10 vezes maior que o período de amostragem. Esta característica é devido a equação do termo derivativo com filtro incorporado. Para desativar o termo derivativo deixe este valor com zero. Mínimo valor da saída Valor mínimo de limite para saída. É importante observar que este valor não tem nenhuma relação com fundo de escala mínimo da saída, nenhum cálculo e efetuado com este valor. Máximo valor da saída Valor máximo de limite para saída. É importante observar que este valor não tem nenhuma relação com fundo de escala máximo da saída, nenhum cálculo e efetuado com este valor. Offset da saída (Feedforward – BIAS) Valor que será somado à saída do PID em modo automático.

Page 89: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

89

Este valor deve ser configurado entre 0 e o máximo fundo de escala da saída. Banda morta alta Valor que será somado ao setpoint (SP) para definir o valor da banda morta alta. Este valor deve estar configurado entre 0 e o Maximo fundo de escala da entrada. Para desativar a banda morta alta deixe este valor com zero. O calculo da banda é simples: para um setpoint de 1000 e uma banda de 1200 deixe este valor com 200 (1000 + 200 = 1200). Banda morta baixa Valor que será subtraído do setpoint (SP) para definir o valor da banda morta baixa. Este valor deve estar configurado entre 0 e o Maximo fundo de escala da entrada. Para desativar a banda morta baixa deixe este valor com zero. O calculo da banda e simples: para um setpoint de 1000 e uma banda de 900 deixe este valor com 100 (1000 - 100 = 900). Estado interno de saída PWM Endereço do estado interno que será utilizado pelo PWM. Este valor deve esta entre 0000 e 03FF ou E000 e EFFF (observe que os endereços estão em hexadecimal). Se um valor inválido for colocado, a saída PWM será desativada. Para desativar a saída PWM deixe este valor com FFFF. Tempo do PWM da saída Período da saída PWM. Este valor deve estar entre 20 e 250, sendo que para 20 temos 2.0 segundos e para 250 temos 25.0 segundos. Se o estado interno de saída PWM estiver com FFFF ou com um valor inválido,o tempo do PWM da saída será ignorado não importando o seu valor. Máx. Fundo de escala entrada Fundo de escala da entrada. Este valor deve ser configurado de acordo com a escala de grandeza física controlada. Por exemplo: Se estiver realizando um controle de temperatura com uma placa 4004.66/J com fundo de escala de 0 a 500.0, deixe este valor com 5000. Máx. Fundo de escala saída Fundo de escala da saída. Este valor deve ser configurado de acordo com o hardware de saída do controle. Por exemplo: Se estiver utilizando uma placa de saída analógica de 0 a 10V com resolução de 0 a 1000 deixe este valor com 1000

Page 90: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

90

Exemplo de programação: O exemplo de programação abaixo mostra parâmetros utilizados para controle de uma malha de temperatura, utilizando uma placa 4004.6x/J - TERMOPAR tipo J (0 A 500°C). Observação: A monitoração e parametrização dos blocos PID_I é feita através do software PID Studio. Para mais informações consulte o manual "ALGORÍTMO PID PADRÃO ISA" Ref.4-0063.xx no site www.atos.com.br, opção downloads, link Manuais Técnicos Ferramentas de Programação (Cadastro e downloads são gratuitos).

Page 91: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

91

OUTIS Atualiza canal de saída analógica. É uma instrução de uma única entrada (habilita). A instrução atualiza o canal de saída analógica selecionado. Onde OP1 define o canal a ser atualizado.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

O exemplo apresentado atualiza o primeiro canal de saída analógica SCL Gera uma saída linear em relação a entrada. Esta instrução necessita da entrada de quatro valores no intervalo de 0 e 9999. Os parâmetros de entrada são: x0 = valor inicial do ponto x y0 = valor inicial do ponto y x1 = valor final do ponto x y1 = valor final do ponto y A fórmula para conversão da entrada é: y = mx + b onde: y = saída m = fator de escalonamento (y1 - y0) / (x1 - x0) x = entrada b = offset (b = y1 - mx1) O valor de "m" deve estar entre -99,990 a 99,990. Caso o valor calculado exceda os limites, será ligado o estado interno 0FFH indicando a ocorrência do erro. Se a entrada Habilita estiver acionada e a entrada y/m estiver acionada, será feito o cálculo do valor de m, caso a entrada y/m estiver desacionada então será feito o cálculo de y.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Page 92: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

92

Onde OP1 = Ponteiro dos dados OP2 = Entrada OP3 = Saída ajustada Não é necessário que OP1, OP2 e OP3 estejam na mesma página. São RESERVADOS 16 bytes a partir do endereço apontado em OP1. Importante: Os valores apontados a partir de OP1 devem estar na mesma página. 800 Valor de x0 802 Valor de y0 804 Valor de x1 806 Valor de y1 808 RESERVADO 80A RESERVADO 80C RESERVADO 80E RESERVADO Exemplo: 800 0000 802 0010 804 0500 806 0350 808 RESERVADO 80A RESERVADO 80C RESERVADO 80E RESERVADO 800 0500 802 0350 804 1000 806 0000 808 RESERVADO 80A RESERVADO 80C RESERVADO 80E RESERVADO A instrução define limites para o valor de f(x), quando a entrada “L” estiver habilitada. O limite será obtido através dos próprios valores de y0 y1, fornecidos pelo usuário, garantindo assim com que os valores de f(x) estejam sempre dentro dos limites dados por y0 y1 .

350 y0

0 y1

500x0

1000x1

0 x0

10 y0

350 y1

500x1

Page 93: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

93

Exemplo: Para X crescente, se o valor de Y for menor do que Y0 então a função assumirá o valor de Y igual a Y0 e sendo Y maior que Y1 a função assumirá Y igual a Y1. No exemplo acima para X = 0, Y seria igual a 120.

350 Y1

120 Y0

1000 X1

500 X0

Page 94: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

94

SCL2G Gera uma parábola. A instrução SCL2G é utilizada para gerar rampas de aceleração e desaceleração. Estas rampas seguem uma equação do segundo grau. Esta instrução possui três operandos, os quais são descritos a seguir:

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

OP1 - Ponteiro dos parâmetros, (reservar 32 bytes). OP1 - Min Y ra (0 - 0999) OP1 + 2 - Min Y rd (0 - 0999) OP1 + 4 - Max Y (0 - 0999) OP1 + 6 - Max X (00065536) OP1 + 10 - Ra (0010 - 4999) OP1 + 12 - Rd (0010 - 4999) OBS: Min Y ra e Min Y rd devem ser menores que Max Y

Max X deve ser maior que Ra + Rd

OP2 - Valor da entrada. OP3 - Valor da saída. K - Entrada que habilita o cálculo do fator de ajuste da parábola. H - Entrada que habilita a instrução.

O gráfico abaixo demonstra o funcionamento da instrução.

Y min ra - Mínimo valor de saída analógica na aceleração; Y min rd - Mínimo valor de saída analógica na desaceleração; Y máx - Máximo valor de saída analógica; X max - Máximo valor de contagem; Ra - Valor do delta X para rampa de aceleração; Rd - Valor do delta X para rampa de desaceleração.

Ymax Ymin ra Ymin rd

Ra Rd

X max

Page 95: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

95

No exemplo apresentado temos:

Onde:

800 0100 Y min ra 1,00 V 802 0000 Y min rd 0,00 V

804 0278 Y max 2,78 V 806 00006000 X max 6000

80A 0200 Ra 200 80C 0500 Rd 500 820 00000149 Valor atual da entrada X 149 824 0532 Valor calculado da saída Y 532 Nestas condições temos: Se a entrada 100 (K) estiver habilitada e a entrada 101 (H) for habilitada, a instrução fará o cálculo dos parâmetros da equação do segundo grau. Se a entrada 100 (K) estiver desabilitada e a entrada 101 (H) for habilitada, a instrução procederá da seguinte maneira: Calcula para o valor do X atual (R820) o valor da saída Y e coloca no registro R824, enquanto X menor ou igual a 200 (Ra). Quando X for maior que Ra, a instrução coloca no registro R824 o máximo valor de Y, até que o valor de X seja maior ou igual a (Xmax – Rd) (5500). A partir deste instante a instrução passa a calcular novamente o valor de Y (R824) para cada valor de X (R820).

Y 2,78 1,00 0,00 X

200 5500 500

0 6000

Page 96: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

96

SCHED Programação Horosazonal de EI. Esta instrução, disponível somente para os drivers MPC4004R, MPC4004T e MPC2440. O bloco SCHED (abreviação para SCHEDULE) utiliza o relógio interno do CLP como referência de data/hora para executar um programador horosazonal. Desta forma, durante o período especificado um determinado EI (definido na configuração do bloco) ficará acionado. A instrução SCHED é composta pela seguinte entrada: HABILITA - Se acionada executa a instrução.

SÍMBOLO EM DIAGRAMA DE RELÉS

EXEMPLO DE PROGRAMAÇÃO

Onde:

OP1 = EI que será programado OP2 = Dia da semana de início do período OP3 = Horário de inicio do período OP4 = Dia da semana de fim do período OP5 = Horário de fim do período

Exemplo de programação 1:

Page 97: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

97

Descrição dos campos: Nas opções de "Intervalo" definem-se os períodos de acionamento do EI definido em "Saída". Na caixa de seleção "De" define-se o dia da semana que a programação irá começar; Na caixa de seleção "Até" define-se o dia da semana que termina-se essa programação; No campo "Liga" define-se o horário de inicio do período e no campo "Desliga" o horário de fim. Na figura mostrada acima, foi definido o período de domingo a quinta, com o acionamento das 07:00h às 18:00h. Abaixo da região de configuração é mostrado um gráfico em vermelho com os períodos de acionamento definidos, permitindo ter uma exata noção da programação da instrução. Representação no ladder: Observação: Utilizando o EI 0F7h a execução do bloco SCHED ficará constante, pois a entrada "Habilita" estará sempre ligada. Em casos que a entrada "Habilita" seja desacionada, a programação horosazonal será interrompida e o EI programado será desligado independente de seu estado atual. Exemplo de programação 2:

Page 98: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

98

O exemplo acima mostra uma programação em que o EI liga ao fim do dia e desliga na manhã do dia seguinte, dentro do período definido (de segunda a quarta). Representação no ladder:

Exemplo de programação 3: O exemplo acima mostra uma programação em que o EI está programado para ligar nos fins de semana, das 08:35h às 16:47h. Representação no ladder:

Page 99: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

99

TXPR A instrução TXPR é utilizada para carregar blocos de impressão. Em aplicações onde há uma grande variedade de mensagens a serem impressas, há um gasto excessivo de programa de usuário e de registros para guardar os textos. A função da instrução TXPR é poder chamar automaticamente textos previamente construídos pelo usuário para a região de registros os quais serão impressos através da instrução PRINT. A formatação do texto como, por exemplo, a inclusão de campos, fica a cargo do usuário para que haja maior liberdade de opções. Mnemônico para lista de instruções: TXPR OP1 OP2

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Onde: OP1 – Região do usuário para colocação do texto K – Número da tabela de texto (01 – 16) Os textos serão construídos no menu configuração submenu “PRINT”. O usuário poderá criar até 16 “textos” para serem manipulados, com um tamanho máximo de 256 caracteres. No menu do print existe a configuração, de parâmetros básicos do texto: Número de colunas : xx (máximo) CR no final da linha : sim (sim/não) LF no final da linha : não (sim/não) O número de colunas será igual para todos os textos criados.

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 T E S T E D E I M P R E S S A O

Observação: para otimização das tabelas o fim da tabela será sinalizado com o caracter “FF” (default do buffer). No exemplo apresentado, se o estado interno 200 for acionado, através de uma instrução MONOA ou MONOD, os caracteres referentes a tabela 01 serão carregados a partir do endereço 0F00. Observação: Onúmero de caracteres carregados dependerá do tamanho da tabela criada no menu configuração submenu PRINT.

Page 100: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

100

CEP Manipulação de um bloco de dados tipo FIFO correspondentes a uma variável do CP. Se a entrada Habilita acionada e a entrada R desacionada, será descartado o enésimo elemento da FIFO e adicionado o primeiro elemento correspondente ao valor OP1 neste instante. O endereço do primeiro elemento da FIFO é apontado por OP2 e n é o numero de elementos da FIFO (máx = 64). São executadas também as seguintes operações:

• Cálculo do menor valor da FIFO cujo resultado é armazenado em OP2+2; • Cálculo do maior valor da FIFO cujo resultado é armazenado em OP2+4; • Cálculo do valor médio de todos os elementos da FIFO cujo resultado é armazenado em

OP2+6; • Fica reservado OP2+8; • OP2+10 é o contador da FIFO.

Se a entrada Habilita estiver acionada e a entrada R estiver acionada, serão zerados os dados da FIFO. O cálculo do menor valor, do maior valor e da média leva em consideração quantos elementos foram preenchidos desde a ultima zeragem da FIFO.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Não é necessário que a FIFO toda caiba numa única página. Quando o estado interno 200 for acionado, através de uma instrução MONOA ou MONOD, ocorrerá um deslocamento dos 16 registros a partir do endereço apontado por 800 e serão calculados o menor valor, o maior valor e a média.

Page 101: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

101

AJUST Esta instrução possibilita o ajuste da escala. A instrução possui duas entradas: ZERO/FUNDO DE ESCALA - Define se o ajuste será de ZERO (início da escala ajustada), quando desacionado ou de FUNDO de ESCALA (fim da escala ajustada), quando acionado. (H)ABILITA - permite a execução do ajuste da escala.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Onde: OP1 – Registro contendo o Valor do Zero e fundo de escala relativo. OP2 – Endereço da variável de entrada. OP3 – Endereço da variável de saída TIPO – Define se as variáveis de entrada e saída serão apresentadas em BCD (decimal) ou BIN (hexadecimal). No exemplo apresentado, se a entrada 100 (Habilita) for acionada, com a entrada 101(Z/F) desacionada o conteúdo de OP1 (0600), OP!+2 (0602) e o fundo de escala real serão os dados para o cálculo do fator da escala. (OP1+2 - OP1) = Fator (Fundo de Escala Real – OP2) A partir desse fator a escala da entrada estará ajustada para o novo "Zero" (início de escala). Agora se a entrada 100 (Habilita) for acionada, com a entrada 101(Z/F) acionada, o conteúdo de OP1(0600), OP1+2(0602) e o zero real serão os dados para o cálculo do fator da escala. (OP1+2 - OP1) = Fator (OP2- Zero Real) A partir desse fator a escala da entrada estará ajustada para o novo valor de “FUNDO de ESCALA” (final de escala).

Observação: Se o conteúdo de OP1+2 for menor que o conteúdo de OP1, a variável de saída ficará com o valor fixo 9999 para a escala em decimal e FFFF para a escala em hexadecimal. O mesmo acontece com o valor Zero Real > Fundo de escala Real.

Page 102: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

102

FILT Filtro de amostras. Classifica um universo entre 3 e 15 amostras de uma variável de entrada, obtendo como resultado o valor da amostra central. O número de amostras, apontado por OP3, pode ser escolhido de uma lista. Se a entrada (H)abilita for acionada, o valor contido no registro apontado por OP1, será capturado como nova amostra e substituirá a amostra mais antiga. Em seguida será executada a classificação das amostras (colocação dos valores das amostras em ordem crescente) e o valor da amostra central, após a classificação, será colocado no conteúdo do registro apontado por OP2 (variável de saída do filtro). A primeira execução da instrução FILT (após inicialização do CLP) preenche a pilha de amostras e o valor da variável de saída com o primeiro valor lido da variável de entrada. O BUFFER de armazenamento das amostras está apontado por OP4 e seu tamanho (em bytes) é igual a 2 bytes para o contador da pilha + 2 bytes por amostra, podendo atingir um tamanho máximo de 32 bytes (contador + 15 amostras). A instrução FILT é composta da seguinte entrada: (H)ABILITA - se acionada executa a captura de uma amostra, a classificação das amostras e atualiza a variável de saída com o valor da amostra central.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Onde: OP1 = Registro da variável de entrada do filtro OP2 = Registro da variável de saída do filtro OP3 = Número de amostras do filtro OP4 = Endereço do BUFFER de armazenamento das amostras

Page 103: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

103

Quando o estado interno 200 for acionado através de uma instrução MONOA OU MONOD, o valor contido no registro 0800 (OP1) será capturado para ser classificado com mais 4 amostras previamente aquisitadas, conforme o número de amostras selecionado (OP3 = 05). Após a classificação o valor central das amostras será colocado no conteúdo do registro 0880 (OP2). A região onde as amostras serão armazenadas e classificadas não é disponível ao usuário e a execução da instrução pode ser exemplificada da seguinte forma:

Amostra Valor Valor

Variável de Saída Amostra mais antiga N-4 103,4 99,5

N-3 99,8 99,8

Registro Valor

Variável de Entrada N-2 100,2 100,2 Valor central Registro Valor

N-1 101,8 101,8

0800 99,5 Amostra mais recente N 99,5

Após classificação

103,4 0880 100,2

Após o acionamento do estado interno 200 - (H)abilita:

Amostra Valor Valor

Variável de Saída Amostra mais antiga N-4 99,8 99,5

N-3 100,2 99,8

Registro Valor

Variável de Entrada N-2 101,8 99,8 Valor central Registro Valor

N-1 99,5 100,2

0800 99,8 Amostra mais recente N 99,8

Após classificação

101,8 0880 99,8

Observação: O conteúdo do BUFFER apontado por OP4 não expressa a classificação das amostras, e para se conhecer a amostra mais antiga ou a recente, há necessidade de cálculo juntamente com o contador da pilha, pois uma amostra não é remanejada de sua posição e sim descartada (a mais antiga) quando uma nova amostra é adquirida e colocada em seu lugar (método de pilha circular). O valor do contador determina o deslocamento a ser somado ao endereço da primeira amostra (OFF-SET) afim de apontar para o endereço da próxima amostra a ser descartada e atualizada.

Page 104: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

104

MED Executa a média aritmética de 3 a 125 amostras. Se a entrada (H)abilita for acionada e a entrada (D)ecimal estiver desacionada, o valor HEXADECIMAL contido no registro apontado por OP1, será capturado como nova amostra e substituirá a amostra mais antiga. Se a entrada (H)abilita for acionada e a entrada (D)ecimal estiver acionada, o valor DECIMAL contido no registro apontado por OP1, será capturado como nova amostra e substituirá a amostra mais antiga. Em seguida será executada a média aritmética do número de amostras selecionadas por OP3 e o resultado será colocado no conteúdo do registro apontado por OP2 (variável de saída). O resultado da média será dado HEXADECIMAL OU DECIMAL de acordo com a condição da entrada (D)ecimal. A primeira execução da instrução MED (após inicialização do CLP) preenche a pilha de amostras e o valor da variável de saída com o primeiro valor lido da variável de entrada. O BUFFER de armazenamento das amostras está apontado por OP4 e seu tamanho (em bytes) é igual a 2 bytes para o contador da pilha + 4 bytes para o totalizador + 2 bytes por amostra, podendo atingir um tamanho máximo de 256 bytes (contador + totalizador +125 amostras). A instrução MED é composta das seguintes entradas: (D)ECIMAL – estando esta entrada desacionada, o valor da amostra será considerado com sendo um dado HEXADECIMAL e conseqüentemente o resultado também será HEXADECIMAL. Estando esta entrada acionada, o valor da amostra será considerado com sendo um dado DECIMAL e conseqüentemente o resultado também será DECIMAL. (H)ABILITA - se acionada executa a captura de uma amostra, a média aritmética do número de amostras declarado e coloca o resultado na variável de saída.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Onde: OP1 = Registro da variável de entrada OP2 = Registro da variável de saída OP3 = Número de amostras OP4 = Endereço do BUFFER de armazenamento das amostras

Page 105: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

105

Quando o estado interno 201 acionado, quando o estado interno 200 for acionado através de uma instrução MONOA OU MONOD, o valor (em DECIMAL) contido no registro 0800 (OP1) será capturado, e será executada a média aritmética deste valor com mais 4 amostras previamente aquisitadas, conforme o número de amostras selecionado (OP3 = 05). O resultado da média aritmética (em DECIMAL) será colocado no conteúdo do registro 0880 (OP2) . A região onde as amostras serão armazenadas e a média aritmética executada não é disponível ao usuário e a execução da instrução pode ser exemplificada da seguinte forma: Antes do acionamento do estado interno 200 - (H)abilita:

Amostra Valor

Variável de Saída Amostra mais antiga N-4 103,4

N-3 99,8

Registro Valor

Variável de Entrada N-2 100,2 Resultado Registro Valor

N-1 101,8

0800 99,5 Amostra mais recente N 99,5

Após média aritmética

0880 100,9

Após o acionamento do estado interno 200 - (H)abilita:

Amostra Valor Variável de Saída

Amostra mais antiga N-4 99,8 N-3 100,2

Registro Valor

Variável de Entrada N-2 101,8 Resultado Registro Valor

N-1 99,5

0800 99,8 Amostra mais recente N 99,8

Após média aritmética

0880 100,2

Observação: O conteúdo do BUFFER apontado por OP4 não expressa as amostras e o totalizador em seu formato original, ou seja, em DECIMAL ou HEXADECIMAL, e para se conhecer a amostra mais antiga ou a recente, há necessidade de cálculo juntamente com o contador da pilha, pois uma amostra não é remanejada de sua posição e sim descartada (a mais antiga) quando uma nova amostra é adquirida e colocada em seu lugar (método de pilha circular). O valor do contador determina o deslocamento a ser somado ao endereço da primeira amostra (OFF-SET) afim de apontar para o endereço da próxima amostra a ser descartada e atualizada.

Page 106: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 - Conjunto de Instruções

106

RAIZQ Cálculo de raiz quadrada. Executa o cálculo da raiz quadrada de um número BCD de até 8 dígitos (00000000 a 99999998), apontado por OP1, e fornecendo como resultado um número BCD de 4 dígitos (0000 a 9999), apontado por OP2, que correspondente à parte inteira do resultado do cálculo. A instrução RAIZQ é composta pela seguinte entrada: HABILITA - Se acionada o cálculo é executado.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Estando o estado interno 200 for acionado, através de uma instrução MONOA OU MONOD, será executado o cálculo da raiz quadrada do valor contido no endereço 3000 e o resultado será colocado no conteúdo do endereço 3004.

ANTES DEPOIS

Registro Conteúdo em BCD Registro Conteúdo

em BCD

3000 99000000 3000 99000000 3004 XXXX 3004 9949

O valor obtido 9949 é a parte inteira do resultado da raiz quadrada do número 99.000.000, e que também pode significar o resultado da raiz quadrada do número 99 com 3 casas decimais, ou seja, 9,949. Desta forma, podemos obter resultados de extração de raiz quadrada de números entre 01 e 99 com até 3 casas decimais, ou de maneira geral:

• A extração da raiz quadrada de números entre 01 e 99, com seis zeros à direita (01000000 a 99000000), resultará em valores entre 1 e 9 seguido de três dígitos à direita que representam três casas decimais do resultado;

• A extração da raiz quadrada de números entre 0001 e 9999, com quatro zeros à direita

(00010000 a 99990000), resultará em valores entre 01 e 99 seguido de dois dígitos à direita que representam duas casas decimais do resultado;

• A extração da raiz quadrada de números entre 000001 e 999999 com dois zeros à direita

(00000100 a 99999900) resultará em valores entre 001 e 999 seguido de um dígito à direita que representa uma casa decimal do resultado.

Page 107: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 3 – Tempo de Execução das Instruções

107

3. Tempo de Execução das Instruções O tempo de execução de cada instrução é dado relativamente ao tempo de execução da instrução NOP. Por exemplo a instrução ADSUB quando habilitada tem um tempo de execução 6,4 vezes maior que o tempo de execução da instrução NOP.

INSTRUÇÃO TEMPO HABILITADO

TEMPO DESABILITADO INSTRUÇÃO TEMPO

HABILITADO TEMPO

DESABILITADO

ADSUB 6,4 5,3 ADSUD 6,8 5,3 AND 1,4 ••••• ANDN 1,5 •••••

ANLD 1,3 ••••• ATAB (um valor) ATAB (cada valor)

4,8 + 0,8 2,0

BCDAS 4,4 2,3 BITW 9,8 2,5 BMOVX (um valor BMOVX (cada valor))

4,9 + 0,8 2,1 CALL 4,3 2,3

CMP 4,9 2,5 CNT 4,2 4,1 CONV (BCD/BIN) CONV (BIN/BCD)

7,8 9,0

3,9 3,9 DIV (MÁX) 26,2 2,6

DIVB (MÁX) 16,5 2,7 DIVBL (MIN) DIVBL (MÁX)

11,0 404,0

2,7

FIM 1,0 ••••• JMP 3,4 2,4

LD 1,3 ••••• LDATA (BCD) LDATA (ASCII)

5,9 8,8

3,4 3,4

LDI 2,3 ••••• LDN 1,5 •••••

LDX 2,2 ••••• LTIME (BCD) LTIME (ASCII)

7,0 8,8

3,4 3,4

MONOA 1,8 ••••• MONOD 1,8 ••••• MOV 3,5 2,5 MOVK 3,3 2,6 MOVX 5,8 3,9 MULT (MÁX) 47,5 2,6 MULTB (MÁX) 7,5 2,6 NOP 1,0 ••••• OR 1,4 ••••• ORLD 1,3 ••••• ORN 1,5 ••••• OUT 1,4 ••••• OUTI 1,4 ••••• OUTIN •••• OUTN 1,5 ••••• OUTR 4,9 ••••• OUTX 2,2 ••••• PRINT 7,0 2,3 RET 4,3 2,3

SDATA 4,4 2,1 SETR (SETADO) SETR (RESETADO) SETR (ch. abertas)

4,4 4,4 3,9

••••• ••••• •••••

SFR 8,8 6,6 SHIFB 4,7 3,7 SHIFN 4,9 3,7 STIME 4,4 2,1 SUB 5,5 2,7 SUBB 5,4 2,7 SUM 5,1 2,6 SUMB 4,8 2,6 TAB (um valor) TAB (cada valor)

3,4 + 0,6

3,1 TMR 4,2 4,1

UPDB 6,0 5,0 UPDBC 8,2 5,3 UPDD 6,1 5,1 UPDDC 8,4 5,3 VTAB (um valor) VTAB (cada valor)

4,6 + 0,8

2,1 WAND 3,9 2,5

WBIT 9,8 2,5 WBITX 12,2 3,9 WLDX 5,8 3,9 WNOT 3,6 2,5 WOR 3,7 2,6 WXOR 3,9 2,5

Page 108: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 3 - Tempo de Execução das Instruções

108

Page 109: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 4 – Conjunto de Pseudo Instruções

109

4. Conjunto de Pseudo Instruções As pseudo-instruções foram criadas para representar, tanto na edição, na monitoração on-line, como na listagem de programas, alguns recursos descritos abaixo, que anteriormente faziam parte da configuração do CP utilizado. Deste modo tornou-se mais simples a monitoração, bem como o acompanhamento da lógica desenvolvida em um determinado programa utilizando as pseudo-instruções. GAV Armazenamento / Recuperação de receitas. OBS:

• (Gaveta=Receita). O conjunto de parâmetros “Pseudo-instrução GAVETA” neste manual será trabalhado como Receitas;

• É permitida apenas uma “Pseudo-instrução GAV” por projeto; • Para esta pseudo-instrução, os Estados Internos GO e GI funcionam apenas nos Drivers

MPC4004G, MPC4004R, MPC4004T e MPC2440; A utilização desta pseudo-instrução é indicada para aplicações onde existe a necessidade de se carregar um conjunto de parâmetros diferentes várias vezes em uma mesma máquina ou processo. Esta pseudo-instrução realiza o armazenamento ou a recuperação de até oito blocos de dados chamados de segmentos. Cada conjunto de oito segmentos formará o que chamamos de "Receita". O conteúdo do registro OP00 indicará qual receita, dentre as receitas possíveis e dependendo da quantidade de memória disponível, será armazenada ou recuperada. O registro OP01 indica o início do 1o segmento e o registro OP02 indica o final do 1o segmento, da mesma forma para os outros segmentos. Do início do segmento até o final do mesmo deve haver um número par de bytes. EX: Registros: OP1=400h a OP2=403h, logo temos um número par de bytes (400h,401h,402h e 403h = 4 bytes); Estados Internos: OP1=181h a OP2=188h, número par de bytes (181h, 182h, 183h, 184h, 185h, 186h, 187h, 188h = 8 bytes); OBS: Para os Drivers MPC4004R, MPC4004T e MPC2440 cada segmento deve começar com um endereço par e terminar com um endereço ímpar, compreendendo, no máximo 510 bytes por segmento. RECEITAS: Depois da definição dos segmentos, será calculado o número máximo de receitas que o usuário poderá ter e esse número será mostrado na frente de No Receitas (não existe Receita de número zero). Há a possibilidade de restringir o número de receitas a serem usadas, por exemplo:

• Definir segmentos; • Feito o calculo do número de Receitas Disponíveis = 256; • Em Quantidade de Receitas se estabelece o número de receitas a serem utilizadas, o valor

pode estar entre 1 e 256 receitas e será mostrado na frente de No Receitas;. • Se Quantidade de Receitas = 50, ou seja, do total de 256 receitas calculadas pela pseudo-

instrução o usuário definiu trabalhar apenas com 50, ficando com 206 sem utilização, podendo ser habilitadas futuramente através do WinSup e reconfigurando o CLP.

A pseudo-instrução Receitas possui duas entradas: HABILITA - quando acionada executa a pseudo-instrução. Não é necessário utilizar MONOA ou MONOD para o acionamento da entrada, pois quando acionada se desliga automaticamente. Para aplicações com a utilização dos EIs GO/GI, será necessário utilizar uma lógica no programa de usuário para ligar e desligar a entrada Habilita.

Page 110: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 4 - Conjunto de Pseudo Instruções

110

RECUPERA/ARMAZENA - possibilita a recuperação ou o armazenamento de uma determinada receita. (ON=Recupera / OFF=Armazena) Estados Internos GO/GI

• GO - Receita Ocupada. Em ON Informa quando a receita que se deseja armazenar já está ocupada;

• GI - Receita Inválida. Em ON Informa quando a receita que se deseja recuperar não contém informações, ou seja, nunca foi armazenado nada na receita.

GO/GI são estados internos hora de status / hora de comando, ou seja, o funcionamento desses estados internos está limitado pela Quantidade de Receitas habilitadas, ou seja, no exemplo citado anteriormente, o total disponível é de 256 e foram habilitadas 50, com isso, quando tentarmos gravar ou recuperar a receita de número 51, não terá sentido observarmos os Eis GO/GI. EX: CORRETO:

• Receita 10 gravada; • Recuperar receita 11 (não gravada), ocorrerá ativação de GI (receita inválida); • Reconfigurou parâmetros e quer gravar na receita 10, ocorrerá ativação de GO (receita

ocupada). ERRADO: • Receita 50 gravada; • Recuperar receita 51 (fora do limite habilitado), não ocorrerá ativação de GI; • Reconfigurou parâmetros e quer gravar na receita 51, não ocorrerá ativação de GO.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Page 111: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

111

Para este exemplo considera-se o uso de uma IHM, estados internos: EI 00A0h (botão K1) para ligar e desligar a entrada R/A. Para sinalizar se iremos recuperar uma receita foi utilizado o EI 00C4h (Led 5). Se o estado interno referente ao botão K1 (00A0h) for acionado irá ativar o MONOA que em seguida aciona o estado interno 0208h referente a entra R/A. O estado interno 0208h também aciona o led 5 (00C4h) da IHM como forma de identificação que a receita será recuperada. Acionando o botão K1 novamente o mesmo desligará o estado interno 0208h R/A e o led 5 (desligado) indicando que a receita será armazenada. Gravando Receita Seguir a seqüência:

• Definir o número da receita a ser gravada no conteúdo do registro 0800h; • Definir os segmentos a serem gravados; • Entrada R/A (EI 0208h) deve estar desligada; • Para os drivers com GO/GI, o estado interno GO (0300h) deve estar desligado; • Acionar a entrada Habilita (EI 020Ah); • Os oito segmentos escolhidos serão armazenados na receita indicada pelo conteúdo do

registro 0800h. OBS: Após a gravação a entrada habilita é desacionada automaticamente. Recuperando Receita Seguir a seqüência:

• Definir o número da receita a ser recuperada no conteúdo do registro 0800h; • Entrada Habilita (EI 020Ah) deve estar desligada; • Acionar a entrada R/A (EI 0208h); • Acionar a entrada Habilita (EI 020Ah); • Os oito segmentos serão recuperados.

OBS: Enquanto a entrada R/A estiver acionada não é possível gravar receitas, apenas recuperar.

Page 112: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 4 - Conjunto de Pseudo Instruções

112

Receita Ocupada GO A saída GO (EI 0300h) será acionada caso o número da receita (definido pelo conteúdo do registro 0800h) e ser armazenada já esteja ocupada. Caso isso aconteça, para cancelar o armazenamento nesta posição de receita siga a seqüência:

• Desacione a entrada habilita (EI 020Ah); • Para confirmar a ação, desligue GO (EI 0300h) receita ocupada.

Não é possível apagar receitas, pode haver a substituição da mesma por outra regravando na mesma posição indicada no registro 0800h. Para confirmar a sobreposição de uma posição de receita já existente desligue GO (EI 0300h). Neste instante, a entrada habilita (EI 020Ah) é desligada automaticamente e a gravação será realizada. Receita Inválida GI O GI (EI 0301h) será acionado toda vez que a receita que se quer recuperar não foi anteriormente armazenada, ou seja, nunca ter sido utilizada. Uma vez acionado, ele permanecerá ligado até que alguma lógica do programa de usuário o desligue. TMRX Temporizador de 1 ms. Esta pseudo-instrução foi criada para que se possa monitorar on-line o funcionamento dos temporizadores (1 e 2) de 1ms, sendo possível observar o valor do preset, o valor do efetivo e o acionamento/desacionamento do estado interno habilita e da saída associada. Além disso nas listagens de programas usuário que utilizarem esses temporizadores, aparecerá um bloco semelhante ao bloco das instruções convencionais, facilitando a análise e a compreensão da lógica desenvolvida.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Onde: X - indicará qual temporizador (1 ou 2) será utilizado. YYY - indicará o registro referente ao preset. ZZZ - indicará o registro referente ao efetivo. Observação: O endereçamento YYY, ZZZ, E.I. Hab. e saída, será automaticamente colocado assim que a pseudo-instrução for editada. No MPC1600 as saídas associadas correspondem às duas últimas da primeira unidade de saída configurada. Assim que o estado interno 020h for acionado a saída 186 ficará ativa e o temporizador executará a contagem de tempo até atingir o valor definido no registro 540h e então desacionará a saída associada 186.

Page 113: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 2 – Conjunto de Instruções

113

CAV Contador de alta velocidade (CPU). Esta pseudo-instrução foi criada para que se possa monitorar on-line o funcionamento do contador de alta velocidade (CPU), podendo-se observar o valor do set-point, o valor do efetivo, o valor inicial e o acionamento/desacionamento saídas associadas. Além disso nas listagens de programas usuário que utilizarem esse contador, aparecerá um bloco semelhante ao bloco das instruções convencionais, deste modo facilitando a análise e a compreensão da lógica desenvolvida.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

Onde: XXX - indica o registro que conterá o set-point. YYY - indica o registro que conterá o valor inicial. ZZZ - indica o registro que conterá o efetivo. As saídas 1, 2 e 3 podem ser escolhidas de 180 a 187, ou no caso do MPC1600 entre os estados internos especificados para a primeira unidade de saída configurada, dependendo do CP utilizado. No exemplo apresentado, assim que o estado interno 0D3 (habilita saídas do contador rápido) for acionado as saídas 180, 181, e 183 estarão habilitadas a indicar o resultado da comparação entre o efetivo (4D6) e o set-point (4D2). Quando o estado interno 0D1 (load valor inicial no efetivo do contador rápido) for acionado o conteúdo do registro 4DA (valor inicial) será carregado para o conteúdo do registro 4D2 (efetivo). Quando o estado interno 0D2 (bloqueio de contagem) for acionado a contagem de pulsos será bloqueada. Quando o estado interno 0D0 (reset do efetivo do contador rápido) for acionado o conteúdo do registro 4D6 (efetivo) passará a ser igual a zero. O estado interno 0D7 (posição zero do contador rápido) será acionado durante uma varredura, toda vez que o pulso de referência do encoder chegar ao CP, fazendo que o conteúdo do registro 4D6 (efetivo) passe a ser igual a zero.

Page 114: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Capítulo 4 - Conjunto de Pseudo Instruções

114

SYNC Sincronismo. Esta pseudo-instrução é indicada para sincronizar estados internos, acionados por dispositivos que utilizam o canal de comunicação serial ou acionados a partir de sinais gerados por interrupções de teclado ou timers. O número máximo de instruções SYNC que podem existir no mesmo programa usuário é de oito instruções. Depois de escolhido o estado interno OP1, cada nova instrução incluída no mesmo programa usuário já terá os estados internos automaticamente escolhidos a partir de OP1+1.

SÍMBOLO EM DIAGRAMA DE RELÉS EXEMPLO DE PROGRAMAÇÃO

O estado interno definido por OP1 será o estado interno de origem, portanto não sincronizado com a varredura e OP1+1 será um estado interno consecutivo a OP1 e representa o estado interno que será acionado apenas durante uma varredura. Os estados internos OP1 e OP1+1 serão desacionados pelo Firmware simultaneamente ao final de uma varredura. Observação: em um programa usuário pode-se utilizar até oito pseudo-instruções SYNC, e depois que OP1 for definido os estados sincronizados serão automaticamente definidos na seqüência a partir de OP1, por exemplo: OP1+1, OP1+2, OP1+3,... Esquema da relação entre OP1, OP1+1 e os ciclos de varredura:

Page 115: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Atos

115

Page 116: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Atos

116

Page 117: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Atos

117

Page 118: CONJUNTO DE INSTRUÇÕES DWARE - schneider-electric.com · BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK

Atos

118