Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 CONJUNTO DE INSTRUÇÕES DWARE Manual Rev. 1.90 Setembro / 2006 Ref.2-002.190 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. 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: suportec@atos.com.br 4 Í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 Í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 ........................................................................................................................................................................69WXOR......................................................................................................................................................................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 Í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 Índice 8 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) 76 ADSUD Soma/subtrai uma constante de conteúdo de registro (Dec) 77 AJUST Ajusta o ZERO e o FUNDO DE ESCALA 101 ASCB Conversão ASCII para decimal/hexadecimal 78 ATAB Armazena tabela 39 BCDAS Conversão de dados Decimais p/ASCII 57 BCDAP Conversão de dados BCD p/ASCII com ponto decimal 57 BITW Transfere 16 estados p/um registro de 16 bits 71 BMOVX Movimentação de bloco de dados indexados na origem e no destino 43 CALL Chamada de sub-rotina 76 CCS Calcula CHECK SUM 83 CEP Calcula Menor, Maior Valor e Média de uma FIFO 100 CMP Compara conteúdo de registros 26 CNT Contador 22 CNT2 Simula um Contador 23 CONV Conversor Dec/Hex ou Hex/Dec 55 CONVL Conversor Dec/Hex ou Hex/Dec de 32 bits 55 CTCPU Contador Rápido (CPU) 82 DIV Divisão Decimal 32 DIVB Divisão Hexadecimal 33 DIVBL Divisão binária longa (Hexadecimal) 34 DVBLL Divisão binária de 32 bits (Hexadecimal) 34 FATOR Ajusta o ZERO e o FUNDO DE ESCALA de uma E.A. 80 FCMP Comparação de ponto flutuante 27 FCONV Conversão entre ponto flutuante e BCD 56 FDIV Divisão de ponto flutuante 32 FILT Filtro de amostras 102 FMUL Multiplicação de ponto flutuante 35 FSUB Subtração de ponto flutuante 30 FSUM Soma de ponto flutuante 28 JMP Salto para endereço de desvio 76 LD Começa a operação em uma linha ou bloco com chave (NA) 17 LDATA Leitura de dia/mês/ano 59 LDAT2 Leitura de dia/mês/ano c/ 4 dígitos 62 LDI Entrada imediata 17 LDIA Atualizacanal de entrada analógica 84 LDN Começa a operação em uma linha ou bloco com chave (NF) 17 LDW Começa linha com chave (NA) do tipo “bit endereçável” 24 LDX Começa linha com chave (NA) indexada 24 LTIME Leitura de hora/min/seg. 60 MED Média aritmética 104 MONOA Monoestável de uma varredura no acionamento 20 MONOD Monoestável de uma varredura no desacionamento 21 MOV Copia conteúdo de um registro para outro 38 Capítulo 1 - Introdução 10 MNEMÔNICO DESCRIÇÃO PÁGINA MULT Multiplicação Decimal 35 MOVX MOV indexado no destino 40 MULT Multiplicação Decimal 35 MULTB Multiplicação Hexadecimal 36 MULBL Multiplicação Hexadecimal de 32 bits 37 OUT Saída 18 OUTI Saída não em fim de linha 18 OUTIN Saída invertida não em fim de linha 19 OUTIS Atualiza saída analógica 87 OUTN Saída invertida 18 OUTR Saída imediata 19 OUTX Saída indexada 25 PID Calcula PID 84 PRINT Transferência de dados p/interface serial 79 RAIZQ Cálculo da raiz quadrada 106 SCL Gera uma reta tipo mx+b dados dois pares x, y 91 SCL2G Gera uma parábola 94 SCRLL Rotação de dados de uma tabela 44 SDATA Acerto de dia/mês/ano 61 SDAT2 Acerto de dia/mês/ano/século 63 SETR Set/Reset (estado interno) 20 SFR Deslocamento de estados internos 48 SFRW Deslocamento de bits 49 SHIFB Deslocamento de bit 51 SHIFN Deslocamento de nibble (4 bits) 52 SHIFL Deslocamento de “n” bits 53 STIME Acerto de hora/min/seg. 61 SUB Subtração Decimal 30 SUBB Subtração Hexadecimal 31 SUBBL Subtração Hexadecimal de 32 bits 31 SUM Soma Decimal 28 SUMB Soma Hexadecimal 29 SUMBL Soma Hexadecimal de 32 bits 29 TAB Carregamento de um bloco de dados 39 TMR Temporizador 21 TXPR Carregamento de blocos de impressão 95 UPDB Contador Up/Down Hexadecimal 65 UPDBC Incrementa e compara (Hex) 67 UPDD Contador Up/Down decimal 64 UPDDC Incrementa e compara (Dec) 66 VTAB Recupera dados da tabela 40 WAND AND (bit a bit) do conteúdo de dois registros de 16 bits 68 WBIT Transfere os 16 bits de um registro para 16 estados internos 72 WBITX WBIT indexado e com auto incremento/decremento 74 WLDX MOV indexado na origem 42 WNOT Complemento de registro de 16 bits 68 WOR OR (bit a bit) do conteúdo de dois registros de 16 bits 69 WXOR XOR (bit a bit) do conteúdo de dois registros de 16 bits 70 Capítulo 1 - Introdução 11 MNEMÔNICO DESCRIÇÃO PÁGINA CAV Contador de Alta Velocidade (CPU) 113 GAV Gaveta ou Arquivo de Receitas 109 SYNC Sincronismo 114 TMRX 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 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 Capítulo 1 - Introdução 13 INSTRUÇÃO MPC4004 MPC4004L MPC4004G MPC4004RMPC2440 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 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 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. Capítulo 1 - Introdução 16 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 Enquantoo 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. 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. 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. 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. 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. 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 dacontagem (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. 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). 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 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 0 702 703 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. 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 estadosinternos 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. 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 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 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)] 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)] 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. 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 segundoa 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. 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 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. 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. 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. 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 4 600 601 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 queserã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. 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. 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 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. 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 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)entidoacionada, 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 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 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 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 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. 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
Compartilhar