Escolar Documentos
Profissional Documentos
Cultura Documentos
Manual Wins Up 2
Manual Wins Up 2
DWARE
Manual Rev. 1.90 Setembro / 2006 Ref.2-002.190
1
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.
2
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.
3
4
Índice
Índice
1. INTRODUÇÃO ............................................................................................................................ 9
5
Índice
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
6
Índice
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
7
Índice
8
Capítulo 1 - Introdução
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
9
Capítulo 1 - Introdução
10
Capítulo 1 - Introdução
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).
Instruções Inexistentes:
MPC4004R
MPC2200 MPC4004L MPC4004 MPC4004G MPC4004R
MPC2440
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
11
Capítulo 1 - Introdução
ADSUB 9 9 9 9 9 9 9 9 9 9 9
ADSUD 9 9 9 9 9 9 9 9 9 9 9
AJUST 9 9 9
ASCB 9 9 9 9 9
ATAB 9 9 9 9 9 9 9 9
BCDAS 9 9 9 9 9 9 9 9 9 9 9
BCDAP 9 9 9 9 9 9 9 9
BITW 9 9 9 9 9 9 9 9 9 9 9
BMOVX 9 9 9 9 9 9 9 9 9 9 9
CALL 9 9 9 9 9 9 9 9 9 9 9
CCS 9 9 9 9 9 9 9 9
CEP 9 9 9
CMP 9 9 9 9 9 9 9 9 9 9 9
CNT 9 9 9 9 9 9 9 9 9 9 9
CNT2 9 9 9
CONV 9 9 9 9 9 9 9 9 9 9 9
CONVL 9 9 9 9 9 9 9 9 9
CTCPU 9 9 9 9 9 9
DINT1 9 9
DIV 9 9 9 9 9 9 9 9 9 9 9
DIVB 9 9 9 9 9 9 9 9 9 9 9
DIVBL 9 9 9 9 9 9 9 9 9 9 9
DVBLL 9 9 9 9 9 9 9 9 9
FATOR 9 9 9 9
FCMP 9 9 9
FCONV 9 9 9
FDIV 9 9 9
FILT 9 9 9
FMUL 9 9 9
FSUB 9 9 9
FSUM 9 9 9
FTAB 9 9
JMP 9 9 9 9 9 9 9 9 9 9 9
LD 9 9 9 9 9 9 9 9 9 9 9
LDATA 9 9 9 9 9 9 9 9 9 9
LDAT2 9 9 9 9 9 9 9
LDI 9 9 9 9 9 9 9 9 9 9 9
LDIA 9 9 9 9 9 9 9 9 9
LDN 9 9 9 9 9 9 9 9 9 9 9
LDW 9 9 9
LDX 9 9 9 9 9 9 9 9 9 9
LTIME 9 9 9 9 9 9 9 9 9 9 9
MED 9 9 9
MONOA 9 9 9 9 9 9 9 9 9 9 9
MONOD 9 9 9 9 9 9 9 9 9 9 9
MOV 9 9 9 9 9 9 9 9 9 9 9
MOVK 9 9 9 9 9 9 9 9 9 9 9
MOVX 9 9 9 9 9 9 9 9 9 9 9
MULT 9 9 9 9 9 9 9 9 9 9 9
12
Capítulo 1 - Introdução
MPC4004R
INSTRUÇÃO MPC4004 MPC4004L MPC4004G MPC2440
MPC4004T MPC2200 175212Vx 175243Vx 175272Vx 175210XE 1755Vx
MULTB 9 9 9 9 9 9 9 9 9 9 9
MULBL 9 9 9 9 9 9 9 9
OUT 9 9 9 9 9 9 9 9 9 9 9
OUTI 9 9 9 9 9 9 9 9 9 9 9
OUTIN 9 9 9 9 9 9 9 9 9 9 9
OUTIS 9 9 9 9 9 9 9 9 9
OUTN 9 9 9 9 9 9 9 9 9 9 9
OUTR 9 9 9 9 9 9 9 9 9 9 9
OUTX 9 9 9 9 9 9 9 9 9 9 9
PID 9 9 9 9 9 9 9
PID I 9 9
PRINT 9 9 9 9 9 9 9 9 9 9 9
RAIZQ 9 9 9
SCHED 9 9
SCL 9 9 9 9 9 9 9 9
SCL2G 9 9 9 9
SCRLL 9 9 9
SDATA 9 9 9 9 9 9 9 9 9 9
SDAT2 9 9 9 9 9 9 9
SETR 9 9 9 9 9 9 9 9 9 9 9
SFR 9 9 9 9 9 9 9 9 9 9 9
SFRW 9 9 9 9
SHIFB 9 9 9 9 9 9 9 9 9 9 9
SHIFN 9 9 9 9 9 9 9 9 9 9 9
SHIFL 9 9 9 9 9 9 9
STIME 9 9 9 9 9 9 9 9 9 9 9
SUB 9 9 9 9 9 9 9 9 9 9 9
SUBB 9 9 9 9 9 9 9 9 9 9 9
SUBBL 9 9 9 9 9 9 9 9
SUM 9 9 9 9 9 9 9 9 9 9 9
SUMB 9 9 9 9 9 9 9 9 9 9 9
SUMBL 9 9 9 9 9 9 9 9
TAB 9 9 9 9 9 9 9 9 9 9 9
TMR 9 9 9 9 9 9 9 9 9 9 9
TXPR 9 9 9 9 9 9
UPDB 9 9 9 9 9 9 9 9 9 9 9
UPDBC 9 9 9 9 9 9 9 9 9 9 9
UPDD 9 9 9 9 9 9 9 9 9 9 9
UPDDC 9 9 9 9 9 9 9 9 9 9 9
VTAB 9 9 9 9 9 9 9 9
WAND 9 9 9 9 9 9 9 9 9 9 9
WBIT 9 9 9 9 9 9 9 9 9 9 9
WBITX 9 9 9 9 9 9 9 9 9 9 9
WLDX 9 9 9 9 9 9 9 9 9 9 9
WNOT 9 9 9 9 9 9 9 9 9 9 9
WOR 9 9 9 9 9 9 9 9 9 9 9
WXOR 9 9 9 9 9 9 9 9 9 9 9
13
Capítulo 1 - Introdução
SÉRIE MPC4004
4004.05R
4004.04B MPC4004R 4004.06R
4004.01 4004.09R
4004.05B
4004.02
4004.06B
4004.04 4004.05T
MPC4004 MPC4004G 4004.09B
4004.09 MPC4004T 4004.06T
4004.05E
4004.11 4004.09T
4004.06E
4004.12
4004.09E
4004.11L
MPC4004L
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.
14
Capítulo 1 - Introdução
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.
Observação: os modelos terminados com /S/R/RS também estão relacionados nesta listagem, mas
sem a terminação.
15
Capítulo 1 - Introdução
16
Capítulo 2 – Conjunto de Instruções
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.
LDN
Carregamento de NF.
LDI
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.
Essa instrução garante que o estado (ON ou OFF) da entrada 100 será carregado no instante da
execução da instrução.
17
Capítulo 2 - Conjunto de Instruções
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.
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.
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.
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.
18
Capítulo 2 – Conjunto de Instruções
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
1° EXEMPLO DE PROGRAMAÇÃO
RELÉS
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.
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.
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.
19
Capítulo 2 - Conjunto de Instruções
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.
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.
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.
20
Capítulo 2 – Conjunto de Instruções
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.
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
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.
21
Capítulo 2 - Conjunto de Instruções
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.
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.
22
Capítulo 2 – Conjunto de Instruções
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.
• (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.
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).
23
Capítulo 2 - Conjunto de Instruções
LDX
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.
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
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.
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.
24
Capítulo 2 – Conjunto de Instruções
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.
0 1 8 0
Se o conteúdo de 702 for: 702 703
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.
25
Capítulo 2 - Conjunto de Instruções
• Instruções de Comparação
CMP
Esta instrução executa a comparação dos 16 bits de um registro de palavras indicado por OP1 com
outro registro indicado por OP2.
• (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.
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.
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.
26
Capítulo 2 – Conjunto de Instruções
FCMP
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.
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:
Onde: (OP1) e (OP2) indicam o conteúdo dos registros OP1 e OP2 definidos na instruçã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.
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.
27
Capítulo 2 - Conjunto de Instruções
• Instruções Aritméticas
SUM
Soma BCD.
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
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.
28
Capítulo 2 – Conjunto de Instruções
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.
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.
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
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.
29
Capítulo 2 - Conjunto de Instruções
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.
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
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.
30
Capítulo 2 – Conjunto de Instruções
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)]
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.
31
Capítulo 2 - Conjunto de Instruções
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.
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
32
Capítulo 2 – Conjunto de Instruções
Observação: Os valores de ponto flutuante estão armazenados segundo a norma ANSI/IEEE Std 754-
1985.
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.
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.
33
Capítulo 2 - Conjunto de Instruções
DIVBL
A divisão por zero (conteúdo de OP2 = 0) não é executada ou seja o comportamento é o mesmo da
entrada Habilita desacionada.
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).
A divisão por zero (conteúdo de OP2 = 0) não é executada, ou seja, o comportamento é o mesmo da
entrada Habilita desacionada.
34
Capítulo 2 – Conjunto de Instruções
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.
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
Observação: Os valores de ponto flutuante estão armazenados segundo a norma ANSI/IEEE Std 754-
1985.
35
Capítulo 2 - Conjunto de Instruções
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.
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.
36
Capítulo 2 – Conjunto de Instruções
MULBL
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.
37
Capítulo 2 - Conjunto de Instruções
MOV
Movimentação de dados.
Se a entrada habilita estiver acionada, transfere o conteúdo do registro apontado por OP1 para OP2.
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
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
38
Capítulo 2 – Conjunto de Instruções
TAB
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
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.
39
Capítulo 2 - Conjunto de Instruções
VTAB
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.
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
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.
40
Capítulo 2 – Conjunto de Instruções
MOVX
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.
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
41
Capítulo 2 - Conjunto de Instruções
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:
WLDX
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.
42
Capítulo 2 – Conjunto de Instruções
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:
BMOVX
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.
43
Capítulo 2 - Conjunto de Instruções
Observação: Não é necessário que o todo o bloco seja colocado em uma única página de destino.
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).
SCRLL
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.
• (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);
44
Capítulo 2 – Conjunto de Instruções
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
Primeira 6002 44 Primeira 6002 FF
Posição (01) 6003 77 Posição (01) 6003 FF
6004 68 6004 FF
6005 16 6005 FF
6006 99 6006 FF
6007 09 6007 FF
Primeira 6008 35 Primeira 6008 FF
Posição (02) 6009 CC Posição (02) 6009 FF
600A F6 600A FF
600B 86 600B FF
60 “ “ “ 60 “ “ “
BYTES “ “ “ BYTES “ “ “
6030 9F 6030 FF
6031 00 6031 FF
Penúltima 6032 32 Penúltima 6032 FF
Posição (09) 6033 99 Posição (09) 6033 FF
6034 FF 6034 FF
6035 B3 6035 FF
6036 66 6036 FF
6037 88 6037 FF
Última 6038 A3 Última 6038 FF
Posição (10) 6039 15 Posição (10) 6039 FF
603A 04 603A FF
603B 09 603B FF
45
Capítulo 2 - Conjunto de Instruções
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
Primeira 6002 13 Primeira 6002 13
Posição (01) 6003 14 Posição (01) 6003 14
6004 15 6004 15
6005 16 6005 16
6006 21 6006 11
6007 22 6007 12
Primeira 6008 23 Primeira 6008 13
Posição (02) 6009 24 Posição (02) 6009 14
600A 25 600A 15
600B 26 600B 16
60 “ “ “ 60 “ “ “
BYTES “ “ “ BYTES “ “ “
6030 91 6030 81
6031 92 6031 82
Penúltima 6032 93 Penúltima 6032 83
Posição (09) 6033 94 Posição (09) 6033 84
6034 95 6034 85
6035 96 6035 86
6036 A1 6036 91
6037 A2 6037 92
Última 6038 A3 Última 6038 93
Posição (10) 6039 A4 Posição (10) 6039 94
603A A5 603A 95
603B A6 603B 96
46
Capítulo 2 – Conjunto de Instruções
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
Primeira 6002 13 Primeira 6002 23
Posição (01) 6003 14 Posição (01) 6003 24
6004 15 6004 25
6005 16 6005 26
6006 21 6006 31
6007 22 6007 32
Primeira 6008 23 Primeira 6008 33
Posição (02) 6009 24 Posição (02) 6009 34
600A 25 600A 35
600B 26 600B 36
60 “ “ “ 60 “ “ “
BYTES “ “ “ BYTES “ “ “
6030 91 6030 A1
6031 92 6031 A2
Penúltima 6032 93 Penúltima 6032 A3
Posição (09) 6033 94 Posição (09) 6033 A4
6034 95 6034 A5
6035 96 6035 A6
6036 A1 6036 A1
6037 A2 6037 A2
Última 6038 A3 Última 6038 A3
Posição (10) 6039 A4 Posição (10) 6039 A4
603A A5 603A A5
603B A6 603B A6
47
Capítulo 2 - Conjunto de Instruções
• Instruções de Deslocamento
SFR
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.
48
Capítulo 2 – Conjunto de Instruções
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.
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.
49
Capítulo 2 - Conjunto de Instruções
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.
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.
50
Capítulo 2 – Conjunto de Instruções
SHIFB
Deslocamento de bit.
Provoca um deslocamento de um bit em um registro de palavras. A instrução tem duas entradas:
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 no registro:
51
Capítulo 2 - Conjunto de Instruções
SHIFN
Deslocamento de nibble.
Provoca um deslocamento de 4 bits (NIBBLE) em um registro de palavras.
A instrução tem duas entradas:
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 no registro:
52
Capítulo 2 – Conjunto de Instruções
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.
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:
53
Capítulo 2 - Conjunto de Instruções
Visualização no registro:
54
Capítulo 2 – Conjunto de Instruções
CONV
É 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.
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
55
Capítulo 2 - Conjunto de Instruções
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
É 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.
Observação: Os valores de ponto flutuante estão armazenados segundo a norma ANSI/IEEE Std 754-
1985.
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.
56
Capítulo 2 – Conjunto de Instruções
BCDAS
A fonte para conversão é indicado por OP1 e o destino é indicado por OP2. A instrução tem uma
entrada Habilita.
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
57
Capítulo 2 - Conjunto de Instruções
Byte de controle:
Define a posição do ponto, vírgula ou ponto decimal segundo a tabela mostrada abaixo:
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.
TABELA ASCII
58
Capítulo 2 – Conjunto de Instruções
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.
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:
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-
Os dados poderão ser vistos se uma tela de um campo de visualização de oito dígitos for programada
na IHM utilizada.
59
Capítulo 2 - Conjunto de Instruções
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.
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:
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:
60
Capítulo 2 – Conjunto de Instruções
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.
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.
61
Capítulo 2 - Conjunto de Instruções
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.
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).
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+
62
Capítulo 2 – Conjunto de Instruções
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.
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.
63
Capítulo 2 - Conjunto de Instruções
UPDD
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.
64
Capítulo 2 – Conjunto de Instruções
UPDB
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.
65
Capítulo 2 - Conjunto de Instruções
UPDDC
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.
66
Capítulo 2 – Conjunto de Instruções
UPDBC
67
Capítulo 2 - Conjunto de Instruções
WNOT
55
800 55
APÓS O ACIONAMENTO DE E100
AA
600 AA
WAND
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.
68
Capítulo 2 – Conjunto de Instruções
00
600 00
00
APÓS O ACIONAMENTO DE E100
800 00
00
600 00
WOR
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.
FF
800 FF
APÓS O ACIONAMENTO DE E100
AA
600 AA
69
Capítulo 2 - Conjunto de Instruções
WXOR
AA
800 AA APÓS O ACIONAMENTO DE E100
AA
600 AA
70
Capítulo 2 – Conjunto de Instruções
BITW
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.
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.
71
Capítulo 2 - Conjunto de Instruções
WBIT
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.
72
Capítulo 2 – Conjunto de Instruções
Por exemplo, se o conteúdo do registro 600/601 for FAFBh os estados internos 180 a 18F serão
afetados da seguinte forma:
73
Capítulo 2 - Conjunto de Instruções
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.
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.
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.
74
Capítulo 2 – Conjunto de Instruções
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.
75
Capítulo 2 - Conjunto de Instruções
• Instruções Especiais
JMP
Salto no programa.
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.
ADSUB
76
Capítulo 2 – Conjunto de Instruções
Neste exemplo ocorrerá o mesmo que no próximo exemplo, porém utilizando a base hexadecimal.
ADSUD
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.
77
Capítulo 2 - Conjunto de Instruções
ASCB
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.
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
2008 01
2001 31
2002 32
2009 23
2003 33
2004 34
200A 45
2005 35
2006 36
200B 67
2007 37
Exemplo 2:
DADOS EM ASCII DADOS CONVERTIDOS
ENDEREÇO VALOR ENDEREÇO VALOR
2000 30
2008 0A
2001 41
2002 42
2009 BC
2003 43
2004 30
200A 0D
2005 44
2006 45
200B EF
2007 46
78
Capítulo 2 – Conjunto de Instruções
ATOS
Para a impressão de:
AUTOMAÇÃO INDUSTRIAL
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.
79
Capítulo 2 - Conjunto de Instruções
FATOR
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.
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:
80
Capítulo 2 – Conjunto de Instruções
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
................................Escala Ajustada...............................
0000 (offset) 1750 (fundo de escala)
81
Capítulo 2 - Conjunto de Instruções
CTCPU
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.
RESET - quando ativada permite o reset do efetivo do contador rápido presente na CPU.
HABILITA - quando acionada a instrução é executada.
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.
82
Capítulo 2 – Conjunto de Instruções
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
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.
83
Capítulo 2 - Conjunto de Instruções
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.
LDIA
84
Capítulo 2 – Conjunto de Instruções
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.
85
Capítulo 2 - Conjunto de Instruções
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
Onde:
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.
86
Capítulo 2 – Conjunto de Instruções
PID_I
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.
Onde:
87
Capítulo 2 - Conjunto de Instruções
OP2: Endereço inicial do bloco de parâmetros. Este endereço sempre deve existir.
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
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.
É 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.
É 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.
88
Capítulo 2 – Conjunto de Instruções
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).
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).
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.
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
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.
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
89
Capítulo 2 - Conjunto de Instruções
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).
90
Capítulo 2 – Conjunto de Instruções
OUTIS
SCL
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.
91
Capítulo 2 - Conjunto de Instruções
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.
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:
350
800 0000 y1
802 0010
804 0500
806 0350
808 RESERVADO
80A RESERVADO 10
80C RESERVADO y0
80E RESERVADO
0 500
x0 x1
800 0500
802 0350 350
804 1000 y0
806 0000
808 RESERVADO
80A RESERVADO
80C RESERVADO
80E RESERVADO
0
y1
500 1000
x0 x1
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 .
92
Capítulo 2 – Conjunto de Instruções
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.
350
Y1
120
Y0
500 1000
X0 X1
93
Capítulo 2 - Conjunto de Instruções
SCL2G
Ymax
Ymin ra
Ymin rd
Ra Rd
X max
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.
94
Capítulo 2 – Conjunto de Instruções
2,78
1,00
0,00 X
200 5500 500
0 6000
Onde:
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).
95
Capítulo 2 - Conjunto de Instruções
SCHED
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:
96
Capítulo 2 – Conjunto de Instruções
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.
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:
97
Capítulo 2 - Conjunto de Instruções
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:
98
Capítulo 2 – Conjunto de Instruções
TXPR
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
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:
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.
99
Capítulo 2 - Conjunto de Instruções
CEP
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.
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.
100
Capítulo 2 – Conjunto de Instruções
AJUST
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.
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).
101
Capítulo 2 - Conjunto de Instruções
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).
(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.
Onde:
102
Capítulo 2 – Conjunto de Instruções
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:
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.
103
Capítulo 2 - Conjunto de Instruções
MED
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).
(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.
Onde:
104
Capítulo 2 – Conjunto de Instruções
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:
Amostra Valor
Variável de Saída
Amostra mais antiga Î N-4 103,4
Após média Registro Valor
N-3 99,8
aritmética
Variável de Entrada N-2 100,2 Resultado Î
Registro Valor N-1 101,8 0880 100,9
0800 99,5 Î Amostra mais recente Î N 99,5
Amostra Valor
Variável de Saída
Amostra mais antiga Î N-4 99,8
Após média Registro Valor
N-3 100,2
aritmética
Variável de Entrada N-2 101,8 Resultado Î
Registro Valor N-1 99,5 0880 100,2
0800 99,8 Î Amostra mais recente Î N 99,8
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.
105
Capítulo 2 - Conjunto de Instruções
RAIZQ
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.
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
Conteúdo Conteúdo
Registro Registro
em BCD 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.
106
Capítulo 3 – Tempo de Execução das Instruções
107
Capítulo 3 - Tempo de Execução das Instruções
108
Capítulo 4 – Conjunto de Pseudo Instruções
GAV
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.
109
Capítulo 4 - Conjunto de Pseudo Instruções
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.
110
Capítulo 2 – Conjunto de Instruções
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:
Recuperando Receita
Seguir a seqüência:
OBS: Enquanto a entrada R/A estiver acionada não é possível gravar receitas, apenas recuperar.
111
Capítulo 4 - Conjunto de Pseudo Instruções
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.
Onde:
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.
112
Capítulo 2 – Conjunto de Instruções
CAV
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.
113
Capítulo 4 - Conjunto de Pseudo Instruções
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.
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,...
114
Atos
115
Atos
116
Atos
117
Atos
118