MCS ENGENHARIA MCSplc Manual de PLC
Transcrição
MCS ENGENHARIA MCSplc Manual de PLC
MCS ENGENHARIA MCSplc Manual de PLC - Proteo V1.00 ATENÇÃO A MCS reserva-se o direito de realizar alterações que julgue pertinentes no presente manual e nas funções descritas sem prévio aviso. As instruções, que se encontram no Capítulo 2 referente a operações com bits (item 2.1), possuem exemplos e ilustrações visando permitir uma melhor compreensão ao profissional que não está ligado às áreas da Eletrônica Digital. Este Capítulo deve ser lido com maior cuidado por aqueles profissionais que não estão familiarizados com programação em linguagem de lista de instruções. Caso tenha sugestões, dúvidas ou críticas, por favor entre em contato com nossa Engenharia de Aplicação: fone (011) 4191 - 4771 fax (011) 4191 - 4919 suporte técnico : [email protected] Catálogos, Downloads de Manuais, e outras informações, visitem nosso site www.cncmcs.com.br Manual do PLC V1.00 ÍNDICE GERAL 1 - INFORMAÇÕES GERAIS ........................................................................................................ 22 1.1 - MEMÓRIA DE TRABALHO ................................................................................................ 22 1.2 - FORMATO GERAL DAS INSTRUÇÕES ............................................................................ 22 1.2.1 - Operações lógicas ....................................................................................................... 22 1.2.2 - Desvios de execução .................................................................................................. 22 1.2.3 - Operações diretas ....................................................................................................... 22 1.3 – TIPOS DE OPERAÇÃO ..................................................................................................... 23 1.4 - TIPOS DE OPERANDOS ................................................................................................... 24 1.5 - ENDEREÇOS OU PARÂMETROS ..................................................................................... 24 1.6 – ACUMULADOR (Acc) ........................................................................................................ 25 1.6.1 – Flags .......................................................................................................................... 25 2 - DESCRIÇÃO DOS TIPOS DE OPERAÇÃO DAS INSTRUÇÕES DO PLC ................................ 26 2.1 - OPERAÇÕES COM BIT ..................................................................................................... 26 2.1.1 - Carrega acumulador – Load ........................................................................................ 26 2.1.2 - Carrega acumulador com status negado – Load Not ................................................... 27 2.1.3 - Operação lógica E – And............................................................................................. 28 2.1.4 - Operação lógica E NEGADO – And Not ...................................................................... 29 2.1.5 - Operação lógica OU – Or ............................................................................................ 30 2.1.6 - Operação lógica OU NEGADO – Or Not ..................................................................... 31 2.1.7 - Operação lógica OU EXCLUSIVO – eXclusive Or ....................................................... 32 2.1.8 - Operação lógica OU EXCLUSIVO NEGADO – eXclusive Or Not................................. 33 2.1.9 - Atribuição de resultado energizando o acumulador ...................................................... 34 2.1.10 - Atribuição de resultado mantendo status do acumulador ........................................... 35 2.1.11 - Atribuição negada mantendo status do acumulador ................................................... 36 2.1.12 - SET energizando o acumulador – Set ....................................................................... 37 2.1.13 - SET sem influência no acumulador – Set .................................................................. 38 2.1.14 - SET se lógica negativa – Set Not .............................................................................. 39 2.1.15 - SET FORÇADO sem influência no acumulador – Set Forced.................................... 40 2.1.16 - RESET energizando o acumulador – Reset ............................................................... 40 2.1.17 - RESET sem influência no acumulador – Reset ......................................................... 41 2.1.18 - RESET se lógica negativa – Reset Not...................................................................... 42 2.1.19 - RESET FORÇADO sem influência no acumulador – Reset Forced ........................... 43 2.1.20 - Operação lógica E – Abre parêntesis – And( ............................................................. 44 2.1.21 - Operação lógica OU – Abre parêntesis – Or( ............................................................. 45 2.1.22 - Operação Fecha parêntesis ....................................................................................... 46 2.1.23 - Transição da borda de subida – Edge Up .................................................................. 47 2.1.24 - Transição da borda de descida – Edge Down ............................................................ 47 2.1.25 - Transição de borda – EDGe ...................................................................................... 48 2.2 - OPERAÇÕES COM BYTE OU WORD E RESULTADO BIT .............................................. 49 4 Manual do PLC V1.00 2.2.1 - Energiza Acumulador se comparação resultar IGUAL.................................................. 50 2.2.2 - Energiza Acumulador se comparação resultar DIFERENTE ........................................51 2.2.3 - Energiza Acumulador se comparação resultar MENOR ............................................... 52 2.2.4 - Energiza Acumulador se comparação resultar MAIOR OU IGUAL ............................... 54 2.2.5 - Operação E (AND) – Compara se IGUAL ....................................................................55 2.2.6 - Operação E (AND) – Compara se DIFERENTE ........................................................... 56 2.2.7 - Operação E (AND) – Compara se MENOR ..................................................................57 2.2.8 - Operação E (AND) – Compara se MAIOR OU IGUAL ................................................. 59 2.2.9 - Operação OU (OR) – Compara se IGUAL ...................................................................60 2.2.10 - Operação OU (OR) – Compara se DIFERENTE ........................................................ 61 2.2.11 - Operação OU (OR) – Compara se MENOR ............................................................... 62 2.2.12 - Operação OU (OR) – Compara se MAIOR OU IGUAL ............................................... 64 2.3 - OPERAÇÕES COM BYTES E WORDS .............................................................................66 2.3.1 - Carrega Acumulador – Load ........................................................................................ 66 2.3.2 - Carrega Acumulador com complemento do conteúdo – Load Not ................................ 67 2.3.3 - Operação lógica E – And ............................................................................................. 68 2.3.4 - Operação lógica E NEGADO – And Not ......................................................................69 2.3.5 - Operação lógica OU – Or ............................................................................................ 70 2.3.6 - Operação lógica OU NEGADA – Or Not ......................................................................72 2.3.7 - Operação lógica OU EXCLUSIVO – eXclusive OR ...................................................... 73 2.3.8 - Operação lógica OU EXCLUSIVO NEGADO – eXclusive Or Not .................................74 2.3.9 - ATribuição incondicional de conteúdo ..........................................................................76 2.3.10 - Atribuição condicional de conteúdo – Caso Flag NZ .................................................. 77 2.3.11 - Atribuição condicional de conteúdo – Caso Flag Z ..................................................... 78 2.3.12 - Comparação com memória ou constante – ComPare ................................................ 79 2.3.13 - Rotação à direita do conteúdo do acumulador – SHift Right ......................................80 2.3.14 - Rotação à esquerda do conteúdo do acumulador – Shift Left.....................................81 2.3.15 - Soma com memória ou constante – ADD ..................................................................82 2.3.16 - Subtração com memória ou constante – SUBtract ..................................................... 83 2.3.17 - Incremento ................................................................................................................ 84 2.3.18 – Decremento .............................................................................................................. 85 2.3.19 – Multiplicação com memória ...................................................................................... 86 2.3.20 - Divisão com memória ................................................................................................ 87 2.4 - OPERAÇÕES DE DESVIO DE EXECUÇÃO ......................................................................88 2.4.1 - Salto incondicional.......................................................................................................88 2.4.2 - Salto se operação lógica resultar IGUAL – Jump Zero ................................................. 88 2.4.3 - Salto se operação lógica resultar DIFERENTE – Jump Not Zero .................................89 2.4.4 - Salto se operação lógica resultar MAIOR OU IGUAL – Jump Positive ......................... 90 2.4.5 - Salto se operação lógica resultar MENOR – Jump Minus ............................................91 2.4.6 - Salto incondicional para endereço dado em tabela ...................................................... 92 2.4.7 - Chamada condicional de sub-rotina – NÃO ZERO ....................................................... 92 5 Manual do PLC V1.00 2.4.8 - Chamada condicional indireta de sub-rotina – NÃO ZERO .......................................... 93 2.4.9 - Chamada condicional de sub-rotina – ZERO ............................................................... 93 2.4.10 - Chamada condicional indireta de sub-rotina – ZERO ................................................. 93 2.4.11 - Chamada incondicional de sub-rotina apontada por tabela ........................................ 93 2.4.12 - Chamada incondicional indireta apontada por tabela ................................................. 94 2.4.13 - Chamada incondicional de sub-rotina ........................................................................ 95 2.4.14 - Chamada incondicional indireta de sub-rotina............................................................ 95 2.4.15 - Retorno de sub-rotina ................................................................................................ 95 2.5 - OPERAÇÕES COM TIMER ............................................................................................... 94 2.5.1 - Introdução e definições ............................................................................................... 94 2.5.2 - Carrega acumulador – Load ........................................................................................ 96 2.5.3 - Carrega acumulador com status negado – Load Not ................................................... 96 2.5.4 - Operação lógica E – And............................................................................................. 97 2.5.5 - Operação lógica E NEGADO – And Not ...................................................................... 97 2.5.6 - Operação lógica OU – Or ............................................................................................ 97 2.5.7 - Operação lógica OU NEGADO – Or Not ..................................................................... 97 2.5.8 – Operação lógica OU EXCLUSIVO – eXclusive Or ...................................................... 98 2.5.9 - Operação lógica OU EXCLUSIVO NEGADO – eXclusive Or Not................................. 98 2.5.10 - Atribuição de constante de tempo ao timer ................................................................ 98 2.5.11 - SET timer energizando o acumulador ........................................................................ 98 2.5.12 - SET sem influência no acumulador ........................................................................... 99 2.5.13 – SET FORÇADO sem influência no acumulador ........................................................ 99 2.5.14 - RESET energizando o acumulador ............................................................................ 99 2.5.15 - RESET sem influência no acumulador ...................................................................... 99 2.5.16 - RESET FORÇADO sem influência no acumulador .................................................. 100 2.6 - DEMAIS OPERAÇÕES .................................................................................................... 101 2.6 - DEMAIS OPERAÇÕES .................................................................................................... 101 2.6.1 – Energiza o acumulador ............................................................................................. 101 2.6.2 - Carrega endereço – load ADRESS ............................................................................ 101 2.6.3 - Instrução TELA.......................................................................................................... 101 2.6.4 - FINAL da execução do PLC ...................................................................................... 102 3 - Habilitação de Serviços ........................................................................................................... 103 4 - Serviço de Joystick .................................................................................................................. 107 4.2 - Descrição Geral ................................................................................................................ 107 4.3 - Tipos de Dados ................................................................................................................ 108 4.4 - Parâmetros de Configuração Utilizados ............................................................................ 108 4.5 - Parâmetros de PLC Utilizados (P900 – P999) .................................................................. 108 4.6 - Estrutura de Dados e Comandos ( PLC → CNC ) ............................................................. 109 4.6.1 - Eixo Correspondente ao Canal .................................................................................. 109 4.6.2 - Valor Central para Ponto Morto do Canal .................................................................. 110 4.6.3 - Janela para Ponto Morto do Canal ............................................................................ 111 6 Manual do PLC V1.00 4.6.4 - Janela para Controle do Canal................................................................................... 111 4.6.5 - Velocidade Máxima para o Canal .............................................................................. 111 4.6.6 - Variável para Controle do Canal ................................................................................ 111 4.6.7 - Variável Base para Status ......................................................................................... 112 4.6.8 - Sentido do Vetor de Velocidade do Canal .................................................................. 112 4.6.9 - Fins de Curso para o Eixo Associado ao Canal .......................................................... 112 4.6.10 - Bloqueio de Avanço Sentido Positivo ...................................................................... 112 4.6.11 - Bloqueio de Avanço Sentido Negativo ..................................................................... 112 4.6.12 - Significado da Variável de Controle ......................................................................... 112 4.6.13 - Reinicia serviço ....................................................................................................... 112 4.6.15 - Estrutura de Status (CNC → PLC) ........................................................................... 114 4.7 - Descrição de Funcionamento............................................................................................ 115 4.7.1 - Exemplos....................................................................................................................... 115 5 - Execução de Programa ........................................................................................................... 116 5.1 - Descrição Geral ................................................................................................................ 116 5.2 - Tipos de Dados................................................................................................................. 118 5.3 - Parâmetros de configuração utilizados ............................................................................. 118 5.4 - Parâmetros de PLC utilizados (P900 – P999) ................................................................... 119 5.5 - Estrutura de Dados e Comandos ( PLC → CNC ) ............................................................. 119 5.5.1 - Canal de execução (CANEXE) .................................................................................. 119 5.5.2 - Modo de seleção de programa (SELPRG) ................................................................. 120 5.5.3 - Diretório do programa (DIRPRG) ............................................................................... 120 5.5.4 - Número do programa (NUMPRG) .............................................................................. 121 5.5.5 - Tamanho do bloco de função atômica (TAMBFA) ...................................................... 121 5.5.6 - Índices dos blocos inicial e final (BLOINI e BLOFIM) ................................................. 121 5.5.7 - Endereço da memória I p/ funções atômicas (ENDIFA) ............................................. 121 5.5.8 - Habilita interpretador (HABITP) ................................................................................. 121 5.5.9 - Modo de execução (MODEXE) .................................................................................. 122 5.5.10 - First Start (FSTART) ................................................................................................ 122 5.5.11 - Stop / Pause (STOP) ............................................................................................... 122 5.5.12 - Resume (RESUME) ................................................................................................. 123 5.5.13 - Abort (ABORT) ........................................................................................................ 123 5.6 - Estrutura de Status ( CNC → PLC ) .................................................................................. 124 5.7 - Descrição de Funcionamento............................................................................................ 124 5.8 - Exemplos ......................................................................................................................... 126 Execução de programa com 3 eixos (X,Y,Z) por PLC ........................................................... 126 6 - Serviço de Fotocélula .............................................................................................................. 128 6.1 - Descrição geral ................................................................................................................. 128 6.2 - Tipos de dados ................................................................................................................. 128 6.3 - Parâmetros de Configuração Utilizados ............................................................................ 128 6.4 - Parâmetros de PLC utilizados ........................................................................................... 128 7 Manual do PLC V1.00 6.5 - Hardware Proteo Mini/LCD ............................................................................................... 129 6.6 - Fotocélula do módulo MCS I/O CANopen......................................................................... 129 6.7 - Estrutura de Dados e Comandos ( PLC → CNC ) ............................................................. 130 6.7.1 - Distancia para a marca do corte (PHOTOTOCUT) .................................................... 130 6.7.2 - Comprimento programado entre marcas (PGMLENGTH) .......................................... 131 6.7.3 - Janela para a detecção de marca (MARKWINDOW)................................................. 131 6.7.4 - Canal do eixo associado à fotocélula (AXISCHANNEL) ............................................. 132 6.7.5 - Número de médias desejadas para o comprimento (NUMMEDCMP) ........................ 132 6.7.6 - Inicia Captura de dados (INITCAP)............................................................................ 132 6.7.7 - Bloqueia fotocélula (BLOCK) ..................................................................................... 132 6.7.8 - Medida da posição da marca (INITMEAS) ................................................................. 132 6.7.9 - Bit de identificação remoto/local (REMOTE) ............................................................. 132 6.7.10 - Bit de habilitação do contador (ENCOUNT) ............................................................. 133 6.7.11 - Bit de reset do contador (RSTCOUNT) .................................................................... 133 6.7.12 - Iniciar comprimento médio com primeiro comprimento medido (INITCMED) ........... 133 6.7.13 - Comprimento do vínculo do eixo com Lfoto_med .................................................... 133 6.7.14 - Incremento de correção máximo (IC_MAX) ............................................................. 133 6.7.15 - Número do módulo CAN da fotocélula remota (MODUL_ADR)................................ 133 6.8 - Estrutura de Status (CNC → PLC) .................................................................................... 134 6.8.1 - Posição da marca de detecção (POSFOTO) ............................................................. 134 6.8.2 - Comprimento médio (MEDLEN) ................................................................................ 134 6.8.3 - Erro da fotocélula (ERROFOTO) ............................................................................... 134 6.8.4 - Contador de marcas falsas seqüenciais (FALSECNT) ............................................... 135 6.8.5 - Contador de pulsos (COUNTER) ............................................................................... 135 6.8.6 - Condição de TAPETE ............................................................................................... 135 7 - Serviço de Came Real............................................................................................................. 136 7.1 - Descrição geral ................................................................................................................ 136 7.2 - Tipos de dados ................................................................................................................. 137 7.3 - Parâmetros de Configuração Utilizados ............................................................................ 137 7.4 - Parâmetros de PLC utilizados .......................................................................................... 137 7.5 - Estrutura de Dados e Comandos ( PLC → CNC ) ............................................................. 137 7.5.1 - Canal do eixo associado ao Came (EIXO) ................................................................. 138 7.5.2 - ator de acoplamento (FACOP) .................................................................................. 138 7.5.3 - Posição para acoplar (POSACOP) ............................................................................ 138 7.5.4 - Posição para desacoplar (POSDESACOP)................................................................ 138 7.5.5 - Capturar referência (CAPREF) .................................................................................. 138 7.5.6 - Acoplar imediato (ACOPIME) .................................................................................... 139 7.5.7- Acoplar após posição (ACOPPOS) ............................................................................. 139 7.5.8 - Desacoplar imediato (DESACOPIME) ....................................................................... 139 7.5.9 - Desacoplar após posição (DESACOPPOS) ............................................................... 139 7.5.10 - Aplica Preset (PRESET) .......................................................................................... 139 8 Manual do PLC V1.00 7.5.11 - Acoplar MCScame após transição da foto-célula (ACOPFOTO) .............................. 139 7.6 - Estrutura de Status (CNC → PLC) .................................................................................... 140 Esperando posição para acoplar (ACOPLANDO).................................................................. 140 7.6.2 - MCScame acoplado (ACOPLADO)............................................................................ 140 7.6.3 - Esperando posição para desacoplar (DESACOPLANDO) .......................................... 140 MCS7.6.4 - came desacoplado (DESACOPLADO) ............................................................... 140 7.6.5 - Capturando referência (CAPREF) .............................................................................. 141 7.6.6 - Referência OK (REFOK) ........................................................................................... 141 7.6.7 - Velocidade do MCScame em RPM (RPM)................................................................. 141 7.6.8 - Posição do eixo (POSIT) ........................................................................................... 141 8 - Serviço de Came Virtual .......................................................................................................... 142 8.1 - Descrição geral ................................................................................................................. 142 8.2 - Tipos de dados ................................................................................................................. 142 8.3 - Parâmetros de Configuração Utilizados ............................................................................ 142 8.4 - Parâmetros de PLC utilizados ........................................................................................... 142 8.5 - Estrutura de Dados e Comandos ( PLC → CNC ) ............................................................. 142 8.5.1 - Valor para a posição do eixo (PRESET) .................................................................... 143 8.5.2 - Cota de posição (COTA_POS) .................................................................................. 143 8.5.3 - Cota p/ parada programada (COTA_STOP) .............................................................. 143 8.5.4 - Velocidade do eixo (RPM) ......................................................................................... 143 8.5.5 - Aceleração/Desaceleração do eixo do Came Virtual (ACELERAC) ............................ 144 8.5.6 - Preset para cota (PRESET_COTA) ........................................................................... 144 8.5.7 - Rotação com valor programável (ROT_PROG) ......................................................... 144 8.5.8 - Posicionamento (POS_FINAL) .................................................................................. 144 8.5.9 - Parada imediata (STOP) ........................................................................................... 144 8.5.10 - Parada com cota final (STOP_FINAL) ..................................................................... 144 8.6 - Estrutura de Status (CNC → PLC) .................................................................................... 145 8.6.1 - MCScame parado (MESTRE_STOP) ........................................................................ 145 8.6.2 - MCScame girando (MESTRE_RUN).......................................................................... 145 8.6.3 - Velocidade do eixo virtual (RPM)............................................................................... 145 8.6.4 - Posição do eixo virtual (POSIT)................................................................................. 145 9 - Serviço de Came Digital .......................................................................................................... 146 9.1 - Descrição geral ................................................................................................................. 146 9.2 - Tipos de dados ................................................................................................................. 147 9.3 - Parâmetros de Configuração Utilizados ............................................................................ 147 9.4 - Parâmetros de PLC utilizados ........................................................................................... 147 9.5 - Estrutura de Dados e Comandos ( PLC → CNC ) ............................................................. 148 9.5.1 - Tipo do Came (TPCAME) .......................................................................................... 149 9.5.2 - Offset do Came Real (OFFSETREAL) ....................................................................... 149 9.5.3 - Posição para acoplar (POSACOP) ............................................................................ 149 9.5.4 - Posição para desacoplar (POSDESACOP) ................................................................ 149 9 Manual do PLC V1.00 9.5.5 - Offset do Came Virtual (OFFSETVIRTUAL) .............................................................. 149 9.5.6 - Velocidade máxima (RPM_MAX) .............................................................................. 150 9.5.7 - Grupo de saídas n (GRPOUTn) ................................................................................. 150 9.5.8 - Máscara de atualização das saídas (MASK_OUT)..................................................... 150 9.5.9 - Ângulos iniciais LCAMxx (ANG_INI_C[0..15])............................................................ 150 9.5.10 - Ângulos finais ou tempo para acionamento dos cames DCAMxx (ANG_FIN_C[0..15]) ............................................................................................................................................ 151 9.5.11 - Avanços para rotação máxima (SHIFT_C[0..15])..................................................... 151 9.5.12 - Habilita Came Tempo (CAME_TEMPO) .................................................................. 151 9.5.13 - Habilitação dos Cames Digitais Cx (EN_xx) ............................................................ 151 9.5.14 - Tipo de habilitação da máscara de atualização das saídas (TIPHAB) ...................... 152 9.6 - Estrutura de Status (CNC → PLC) .................................................................................... 153 9.6.1 - Cames ligados (CAME_xx)........................................................................................ 153 9.6.2- Transição cames ligados (STT_OFF_ON) .................................................................. 154 9.6.3- Transição cames desligados (STT_ON_OFF) ............................................................ 154 9.6.4 - Estado da habilitação das saídas dos cames digitais (STT_MASK_HAB) .................. 154 10 - Serviço do Came dos Eixos: Vínculos Normais e Controle .................................................... 155 10.1 - Descrição geral............................................................................................................... 155 10.2 - Tipos de dados ............................................................................................................... 155 10.3 - Parâmetros de Configuração Utilizados .......................................................................... 155 10.4 - Parâmetros de PLC utilizados......................................................................................... 155 10.5 - Tabela de Endereços da estrutura de dados e comandos: .............................................. 156 10.6 - Estrutura de Dados e Comandos ( PLC → CNC ) ........................................................... 157 10.6.1 - Eixo associado (EIXOASS)...................................................................................... 159 10.6.2 - Tipo do MCScame (TPMCSCAME) ......................................................................... 159 10.6.3 - Deslocamento entre Came Eixo e MCScame (OFFSET) ......................................... 159 10.6.4 - Posição para acoplar ao MCScame (POSACOP) .................................................... 159 10.6.5 - Posição para desacoplar do MCScame (POSDESACOP) ....................................... 159 10.6.6 - Posição para validar a tabela auxiliar de vínculos (POSTABAUX_OK) .................... 159 10.6.7 - Número da fotocélula (NUMFOTO) ......................................................................... 159 10.6.8 - Número de vínculos do eixo (NUMVINC)................................................................. 159 10.6.9 - Sentido dos vínculos (SENTVINC) .......................................................................... 159 10.6.10 - Valor do recuo (RECUO) ....................................................................................... 160 10.6.11 - Faixa de recuo (DELTA_REC) ............................................................................... 160 10.6.12 - Modo Skip (SKIP) .................................................................................................. 160 10.6.13 - Vínculo complexo associado (VINCPLX) ............................................................... 160 10.6.14 - Ângulo inicial do vínculo (ANG_INI_n) ................................................................... 160 10.6.15 - Ângulo final do vínculo (ANG_FIM_n) ................................................................... 160 10.6.16 - Comprimento do vínculo (COMPR_VINC_n) ......................................................... 160 10.6.17 - Zona de transição para cruzeiro (ZONATRANS).................................................... 160 Acoplar imediato (ACOPIME) ............................................................................................... 160 10 Manual do PLC V1.00 10.6.18 - Acoplar após posição (ACOPPOS) ........................................................................ 161 10.6.19 - Desacoplar imediato (DESACOPIME) ................................................................... 161 10.6.20 - Desacoplar após posição (DESACOPPOS) ........................................................... 161 10.6.21 - Habilitar vínculo n (HABVINC_n) ........................................................................... 161 10.6.22 - Validar tabela auxiliar no 1º. vínculo (VALTAB_VINC1) ......................................... 161 10.6.23 - Validar tabela auxiliar no próximo vínculo (VALTAB_PVINC) ................................ 161 10.6.24 - Validar tabela auxiliar após posição (VALTAB_POS) ............................................. 161 10.6.25 - Validar tabela auxiliar imediatamente (VALTAB_IME) ........................................... 161 10.6.26 - Programar tabelas auxiliares (PROGVINC) ........................................................... 161 10.6.27 - Habilita recuo (RECUAR)....................................................................................... 161 10.6.28 - Reprograma vínculo usando compensação (COMP_VINC) ................................... 162 10.6.29 - Acoplar came após transição da foto-célula (ACOPFOTO) .................................... 163 11 - Came Eixo Auxiliar ................................................................................................................ 164 11.1 - Estrutura de Status (CNC → PLC) .................................................................................. 165 11.1.1 - Tabela auxiliar programada (TAB_AUX_OK) ........................................................... 165 11.1.2 - abela principal programada (TAB_PRI_OK)............................................................. 165 11.1.3 - Came dentro do vínculo n (VINC_n_IN) ................................................................... 165 11.1.4 - Aguardando recuo (WAIT_R)................................................................................... 166 11.1.5 - Recuando (RECUANDO) ......................................................................................... 166 11.1.6 - Recuado (RECUOU) ................................................................................................ 166 11.1.7 - Aguardando para compensar recuo (WT_COMP_REC)........................................... 166 11.1.8 - Compensando recuo (COMP_REC)......................................................................... 166 12 - Serviço do Came dos Eixos – Vínculos Complexos ............................................................... 167 12.1 - Descrição geral ............................................................................................................... 167 12.2 - Tipos de dados ............................................................................................................... 167 12.3 - Parâmetros de Configuração Utilizados .......................................................................... 167 12.4 - Parâmetros de PLC utilizados ......................................................................................... 167 12.5 - Estrutura de Dados e Comandos ( PLC → CNC ) ........................................................... 167 12.5.1 - Número de vínculos complexos (NUMCPLX) ........................................................... 168 12.5.2 - Número de segmentos do vínculo (NUMSEGCPX) .................................................. 168 12.5.3 - Comprimento do segmento n (LENSEG_n) ............................................................. 168 12.5.4 - Programar vínculo complexo (PROG_VINC) ........................................................... 168 12.6 - Estrutura de Status (CNC → PLC) .................................................................................. 168 12.6.1 - Vínculo programado (VINC_PROG)......................................................................... 169 13 - Serviço de teclado (Proteo/Mini) ............................................................................................ 170 13.1 - Descrição geral ............................................................................................................... 170 13.2 - Tipos de dados ............................................................................................................... 170 13.3 - Parâmetros de Configuração Utilizados .......................................................................... 170 13.4 - Parâmetros de PLC utilizados ......................................................................................... 170 13.5 - Estrutura de Dados (CNC → PLC) .................................................................................. 170 13.5.1 - Código QxRL remoto (CODE_EXT) ......................................................................... 172 11 Manual do PLC V1.00 13.5.2 - Caracter correspondente à tecla (CODE)................................................................. 172 13.5.3 - Estado shift acionado (SHIFT) ................................................................................. 172 13.5.4 - Estado control acionado (CTRL) .............................................................................. 172 13.5.5 - Tecla pressionada (PRESS/RELEASE) ................................................................... 172 Flag de leitura do PLC (PC).................................................................................................. 172 13.5.6 - Mapa de estados ..................................................................................................... 172 Mapa de estados de transição .............................................................................................. 173 14 - Serviços de teclado (PROTEO) ............................................................................................. 174 14.1 - Estrutura de Dados (PLC → CNC) .................................................................................. 174 14.1.1 - Nova tecla para CNC (NEW_KEY) .......................................................................... 174 14.1.2 - Filtro de teclas para PLC (KEY_FILTER) ................................................................. 174 14.1.3 - Requisição de novo estado de softkey pelo PLC (SFK_STATREQ) ......................... 174 14.1.4 - Filtro de estados da softkey pelo PLC (STAT_FILTER) ........................................... 174 14.1.5 - Altera memória das softkeys (CHG_SFK_MEM)...................................................... 174 14.1.6 - Código de tecla (KEYCODE) ................................................................................... 174 14.1.7 - Nova requisição de status das softkeys Horizontais (SFREQ_H_STT) .................... 175 14.1.8 - Nova requisição de status das softkeys Verticais (SFREQ_V_STT) ......................... 175 14.1.9 - Mapa de 32 bits correspondentes às softkeys desabilitadas (SFK_DISABLE) .......... 175 14.1.10 - Mapa de 32 bits correspondentes à memória das softkeys (SFK_MEMORY)......... 175 14.2 - Estrutura de Status (CNC → PLC) .................................................................................. 176 14.2.1 - Nova tecla para o PLC (NEWKEY) .......................................................................... 176 14.2.2 - Requisição de novo estado de softkey para PLC (SFK_REQ) ................................. 176 14.2.3 - Código de tecla (KEYCODE) ................................................................................... 176 14.2.4 - Requisição de novo estado de softkeys Horizontais (SFK_REQ_H)......................... 176 14.2.5 - Requisição de novo estado de softkeys Verticais (SFK_REQ_V) ............................. 177 14.2.6 - Estado corrente das softkeys Horizontais (SFK_STT_H) ......................................... 177 14.2.7 - Estado corrente das softkeys Verticais (SFK_STT_V) ............................................. 177 14.2.8 - Máscara de 32 bits de habilitação para softkeys (SFK_EN_MSK) ............................ 177 14.2.9 - Máscara de 32 bits de memória para softkeys (SFK_MEM_MASK) ......................... 177 14.2.10 - Memória de 32 bits das softkeys (SFK_MEM) ....................................................... 177 15 - Serviço de display LCD ......................................................................................................... 178 15.1 - Descrição geral............................................................................................................... 178 15.2 - Tipos de dados ............................................................................................................... 178 15.3 - Parâmetros de Configuração Utilizados .......................................................................... 178 15.4 - Parâmetros de PLC utilizados......................................................................................... 178 15.5 - Estrutura de Dados (CNC → PLC) .................................................................................. 178 15.5.1 - Disposição dos caracteres no display ...................................................................... 179 15.6 - Acesso ao display ........................................................................................................... 179 16 - Serviço de Movimento Manual .............................................................................................. 180 16.1 - Descrição geral............................................................................................................... 180 16.2 - Tipos de dados ............................................................................................................... 180 12 Manual do PLC V1.00 16.3 - Parâmetros de Configuração Utilizados .......................................................................... 180 16.4 - Estrutura de Dados e Comandos (PLC → CNC) ............................................................. 181 16.4.1 - Movimento dos eixos nos sentidos positivo e negativo (EnP/EnN) ........................... 182 16.4.2 - Movimento manual incremental/independente do eixo n (MMAINn/MOVINn) .......... 182 16.4.3 - Posição ou incremento para movimento jog/eixo (POSMJn).................................... 183 16.4.4 - Procedimentos movimento manual .......................................................................... 183 16.5 - Estrutura de Status (CNC → PLC) .................................................................................. 184 16.5.1 - Em movimento (INMOVE) ....................................................................................... 184 16.5.2 - Fins de curso (FC_POS/FC_NEG)........................................................................... 184 16.5.3 - Cota além do fim de curso (OUT_FC_POS/OUT_FC_NEG) .................................... 184 17 - Serviço de busca de referência .............................................................................................. 185 17.1 - Descrição geral ............................................................................................................... 185 17.2 - Tipos de dados ............................................................................................................... 185 17.3 - Parâmetros de Configuração Utilizados .......................................................................... 185 17.4 - Parâmetros de PLC utilizados ......................................................................................... 185 17.5 - Estrutura de Dados e Comandos (PLC → CNC) ............................................................. 186 17.5.1 - Chave de referência do eixo n (CHREFn) ................................................................ 187 17.5.2 - Bloqueio de referência do eixo n (BLOQRn) ............................................................ 187 17.5.3 - Posicionar na marca de referência do eixo n (POMARn) ......................................... 187 17.5.4 - Não reverte movimento (NOREV8) ......................................................................... 187 17.5.5 - Eixo para buscar referência (AXISREF) ................................................................... 187 17.6 - Estrutura de Status (CNC → PLC) .................................................................................. 188 17.6.1 - Inicialização para a referência do eixo (INIREF) ...................................................... 188 17.6.2 - Esperando start para a referência do eixo (STARREF) ............................................ 188 17.6.3 - Aguardando fechar chave de busca de referência do eixo (AFCBRF) ...................... 188 17.6.4 - Aguardando abrir chave de busca de referência do eixo (AACBRF) ........................ 188 17.6.5 - Aguardando marca de referência do eixo (AMRBRF) .............................................. 188 17.6.6 - Atualizando referência do eixo (ATREFF) ................................................................ 189 17.6.7 - Posicionando na referência do eixo (POSREF)........................................................ 189 17.6.8 - Referência em pausa (PAUSRF) ............................................................................. 189 17.6.9 - Referência parada (STOPRF).................................................................................. 189 17.6.10 - Falha na referência do eixo (FALHRF)................................................................... 189 17.6.11 - Referência eixo ok (REFOKF) ............................................................................... 189 17.6.12 - Emergência na referência do eixo (EMERRF) ....................................................... 189 17.7 - Descrição do funcionamento ........................................................................................... 190 17.7.1 - Busca com chave de fim de curso ........................................................................... 190 17.7.2 - Busca sem chave de fim de curso ........................................................................... 190 17.7.3 - Procedimentos Busca de referencia ......................................................................... 190 18 - Serviços/Funções MST .......................................................................................................... 191 18.1 - Estrutura de Controle (PLC → CNC) .............................................................................. 191 18.1.1 - Funções M requisitadas quitadas pelo PLC (MCODE_OK) ...................................... 191 13 Manual do PLC V1.00 18.1.2 - Função S quitada pelo PLC (SPINDLE_OK) ............................................................ 191 18.1.3 - Função T quitada pelo PLC (TOOL_OK) ................................................................. 191 18.2 - Estrutura de Controle (CNC → PLC).............................................................................. 192 18.2.1 - Requisição de funções M para o PLC (MCODE_REQ) ............................................ 192 18.2.2 - Requisição de função S para o PLC (SPIND_REQ) ................................................. 192 18.2.3 - Requisição de função T para o PLC (TOOL_REQ) .................................................. 192 18.3 - Funções M...................................................................................................................... 192 18.3.1 - Matriz para funções-miscelânia auxiliares (MCODE_n) ........................................... 193 18.3.2 - Bits decodificados do código M (MCODE_BITS_0 e MCODE_BITS_1) ................... 193 18.4 - Funções S ...................................................................................................................... 193 18.4.1 - Código S (SCODE).................................................................................................. 193 18.5 - Funções T ...................................................................................................................... 193 18.5.1 - Código T (TCODE) .................................................................................................. 193 18.6 - Funções S (eixo árvore auxiliar) .................................................................................... 193 19 - Serviço de Mensagens / Alarmes........................................................................................... 194 19.1 - Estrutura de Dados (PLC → CNC) .................................................................................. 194 19.1.1 - Códigos de alarme (ALARME_nn) ........................................................................... 194 19.1.2 - Status de Erro (STT_ERRO) .................................................................................. 194 Mensagens (MSG_nX) ......................................................................................................... 194 20 - Geral S (spindle).................................................................................................................... 195 20.1 - Parâmetros de Configuração Utilizados .......................................................................... 195 20.2 - Variáveis do PLC............................................................................................................ 195 20.3 - Procedimento p/ Configuração do GeralS ....................................................................... 196 20.4 - Estrutura de Dados e Comandos(PLC → CNC) .............................................................. 197 20.4.1 - Eixo associado (AXIS) ............................................................................................. 197 20.4.2 - Velocidade de jogging M3/M4 (JOG_RPM) ............................................................. 197 20.4.3 - Rotação máxima na gama selecionada (GAMA_MAX) ............................................ 197 20.4.4 - Valor a ser programado nas variáveis de programa (PROG) ................................... 198 20.4.5 - Bit M19 (Parada Indexada) ...................................................................................... 198 20.4.6 - Bit Ref ..................................................................................................................... 198 20.4.7 - Bit M119 (Eixo Controlado)...................................................................................... 198 20.5 - Estrutura de Status (CNC → PLC) .................................................................................. 199 20.5.1 - Erro de referência no M19 (REF_ERROR) .............................................................. 199 20.5.2 - S em movimento (IN_MOVE) .................................................................................. 199 20.5.3 - S dentro da janela (IN_WINDOW) ........................................................................... 199 20.5.4 - Velocidade do eixo árvore (S_REAL) ...................................................................... 199 21 - Serviço de temperatura ......................................................................................................... 200 21.1 - Descrição geral............................................................................................................... 200 21.2 - Tipos de dados ............................................................................................................... 200 21.3 - Parâmetros de Configuração Utilizados .......................................................................... 200 21.4 - Parâmetros de PLC utilizados......................................................................................... 200 14 Manual do PLC V1.00 21.5 - Estrutura de Dados e Comandos ( PLC → CNC ) ........................................................... 201 21.5.1 - Habilitações dos Canais........................................................................................... 201 21.5.2 - Zona de controle do PID (TEMP_ZONE) ................................................................. 202 21.5.3 - Zona de controle do fator integrador do PID (ZONA_INTEGRADOR) ...................... 202 21.5.4 - Fatores Ki, Kd e Kp para canal n (FATOR_Kx) ........................................................ 202 21.5.5 - Potência para desumidificação (DESUM_PWR) ...................................................... 202 21.5.6 - Set point (SETPOINT) ............................................................................................. 202 21.5.7 - Constante K1 para calculo de off Set (K1) ............................................................... 202 21.5.8 - Constante K2 de conversão para graus Celsius(K2)................................................. 202 21.5.9 - Constante K3 para cálculo da temperatura da placa(k3) .......................................... 202 21.5.10 - Programa canal (PROGRAMAR) ........................................................................... 203 21.5.11 - Modo Range (RANGE) ......................................................................................... 203 21.5.12 - Atualiza dados de status (REFRESH) .................................................................... 203 21.5.13 - Salvar parâmetros no módulo (STORE)................................................................. 203 21.5.14 - Lê parâmetros no módulo (LOAD) ......................................................................... 203 21.5.15 - Habilita ou desabilita as saídas do modulo(HABILITA) ........................................... 203 21.5.16 - Calculo Off Set (CALC_OFFSET) .......................................................................... 203 21.6 - Estrutura de Status (CNC → PLC) .................................................................................. 204 21.6.1 - Termopar aberto (OPEN_TRM) ............................................................................... 205 21.6.2 - Canais Habilitados (EN_CHANNEL) ........................................................................ 205 21.6.3 - Porcentagem de potência de saída do canal atual (PROP_PWR + m)..................... 205 21.6.4 - Canal n da faixa de leitura de temperaturas (CHANN_N+m).................................... 205 21.6.5 - Canal selecionado atual (CURR_CHAN).................................................................. 205 21.6.6 - Dados sendo atualizados (WAIT) ............................................................................. 205 21.6.7 - Dados prontos (READY) .......................................................................................... 205 21.6.8 - Indicação de Falha (FAIL)........................................................................................ 205 21.6.9 - Gravando dados na Flash (GRAVANDO) ................................................................ 205 21.6.10 - Gravação efetuada com sucesso (GRAVACAO_OK) ............................................. 206 22 - LEDs do Terminal .................................................................................................................. 206 22.1 - Descrição geral ............................................................................................................... 206 22.1.1 - Estado dos LEDs: .................................................................................................... 206 23 - Serviço de Leitura e Escrita de Parâmetros de Drive ............................................................. 207 23.1 - Descrição geral ............................................................................................................... 207 23.2 - Tipos de dados ............................................................................................................... 207 23.3 - Parâmetros de Configuração Utilizados .......................................................................... 207 23.4 - Parâmetros de PLC utilizados ......................................................................................... 207 23.5 - Estrutura de Dados e Comandos ( PLC → CNC ) ........................................................... 208 23.5.1 - Número do Parâmetro (PAR_ADRESS)................................................................... 208 23.5.2 - Endereço CAN do Driver (DRIVER_ADRESS)......................................................... 208 23.5.3 - Canal de Resposta (RETURN_CHANNEL) .............................................................. 208 23.5.4 - Taxa de Atualização (REFRESH_RATE) ................................................................. 208 15 Manual do PLC V1.00 23.5.5 - Valor para o Parâmetro (WRITE_VALUE) ............................................................... 208 23.5.6 - Escreve Dado (WRITE_PAR) .................................................................................. 209 23.5.7 - Lê Dado (READ_PAR) ............................................................................................ 209 23.6 - Estrutura de Status (CNC → PLC) .................................................................................. 210 23.6.1 - Dados sendo atualizados (WAITn)........................................................................... 210 23.6.2 - Dados prontos (READYn) ....................................................................................... 210 23.6.3 - Endereço do Driver (DRIVER_ADRESSn) ............................................................... 210 23.6.4 - Número do Parâmetro (PAR_ADRESSn) ................................................................ 211 23.6.5 - Valor do Parâmetro (PAR_VALUEn)........................................................................ 211 24 - Serviço de Acoplamento entre Eixos ..................................................................................... 212 24.1 - Descrição geral............................................................................................................... 212 24.2 - Tipos de dados ............................................................................................................... 212 24.3 - Parâmetros de Configuração Utilizados .......................................................................... 212 24.4 - Parâmetros de PLC utilizados......................................................................................... 212 24.5 - Estrutura de Dados e Comandos ( PLC → CNC ) ........................................................... 213 24.5.1 - Número do Eixo Mestre (EIXO_MESTRE) ............................................................... 213 24.5.2 - Número do Eixo Escravo (EIXO_ESCRAVO) .......................................................... 213 24.5.3 - Fator de Acoplamento (FAT_ACOP) ....................................................................... 213 24.5.4 - Acopla eixos (ACOPLA) ......................................................................................... 213 24.5.5 - Descopla eixos (DESACOPLA) ............................................................................... 214 24.5.6 - Acopla eixo ao Ponto Real (ACOP_REAL) .............................................................. 214 24.5.7 - Ângulo Tangente à trajetória (ANG_TAN) ................................................................ 214 24.5.8 - Incremento no acoplamento (INCR) ........................................................................ 214 24.6 - Estrutura de Status (CNC → PLC) .................................................................................. 215 24.6.1 - Serviço Iniciado (INIT) ............................................................................................. 215 24.6.2 - Serviço Habilitado (OPEN) ...................................................................................... 215 24.6.3 - Falha (FAIL) ............................................................................................................ 215 24.6.4 - Emergência (EMERGENCY) ................................................................................... 215 24.6.5 - Eixo NAcop ............................................................................................................. 215 24.6.6 - Falha do Serviço (SERV_FAIL) ............................................................................... 215 27 - Serviço de Tempo Real (RTC)............................................................................................... 216 27.1 - Descrição geral............................................................................................................... 216 27.2 - Tipos de dados ............................................................................................................... 216 27.3 - Parâmetros de Configuração Utilizados .......................................................................... 216 27.4 - Parâmetros de PLC utilizados......................................................................................... 216 27.5 - Estrutura de Dados e Comandos ( PLC → CNC ) ........................................................... 217 27.5.1 - Segundos (WSECONDS) ........................................................................................ 217 27.5.2 - Minutos (WMINUTS) ............................................................................................... 217 27.5.3 - Horas (WHOURS) ................................................................................................... 217 27.5.4 - Dia da Semana (WWEEKDAY) (1 a 07) .................................................................. 217 27.5.5 - Dia do Mês (WDATE) (1 a 31) ................................................................................ 218 16 Manual do PLC V1.00 27.5.6 - Mês (WMONTH) ...................................................................................................... 218 27.5.7 - Ano (WYEAR) ......................................................................................................... 218 27.5.8 - Atualiza Data (READ_DATE) ................................................................................... 218 27.5.9 - Memoriza Nova Data (WRITE_DATE) ..................................................................... 218 27.5.10 - Mod 12-24/AM-PM (MODE12-24) .......................................................................... 218 27.5.11 - State AM-PM ......................................................................................................... 218 27.6 - Estrutura de Status (CNC → PLC) .................................................................................. 219 Serviço Iniciado (INIT) .......................................................................................................... 219 27.6.1 - Serviço Habilitado (OPEN) ...................................................................................... 219 27.6.2 - Falha (FAIL) ............................................................................................................ 219 27.6.3 - Bateria Fraca (BAT_LOW)....................................................................................... 219 27.6.4 - Estado AM-PM (/AM-PM) ........................................................................................ 220 27.6.5 - Segundos (SECONDS) ............................................................................................ 220 27.6.6 - Minutos (MINUTS) ................................................................................................... 220 27.6.7 - Horas (HOURS) ....................................................................................................... 220 27.6.8 - Dia da Semana (WEEKDAY) ................................................................................... 220 27.6.9 - Dia do Mês (DATE).................................................................................................. 220 27.6.10 - Mês (MONTH) ....................................................................................................... 220 27.6.11 - Ano (YEAR) ........................................................................................................... 220 28 - Serviço de Encoder Digital ..................................................................................................... 221 28.1 - Descrição geral ............................................................................................................... 221 28.2 - Tipos de dados ............................................................................................................... 221 28.3 - Parâmetros de Configuração Utilizados .......................................................................... 221 28.4 - Parâmetros de PLC utilizados ......................................................................................... 221 28.5 - Estrutura de Dados e Comandos ( PLC → CNC ) ........................................................... 222 28.5.1 - MasK_Encoder1, MasK_Encoder2, MasK_Encoder3 e MasK_Encoder4 ................ 222 28.5.2 - End_Modulo ............................................................................................................ 222 28.5.3 - Send_Mask .............................................................................................................. 222 28.6 - Estrutura de Status (CNC → PLC) .................................................................................. 223 28.6.1 - Serviço Iniciado (INIT) ............................................................................................. 223 28.6.2 - Serviço Habilitado (OPEN) ...................................................................................... 223 28.6.3 - Falha (FAIL) ............................................................................................................ 223 28.6.4 - Valor_Encoder1, Valor_Encoder2, Valor_Encoder3 e Valor_Encoder4 .................... 223 29 - Serviço de comunicação MODBUS ....................................................................................... 225 29.1 - Descrição geral ............................................................................................................... 225 29.2 - Tipos de dados ............................................................................................................... 225 29.3 - Parâmetros de Configuração Utilizados .......................................................................... 225 29.4 - Parâmetros de PLC utilizados ......................................................................................... 225 29.5 - Parâmetros para Drive SV-LG5A. .................................................................................. 225 29.6 - Estrutura de Dados e Comandos ( PLC → CNC ) ........................................................... 227 29.6.1 - ModID :.................................................................................................................... 227 17 Manual do PLC V1.00 29.6.2 - FunctionID: .............................................................................................................. 227 29.6.3 - AddressReg: ............................................................................................................ 227 29.6.4 - RegValue: ............................................................................................................... 228 29.6.5 - NumBits: ................................................................................................................. 228 29.6.6 - MemSeqBytes: ........................................................................................................ 228 29.6.7 - NumReg: ................................................................................................................. 228 29.6.8 - SENDMSG: ............................................................................................................. 228 29.6.9 - REG: ....................................................................................................................... 228 29.7 - Estrutura de Status (CNC → PLC) .................................................................................. 229 29.7.1 - INIT: ........................................................................................................................ 229 29.7.2 - OPEN: ..................................................................................................................... 229 29.7.3 - FAIL: ....................................................................................................................... 229 29.7.4 - SENDMSG: ............................................................................................................. 229 29.7.5 - WAIT: ...................................................................................................................... 229 29.7.6 - FINISH: ................................................................................................................... 230 29.7.7 - TEST_HDW: ........................................................................................................... 230 29.7.8 - RegValueHI: ............................................................................................................ 230 29.7.9 - RegValueLO: ........................................................................................................... 230 29.8 - Exemplos ....................................................................................................................... 230 29.8.1 - Leitura de Registrador MODBUS: ............................................................................ 230 29.8.2 - Escrita de Registrador MODBUS (Memória do PLC): ............................................. 232 30 - Serviço de comunicação CANBUS ........................................................................................ 234 30.1 - Descrição geral............................................................................................................... 234 30.2 - Tipos de dados ............................................................................................................... 234 30.3 - Parâmetros de Configuração Utilizados .......................................................................... 234 30.4 - Parâmetros de PLC utilizados......................................................................................... 234 30.5 - Estrutura de Dados e Comandos ( PLC → CNC ) ........................................................... 235 30.5.1 - Endereço: ................................................................................................................ 235 30.5.2 - Ìndice: ..................................................................................................................... 235 30.5.3 - SubIndice: ............................................................................................................... 235 30.5.4 - ValorRegistrador:..................................................................................................... 236 30.5.5 - NumeroBytes:.......................................................................................................... 236 30.5.6 - WRITE: ................................................................................................................... 236 30.5.7 - READ: ..................................................................................................................... 236 30.6 - Estrutura de Status (CNC → PLC) .................................................................................. 236 30.6.1 - INIT: ........................................................................................................................ 236 30.6.2 - OPEN: ..................................................................................................................... 237 30.6.3 - FAIL: ....................................................................................................................... 237 30.6.4 - SENDMSG: ............................................................................................................. 237 30.6.5 - WAIT: ...................................................................................................................... 237 30.6.6 - FINISH: ................................................................................................................... 237 18 Manual do PLC V1.00 30.6.7 - ReadValorObjeto: .................................................................................................... 237 31 - Modo Manual – Objeto de Tela (Proteo) ............................................................................... 238 31.1 - Descrição geral ............................................................................................................... 238 31.2 - Tipos de dados ............................................................................................................... 238 31.3 - Parâmetros de Configuração Utilizados .......................................................................... 238 31.4 - Parâmetros de PLC utilizados ......................................................................................... 238 31.5 - Estrutura de Dados e Comandos ( PLC → CNC ) ........................................................... 238 31.6 - Estrutura de Status ( CNC → PLC ) ................................................................................ 238 31.6.1 - Modo Incremental (INC).......................................................................................... 239 31.6.2 - Modo Manivela (MANIV) ......................................................................................... 239 32 - Manivela ................................................................................................................................ 240 32.1 - Descrição geral ............................................................................................................... 240 32.2 - Tipos de dados ............................................................................................................... 240 32.3 - Parâmetros de Configuração Utilizados .......................................................................... 240 32.4 - Parâmetros de PLC utilizados ......................................................................................... 241 32.5 - Estrutura de Dados e Comandos ( PLC → CNC ) ........................................................... 242 32.5.1 - Modo Posição (MODPOS) ....................................................................................... 242 32.5.2 - Modo Limite Superior e Inferior (MODLIMSUP e MODLIMINF)................................ 242 32.5.3 - EIXO........................................................................................................................ 242 32.5.4 - ESCALA .................................................................................................................. 243 32.5.5 - Velocidade Máxima (VEL_MAX) .............................................................................. 243 32.5.6 - PULSOS .................................................................................................................. 243 32.6 - Estrutura de Status ( CNC → PLC ) ................................................................................ 244 33 - PLC RÁPIDO ......................................................................................................................... 245 33.1 - Descrição geral ............................................................................................................... 245 33.2 - Parâmetros de Configuração .......................................................................................... 245 33.3 - Memórias do PLC ........................................................................................................... 245 34 - Erro de Acompanhamento (LAG) ........................................................................................... 246 34.1 - Descrição geral ............................................................................................................... 246 34.2 - Parâmetros de Configuração .......................................................................................... 246 34.3 - Bits de Comando (PLC -> CNC) .................................................................................... 246 Bits de Status (CNC -> PLC).................................................................................................... 246 35 - Serviço de Transferência de Dados entre CNCs .................................................................... 247 35.1 - Descrição geral ............................................................................................................... 247 35.2 - Parâmetros de Configuração utilizados ........................................................................... 247 35.3 - Parâmetros de PLC utilizados ......................................................................................... 247 35.4 - Estrutura de Dados e Comandos ( PLC → CNC ) ........................................................... 248 35.4.1 - Bits de Comando ..................................................................................................... 249 35.4.2 - TEMPO ................................................................................................................... 249 35.5 - Estrutura de Status ( CNC → PLC ) ................................................................................ 250 35.1 - Exemplo ......................................................................................................................... 251 19 Manual do PLC V1.00 36 - Serviço Específico da CM (Lentes) ........................................................................................ 253 36.1 - Descrição geral............................................................................................................... 253 36.2 - Parâmetros de Configuração Utilizados .......................................................................... 253 36.3 - Parâmetros de PLC utilizados......................................................................................... 253 36.4 - Estrutura de Dados e Comandos ( PLC → CNC ) ........................................................... 254 36.5 - Estrutura de Status ( CNC → PLC ) ................................................................................ 254 36.6 - Dados da Ordem de Serviço (resposta do protocolo @Z) .............................................. 255 37 - Serviço de Comunicação Serial CNC <=> Periférico Genérico .............................................. 256 37.1 - Descrição geral............................................................................................................... 256 37.2 - Parâmetros de Configuração utilizados........................................................................... 256 37.3 - Estrutura de Dados e Comandos ( CNC PERIFÉRICO ) ............................................ 256 38 - Função Atômica .................................................................................................................... 260 38.1 - Estrutura da Função Atômica ......................................................................................... 260 38.2 - Blocos de Função Atômica ................................................................................................. 260 39- ESTRUTURAS ....................................................................................................................... 262 39.1 - CNC_AXES .................................................................................................................... 262 CNC_AXIS_ID ...................................................................................................................... 262 CNC_COORDINATE_MODE ............................................................................................... 263 39.2 - CNC_SET_ORIGIN_OFFSETS ...................................................................................... 263 Origem (zero) absoluta ......................................................................................................... 263 Origem (zero) incremental .................................................................................................... 263 39.3 - CNC_SELECT_PLANE .................................................................................................. 264 39.4 - CNC_SET_FEED_RATE ................................................................................................ 264 39.5 - CNC_STRAIGHT_TRAVERSE ....................................................................................... 264 39.6 - CNC_STRAIGHT_FEED ................................................................................................ 264 39.7 - CNC_ARC_FEED ........................................................................................................... 265 39.8 - CNC_THREAD_CUTTING ............................................................................................. 265 40 - TIPOS DE FUNÇÃO ATÔMICA ............................................................................................. 266 40.1 - SET_ORIGIN_OFFSETS ............................................................................................... 266 40.2 - SELECT_ORIGIN_OFFSETS......................................................................................... 266 40.3 - SELECT_PLANE ............................................................................................................ 267 40.4 - FEED_RATE .................................................................................................................. 267 40.5 - STRAIT_TRAVERSE ..................................................................................................... 267 40.6 - STRAIT_TRAVERSE_POLAR ........................................................................................ 268 40.7 - STRAIT_FEED ............................................................................................................... 268 40.8 - STRAIT_FEED_POLAR ................................................................................................. 268 40.9 - ARC_CENTER ............................................................................................................... 269 40.10 - ARC_FEED .................................................................................................................. 269 40.11 - ARC_FEED_POLAR .................................................................................................... 270 40.12 - THREAD_CUTTING ..................................................................................................... 270 40.13 - THREAD_CUTTING_POLAR ....................................................................................... 270 20 Manual do PLC V1.00 40.14 - Tabela Resumida .......................................................................................................... 271 41 - EXEMPLOS DE USO ............................................................................................................ 272 41.1 - Interpolação linear de 3 eixos ......................................................................................... 272 41.2 - Interpolação circular de 2 eixos....................................................................................... 273 42 - Apêndice................................................................................................................................ 274 42.1 - Memórias Gerais do PLC ................................................................................................ 275 42.2 - BITS PULSADOS DE EVENTOS.................................................................................... 278 42.3 - Códigos de Emergência - Proteo Mini ........................................................................... 279 43 - Código de Teclas ................................................................................................................... 280 44 – Variáveis Reservadas ........................................................................................................... 293 45 – Novas instruções................................................................................................................... 293 46 - Códigos de Erro ..................................................................................................................... 296 21 46.1 Códigos de Alarme ....................................................................................................... 329 46.2 Códigos de Warning ..................................................................................................... 330 46.3 Códigos de Emergência ............................................................................................... 331 Manual do PLC V1.00 1 - INFORMAÇÕES GERAIS 1.1 - MEMÓRIA DE TRABALHO Extensão Memórias byte Memórias word Memórias bit Temporizadores Parâmetros bit Parâmetros word : : : : : : : 2000 bytes 2000 bytes 1000 words 2000x8 bits 16 ou 80 bytes 16 ou 2 bytes 16 ou 32 bytes 1.2 - FORMATO GERAL DAS INSTRUÇÕES 1.2.1 - Operações lógicas rótulo: operação operando endereço ;comentário LIB1: A Q 2.3 ;AND acumulador com saída ;grupo 2 bit 3 1.2.2 - Desvios de execução rótulo: operação endereço ;comentário LIB1: JZ RÓTULO ;salta para o rótulo se condição satisfeita CALL MW ou LIB1: INDROT ;executa sub-rotina se condição satisfeita 1.2.3 - Operações diretas rótulo: operação ;comentário LIB1: RET ;retorno de sub-rotina 22 Manual do PLC 1.3 – TIPOS DE OPERAÇÃO L LN A AN O ON XO XON SL RL S R SN RN SF RF = == =N =N A( O( ) CP ADD SUB SHL SHR TELA J JZ JNZ JP JM JT EN ADR CALL CALLZ DCALL CALLT RET MULT DIV INC DEC END ENDC EU ED EDG AZ ANZ AP AM OZ ONZ OP OM 23 "Carrega acumulador", "Carrega acumulador com o complemento", "Logica E ( and )", "Logica E negada ( nand )", "Logica OU ( or )", "Logica OU negada ( nor )", "OU exclusivo ( xor )", "OU exclusivo negado ( xnor )", "Set lógico, liga bit indicado e energiza acumulador", "Reset lógico, desliga bit indicado e energiza acumulador", "Set lógico, liga bit indicado caso logica positiva (NZ)", "Reset lógico, desliga bit indicado caso lógica positiva (NZ)", "Set bit indicado se lógica Negativa (zero)", "Reset bit indicado se lógica Negativa (zero)", "Set bit incondicional", "Reset bit incondicional", "Atribui e energiza acumulador caso instrução de bit", "Atribuição de bit (incondicional) e de byte/word (caso NZ)", "Atribuição negada condicional (byte/word), não altera acumulador e flags", "Atribuição negada de bit (incondicional)", "Inicio de expressão com lógica E (and)", "Inicio de expressão com lógica OU (or)", "Final de expressão", "Compara com o conteúdo do acumulador", "Soma com o conteúdo do acumulador", "Subtrai do conteúdo do acumulador", "Shift para a esquerda com carry", "Shift para a direita com carry", "Instruções especiais para construção de telas", "Desvio incondicional", "Desvio caso resultado for zero (igual)", "Desvio caso resultado nao zero (diferente)", "Desvio caso resultado positivo (maior ou igual)", "Desvio caso resultado negativo (menor)", "JUMP Indexado via tabela de endereços, índice no acumulador", "Energiza acumulador, zera carry", "Carrega endereço do rótulo", "Chama sub-rotina caso lógica anterior diferente de zero (NZ)", "Chama sub-rotina caso lógica anterior for zero (Z)", "Chamada incondicional de sub-rotina", "CALL indexado via tabela de endereços, índice no acumulador", "Final de sub-rotina", "Multiplica com o conteúdo do acumulador", "Divide conteúdo da memória indicada pelo conteúdo do acumulador (divisor)", "Incrementa posição de memória (byte ou word)", "Decrementa memória (byte ou word)", "Encerra PLC", "Indica fim de código para o compilador; início de tabelas de dados e textos", "Detecta transição borda de subida (Edge Up) de resultado anterior ", "Detecta transição borda de descida (Edge Down) de resultado anterior ", "Detecta transição borda (EDGe up/down) de resultado anterior ", "And Zero (testa se o acumulador e o parâmetro indicado são iguais)", "And Não Zero (testa se o acumulador e o parâmetro indicado são diferentes)", "And Positivo (testa se acumulador é maior ou igual ao parâmetro indicado)", "And Menor (verifica se acumulador é menor que o parâmetro indicado)", "Or Zero (verifica se o acumulador e o parâmetro indicado são iguais)", "Or Não Zero (verifica se o acumulador e o parâmetro indicado são diferentes)", "Or Positivo (verifica se acumulador é maior que o parâmetro indicado)", "Or Menor (verifica se acumulador é menor que o parâmetro indicado)", V1.00 Manual do PLC LZ LNZ LP LM V1.00 “Testa igualdade entre o acumulador e o parâmetro indicado; se iguais carrega lógica “1” no acumulador ", “Testa desigualdade entre o acumulador e o parâmetro indicado; se diferentes carrega lógica “1” no acumulador“, “Testa se acumulador é maior que o parâmetro indicado; se maior ou igual carrega lógica “1” no acumulador ", “Testa se acumulador é menor que o parâmetro indicado; se menor carrega lógica “1” no acumulador ", 1.4 - TIPOS DE OPERANDOS I Q M T IB QB MB MW KB KW IMB IMW ENTRADA SAÍDA MEMÓRIA (bit) TEMPORIZADOR GRUPO DE 8 ENTRADAS (byte de entradas) GRUPO DE 8 SAÍDAS (byte de saídas) MEMÓRIA (byte) MEMÓRIA (word) CONSTANTE (byte) CONSTANTE (word) MEMÓRIA INDEXADA (byte) MEMÓRIA INDEXADA (word) 1.5 - ENDEREÇOS OU PARÂMETROS 12345 1234H 01010B 1.2 12345 12345 NÚMERO DECIMAL (0 - 65535) NÚMERO HEXADECIMAL (0 - 0FFFFH) PADRÃO BINÁRIO (1 - 16 BITS) ENDEREÇO GRUPO.BIT (0.0 - 1999.7) ENDEREÇO BYTE (0 - 1999) ENDEREÇO WORD (0 - 1998) OBSERVAÇÕES: No padrão hexadecimal é obrigatório que o primeiro algarismo do número seja um número decimal (0 a 9). Por exemplo, o número hexadecimal C5H deve ser representado na forma 0C5H. Rótulos podem ter no máximo 6 caracteres e não podem ser iniciados com algarismos. 24 Manual do PLC V1.00 1.6 – ACUMULADOR (Acc) DEFINIÇÃO: É um registrador de 16 bits (posição de memória) ligado diretamente à CPU do MCSplc. O Acumulador está envolvido em toda e qualquer operação lógica e aritmética. O resultado destas operações é armazenado diretamente no Acumulador. COMPOSIÇÃO DO ACUMULADOR MS BYTE B7 B6 B5 B4 B3 B2 B1 B0 BYTE MAIS SIGNIFICATIVO UTILIZADO PARA OPERAÇÕES DE WORD BYTE MENOS SIGNIFICATIVO UTILIZADO PARA OPERAÇÕES DE BYTE, WORD E PARA LÓGICA DE BITS 1.6.1 – Flags DEFINIÇÃO É um registrador que completa a função do Acumulador indicando as condições e estados do resultado da última operação lógica ou aritmética. Cada bit do registrador de Flags indica uma condição ou evento ocorrido na operação, como por exemplo, em uma subtração se o resultado final é um número positivo ou negativo ou zero. A principal função dos Flags está em instruções de decisão e desvio de fluxo do programa, onde o resultado da operação determina decisões, ações e eventos na programação. TABELA DO ESTADO DOS FLAGS FLAG ZERO CARRY SINAL 25 ESTADOS Z = Zero NZ = Não Zero C = Carry NC = Não Carry P = Positivo M = negativo (Menor) DESCRIÇÃO OPERAÇÕES Indica se o resultado da última operação é Lógica de bit e nulo operações aritméticas Indica transbordo na última operação Operações aritméticas Indica sinal (valor do bit mais significativo do Operações aritméticas resultado da última operação) Manual do PLC V1.00 2 - DESCRIÇÃO DOS TIPOS DE OPERAÇÃO DAS INSTRUÇÕES DO PLC 2.1 - OPERAÇÕES COM BIT 2.1.1 - Carrega acumulador – Load OPERANDOS: I Q M - ENTRADA - SAÍDA - MEMÓRIA L Operando L OPERAÇÃO: Oper.bit DESCRIÇÃO: Transfere ao Acumulador o estado do bit do operando indicado na instrução e afeta o Flag Zero. Esta operação transfere para o Acumulador o estado do bit (0 ou 1) de um determinado Operando (I, Q e M). Se o estado for “1”, o Acumulador é carregado com o valor 0FFH. Se for “0”, o valor carregado é 0. O Flag Zero também é afetado pela operação. Notar que o estado do Flag Zero é o responsável pela operação lógica seguinte. EQUIVALÊNCIA COM LÓGICA DE LADDER: Esta operação equivale a um contato normal aberto no início do ramo de lógica em simbologia de ladder. TABELA DA VERDADE: Valores do Operando Operando.bit 0 1 Valores de Saída Acc (valor atual) 000H 0FFH Flag Zero Estado Z NZ EXEMPLO: Em um programa de PLC preciso conhecer o conteúdo do bit 3 da Entrada 1 e posteriormente poderei usá-lo em uma operação. Para isso basta realizar a operação “L”, como a seguir: Operando: entrada I 1.3 Operação L I 1.3 Após a operação o Acumulador passa a ter o conteúdo do bit 3 da Entrada I1. 26 Manual do PLC V1.00 2.1.2 - Carrega acumulador com status negado – Load Not OPERANDOS: I Q M - ENTRADA - SAÍDA - MEMÓRIA LN Operando LN OPERAÇÃO: Oper.bit DESCRIÇÃO: Transfere ao acumulador o complemento do valor do bit do operando indicado na instrução. Esta operação transfere para o Acumulador o estado inverso do bit (0 ou 1) de um determinado Operando (I, Q e M). Se o estado for “1”, o Acumulador é carregado com o valor 0. Se for “0”, o valor carregado é 0FFH. O Flag Zero também é afetado pela operação. Notar que o estado do Flag “ZERO” é o responsável pela operação lógica seguinte. EQUIVALÊNCIA COM LÓGICA DE LADDER: Esta operação equivale a um contato normal fechado no início do ramo de lógica em simbologia de ladder. TABELA DA VERDADE: Valores do Operando Operando.bit 0 1 Valores de Saída Acc (valor atual) 0FFH 000H Flag Zero Estado NZ Z EXEMPLO: Em um programa de PLC preciso conhecer o complemento do conteúdo do bit 4 da Entrada 2 para iniciar uma sequência lógica. Para isso basta realizar a operação “LN”, como a seguir: Operando: entrada I 2.4 Operação LN I 2.4 Após a operação o Acumulador passa a ter o complemento do conteúdo do bit 4 da Entrada I2. 27 Manual do PLC V1.00 2.1.3 - Operação lógica E – And OPERANDOS: A I Q M - ENTRADA - SAÍDA - MEMÓRIA A Operando OPERAÇÃO: Oper.bit DESCRIÇÃO: Realiza a operação lógica E (AND) entre o conteúdo anterior do Acumulador e Flag Zero e o conteúdo do bit do Operando indicado na instrução. Caso o conteúdo anterior do Acumulador seja "0", o resultado da operação será sempre "0", qualquer que seja o conteúdo do bit do Operando indicado na instrução. Esta operação é uma função E do valor de bit (0 ou 1) de um determinado Operando (I, Q e M) com o Acumulador, sendo o resultado final armazenado no próprio Acumulador e no Flag Zero. EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde a uma associação em série de um contato normal aberto numa linha de lógica de ladder. TABELA DA VERDADE: Simbologia pelas Normas ABNT e ASA Valores de Entrada Valores de Flag da Operação Saída Zero Oper.bit Acc (valor Acc (valor Estado anterior) atual) 0 1 0 1 000H 000H 000H 0FFH 0 0 1 1 Z Z Z NZ OBSERVAÇÃO: Não deve ser utilizada no início de uma operação lógica. Neste caso utilizar a instrução L. EXEMPLO: Em um programa de PLC preciso realizar uma operação lógica entre duas entradas. A operaçào e entre as entradas é realizada a seguir: 1.º Operando: entrada I 0.1 2.º Operando: entrada I 1.5 Operação L A I I 0.1 1.5 ;Acc = I 0.1 ;Função E (And) entre Acc e I 1.5 Após a operação o Acumulador passa a ter o conteúdo do resultado da associação lógica E entre seu conteúdo anterior à operação (estado de I 0.1) e o conteúdo do bit 5 da Entrada I 1. 28 Manual do PLC V1.00 2.1.4 - Operação lógica E NEGADO – And Not OPERANDOS: I Q M - ENTRADA - SAÍDA - MEMÓRIA AN Operando AN OPERAÇÃO: Oper.bit DESCRIÇÃO: Realiza a operação lógica E (AND) entre o conteúdo anterior do acumulador e o complemento do conteúdo do bit do operando indicado na instrução. Caso o conteúdo anterior do acumulador seja "0", o resultado da operação será sempre "0", qualquer que seja o valor do conteúdo do operando indicado na instrução. Esta operação é uma função E do estado inverso do bit (0 ou 1) de um determinado Operando (I, Q e M) com o Acumulador, sendo o resultado final armazenado no próprio Acumulador e no Flag Zero. EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde a uma associação em série de um contato normal fechado numa linha de lógica de ladder. TABELA DA VERDADE: Simbologia pelas Normas ABNT e ASA Valores de Entrada da Operação Valores de Flag (Operando e Complemento) Saída Zero Oper.bit Complemento Acc (valor Acc (valor Estado 0 0 1 1 anterior) atual) 0 1 0 1 000H 0FFH 000H 000H 1 1 0 0 Z NZ Z Z Acc & Oper.bit Acc Acc 1 Acc Oper.bit OBSERVAÇÃO: Não deve ser utilizada no início de uma operação lógica. Neste caso utilizar a instrução L ou LN. EXEMPLO: Em um programa de PLC preciso realizar uma operação lógica E entre duas entradas, porém com o estado inverso de uma delas: 1.º Operando: entrada I 1.7 2.º Operando: entrada I 1.6 Operação L AN I I 1.7 1.6 ;Acc = I 1.7 ( prepara a operação) ;Função E Negada (And Not) entre Acc e o estado ;inverso de I 1.6 Após a operação o Acumulador passa a ter o conteúdo do resultado da associação lógica E entre seu conteúdo anterior à operação (estado de I 1.7) e o estado inverso do bit 6 da Entrada I 1. 29 Manual do PLC V1.00 2.1.5 - Operação lógica OU – Or OPERANDOS: I Q M - ENTRADA - SAÍDA - MEMÓRIA O Operando O OPERAÇÃO: Oper.bit DESCRIÇÃO: Realiza a operação lógica OU (OR) entre o conteúdo anterior do Acumulador e o conteúdo do bit do Operando indicado na instrução. Caso o conteúdo anterior do Acumulador seja "1", o resultado da operação será sempre "1", qualquer que seja o conteúdo do bit do Operando indicado na instrução. Esta operação é uma função OU de um valor de bit (0 ou 1) de um determinado Operando (I, Q e M) com o Acumulador, sendo o resultado final armazenado no próprio Acumulador e no Flag Zero. EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde a uma associação em paralelo de um contato normal aberto numa linha de lógica de ladder. TABELA DA VERDADE: Simbologia pelas Normas ABNT e ASA Valores de Entrada da Valores de Flag Zero Operação Saída Acc (valor Operando.bit Acc (valor Estado anterior) 0 0 1 1 atual) 0 1 0 1 000H 0FFH 0FFH 0FFH Z NZ NZ NZ OBSERVAÇÃO: Não deve ser utilizada no início de uma operação lógica. Neste caso utilizar a instrução L. EXEMPLO: Em um programa de PLC preciso realizar uma operação lógica OU entre duas entradas. 1.º Operando: entrada I 5.4 2.º Operando: entrada I 0.2 Operação L O I I 5.4 0.2 ;Acc = I 5.4 ( prepara a operação) ;Função OU entre Acc e o estado de I 0.2 Após a operação o Acumulador passa a ter o conteúdo do resultado da associação lógica OU entre seu conteúdo anterior à operação (estado de I 5.4) e o conteúdo do bit 2 da Entrada I 0. 30 Manual do PLC V1.00 2.1.6 - Operação lógica OU NEGADO – Or Not OPERANDOS: I Q M - ENTRADA - SAÍDA - MEMÓRIA ON Operando ON OPERAÇÃO: Oper.bit DESCRIÇÃO: Realiza a operação lógica OU entre o conteúdo anterior do Acumulador e o complemento do conteúdo do bit do Operando indicado na instrução. Caso o conteúdo anterior do Acumulador seja "1", o resultado da operação será sempre "1", qualquer que seja o valor do conteúdo do Operando indicado na instrução. Esta operação é uma função OU do complemento, inversão do valor de bit (0 ou 1) de um determinado Operando (I, Q e M) com um bit do Acumulador, sendo o resultado final armazenado no próprio Acumulador. EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde a uma associação em paralelo de um contato normal fechado numa linha de lógica de ladder. TABELA DA VERDADE: Simbologia pelas Normas ABNT e ASA Valores de Entrada da Operação Valores de Flag (Operando e Complemento) Saída Zero Oper.bit Complemento Acc (valor Acc (valor Estado anterior) atual) 0 0 1 1 0 1 0FFH 0FFH NZ NZ 1 1 0 0 0 1 000H 0FFH Z NZ OBSERVAÇÃO: Não deve ser utilizada no início de uma operação lógica. Neste caso utilizar a instrução L ou LN. EXEMPLO: Em um programa de PLC preciso realizar uma operação lógica OU entre uma saída e o estado inverso de uma memória: 1.º Operando: saída Q 0.2 2.º Operando: memória M 231.6 Operação L ON Q M 0.2 ;Acc = Q 0.2 ( prepara a operação) 231.6 ;Função OU Negado entre Acc e M 231.6 Após a operação o Acumulador passa a ter o conteúdo do resultado da associação lógica OU entre seu conteúdo anterior à operação (estado de Q 0.2) e o conteúdo do bit 6 da memória M231. 31 Manual do PLC V1.00 2.1.7 - Operação lógica OU EXCLUSIVO – eXclusive Or OPERANDOS: I Q M - ENTRADA - SAÍDA - MEMÓRIA XO Operando XO OPERAÇÃO: Oper.bit DESCRIÇÃO: Realiza a operação lógica OU EXCLUSIVO entre o conteúdo anterior do Acumulador e o conteúdo do bit do Operando indicado na instrução. Esta operação é uma função OU EXCLUSIVO do conteúdo ou valor de bit (0 ou 1) de um determinado Operando (I, Q e M) com um bit do Acumulador, sendo o resultado final armazenado no próprio Acumulador. TABELA DA VERDADE: Simbologia pelas Normas ABNT e ASA Valores de Entrada da Operação Oper.bit Acc ( valor 0 0 1 1 Valores de Saída Acc anterior ) ( valor atual ) 0 1 0 1 000H 0FFH 0FFH 000H Flag Zero Estado Z NZ NZ Z OBSERVAÇÃO: Não deve ser utilizada no início de uma operação lógica. Neste caso utilizar a instrução L. EXEMPLO: Em um programa de PLC preciso realizar uma operação lógica OU EXCLUSIVO entre duas saídas 1.º Operando: saída Q 1.4 2.º Operando: saída Q 1.5 Operação L XO Q Q 1.4 1.5 ;Acc = Q 1.4 ( prepara a operação) ;Função OU EXCLUSIVO entre Acc e Q 1.5 Após a operação o Acumulador passa a ter o conteúdo do resultado da associação lógica OU EXCLUSIVO entre seu conteúdo anterior à operação (estado de Q 1.4) e o conteúdo do bit 5 da saída Q 1. 32 Manual do PLC V1.00 2.1.8 - Operação lógica OU EXCLUSIVO NEGADO – eXclusive Or Not OPERANDOS: I Q M XON - ENTRADA - SAÍDA - MEMÓRIA OPERAÇÃO: XON Operando Oper.bit DESCRIÇÃO: Realiza a operação lógica OU EXCLUSIVO entre o conteúdo anterior do acumulador e o complemento do conteúdo do bit do operando indicado na instrução. Esta operação é equivalente a uma função E COINCIDENTE do conteúdo ou valor de bit (0 ou 1) de um determinado Operando (I, Q e M) com um bit do Acumulador, sendo o resultado final armazenado no próprio Acumulador. A função OU EXCLUSIVO NEGADO tem por finalidade detectar eventos coincidentes, ou seja, os dois eventos devem ocorrer juntos simultaneamente. TABELA DA VERDADE: Simbologia pelas Normas ABNT e ASA Valores de Entrada da Operação Acc Oper.bit Compl. Valores Flag Zero de Saída Acc (valor Estado (valor atual) anterior) 0 0 1 1 1 1 0 0 1 0 0 1 |000H 0FFH 000H 0FFH Z NZ Z NZ OBSERVAÇÃO: Não deve ser utilizada no início de uma operação lógica. Neste caso utilizar a instrução L ou LN. EXEMPLO: Em um programa de PLC preciso realizar uma operação lógica OU EXCLUSIVO entre uma entrada e o inverso de outra entrada: 1.º Operando: entrada I 0.0 2.º Operando: entrada I 0.1 Operação L I XON I 0.0 0.1 ;Acc = I 0.0 ( prepara a operação) ;Função OU EXCLUSIVO Negado entre Acc e I 0.1 Após a operação o Acumulador passa a ter o conteúdo do resultado da associação lógica OU EXCLUSIVO entre seu conteúdo anterior à operação (estado de I 0.0) e o conteúdo do bit 1 da entrada I 0. 33 Manual do PLC V1.00 2.1.9 - Atribuição de resultado energizando o acumulador OPERANDOS: I Q M - ENTRADA - SAÍDA - MEMÓRIA = Operando = OPERAÇÃO: Oper.bit DESCRIÇÃO: Atribui o conteúdo anterior do acumulador ao operando indicado na instrução. Após a operação, o conteúdo do Acumulador é energizado ("1") e o Flag Zero indica estado Não Zero. Esta operação transfere o estado do Acumulador para um determinado Operando (I, Q e M). Geralmente esta operação é realizada após uma operação lógica, para atribuir o resultado da operação a uma memória ou a uma saída. Pode-se também atribuir resultado a entradas (forçar o estado de uma entrada). EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde ao fechamento da lógica numa linha de lógica de ladder. TABELA DA VERDADE: Valores do Operando Acc (valor atual) XXXX XXXX Flag Zero Valores de Saída Estado Operando.bit Z 0 NZ 1 EXEMPLO: Em um programa de PLC após realizar uma operação de leitura do estado de uma entrada, preciso atuar sobre uma saída: 1.º Operando: entrada I 0.5 2.º Operando: saída Q 0.1 Operação L = I Q 0.5 0.1 ;Acc = I 0.5 ( prepara a operação) ;Atribuição do Acc para Q 0.1 Após a operação, a saída Q 0.1 terá o mesmo conteúdo do Acumulador, que por sua vez foi carregado com o estado da entrada I 0.5. Mesmo se o estado da entrada for 0 (zero) ao final da atribuição o acumulador é energizado (passa a conter “1”). Observação: prefira a instrução == para atribuir resultados em lógica de bits. 34 Manual do PLC V1.00 2.1.10 - Atribuição de resultado mantendo status do acumulador OPERANDOS: I Q M - ENTRADA - SAÍDA - MEMÓRIA == Operando == OPERAÇÃO: Oper.bit DESCRIÇÃO: Atribui o conteúdo anterior do Acumulador ao conteúdo de Operando indicado na instrução. Após a operação, o conteúdo do Acumulador é mantido. Esta operação transfere o estado do Acumulador para determinado Operando (I, Q e M). Esta instrução é similar à instrução “=”, porém além de realizar a operação de transferência do Acumulador para um Operando qualquer, mantém o estado do Acumulador após a conclusão da operação. Geralmente esta operação é realizada após uma operação lógica, para atribuir o resultado da operação a uma memória ou a uma saída. Pode-se também atribuir resultado a entradas (forçar o estado de uma entrada). EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde ao fechamento da lógica numa linha de lógica de ladder, porém permitindo que se continue com a lógica anterior a partir deste ponto. TABELA DA VERDADE: Valores do Operando Acc (valor atual) XXXX XXXX Flag Zero Valores de Saída Estado Operando.bit Z 0 NZ 1 EXEMPLO: Em um programa de PLC após realizar uma operação de leitura do estado de uma entrada, preciso atuar sobre uma saída, mas preciso que o conteúdo do Acumulador seja mantido, pois continuarei a realizar novas operações: 1.º Operando: entrada I 0.4 2.º Operando: saída Q 0.1 Operação L == I Q 0.4 0.1 ;Acc = I 0.4 ( prepara a operação) ;Atribuição do Acc para Q 0.1 Após a operação, a saída Q 0.1 terá o mesmo conteúdo do Acumulador, que por sua vez foi carregado com o estado da entrada I 0.4. Após a atribuição, o Acumulador mantém seu estado. 35 Manual do PLC V1.00 2.1.11 - Atribuição negada mantendo status do acumulador OPERANDOS: I Q M - ENTRADA - SAÍDA - MEMÓRIA =N Operando =N OPERAÇÃO: Oper.bit DESCRIÇÃO: Atribui o inverso do conteúdo do Acumulador ao conteúdo de Operando indicado na instrução. Após a operação, o conteúdo do Acumulador é mantido. Esta operação transfere o estado inverso do Acumulador para determinado Operando (I, Q e M). O estado do Acumulador é mantido após a conclusão da operação. Geralmente esta operação é realizada após uma operação lógica, para atribuir o resultado da operação a uma memória ou a uma saída. Pode-se também atribuir resultado a entradas (forçar o estado de uma entrada). EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde ao fechamento da lógica numa linha de lógica de ladder, porém permitindo que se continue com a lógica anterior a partir deste ponto. TABELA DA VERDADE: Valores do Operando Acc (valor atual) XXXX XXXX Flag Zero Valores de Saída Estado Operando.bit Z 1 NZ 0 EXEMPLO: Em um programa de PLC após realizar uma operação de leitura preciso atuar sobre uma saída e esta deverá ser ligada ou desligada conforme resultado inverso da operação em questão, mas preciso que o conteúdo do Acumulador seja mantido, pois continuarei a realizar novas operações: 1.º Operando: entrada I 0.4 2.º Operando: saída Q 0.1 Operação L =N I Q 0.4 0.1 ;Acc = I 0.4 ( prepara a operação) ;Transfere o estado do Acc para a saída Q 0.1 Após a operação, a saída Q 0.1 terá o conteúdo inverso do Acumulador, que por sua vez foi carregado com o estado da entrada I 0.4. Após a atribuição, o Acumulador mantém seu estado. 36 Manual do PLC V1.00 2.1.12 - SET energizando o acumulador – Set OPERANDOS: I Q M - ENTRADA - SAÍDA - MEMÓRIA SL Operando SL OPERAÇÃO: Oper.bit DESCRIÇÃO: Se o conteúdo do Acumulador está em "1", o conteúdo do Operando indicado na instrução é energizado ("1"). Caso contrário, o conteúdo do Operando não será alterado. Após a operação, o conteúdo do Acumulador é energizado ("1"). Esta operação é uma função condicional, que atribui ao bit do Operando indicado na operação o conteúdo lógico “1” se o conteúdo do Acumulador for igual a “1’. Caso o conteúdo do Acumulador for “0”, o conteúdo do Operando indicado não será alterado. TABELA DA VERDADE: Valores do Operando Acc (valor atual) XXXX XXXX Flag Zero Valores de Saída Estado Operando.bit Z X NZ 1 EXEMPLO: Em um programa de PLC preciso ligar uma saída se duas entradas tiverem estados diferentes um do ourtro (função OU Exclusivo). Se os estados forem iguais não quero alterar o estado da saída: 1.º Operando: entrada I 0.3 2.º Operando: entrada I 0.4 3.º Operando: saída Q 2.5 Operação L XO SL I I Q 0.3 0.4 2.5 ;Acc = I 0.3 ;Função OU EXCLUSIVO entre Acc e I 0.4 ;liga a saída Q 2.5 Após a operação, a saída Q 2.5 será energizada apenas se o resultado da lógica anterior for “1”. Caso contrário, o estado da saída não será alterado. Após a instrução, o Acumulador terá seu estado energizado. OBSERVAÇÃO: Prefira a instrução S para atribuir resultados em lógica de bits. 37 Manual do PLC V1.00 2.1.13 - SET sem influência no acumulador – Set OPERANDOS: I Q M - ENTRADA - SAÍDA - MEMÓRIA S Operando S OPERAÇÃO: Oper.bit DESCRIÇÃO: Se o conteúdo do Acumulador está em "1", o conteúdo do Operando indicado na instrução é energizado ("1"). Caso contrário, o conteúdo do operando não será alterado. Após a operação, o conteúdo do Acumulador permanece inalterado. Esta operação é uma função condicional, que atribui ao bit do Operando indicado na operação o estado lógico “1” se o estado do Acumulador for igual a “1’. Caso o conteúdo do Acumulador for igual a “0”, o conteúdo do Operando indicado não será alterado. A diferença desta operação em relação a anterior (SL) é que após a operação o conteúdo do Acumulador não será energizado. TABELA DA VERDADE: Valores do Operando Acc (valor atual) XXXX XXXX Flag Zero Valores de Saída Estado Operando.bit Z X NZ 1 EXEMPLO: Em um programa de PLC preciso ligar uma saída se uma de duas entradas estiverem energizadas (função OU). Se o estado das duas entradas for “0”, não quero alterar o estado da saída. Após a instrução Set quero prosseguir com a lógica fazendo uma associação E (And) com outra entrada: 1.º Operando: 2.º Operando: 3.º Operando: 4.º Operando: Operação entrada I 0.3 entrada I 0.4 saída Q 2.5 entrada I 0.7 L O S A I I Q I 0.3 0.4 2.5 0.7 ;Acc = I 0.3 ;Função OU entre Acc e I 0.4 ;liga a saída Q 2.5 ;Função E com o resultado da associação OU anterior Após a operação Set, a saída Q 2.5 será energizada apenas se o resultado da lógica anterior for “1”. Caso contrário, o estado da saída não será alterado. Como o Acumulador mantém seu estado posso prosseguir numa seqüência lógica. 38 Manual do PLC V1.00 2.1.14 - SET se lógica negativa – Set Not OPERANDOS: I Q M - ENTRADAS - SAÍDAS - MEMÓRIAS SN Operando SN OPERAÇÃO: Oper.bit DESCRIÇÃO: Se o conteúdo do Acumulador for "0" (zero), o conteúdo do Operando indicado na instrução é energizado ("1"). Caso contrário, o conteúdo do Operando não será alterado. Esta operação é uma função condicional, que atribui ao bit do Operando indicado na operação o estado lógico “1” se o estado do Acumulador for igual a “0’. Caso o conteúdo do Acumulador for igual a “1”, o conteúdo do Operando indicado não será alterado. TABELA DA VERDADE: Valores do Operando Acc (valor atual) XXXX XXXX Flag Zero Valores de Saída Estado Operando.bit Z 1 NZ X EXEMPLO: Em um programa de PLC preciso ligar uma saída se duas entradas estiverem desligadas (função OU). Se o estado de uma das duas entradas for “1”, não quero alterar o estado da saída. Após a instrução Set Not quero prosseguir com a lógica fazendo uma associação E (And) com outra entrada: 1.º Operando: 2.º Operando: 3.º Operando: 4.º Operando: Operação entrada I 0.3 entrada I 0.4 saída Q 2.5 entrada I 0.7 L O SN A I I Q I 0.3 0.4 2.5 0.7 ;Acc = I 0.3 ;Função OU entre Acc e I 0.4 ;liga a saída Q 2.5 se Acc = 0 ;Função E com o resultado da associação OU anterior Após a operação Set Not, a saída Q 2.5 será energizada apenas se o resultado da lógica anterior for “0”. Caso contrário, o estado da saída não será alterado. Como o Acumulador mantém seu estado posso prosseguir numa seqüência lógica. OBSERVAÇÃO: A operação anterior é equivalente a: Operação 39 LN AN S A I I Q I 0.3 0.4 2.5 0.7 ;Acc = inverso do estado de I 0.3 ;Função E negada entre Acc e I 0.4 ;liga a saída Q 2.5 se Acc = 0 ;Função E com o resultado da associação AN anterior Manual do PLC V1.00 2.1.15 - SET FORÇADO sem influência no acumulador – Set Forced OPERANDOS: I Q M - ENTRADA - SAÍDA - MEMÓRIA SF Operando SF OPERAÇÃO: Oper.bit DESCRIÇÃO: O conteúdo do operando indicado na instrução é energizado ("1") independentemente do conteúdo do acumulador. O conteúdo do acumulador permanece inalterado. Esta operação força o estado energizado do operando, ou seja, o bit do operando indicado nesta instrução vai para nível lógico “1” independentemente do estado do Acumulador ou de qualquer outro resultado de operações anteriores. TABELA DA VERDADE: Valores do Operando Acc (valor atual) XXXX Flag Zero Valores de Saída Estado Operando.bit X 1 EXEMPLO: Em um programa de PLC quero forçar em “1” o estado de uma saída: Operação SF Q 0.1 ;Força ligar a saída Q 0.1 Após a operação o Acumulador mantém seu estado anterior. 2.1.16 - RESET energizando o acumulador – Reset OPERANDOS: I Q M - ENTRADA - SAÍDA - MEMÓRIA RL Operando RL OPERAÇÃO: Oper.bit DESCRIÇÃO: Se o conteúdo do Acumulador está em "1", o conteúdo do Operando indicado na instrução é zerado ("0"). Caso contrário, o conteúdo do Operando não será alterado. Após a operação, o conteúdo do Acumulador é energizado ("1"). Esta operação é uma função condicional, que atribui ao bit do Operando indicado na operação o conteúdo lógico “0” se o conteúdo do Acumulador for igual a “1”. Caso o conteúdo do Acumulador for “0”, o conteúdo do Operando indicado não será alterado. 40 Manual do PLC V1.00 TABELA DA VERDADE: Valores do Operando Acc (valor atual) XXXX XXXX Flag Zero Valores de Saída Estado Operando.bit Z X NZ 0 EXEMPLO: Em um programa de PLC preciso desligar uma saída se duas entradas estiverem ligadas (função E - And). Se uma delas estiver desligada não quero alterar o estado da saída: 1.º Operando: entrada I 1.4 2.º Operando: entrada I 2.4 3.º Operando: saída Q 1.0 Operação L A RL I I Q 1.4 2.4 1.0 ;Acc = I 0.4 ;Função E entre Acc e I 2.4 ;Desliga a saída Q 1.0 Após a operação, a saída Q 1.0 será ligada apenas se o resultado da lógica anterior for “1”. Caso contrário, o estado da saída não será alterado. Após a instrução, o Acumulador terá seu estado energizado. OBSERVAÇÃO: Prefira a instrução R para atribuir resultados em lógica de bits. 2.1.17 - RESET sem influência no acumulador – Reset OPERANDOS: I Q M - ENTRADA - SAÍDA - MEMÓRIA R Operando R OPERAÇÃO: Oper.bit DESCRIÇÃO: Se o conteúdo do Acumulador está em "1", o conteúdo do Operando indicado na instrução é zerado ("0"). Caso contrário, o conteúdo do operando não será alterado. Após a operação, o conteúdo do Acumulador permanece inalterado. Esta operação é uma função condicional, que atribui ao bit do Operando indicado na operação o estado lógico “0” se o estado do Acumulador for igual a “1’. Caso o conteúdo do Acumulador for igual a “0”, o conteúdo do Operando indicado não será alterado. A diferença desta operação em relação a RL é que após a operação o conteúdo do Acumulador não será energizado. TABELA DA VERDADE: Valores do Operando Acc (valor atual) XXXX XXXX 41 Flag Zero Valores de Saída Estado Operando.bit Z X NZ 0 Manual do PLC V1.00 EXEMPLO: Utilizando-se do mesmo exemplo da instrução RL, preciso desligar uma saída se duas entradas estiverem ligadas (função E - And). Se uma delas estiver desligada não quero alterar o estado da saída: 1.º Operando: entrada I 1.4 2.º Operando: entrada I 2.4 3.º Operando: saída Q 1.0 Operação L A R I I Q 1.4 2.4 1.0 ;Acc = I 0.4 ;Função E entre Acc e I 2.4 ;Desliga a saída Q 1.0 Após a operação, a saída Q 1.0 será ligada apenas se o resultado da lógica anterior for “1”. Caso contrário, o estado da saída não será alterado. Após a instrução, o Acumulador mantém seu estado. 2.1.18 - RESET se lógica negativa – Reset Not OPERANDOS: I Q M - ENTRADAS - SAÍDAS - MEMÓRIAS RN Operando RN OPERAÇÃO: Oper.bit DESCRIÇÃO: Se o conteúdo do Acumulador for "0", o conteúdo do Operando indicado na instrução é zerado ("0"). Caso contrário, o conteúdo do Operando não será alterado. Esta operação é uma função condicional, que atribui ao bit do Operando indicado na operação o conteúdo lógico “0” se o estado do Acumulador for igual a “0’. Caso o conteúdo do Acumulador for igual a “1”, o conteúdo do Operando indicado não será alterado. TABELA DA VERDADE: Valores do Operando Acc (valor atual) XXXX XXXX Flag Zero Valores de Saída Estado Operando.bit Z 0 NZ X EXEMPLO: Em um programa de PLC preciso desligar uma saída se duas entradas estiverem desligadas (função OU). Se o estado de uma das entradas for “1”, não quero alterar o estado da saída. Após a instrução Reset quero prosseguir com a lógica fazendo uma associação E (And) com outra entrada: 1.º Operando: 2.º Operando: 3.º Operando: 4.º Operando: entrada I 0.3 entrada I 0.4 saída Q 2.5 entrada I 0.7 42 Manual do PLC Operação V1.00 L O RN A I I Q I 0.3 0.4 2.5 0.7 ;Acc = I 0.3 ;Função OU entre Acc e I 0.4 ;Desliga a saída Q 2.5 ;Função E com o resultado da associação OU anterior Na execução da operação RN, a saída Q 2.5 será desligada apenas se o resultado da lógica anterior for “0”. Caso contrário, o estado da saída não será alterado. Como o Acumulador mantém seu estado, pode-se prosseguir uma seqüência lógica a partir do resultado da lógica anterior. 2.1.19 - RESET FORÇADO sem influência no acumulador – Reset Forced OPERANDOS: I Q M - ENTRADA - SAÍDA - MEMÓRIA RF Operando RF OPERAÇÃO: Oper.bit DESCRIÇÃO: O conteúdo do operando indicado na instrução é zerado ("0") independentemente do conteúdo do acumulador. O conteúdo do acumulador permanece inalterado. Esta operação força o estado desligado do operando, ou seja, o bit do operando indicado nesta instrução vai para nível lógico “0” independentemente do estado do Acumulador ou de qualquer outro resultado de operações anteriores. TABELA DA VERDADE: Valores do Operando Acc (valor atual) XXXX Flag Zero Valores de Saída Estado Operando.bit X 0 EXEMPLO: Em um programa de PLC quero forçar o desligamento de uma saída: Operação RF Q 0.1 ;Força desligar a saída Q 0.1 Após a operação o Acumulador mantém seu estado anterior. 43 Manual do PLC V1.00 2.1.20 - Operação lógica E – Abre parêntesis – And( OPERANDOS: A( NÃO POSSUI OPERAÇÃO: A( DESCRIÇÃO: Realiza a operação lógica E (AND) entre o conteúdo anterior do Acumulador e o resultado da operação lógica iniciada nesta instrução e encerrada com a instrução fecha parêntesis do mesmo nível de encadeamento. Caso o conteúdo anterior do Acumulador seja "0", o resultado da operação será sempre "0", qualquer que seja o resultado da lógica contida entre parêntesis. O resultado final é armazenado no próprio Acumulador e no Flag Zero. TABELA DA VERDADE: Valores de Entrada da Valores de Flag Zero Operação Saída Estado Resultado da Acc (valor Acc (valor atual) operação lógica anterior) 0 0 000H Z 0 1 000H Z 1 0 000H Z 1 1 0FFH NZ OBSERVAÇÕES: 1 - Pode-se programar até 8 níveis de encadeamento. 2 – Esta instrução não deve ser usada no inicio de uma seqüência lógica. EXEMPLO: Com esta instrução pode-se implementar um circuito lógico mais complexo. Por exemplo: 1.º Operando: 2.º Operando: 3.º Operando: 4.º Operando: 5.º Operando: 6.º Operando: entrada I 0.0 entrada I 0.1 entrada I 0.3 entrada I 0.4 entrada I 0.7 saída Q 2.5 44 Manual do PLC Operações V1.00 L A A( L O ) AN == I I 0.0 0.1 I I 0.3 0.4 I Q 0.7 2.5 ;Carrega o estado de I 0.0 ;Função E com o estado de I 0.1 ;Inicia uma seqüência lógica E com estado do Acc ;Carrega o estado de I 0.3 ;Função OU com o o estado de I 0.4 ;Encerra a seqüência lógica e fecha associação E ;Função E com o complemento de I 0.7 ;Atribui o resultado à saída Q 2.5 Após a operação o Acumulador passa a ter o conteúdo do resultado final da operação lógica. 2.1.21 - Operação lógica OU – Abre parêntesis – Or( OPERANDOS: O( NÃO POSSUI OPERAÇÃO: O( DESCRIÇÃO: Realiza a operação lógica OU (OR) entre o estado do Acumulador e o resultado da operação lógica iniciada nesta instrução e encerrada com a instrução fecha parêntesis do mesmo nível de encadeamento. Caso o conteúdo anterior do Acumulador seja "1", o resultado da operação será sempre "1", qualquer que seja o resultado da lógica contida entre parêntesis. O resultado final é armazenado no próprio Acumulador e no Flag Zero. TABELA DA VERDADE: Valores de Entrada Valores de Flag da Operação Saída Zero Oper.bit Acc (valor Acc (valor Estado 0 0 1 1 anterior) atual) 0 1 0 1 000H 0FFH 0FFH 0FFH Z NZ NZ NZ OBSERVAÇÕES: 1 - Pode-se programar até 8 níveis de encadeamento. 2 - Não pode ser a instrução inicial de uma seqüência lógica. 45 Manual do PLC V1.00 EXEMPLO: Com esta instrução pode-se implementar um circuito lógico mais complexo. Por exemplo: 1.º Operando: 2.º Operando: 3.º Operando: 4.º Operando: Operações entrada I 0.3 entrada I 0.0 entrada I 0.1 saída Q 1.5 L O( L A ) == I 0.3 I I 0.3 0.4 Q 1.5 ;Carrega o estado de I 0.3 ;Inicia uma seqüência lógica OU com estado do Acc ;Carrega o estado de I 0.3 ;Função E com o o estado de I 0.4 ;Encerra a seqüência lógica e fecha associação E ;Atribui o resultado à saída Q 1.5 Após a operação o Acumulador passa a ter o conteúdo do resultado final da operação lógica. 2.1.22 - Operação Fecha parêntesis OPERANDOS: ) NÃO POSSUI OPERAÇÃO: ) DESCRIÇÃO: Encerra operação lógica iniciada com a instrução de abertura do mesmo nível de encadeamento que dá origem ao bloco lógico. Após esta operação o acumulador recebe o status resultante da operação entre o status do acumulador anterior à abertura do bloco e o resultado da operação lógica encerrada no bloco. 46 Manual do PLC V1.00 2.1.23 - Transição da borda de subida – Edge Up OPERANDOS: EU NÃO POSSUI OPERAÇÃO: EU DESCRIÇÃO: Detecta a transição de estado de “0” para “1” do estado do Acumulador no final da operação anterior (borda de subida). O resultado da instrução é 0 (zero) se não ocorreu a transição de borda de subida ou se o Acumulador permanecer em nível lógico constante (nível 1 ou nível 0). O resultado será “1” no ciclo de PLC em que ocorrer a transição em borda de subida. Esta instrução é utilizada para condições onde uma dada condição tem de variar para que seja interpretado como um novo comando. Sua principal aplicação está em circuitos contadores, segurança de acionamento e leitura de sinais digitais. TABELA DA VERDADE: Transições do Acumulador 0 permanece em 0 1 para 0 0 para 1 1 permanece em 1 Estado final do Acumulador Z Z NZ Z 2.1.24 - Transição da borda de descida – Edge Down OPERANDOS: ED NÃO POSSUI OPERAÇÃO: ED DESCRIÇÃO: Detecta a transição de estado “1” para “0” do Acumulador no final da operação anterior (borda de descida). O resultado é “0” se não ocorreu a transição de borda de descida ou se o Acumulador permanecer em nível lógico constante (nível 1 ou nível 0). O resultado será “1” no ciclo de PLC em que ocorrer a transição de borda de decida. Esta instrução é utilizada para condições onde o sinal de entrada tem de variar para que seja interpretado como um novo comando, sua principal aplicação está em circuitos contadores, segurança de acionamento e leitura de sinais digitais. 47 Manual do PLC V1.00 TABELA DA VERDADE: Transições do Estado do final do Acumulador Acumulador 0 permanece em 0 Z 1 para 0 NZ 0 para 1 Z 1 permanece em 1 Z 2.1.25 - Transição de borda – EDGe OPERANDOS: EDG NÃO POSSUI OPERAÇÃO: EDG DESCRIÇÃO: Detecta a transição de estado de “0” para “1” ou de ”1” para ”0” (transição de borda). O resultado é ”0” se o estado do Acumulador este permanecer em nível lógico constante (nível 1 ou nível 0) e o resultado será ”1” na ocorrência de transição de borda de subida ou de descida, por um por um ciclo de PLC. Esta instrução é utilizada para condições onde o sinal de entrada tem de variar para que seja interpretado como um novo comando, sua principal aplicação está em circuitos contadores, segurança de acionamento e leitura de sinais digitais. TABELA DA VERDADE: Transições do Estado do final do Acumulador Acumulador 0 permanece em 0 Z 1 para 0 NZ 0 para 1 NZ 1 permanece em 1 Z 48 Manual do PLC V1.00 2.2 - OPERAÇÕES COM BYTE OU WORD E RESULTADO BIT Ao desenvolver uma aplicação utiliza-se sinais de entrada e saída da máquina, memórias de comunicação entre o CNC e o PLC e memórias definidas para a aplicação. Frequentemente nos defrontamos com situações nas quais é necessário usar, numa associação lógica, não apenas elementos definidos como “bits”, mas também condições e estados de memórias “byte” e “word”, por exemplo se uma posição de memória contém um valor igual a outra posição de memória, ou diferente de uma dada constante, ou maior ou menor que outra. Para resolver esta situação, a MCS desenvolveu algumas novas instruções em seu PLC, que permitem a utilização de condições e estados de memórias byte e word em associação lógica de bits. Para visualizar melhor o significado disso é útil estabelecer a relação da lógica de bits com a lógica de contatos (ladder), associando o estado de um bit ao estado de um contato. O estado de um bit pode ser associado ao estado de um contato pela seguinte tabela: Estado do bit 0 1 Estado do contato Aberto Fechado No caso de memórias byte ou word, como fazer uma associação de seu estado com o estado de um bit ou um contato? Primeiramente deve-se estabelecer quais estados serão detectados. Na maioria da vezes, o que se deseja saber é se uma memória é igual a outra, se é diferente, se é maior ou menor que outra. Naturalmente, para se estabelecer uma das condições acima, deve-se comparar as duas memórias. Nada mais lógico do que se estabelecer que uma das memórias para comparação seja o próprio acumulador do MCSplc. A outra memória ou dado constante pode estar indicado diretamente na instrução (operando e endereço ou valor da constante) . Desta forma fica estabelecido que, para se utilizar estas novas instruções, deve-se antes de mais nada carregar o Acumulador com um dos dados de comparação. Como, numa seqüência lógica de bits, o Flag Zero estabelece o resultado da associação anterior, pode-se prosseguir numa seqüência lógica carregando-se o Acumulador com um dos valores para comparação sem que se perca o estado anterior da lógica, se Z ou NZ. As seguintes tabelas indicam o estado de contatos para comparações de valores iguais (Z), diferentes (NZ), maior ou igual (P) e menor ou negativo (M). Comparação se igual (caso Z): Estado do Acumulador 055H 055H Conteúdo do Operando da Instrução 023H 055H Estado do contato Aberto Fechado Estado do bit para lógica 0 1 Estado do contato Fechado Aberto Estado do bit para lógica 0 1 Comparação se diferente (caso NZ): Estado do Acumulador 055H 055H Conteúdo do Operando da Instrução 023H 055H Comparação se positivo ou maior ou igual (caso P): 49 Manual do PLC V1.00 Estado do Acumulador 055H 055H 055H Conteúdo do Operando da Instrução 023H 055H 056H Estado do contato Fechado Fechado Aberto Estado do bit para lógica 1 1 0 Estado do contato Aberto Aberto Fechado Estado do bit para lógica 0 0 1 Comparação se menor ou negativo (caso M): Estado do Acumulador 055H 055H 055H Conteúdo do Operando da Instrução 023H 055H 056H As tabelas acima serão usadas para explicar a ação das instruções a seguir. 2.2.1 - Energiza Acumulador se comparação resultar IGUAL OPERANDOS: MB KB MW KW - MEMÓRIAS BYTE - CONSTANTES BYTE - MEMÓRIAS WORD - CONSTANTES WORD LZ Operando LZ OPERAÇÃO: Especificação do Operando DESCRIÇÃO: Se o conteúdo do Acumulador for igual ao conteúdo do Operando indicado na operação, energizase o Acumulador (Flag Zero no estado NZ). Caso contrário, se o conteúdo do Operando for diferente do conteúdo do Acumulador, o Acumulador é zerado (Flag Zero no estado Z). A instrução LZ é uma instrução de comparação de conteúdos de Byte com Byte entre Acumulador e o Operando indicado na instrução e o resultado em bit (zero ou um) ou Byte (00H ou 0FFH) ou uma comparação de conteúdos de Word com Word e o resultado em bit ou em Word (0000H ou 0FFFFH). Em qualquer um dos casos temos sempre a resposta digital, se os conteúdos forem iguais teremos o conteúdo do Acumulador em nível lógico “1” (Flag Zero no estado NZ) e se estes conteúdos forem diferentes teremos o conteúdo do Acumulador em nível lógico “0” (Flag Zero no estado Z). Como esta é uma instrução para carregar (Load) o estado do Acumulador, deve sempre ser usada no início de uma associação lógica, após carregar no Acumulador a variável ou constante para comparação. EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde a um contato normal aberto no início de uma linha de lógica de ladder. Se as variáveis forem diferentes o contato permanece aberto. Se as variáveis forem iguais, o contato fecha. 50 Manual do PLC V1.00 RESULTADOS: Comparação de igualdade (LZ) Acc = Operando Acc Operando Resultado da Operação no Acumulador 0FFH ou 0FFFFH 00H ou 0000H Estado do contato Fechado Aberto Flag NZ Z EXEMPLO: Em uma programação do MCSplc deseja-se detectar a execução da função auxiliar M03 pelo programa do CNC. 1.º Operando: 2.º Operando: 3.º Operando: 4.º Operando: . Operação memória byte 72 constante byte 03H memoria bit M 211.0 memoria bit M 211.1 L LZ S R MB KB M M Número da função auxiliar em execução Código da função auxiliar M03 Memória indicativa de sentido M03 Memória indicativa de sentido M04 72 03H 211.0 211.1 ;Carrega conteúdo de MB 72 no Acumulador. ;Testa se MB 72 = 03H ;Liga a memória de função M03 ;Desliga a memória de função M04 Após a Operação o Acumulador passa a ter o conteúdo do resultado da comparação entre a memória e a constante. Se a comparação der um resultado não igual, nada é feito. Se a comparação der um resultado igual, a memória M 211.0 será ligada e a memória M 211.1 será desligada. 2.2.2 - Energiza Acumulador se comparação resultar DIFERENTE OPERANDOS: MB KB MW KW LNZ - MEMÓRIAS BYTE - CONSTANTES BYTE - MEMÓRIAS WORD - CONSTANTES WORD OPERAÇÃO: LNZ Operando Especificação do Operando DESCRIÇÃO: Se o conteúdo do Acumulador for diferente do conteúdo do Operando indicado na operação, energiza-se o Acumulador (Flag Zero no estado NZ). Caso contrário, se o conteúdo do Operando for igual ao conteúdo do Acumulador, o Acumulador é zerado (Flag Zero no estado Z). A instrução LNZ é uma instrução de comparação de conteúdos de Byte com Byte entre Acumulador e o Operando indicado na instrução e o resultado em bit (zero ou um) ou Byte (00H ou 0FFH) ou uma comparação de conteúdos de Word com Word e o resultado em bit ou em Word (0000H ou 0FFFFH). Em qualquer um dos casos temos sempre a resposta digital, se os conteúdos forem diferentes teremos o conteúdo do Acumulador em nível lógico “1” (Flag Zero no estado NZ) e se estes conteúdos forem iguais teremos o conteúdo do Acumulador em nível lógico “0” (Flag Zero no estado Z). Como esta é uma instrução para carregar (Load) o estado do Acumulador, deve sempre ser usada no início de uma associação lógica, após carregar no Acumulador a variável ou constante para comparação. 51 Manual do PLC V1.00 EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde a um contato normal aberto no início de uma linha de lógica de ladder. Se as variáveis forem iguais o contato permanece aberto. Se as variáveis forem diferentes, o contato fecha. RESULTADOS: Comparação de diferenças (LNZ) Acc = Operando Acc Operando Resultado da Operação no Acumulador 0FFH ou 0FFFFH 00H ou 0000H Estado do contato Aberto Fechado Flag NZ Z EXEMPLO: Em uma programação do MCSplc deseja-se detectar o estado de emergência no CNC. Se a variável MB 383 estiver carregada com um valor diferente de 000H, o CNC indica ao PLC que irá entrar em emergência. 1.º Operando: 2.º Operando: 3.º Operando: 4.º Operando: . Operação memória byte 384 constante byte 000H memoria bit M 211.0 memoria bit M 211.1 L LNZ R R MB KB M M Estado de emergência no CNC Código do estado normal (não emergência) Memória indicativa de sentido M03 Memória indicativa de sentido M04 384 000H 211.0 211.1 ;Carrega conteúdo de MB 384 no Acumulador. ;Testa se diferente de 000H ;Desliga a memória de função M03 ;Desliga a memória de função M04 Após a Operação o Acumulador passa a ter o conteúdo do resultado da comparação entre a memória e a constante. Se a comparação der um resultado igual, nada é feito. Se a comparação der um resultado diferente, as memórias M 211.0 e M 211.1 serão desligadas. OBSERVAÇÃO: As instruções LZ e LNZ são opostas, ou seja, enquanto LZ verifica a igualdade entre duas grandezas digitais LNZ verifica a desigualdade entre elas. 2.2.3 - Energiza Acumulador se comparação resultar MENOR OPERANDOS: MB KB MW KW - MEMÓRIAS BYTE - CONSTANTES BYTE - MEMÓRIAS WORD - CONSTANTES WORD LM Operando LM OPERAÇÃO: Especificação do Operando DESCRIÇÃO: Se o conteúdo do Acumulador for menor do que o conteúdo do Operando indicado na operação, energiza-se o Acumulador (Flag Zero no estado NZ). Caso contrário, se o conteúdo do Operando for maior ou igual ao conteúdo do Acumulador, o Acumulador é zerado (Flag Zero no estado Z). A instrução LM é uma instrução de comparação de conteúdos de Byte com Byte entre Acumulador e o Operando indicado na instrução e o resultado em bit (zero ou um) ou Byte (00H ou 0FFH) ou 52 Manual do PLC V1.00 uma comparação de conteúdos de Word com Word e o resultado em bit ou em Word (0000H ou 0FFFFH). Em qualquer um dos casos temos sempre a resposta digital. Se o conteúdo do Acumulador for menor que o Operando, o estado do Acumulador será “1” (Flag Zero no estado NZ). Se o conteúdo do Acumulador for maior ou igual ao Operando, o estado do Acumulador será “0” (Flag Zero no estado Z). Como esta é uma instrução para carregar (Load) o estado do Acumulador, deve sempre ser usada no início de uma associação lógica, após carregar no Acumulador a variável ou constante para comparação. EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde a um contato normal aberto no início de uma linha de lógica de ladder. Se o conteúdo do Operando for maior ou igual ao do Acumulador, o contato permanece aberto. Se for menor, o contato fecha. RESULTADOS: Comparação se Menor (LM) Acc < Operando Acc >= Operando Resultado da Operação no Acumulador 0FFH ou 0FFFFH 00H ou 0000H Estado do contato Fechado Aberto Flag NZ Z EXEMPLO: Em uma programação do MCSplc deseja-se bloquear o avanço dos eixos se o potenciômetro de avanço estiver com um valor inferior a 5%. 1.º Operando: memória byte 373 2.º Operando: constante byte 005H 3.º Operando: memória bit 210.0 . Operação L LM == MB KB M 373 5 210.0 Porcentagem do pot de avanço no CNC Limite inferior para liberar avanço Bloqueio de avanço ;Carrega conteúdo de MB 373 no Acumulador. ;Testa se menor do que 5 ;Bloqueia avanço Após a Operação o Acumulador passa a ter o conteúdo do resultado da comparação entre a memória e a constante. Se a comparação der um resultado maior ou igual, a memória M 210.0 será desligada. Se a comparação der um resultado menor, a memória M 210.0 será ligada. 53 Manual do PLC V1.00 2.2.4 - Energiza Acumulador se comparação resultar MAIOR OU IGUAL OPERANDOS: MB KB MW KW - MEMÓRIAS BYTE - CONSTANTES BYTE - MEMÓRIAS WORD - CONSTANTES WORD LP Operando LP OPERAÇÃO: Especificação do Operando DESCRIÇÃO: Se o conteúdo do Acumulador for maior ou igual ao conteúdo do Operando indicado na operação, energiza-se o Acumulador (Flag Zero no estado NZ). Caso contrário, se o conteúdo do Acumulador for menor que o conteúdo do Operando, o Acumulador é zerado (Flag Zero no estado Z). A instrução “LP” é uma instrução de comparação de conteúdos de Byte com Byte entre Acumulador e o Operando indicado na instrução e o resultado em bit (zero ou um) ou Byte (00H ou 0FFH) ou uma comparação de conteúdos de Word com Word e o resultado em bit ou em Word (0000H ou 0FFFFH). Em qualquer um dos casos temos sempre a resposta digital, se o conteúdo do Acumulador for maior ou igual ao Operando, o estado do Acumulador será “1” (Flag Zero no estado NZ). Se o conteúdo do Acumulador for menor que o conteúdo do Operando, o estado do Acumulador será “0” (Flag Zero no estado Z). Como esta é uma instrução para carregar (Load) o estado do Acumulador, deve sempre ser usada no início de uma associação lógica, após carregar no Acumulador a variável ou constante para comparação. EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde a um contato normal aberto no início de uma linha de lógica de ladder. Se o conteúdo do Operando for menor que o do Acumulador, o contato permanece aberto. Se for maior ou igual, o contato fecha. RESULTADOS: Comparação se Maior ou igual (LP) Acc < Operando Acc >= Operando Resultado da Operação no Acumulador 00H ou 0000H 0FFH ou 0FFFFH Estado do contato Aberto Fechado Flag Z NZ EXEMPLO: Em uma programação do MCSplc deseja-se observar um limite de temperatura. Pode-se ler a temperatura através de entradas analógicas do CNC e fazer a conversão para graus. Se a temperatura exceder o limite, o PLC ativa uma mensagem. 1.º Operando: memória word 600 2.º Operando: memória word 1700 3.º Operando: memória bit 1574.0 . Operação L LP == MW MW M Temperatura em graus Limite para temperatura Mensagem 9 (rotinas básicas do MCSplc) 600 1700 1574.0 ;Carrega conteúdo de MW 600 no Acumulador ;Testa se maior do que o conteúdo de MW 1700 ;Mensagem 9 54 Manual do PLC V1.00 Após a Operação o Acumulador passa a ter o conteúdo do resultado da comparação entre a memória e a constante. Se a comparação der um resultado maior ou igual, a memória M 1574.0 será ligada. Se a comparação der um resultado menor, a memória M 15754.0 será desligada. OBSERVAÇÃO: As instruções LM e LP são opostas, ou seja, enquanto LM verifica a se o Acumulador é menor que o Operando, LP verifica se é maior ou igual. 2.2.5 - Operação E (AND) – Compara se IGUAL OPERANDOS: MB KB MW KW - MEMÓRIAS BYTE - CONSTANTES BYTE - MEMÓRIAS WORD - CONSTANTES WORD AZ Operando AZ OPERAÇÃO: Endereço ou valor da constante DESCRIÇÃO: O PLC realiza a operação lógica E (AND) entre o estado anterior do Acumulador (estado do Flag Zero) e o resultado da comparação indicada na operação transformado no estado de um bit (“0” ou “1”). Caso o conteúdo anterior do Acumulador seja "0", o resultado da operação será sempre "0", qualquer que seja o resultado da comparação indicada na instrução. O bit que será usado na lógica será “1” se o conteúdo do Acumulador for igual ao conteúdo do Operando e será “0” se o conteúdo do Acumulador for diferente do conteúdo do Operando. A instrução AZ é uma instrução de comparação de conteúdos de Byte com Byte ou Word com Word entre Acumulador e o Operando indicado na instrução e o resultado em bit (0 ou 1). Em qualquer um dos casos temos sempre a reposta digital, se os conteúdos forem iguais teremos o conteúdo do bit em nível lógico “1” e se estes conteúdos forem diferentes teremos o conteúdo do bit em nível lógico “0”. EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde a uma associação em série de um contato normal aberto numa linha de lógica de ladder. Este contato permanece aberto se a comparação resultar diferente e ficará fechado se a comparação resultar igual. RESULTADOS: Estado do Flag Zero no Acumulador Z Z NZ NZ 55 Comparação se lgual (AZ) Acc = Operando Acc Operando Acc = Operando Acc Operando Resultado da Operação no Acumulador 000H 000H 0FFH 000H Flag resultante Z Z NZ Z Manual do PLC V1.00 EXEMPLO: Como no exemplo da instrução LZ, deseja-se detectar a execução da função auxiliar M03 pelo programa do CNC. Porém, a saída só poderá ser ligada se a entrada indicando que o acionamento do eixo árvore está ok estiver ligada. 1.º Operando: 2.º Operando: 3.º Operando: 4.º Operando: 5.º Operando: . Operação entrada I 3.0 memória byte 72 constante byte 03H memoria bit M 211.0 memoria bit M 211.1 L L AZ S R I MB KB M M Acionamento do eixo árvore ok Número da função auxiliar em execução Código da função auxiliar M03 Memória indicativa de sentido M03 Memória indicativa de sentido M04 3.0 72 03H 211.0 211.1 ;Carrega Acc com estado de I 3.0 ;Carrega conteúdo de MB 72 no Acumulador. ;Testa MB 72 = 03H e faz lógica E com I 3.0 ;Liga a memória de função M03 ;Desliga a memória de função M04 Após a Operação o Acumulador passa a ter o conteúdo da associação lógica E (AND) entre a entrada I 3.0 e o resultado da comparação entre a memória e a constante. Se a entrada estiver ligada e a comparação der um resultado igual, a memória M 211.0 será ligada e a memória M 211.1 será desligada. 2.2.6 - Operação E (AND) – Compara se DIFERENTE OPERANDOS: MB KB MW KW ANZ - MEMÓRIAS BYTE - CONSTANTES BYTE - MEMÓRIAS WORD - CONSTANTES WORD OPERAÇÃO: ANZ Operando Especificação do Operando DESCRIÇÃO: O PLC realiza a operação lógica E (AND) entre o estado anterior do Acumulador (estado do Flag Zero) e o resultado da comparação indicada na operação transformado no estado de um bit (“0” ou “1”). Caso o conteúdo anterior do Acumulador seja "0", o resultado da operação será sempre "0", qualquer que seja o resultado da comparação indicada na instrução. O bit que será usado na lógica será “1“ se o conteúdo do Acumulador for diferente do conteúdo do Operando e será “0“ se o conteúdo do Acumulador for igual ao conteúdo do Operando. A instrução ANZ é uma instrução de comparação de conteúdos de Byte com Byte ou Word com Word entre Acumulador e o Operando indicado na instrução e o resultado em bit (0 ou 1). Em qualquer um dos casos temos sempre a reposta digital, se os conteúdos forem diferentes teremos o conteúdo do bit em nível lógico “1” e se estes conteúdos forem iguais teremos o conteúdo do bit em nível lógico “0”. EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde a uma associação em série de um contato normal aberto numa linha de lógica de ladder. Este contato permanece aberto se a comparação resultar igual e ficará fechado se a comparação resultar diferente. 56 Manual do PLC V1.00 RESULTADOS: Estado do Flag Zero no Acumulador Z Z NZ NZ Comparação se Diferente (ANZ) Acc = Operando Acc Operando Acc = Operando Acc Operando Resultado da Operação no Acumulador 000H 000H 000H 0FFH Flag Z Z Z NZ EXEMPLO: Em uma programação do MCSplc deseja-se detectar se é necessário efetuar a troca de uma ferramenta. A vairavel 72 indica ao PLC o número da ferramenta pedida pelo programa CNC. 1.º Operando: 2.º Operando: 3.º Operando: 4.º Operando: . Operação memória bit 210.1 memória byte 74 memória byte 220 saída Q 2.0 L L ANZ == M MB MB Q Memória indicativa de modos automáticos Código T passado pelo CNC Número da ferramenta selecionada na máquina Saída indicativa de troca manual de ferramenta 210.1 74 220 2.0 ;CNC em modo automático ;Carrega conteúdo de MB 74 no Acumulador. ;Testa se diferente de MB 220 ;Passa resultado para a saída Q 2.0 Após a Operação o Acumulador passa a ter o conteúdo da associação lógica E (AND) entre a memória M 210.1 e o resultado da comparação entre as memórias MB 74 e MB 220. Se a memória M 210.1 estiver ligada e a comparação der um resultado diferente, a saída Q 2.0 será ligada. OBSERVAÇÃO: As instruções AZ e ANZ são opostas, ou seja, enquanto AZ verifica a igualdade entre duas grandezas digitais ANZ verifica a desigualdade entre elas. 2.2.7 - Operação E (AND) – Compara se MENOR OPERANDOS: MB KB MW KW - MEMÓRIAS BYTE - CONSTANTES BYTE - MEMÓRIAS WORD - CONSTANTES WORD AM Operando AM OPERAÇÃO: Especificação do Operando DESCRIÇÃO: O PLC realiza a operação lógica E (AND) entre o estado anterior do Acumulador (estado do Flag Zero) e o resultado da comparação indicada na operação transformado no estado de um bit (“0“ ou “1“). Caso o conteúdo anterior do Acumulador seja "0", o resultado da operação será sempre "0", qualquer que seja o resultado da comparação indicada na instrução. O bit que será usado na lógica será “1“ se o conteúdo do Acumulador for menor (negativo) que o conteúdo do Operando e será “0“ se o conteúdo do Acumulador for maior ou igual (positivo) ao conteúdo do Operando. 57 Manual do PLC V1.00 A instrução AM é uma instrução de comparação de conteúdos de Byte com Byte ou Word com Word entre Acumulador e o Operando indicado na instrução e o resultado em bit (0 ou 1). Em qualquer um dos casos temos sempre a reposta digital. Se o conteúdo do Acumulador for menor que o Operando, o estado do Acumulador será “1” (Flag Zero no estado NZ). Se o conteúdo do Acumulador for maior ou igual ao Operando, o estado do Acumulador será “0” (Flag Zero no estado Z). EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde a uma associação em série de um contato normal aberto numa linha de lógica de ladder. Este contato permanece aberto se a comparação resultar maior ou igual e ficará fechado se a comparação resultar menor. RESULTADOS: Estado do Flag Zero no Acumulador Z Z NZ NZ Comparação se Menor (AM) Acc < Operando Acc >= Operando Acc < Operando Acc >= Operando Resultado da Operação no Acumulador 000H 000H 0FFH 000H Flag Z Z NZ Z EXEMPLO: Em uma programação do MCSplc deseja-se desligar as saídas de indicação de giro do eixo árvore se não existe solicitação de giro e a rotação do eixo árvore estiver abaixo de 10 rpm. 1.º Operando: 2.º Operando: 3.º Operando: 4.º Operando: 5.º Operando: 6.º Operando: . Operação memoria bit M 211.0 memoria bit M 211.1 memória word 85 constante word 10 saída Q 1.0 saída Q 1.1 LN AN L AM R R M M MW KW Q Q 211.0 211.1 85 10 1.0 1.1 Memória indicativa de sentido M03 Memória indicativa de sentido M04 Rotação real do eixo árvore Limite para desligar saídas de sentido de giro Saída indicativa de sentido M03 Saída indicativa de sentido M04 ;Carrega estado inverso da memória M03 ;Lógica E com o estado inverso de M04 ;Carrega conteúdo de MW 85 no Acumulador. ;Testa se MENOR QUE 10 ;Desliga a saída se função M03 ;Desliga a saída se função M03 Após a Operação o Acumulador passa a ter o conteúdo da associação E (AND) entre as memórias de sentido de giro e o resultado da comparação entre a memória MW 85 e a constante 10. Se a comparação der um resultado maior ou igual, nada é feito. Se a comparação der um resultado menor e as duas memórias de sentido de giro estiverem desligadas, as saídas Q 0.1 e Q1.1 serão desligadas. 58 Manual do PLC V1.00 2.2.8 - Operação E (AND) – Compara se MAIOR OU IGUAL OPERANDOS: MB KB MW KW - MEMÓRIAS BYTE - CONSTANTES BYTE - MEMÓRIAS WORD - CONSTANTES WORD AP Operando AP OPERAÇÃO: Especificação do Operando DESCRIÇÃO: O PLC realiza a operação lógica E (AND) entre o estado anterior do Acumulador (estado do Flag Zero) e o resultado da comparação indicada na operação transformado no estado de um bit ("0" ou "1"). Caso o conteúdo anterior do Acumulador seja "0", o resultado da operação será sempre "0", qualquer que seja o resultado da comparação indicada na instrução. O bit que será usado na lógica será "1" se o conteúdo do Acumulador for maior ou igual (positivo) que o conteúdo do Operando e será "0" se o conteúdo do Acumulador for menor que o conteúdo do Operando. A instrução AP é uma instrução de comparação de conteúdos de Byte com Byte ou Word com Word entre Acumulador e o Operando indicado na instrução e o resultado em bit (0 ou 1). Em qualquer um dos casos temos sempre a reposta digital Se o conteúdo do Acumulador for maior ou igual ao Operando, o estado do Acumulador será “1” (Flag Zero no estado NZ). Se o conteúdo do Acumulador for menor que o Operando, o estado do Acumulador será “0” (Flag Zero no estado Z). EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde a uma associação em série de um contato normal aberto numa linha de lógica de ladder. Este contato permanece aberto se a comparação resultar menor e ficará fechado se a comparação resultar maior ou igual. RESULTADOS: Estado do Flag Zero Comparação se Maior Resultado da Operação no no Acumulador ou Igual (AP) Acumulador Acc < Operando Z 000H Acc >= Operando Z 000H Acc < Operando NZ 000H Acc >= Operando NZ 0FFH Flag Z Z Z NZ EXEMPLO: Em uma programação do MCSplc deseja-se indicar ao operador a necessidade de trocar a gama de velocidade do eixo árvore se a rotação programada for superior ao limite de rotação da gama selecionada. 1.º Operando: 2.º Operando: 3.º Operando: 4.º Operando: 59 memoria bit M 220.0 memória word 66 constante word 500 saída Q 2.1 Memória indicativa de gama baixa Rotação solicitada pelo programa CNC Limite para rotação em gama baixa Saída indicativa de troca para gama alta Manual do PLC . Operação V1.00 L L AP == M MW KW Q 220.0 66 500 2.1 ;Carrega estado da memória gama baixa ;Carrega conteúdo de MW 66 no Acumulador. ;Testa se maior ou igual a 500 ;Saída indicativa de troca de gama Após a Operação o Acumulador passa a ter o conteúdo da associação E (AND) entre a memória de gama baixa e o resultado da comparação entre a memória MW 66 e a constante 500. Se a comparação der um resultado menor, a saída fica desligada. Se a comparação der um resultado maior ou igual e a memória de gama baixa estiver ligada, a saída Q 2.1 será ligada. OBSERVAÇÃO: As instruções AM e AP são opostas, ou seja, enquanto AM verifica a se o Acumulador é menor que o Operando, AP verifica se é maior ou igual. 2.2.9 - Operação OU (OR) – Compara se IGUAL OPERANDOS: MB KB MW KW - MEMÓRIAS BYTE - CONSTANTES BYTE - MEMÓRIAS WORD - CONSTANTES WORD OZ Operando OZ OPERAÇÃO: Especificação do Operando DESCRIÇÃO: O PLC realiza a operação lógica OU (OR) entre o estado anterior do Acumulador (estado do Flag Zero) e o resultado da comparação indicada na operação transformado no estado de um bit ("0" ou "1"). Caso o conteúdo anterior do Acumulador seja "1", o resultado da operação será sempre "1", qualquer que seja o resultado da comparação indicada na instrução. O bit que será usado na lógica será "1" se o conteúdo do Acumulador for igual ao conteúdo do Operando e será "0" se o conteúdo do Acumulador for diferente do conteúdo do Operando. A instrução OZ é uma instrução de comparação de conteúdos de Byte com Byte ou Word com Word entre Acumulador e o Operando indicado na instrução e o resultado em bit (0 ou 1). Em qualquer um dos casos temos sempre a reposta digital. Se os conteúdos forem iguais teremos o conteúdo do bit em nível lógico “1” e se estes conteúdos forem diferentes teremos o conteúdo do bit em nível lógico “0”. EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde a uma associação em paralelo de um contato normal aberto numa linha de lógica de ladder. Este contato permanece aberto se a comparação resultar diferente e ficará fechado se a comparação resultar igual. RESULTADOS: Estado do Flag Zero no Acumulador Z Z NZ NZ Comparação se Igual (OZ) Acc = Operando Acc Operando Acc = Operando Acc Operando Resultado da Operação no Acumulador 0FFH 000H 0FFH 0FFH Flag NZ Z NZ NZ 60 Manual do PLC V1.00 EXEMPLO: Como no exemplo da instrução LZ, deseja-se indicar giro do eixo árvore no sentido M03. Para isso detectar a execução das funções auxiliares M03 e M13 pelo programa do CNC. 1.º Operando: 2.º Operando: 3.º Operando: 4.º Operando: 5.º Operando: 6.º Operando: Operação memória byte 72 constante byte 003H memória byte 72 constante byte 013H memoria bit M 211.0 memoria bit M 211.1 L LZ L OZ S R MB KB MB KB M M Número da função auxiliar em execução Código da função auxiliar M03 Número da função auxiliar em execução Código da função auxiliar M03 Memória indicativa de sentido M03 Memória indicativa de sentido M04 72 03H 72 03H 211.0 211.1 ;Carrega conteúdo de MB 72 no Acumulador. ;Testa MB 72 = 003H e energiza Acc se igual ;Carrega conteúdo de MB 72 no Acumulador. ;Testa MB 72 = 013H e faz lógica OU ;Liga a memória de função M03 ;Desliga a memória de função M04 Após a operação o Acumulador passa a ter o conteúdo da associação OU (OR) entre o estado do Acumulador após a instrução LZ e o resultado da comparação entre a memória MB 72 e a constante 013H. 2.2.10 - Operação OU (OR) – Compara se DIFERENTE OPERANDOS: MB KB MW KW ONZ - MEMÓRIAS BYTE - CONSTANTES BYTE - MEMÓRIAS WORD - CONSTANTES WORD OPERAÇÃO: ONZ Operando Especificação do Operando DESCRIÇÃO: O PLC realiza a operação lógica OU (OR) entre o estado anterior do Acumulador (estado do Flag Zero) e o resultado da comparação indicada na operação transformado no estado de um bit ("0" ou "1"). Caso o conteúdo anterior do Acumulador seja "1", o resultado da operação será sempre "1", qualquer que seja o resultado da comparação indicada na instrução. O bit que será usado na lógica será "1" se o conteúdo do Acumulador for diferente do conteúdo do Operando e será "0" se o conteúdo do Acumulador for igual ao conteúdo do Operando. A instrução ONZ é uma instrução de comparação de conteúdos de Byte com Byte ou Word com Word entre Acumulador e o Operando indicado na instrução e o resultado em bit (0 ou 1). Em qualquer um dos casos temos sempre a reposta digital. Se os conteúdos forem diferentes teremos o conteúdo do bit em nível lógico “1” e se forem iguais teremos o conteúdo do bit em nível lógico “0”. EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde a uma associação em paralelo de um contato normal aberto numa linha de lógica de ladder. 61 Manual do PLC V1.00 RESULTADOS: Estado do Flag Zero no Acumulador Z Z NZ NZ Comparação se Menor (ONZ) Acc = Operando Acc Operando Acc = Operando Acc Operando Resultado da Operação no Acumulador 000H 0FFH 0FFH 0FFH Flag Z NZ NZ NZ EXEMPLO: Em uma programação do MCSplc deseja-se detectar o estado de emergência no CNC. Se a entrada de emergência estiver desligada ou se a variável MB 383 estiver carregada com um valor diferente de 000H, o CNC indica ao PLC que irá entrar em emergência. 1.º Operando: 2.º Operando: 3.º Operando: 4.º Operando: 5.º Operando: . Operação entrada I 0.2 memória byte 384 constante byte 000H memoria bit M 211.0 memoria bit M 211.1 LN L ONZ R R I MB KB M M Entrada de emergência Estado de emergência no CNC Código do estado normal (não emergência) Memória indicativa de sentido M03 Memória indicativa de sentido M04 0.2 384 000H 211.0 211.1 ;Carrega estado inverso de I 0.2 ;Carrega conteúdo de MB 384 no Acumulador. ;Testa se diferente de 000H e faz lógica OU ;Desliga a memória de função M03 ;Desliga a memória de função M04 Após a Operação o Acumulador passa a ter o conteúdo do estado inverso de I 0.2 associado em lógica OU ao resultado da comparação entre a memória e a constante. OBSERVAÇÃO: As instruções OZ e ONZ são opostas, ou seja, enquanto OZ verifica a igualdade entre duas grandezas digitais ONZ verifica a desigualdade entre elas. 2.2.11 - Operação OU (OR) – Compara se MENOR OPERANDOS: MB KB MW KW - MEMÓRIAS BYTE - CONSTANTES BYTE - MEMÓRIAS WORD - CONSTANTES WORD OM Operando OM OPERAÇÃO: Especificação do Operando DESCRIÇÃO: O PLC realiza a operação lógica OU (OR) entre o estado anterior do Acumulador (estado do Flag Zero) e o resultado da comparação indicada na operação transformado no estado de um bit ("0" ou "1"). Caso o conteúdo anterior do Acumulador seja "1", o resultado da operação será sempre "1", qualquer que seja o resultado da comparação indicada na instrução. O bit que será usado na lógica será "1" se o conteúdo do Acumulador for menor (negativo) que o conteúdo do Operando e será "0" se o conteúdo do Acumulador for maior ou igual (positivo) em relação ao conteúdo do Operando. 62 Manual do PLC V1.00 A instrução OM é uma instrução de comparação de conteúdos de Byte com Byte ou Word com Word entre Acumulador e o Operando indicado na instrução e o resultado em bit (0 ou 1). Em qualquer um dos casos temos sempre a reposta digital. Se o conteúdo do Acumulador for menor que o Operando, o estado do Acumulador será “1” (Flag Zero no estado NZ). Se o conteúdo do Acumulador for maior ou igual ao Operando, o estado do Acumulador será “0” (Flag Zero no estado Z). EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde a uma associação em paralelo de um contato normal aberto numa linha de lógica de ladder. RESULTADOS: Estado do Flag Zero no Acumulador Z Z NZ NZ Comparação se Menor (OM) Acc < Operando Acc >= Operando Acc < Operando Acc >= Operando Resultado da Operação no Acumulador 0FFH 000H 0FFH 0FFH Flag NZ Z NZ NZ EXEMPLO: Numa aplicação do MCSplc deseja-se determinar se uma variável está fora de uma faixa de valores predeterminada. 1.º Operando: 2.º Operando: 3.º Operando: 4.º Operando: 5.º Operando: 6.º Operando: 7.º Operando: Operação memória byte 450 constante byte 200 memória byte 450 constante byte 200 memória byte 450 constante byte 25 memoria bit M 222.0 L LP L ANZ L OM == MB KB MB KB MB KB M 450 200 450 200 450 25 222.0 Variável a ser monitorada Limite superior para a variável Variável a ser monitorada Limite superior para a variável Variável a ser monitorada Limite inferior para a variável Memória indicativa de variável fora da faixa ;Carrega conteúdo de MB 450 no Acumulador ;Testa se maior ou igual a 200 ;Carrega conteúdo de MB 450 no Acumulador ;Testa se igual a 200 – exclui 200 da lógica ;Carrega conteúdo de MB 450 no Acumulador ;Testa se menor que 25 ;Indicação de variável fora da faixa Após a operação o estado do Acumulador passa a indicar se a variável é MAIOR que 200 E NÃO IGUAL a 200 OU menor que 25. 63 Manual do PLC V1.00 2.2.12 - Operação OU (OR) – Compara se MAIOR OU IGUAL OPERANDOS: MB KB MW KW - MEMÓRIAS BYTE - CONSTANTES BYTE - MEMÓRIAS WORD - CONSTANTES WORD OP Operando OP OPERAÇÃO: Especificação do Operando DESCRIÇÃO: O PLC realiza a operação lógica OU (OR) entre o estado anterior do Acumulador (estado do Flag Zero) e o resultado da comparação indicada na operação transformado no estado de um bit ("0" ou "1"). Caso o conteúdo anterior do Acumulador seja "1", o resultado da operação será sempre "1", qualquer que seja o resultado da comparação indicada na instrução. O bit que será usado na lógica será "1" se o conteúdo do Acumulador for maior ou igual (positivo) do que o conteúdo do Operando e será "0" se o conteúdo do Acumulador for menor (negativo) em relação ao conteúdo do Operando. A instrução OP é uma instrução de comparação de conteúdos de Byte com Byte ou Word com Word entre Acumulador e o Operando indicado na instrução e o resultado em bit (0 ou 1). Em qualquer um dos casos temos sempre a reposta digital Se o conteúdo do Acumulador for maior ou igual ao Operando, o estado do Acumulador será “1” (Flag Zero no estado NZ). Se o conteúdo do Acumulador for menor que o Operando, o estado do Acumulador será “0” (Flag Zero no estado Z). A comparação ”or" se maior ou igual ou positivo não ocorre somente se o valor ou resultado da operação anterior armazenado no Acumulador for igual a um (“0”), e o Acumulador tenha armazenado zero em seu conteúdo. EQUIVALÊNCIA COM LÓGICA DE LADDER: Corresponde a uma associação em paralelo de um contato normal aberto numa linha de lógica de ladder. RESULTADOS: Estado do Flag Zero Comparação se Maior Resultado da Operação no no Acumulador ou Igual (OP) Acumulador Acc < Operando Z 000H Acc >= Operando Z 0FFH Acc < Operando NZ 0FFH NZ Acc >= Operando 0FFH Flag Z NZ NZ NZ EXEMPLO: Tomando o exemplo da instrução OM, numa aplicação do MCSplc deseja-se determinar se uma variável está fora de uma faixa de valores predeterminada. Agora faremos a lógica usando a instrução OP: 1.º Operando: 2.º Operando: 3.º Operando: 4.º Operando: memória byte 450 constante byte 200 memória byte 450 constante byte 200 Variável a ser monitorada Limite superior para a variável Variável a ser monitorada Limite superior para a variável 64 Manual do PLC V1.00 5.º Operando: memória byte 450 6.º Operando: constante byte 25 7.º Operando: memoria bit M 222.0 Operação L LM L OP L ANZ == MB KB MB KB MB KB M 450 25 450 200 450 200 222.0 Variável a ser monitorada Limite inferior para a variável Memória indicativa de variável fora da faixa ;Carrega conteúdo de MB 450 no Acumulador ;Testa se menor que 25 ;Carrega conteúdo de MB 450 no Acumulador ;Testa se maior ou igual a 200 ;Carrega conteúdo de MB 450 no Acumulador ;Testa se igual a 200 – exclui 200 da lógica ;Indicação de variável fora da faixa Após a operação, se o estado de M 222.0 for “1”, isso significa que a variável MB 450 possui um conteúdo que é MENOR que 25 OU MAIOR OU IGUAL a 200 E NÃO IGUAL a 200. Se o estado de M 222.0 for “0”, isso significa que a variável MB 450 possui um conteúdo que é MAIOR OU IGUAL a 25 E MENOR OU IGUAL a 200. OBSERVAÇÃO: As instruções OM e OP são opostas, ou seja, enquanto OM verifica a se o Acumulador é menor que o Operando, OP verifica se é maior ou igual. 65 Manual do PLC V1.00 2.3 - OPERAÇÕES COM BYTES E WORDS 2.3.1 - Carrega Acumulador – Load OPERANDOS: L IB QB MB KB IMB MW KW IM - GRUPO DE 8 ENTRADAS - GRUPO DE 8 SAÍDAS - MEMÓRIA BYTE - CONSTANTE (0 - 255) - MEMÓRIA BYTE INDEXADA - MEMÓRIA WORD - CONSTANTE (0 - 65535) - MEMÓRIA WORD INDEXADA L Operando OPERAÇÃO: Endereço ou Constante DESCRIÇÃO: Transfere para o Acumulador o valor do Operando indicado na instrução. Os flags não são afetados pela instrução. Esta operação é uma função de transferência do conteúdo de um determinado Operando (IB, QB, MB, KB, IMB, MW, KW, IM) para o Acumulador. No caso dos operandos IMB e IM, o endereço dado na instrução contém o endereço da memória onde o programa irá buscar o dado desejado (memória indexada). RESULTADOS: Estado do Acumulador XXXX XXXX Conteúdo do Operando 55 05A02H Resultado da Operação no Acumulador 55 05A02H Flag X X EXEMPLO: Em um programa de PLC deve-se carregar no Acumulador o conteúdo de um byte onde está armazenado o número da ferramente selecionada na máquina. 1.º Operando: memória byte 800 Operação L MB Ferramente selecionada 800 Após a Operação o Acumulador passa a ter o conteúdo da memória M800. 66 Manual do PLC V1.00 2.3.2 - Carrega Acumulador com complemento do conteúdo – Load Not OPERANDOS: IB QB MB KB IMB MW KW IM - GRUPO DE 8 ENTRADAS - GRUPO DE 8 SAÍDAS - MEMÓRIA BYTE - CONSTANTE (0 - 255) - MEMÓRIA BYTE INDEXADA - MEMÓRIA WORD - CONSTANTE (0 - 65535) - MEMÓRIA WORD INDEXADA LN Operando LN OPERAÇÃO: Endereço ou Constante DESCRIÇÃO: Transfere para o Acumulador o conteúdo inverso do Operando indicado na instrução. Os flags não são afetados pela instrução. Esta operação é uma função de transferência do complemento do conteúdo de um determinado Operando (IB, QB, MB, KB, IMB, MW, KW, IM) para o Acumulador. No caso dos operandos IMB e IM, o endereço dado na instrução contém o endereço da memória onde o programa irá buscar o dado desejado (memória indexada). RESULTADOS: Estado do Acumulador XXXX XXXX Conteúdo do Operando 55 05A02H Resultado da Operação no Acumulador 55 05A02H EXEMPLO: Deseja-se carregar no Acumulador o complemento do conteúdo de uma word: 1.º Operando: memória wrd 800 Operação L MW 800 Após a Operação o Acumulador passa a ter o conteúdo da memória MW 800. 67 Flag X X Manual do PLC V1.00 2.3.3 - Operação lógica E – And OPERANDOS: A IB QB MB KB IMB - GRUPO DE 8 ENTRADAS - GRUPO DE 8 SAÍDAS - MEMÓRIAS BYTE - CONSTANTE (0 - 255) - MEMÓRIA BYTE INDEXADA A Operando OPERAÇÃO: Endereço ou Constante DESCRIÇÃO: Realiza a operação lógica E (AND) entre o conteúdo do byte menos significativo do Acumulador e o conteúdo do Operando indicado na instrução (IB, QB, MB, KB e IMB). Caso o conteúdo anterior do Acumulador seja "0" (00H), o resultado da operação será sempre "0", qualquer que seja o conteúdo do byte do Operando indicado na instrução. No caso do operando IMB, o endereço dado na instrução contém o endereço da memória onde o programa irá buscar o dado desejado (memória indexada). O resultado final é armazenado no próprio Acumulador. A função E será realizada bit a bit entre os bits do Acumulador e os bits do Operando. ATENÇÃO: Esta instrução opera apenas com operandos byte! TABELA DA VERDADE: Simbologia pelas Normas ABNT e ASA Valores de Entrada da Operação Acc.bit Operando.bit (valor anterior) 0 0 0 1 1 0 1 1 Valores de Saída Acc.bit (valor atual) 0 0 0 1 OBSERVAÇÃO: Não deve ser utilizada no início de uma operação lógica. Neste caso utilizar a instrução L. EXEMPLO: Em um programa de PLC deseja-se conhecer a posição de um trocador de ferramentas de 6 posições. Os sensores de posição (3 entradas) estão ligados às entradas I 3.2 (bit mais significativo), I 3.1 e I 3.0 (bit menos significativo). Para ler a posição pode-se fazer o seguinte: 1.º Operando: grupo de entradas 3 2.º Operando: constante 00000111B Entradas dos sensores de posição Máscara para separar os sensores ( = 007H) 68 Manual do PLC Operação V1.00 L A IB KB 3 007H ;Carrega grupo de entradas no Acumulador ;Função E entre Acc e IB 3 (seleciona apenas ;os 3 bits a serem usados). O estado do acumulador após a operação será (exemplo): Operação 7 6 Bit Acumulador 0 1 Operando 0 0 Resultado 0 0 bit a bit da Função E do exemplo descrito 5 4 3 2 1 0 Valor em Hexadecimal 0 1 0 0 1 1 053H 0 0 0 1 1 1 007H 0 0 0 0 1 1 003H Flag X X NZ OBSERVAÇÃO O Flag Zero é afetado pela instrução. Se o conteúdo do Acumulador resultar 0, o Flag Zero ficará no estado Z. Caso contrário seu estado será NZ. 2.3.4 - Operação lógica E NEGADO – And Not OPERANDOS: IB QB MB KB IMB - GRUPO DE 8 ENTRADAS - GRUPO DE 8 SAÍDAS - MEMÓRIAS BYTE - CONSTANTE (0 - 255) - MEMÓRIA BYTE INDEXADA AN Operando AN OPERAÇÃO: Endereço ou Constante DESCRIÇÃO: Realiza a operação lógica E NEGADA (AND NOT) entre o conteúdo do byte menos significativo do Acumulador e o conteúdo invertido, bit a bit, do Operando indicado na instrução (IB, QB, MB, KB e IMB). Caso o conteúdo anterior do Acumulador seja "0" (00H), o resultado da operação será sempre "0", qualquer que seja o conteúdo do byte do Operando indicado na instrução. No caso do operando IMB, o endereço dado na instrução contém o endereço da memória onde o programa irá buscar o dado desejado (memória indexada). O resultado final é armazenado no próprio Acumulador. A função E será realizada bit a bit entre os bits do Acumulador e os bits do Operando. ATENÇÃO: Esta instrução opera apenas com operandos byte! 69 Manual do PLC V1.00 TABELA DA VERDADE: Simbologia pelas Normas ABNT e ASA Valores de Entrada da Operação Valores (Operando e Complemento) de Saída Oper.bit Complement Acc.bit Acc.bit (valor anterior) (valor atual) o 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 Acc Acc & Oper.bit 1 Acc Acc Oper.bit OBSERVAÇÃO: Não deve ser utilizada no início de uma operação lógica. Neste caso utilizar a instrução L ou LN. EXEMPLO: 1.º Operando: memória MB 230 2.º Operando: memória MB 231 Operação L AN MB MB 230 231 ;Carrega memória MB 230 no Acumulador ;Função E NEGADA entre Acc e MB 231 O estado do acumulador após a operação será (exemplo): Operação 7 6 bit Acumulador 1 0 0 0 Operando Resultado 0 0 bit a bit da Função E do exemplo descrito 5 4 3 2 1 0 Valor em Hexadecimal 0 1 0 1 0 1 095H 1 0 1 0 1 0 02AH 0 0 0 0 0 0 000H Flag X X Z OBSERVAÇÃO O Flag Zero é afetado pela instrução. Se o conteúdo do Acumulador resultar 0, o Flag Zero ficará no estado Z. Caso contrário seu estado será NZ. 2.3.5 - Operação lógica OU – Or OPERANDOS: O IB QB MB KB IMB - GRUPO DE 8 ENTRADAS - GRUPO DE 8 SAÍDAS - MEMÓRIAS BYTE - CONSTANTE (0 - 255) - MEMÓRIA BYTE INDEXADA O Operando OPERAÇÃO: Endereço ou Constante DESCRIÇÃO: Realiza a operação lógica OU (OR) entre o conteúdo do byte menos significativo do Acumulador e o conteúdo do Operando indicado na instrução (IB, QB, MB, KB e IMB). Caso o conteúdo anterior do Acumulador esteja energizado (0FFH), o resultado da operação será sempre "0FFH", qualquer que seja o conteúdo do Operando indicado na instrução. 70 Manual do PLC V1.00 No caso do operando IMB, o endereço dado na instrução contém o endereço da memória onde o programa irá buscar o dado desejado (memória indexada). O resultado final é armazenado no próprio Acumulador. A função OU será realizada bit a bit entre os bits do Acumulador e os bits do Operando. ATENÇÃO: Esta instrução opera apenas com operandos byte! TABELA DA VERDADE: Simbologia pelas Normas ABNT e ASA Valores de Entrada da Operação Valores de Saída Acc.bit Operando.bit Acc.bit (valor anterior) (valor atual) 0 0 1 1 0 1 0 1 0 1 1 1 OBSERVAÇÃO: Não deve ser utilizada no início de uma operação lógica. Neste caso utilizar a instrução L. EXEMPLO: Em um programa de PLC deve-se realizar um sistema de acionamento por dois grupos de entradas distintas para controle do mesmo processo, pois há dois painéis de comando. Uma forma simples de se solucionar este problema é através da operação O entre estes dois grupos de entradas: 1.º Operando: grupo de entradas IB 1 2.º Operando: grupo de entradas IB 2 Operação L O IB IB 1 2 ;Carrega Acc com estado do grupo 1 ;Função OU do Acc com o grupo 2 O resultado da operação no Acumulador é a lógica OU, bit a bit, do conteúdo do grupo de entradas 1 com o conteúdo do grupo de entradas 2. Operação 7 6 Bit 0 0 Grupo 1 0 1 Grupo 2 Resultado 0 1 bit a bit da Função OU do exemplo descrito 5 4 3 2 1 0 Valor em Hexadecimal 0 1 0 0 0 1 011H 1 0 0 0 1 0 062H 1 1 0 0 1 1 073H Flag X X NZ OBSERVAÇÃO O Flag Zero é afetado pela instrução. Se o conteúdo do Acumulador resultar 0, o Flag Zero ficará no estado Z. Caso contrário seu estado será NZ. 71 Manual do PLC V1.00 2.3.6 - Operação lógica OU NEGADA – Or Not OPERANDOS: ON IB QB MB KB IMB - GRUPO DE 8 ENTRADAS - GRUPO DE 8 SAÍDAS - MEMÓRIAS BYTE - CONSTANTE (0 - 255) - MEMÓRIA BYTE INDEXADA ON Operando OPERAÇÃO: Endereço ou Constante DESCRIÇÃO: Realiza a operação lógica OU (OR) entre o conteúdo do byte menos significativo do Acumulador e o conteúdo inverso do Operando indicado na instrução (IB, QB, MB, KB e IMB). Caso o conteúdo anterior do Acumulador esteja energizado (0FFH), o resultado da operação será sempre "0FFH", qualquer que seja o conteúdo do Operando indicado na instrução. No caso do operando IMB, o endereço dado na instrução contém o endereço da memória onde o programa irá buscar o dado desejado (memória indexada). O resultado final é armazenado no próprio Acumulador. A função OU será realizada bit a bit entre os bits do Acumulador e os bits do Operando. ATENÇÃO: Esta instrução opera apenas com operandos byte! TABELA DA VERDADE: Simbologia pelas Normas ABNT e ASA Valores de Entrada da Operação Valores de (Operando e Complemento) Saída Oper.bit Complement Acc (valor Acc anterior) (valor atual) o 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 OBSERVAÇÃO: Não deve ser utilizada no início de uma operação lógica. Neste caso utilizar a instrução L ou LN. EXEMPLO: 1.º Operando: memória MB 230 2.º Operando: memória MB 231 Operação L ON MB MB 230 231 ;Carrega memória MB 230 no Acumulador ;Função OU NEGADA entre Acc e MB 231 72 Manual do PLC V1.00 O estado do acumulador após a operação será (exemplo): Operação 7 6 Bit 0 0 MB 230 0 0 MB 231 Resultado 1 1 bit a bit da Função E do exemplo descrito 5 4 3 2 1 0 Valor em Hexadecimal 0 1 1 1 0 1 01DH 1 0 1 0 1 0 02AH 0 1 1 1 0 1 0DDH Flag X X NZ OBSERVAÇÃO O Flag Zero é afetado pela instrução. Se o conteúdo do Acumulador resultar 0, o Flag Zero ficará no estado Z. Caso contrário seu estado será NZ. 2.3.7 - Operação lógica OU EXCLUSIVO – eXclusive OR OPERANDOS: IB QB MB KB IMB - GRUPO DE 8 ENTRADAS - GRUPO DE 8 SAÍDAS - MEMÓRIAS BYTE - CONSTANTE (0 - 255) - MEMÓRIA BYTE INDEXADA XO Operando XO OPERAÇÃO: Endereço ou Constante DESCRIÇÃO: Realiza a operação lógica OU EXCLUSIVO entre o conteúdo do byte menos significativo do Acumulador e o conteúdo do Operando indicado na instrução (IB, QB, MB, KB e IMB). No caso do operando IMB, o endereço dado na instrução contém o endereço da memória onde o programa irá buscar o dado desejado (memória indexada). O resultado final é armazenado no próprio Acumulador. A função OU EXCLUSIVO será realizada bit a bit entre os bits do Acumulador e os bits do Operando. ATENÇÃO: Esta instrução opera apenas com operandos byte! TABELA DA VERDADE: Simbologia pelas Normas ABNT e ASA Valores de Entrada da Operação Oper.bit Acc.bit Valores de Saída Acc.bit (valor anterior) (valor atual) 0 1 0 1 0 1 1 0 0 0 1 1 73 Manual do PLC V1.00 OBSERVAÇÃO: Não deve ser utilizada no início de uma operação lógica. Neste caso utilizar a instrução L. EXEMPLO: 1.º Operando: memória MB 230 2.º Operando: memória MB 231 Operação L XO MB MB 230 231 ;Carrega memória MB 230 no Acumulador ;Função OU EXCLUSIVO entre Acc e MB 231 O estado do acumulador após a operação será (exemplo): Operação 7 6 Bit 0 0 MB 230 0 0 MB 231 Resultado 0 0 bit a bit da Função E do exemplo descrito 5 4 3 2 1 0 Valor em Hexadecimal 1 1 1 1 0 1 03DH 1 0 1 0 1 0 02AH 0 1 0 1 1 1 017H Flag X X NZ OBSERVAÇÃO O Flag Zero é afetado pela instrução. Se o conteúdo do Acumulador resultar 0, o Flag Zero ficará no estado Z. Caso contrário seu estado será NZ. 2.3.8 - Operação lógica OU EXCLUSIVO NEGADO – eXclusive Or Not OPERANDOS: IB QB MB KB IMB XON - GRUPO DE 8 ENTRADAS - GRUPO DE 8 SAÍDAS - MEMÓRIAS BYTE - CONSTANTE (0 - 255) - MEMÓRIA BYTE INDEXADA OPERAÇÃO: XON Operando Endereço ou Constante DESCRIÇÃO: Realiza a operação lógica OU EXCLUSIVO entre o conteúdo do byte menos significativo do Acumulador e o conteúdo inverso do Operando indicado na instrução (IB, QB, MB, KB e IMB). No caso do operando IMB, o endereço dado na instrução contém o endereço da memória onde o programa irá buscar o dado desejado (memória indexada). O resultado final é armazenado no próprio Acumulador. A função OU EXCLUSIVO será realizada bit a bit entre os bits do Acumulador e o inverso dos bits do Operando. ATENÇÃO: Esta instrução opera apenas com operandos byte! 74 Manual do PLC V1.00 TABELA DA VERDADE: Simbologia pelas Normas ABNT e ASA Valores de Saída Acc.bit Valores de Entrada da Operação Oper.bit Complemento 0 0 1 1 1 1 0 0 Acc.bit (valor anterior) (valor atual) 0 1 0 1 1 0 0 1 OBSERVAÇÃO: Não deve ser utilizada no início de uma operação lógica. Neste caso utilizar a instrução L ou LN. EXEMPLO: 1.º Operando: memória MB 230 2.º Operando: memória MB 231 Operação L MB XON MB 230 231 ;Carrega memória MB 230 no Acumulador ; Função OU EXCLUSIVO entre Acc e o inverso ;de MB 231 O estado do acumulador após a operação será (exemplo): Operação 7 6 Bit 0 0 MB 230 0 0 MB 231 Resultado 1 1 bit a bit da Função E do exemplo descrito 5 4 3 2 1 0 Valor em Hexadecimal 1 1 1 1 0 1 03DH 1 0 1 0 1 0 02AH 1 0 1 0 0 0 0E8H Flag X X NZ OBSERVAÇÃO O Flag Zero é afetado pela instrução. Se o conteúdo do Acumulador resultar 0, o Flag Zero ficará no estado Z. Caso contrário seu estado será NZ. 75 Manual do PLC V1.00 2.3.9 - ATribuição incondicional de conteúdo OPERANDOS: = IB QB MB IMB MW IM - GRUPO DE 8 ENTRADAS - GRUPO DE 8 SAÍDAS - MEMÓRIA BYTE - MEMÓRIA BYTE INDEXADA - MEMÓRIA WORD - MEMÓRIA WORD INDEXADA = Operando OPERAÇÃO: Endereço DESCRIÇÃO: Atribui ao Operando indicado na instrução o conteúdo do byte menos significativo do Acumulador. O conteúdo do Acumulador não é alterado por esta instrução. Esta operação transfere para o Operando (IB, QB, MB, IMB, MW, IM) o conteúdo do Acumulador. No caso de operação com byte, é transferido o conteúdo do byte menos significativo do Acumulador. De forma geral esta operação é realizada após uma operação lógica, aritmética, comparação, leitura de dispositivos de I/O (entradas / saídas) com finalidade de se realizar uma ação ou mesmo armazenar um resultado para ser usado posteriormente no programa. EXEMPLO: Em um programa de PLC deseja-se conhecer a posição de um trocador de ferramentas de 6 posições e guardar o resultado numa memória byte. Os sensores de posição (3 entradas) estão ligados às entradas I 3.2 (bit mais significativo), I 3.1 e I 3.0 (bit menos significativo). Para ler a posição pode-se fazer o seguinte: 1.º Operando: grupo de entradas 3 2.º Operando: constante 00000111B 3.º Operando: memória MB 650 Entradas dos sensores de posição Máscara para separar os sensores ( = 007H) Memória de posiçao da ferramenta Operação ;Carrega grupo de entradas no Acumulador ;Função E entre Acc e IB 3 (seleciona apenas ;os 3 bits a serem usados). ;Posição da ferramenta L A IB KB 3 007H = MB 650 O estado da memória após a operação será (exemplo): Operação 7 6 Bit Acumulador 0 1 0 0 Operando Acumulador 0 0 MB 650 0 0 bit a bit da Função = do exemplo descrito 5 4 3 2 1 0 Valor em Hexadecimal 0 1 0 0 1 1 053H 0 0 0 1 1 1 007H 0 0 0 0 1 1 003H 0 0 0 0 1 1 003H Flag X X NZ OBSERVAÇÃO A instrução não afeta o conteúdo do Acumulador e dos Flags. 76 Manual do PLC V1.00 2.3.10 - Atribuição condicional de conteúdo – Caso Flag NZ OPERANDOS: MB IMB MW IM - MEMÓRIAS BYTE - MEMÓRIA BYTE INDEXADA - MEMÓRIA WORD - MEMÓRIA WORD INDEXADA == Operando == OPERAÇÃO: Endereço DESCRIÇÃO: Atribui o conteúdo do Acumulador para o Operando (MB, IMB, MW, IM) indicado na operação se o resultado da operação lógica anterior for “1”. Caso contrário não realiza a atribuição. Esta instrução é uma função de atribuição condicional. O conteúdo do Acumulador só será transferido ao Operando se o Flag Zero estiver no estado NZ. Caso contrário, o Operando não é afetado. EXEMPLO: Em um programa de PLC deseja-se conhecer a posição de um trocador de ferramentas de 6 posições e guardar o resultado numa memória byte. Os sensores de posição (3 entradas) estão ligados às entradas I 3.2 (bit mais significativo), I 3.1 e I 3.0 (bit menos significativo). Porém, existe um outro sinal para indicar que a posição é válida (“strobe”). Para ler a posição pode-se fazer o seguinte: 1.º Operando: 2.º Operando: 3.º Operando: 4.º Operando: 5.º Operando: Operação grupo de entradas 3 constante 00000111B memória MB 1550 entrada I 2.3 memória MB 650 Entradas dos sensores de posição Máscara para separar os sensores ( = 007H) Memória de rascunho Habilitação de leitura de posição da ferramenta Memória de posiçao da ferramenta L A IB KB 3 007H = MB 1550 ;Carrega grupo de entradas no Acumulador ;Função E entre Acc e IB 3 (seleciona apenas ;os 3 bits a serem usados) ;Guarda a informação L L == I MB MB 2.3 1550 650 ;Testa posição válida ;Guarda a informação ;Posição da ferramenta O estado da memória após a operação será (exemplo): Operação da Função == do exemplo descrito MB 650 antes IB 3 MB 1550 I 2.3 Flag MB 650 depois 5 053H 003H 0 Z 5 5 053H 003H 1 NZ 3 OBSERVAÇÃO A instrução não afeta o conteúdo do Acumulador e dos Flags. 77 Manual do PLC V1.00 2.3.11 - Atribuição condicional de conteúdo – Caso Flag Z OPERANDOS: MB IMB MW IM - MEMÓRIAS BYTE - MEMÓRIA BYTE INDEXADA - MEMÓRIA WORD - MEMÓRIA WORD INDEXADA =N Operando =N OPERAÇÃO: Endereço DESCRIÇÃO: Atribui o conteúdo do Acumulador para o Operando (MB, IMB, MW, IM) indicado na operação se o resultado da operação lógica anterior for “0”. Caso contrário não realiza a atribuição. Esta instrução é uma função de atribuição condicional. O conteúdo do Acumulador só será transferido ao Operando se o Flag Zero estiver no estado Z. Caso contrário, o Operando não é afetado. EXEMPLO: Em um programa de PLC deseja-se conhecer a posição de um trocador de ferramentas de 6 posições e guardar o resultado numa memória byte. Os sensores de posição (3 entradas) estão ligados às entradas I 3.2 (bit mais significativo), I 3.1 e I 3.0 (bit menos significativo). Porém, existe um outro sinal para indicar que a posição é válida (“strobe”). Quando a posição não é válida, deseja-se carregar a constante 000H na memória indicativa de posição da torre. Para ler a posição pode-se fazer o seguinte: 1.º Operando: 2.º Operando: 3.º Operando: 4.º Operando: 5.º Operando: Operação grupo de entradas 3 constante 00000111B memória MB 1550 entrada I 2.3 memória MB 650 L A IB KB 3 007H = MB 1550 L L == L =N I MB MB KB MB 2.3 1550 650 0 650 Entradas dos sensores de posição Máscara para separar os sensores ( = 007H) Memória de rascunho Habilitação de leitura de posição da ferramenta Memória de posiçao da ferramenta ;Carrega grupo de entradas no Acumulador ;Função E entre Acc e IB 3 (seleciona apenas ;os 3 bits a serem usados) ;Guarda temporariamente a informação ;Testa posição válida ;Guarda a informação ;Posição da ferramenta – caso posição válida ;Posição da ferramenta – caso posição inválida O estado da memória após a operação será (exemplo): Operação das Funções == e =N do exemplo descrito MB 650 antes IB 3 MB 1550 I 2.3 Flag MB 650 depois 5 053H 003H 0 Z 0 5 053H 003H 1 NZ 3 OBSERVAÇÃO A instrução não afeta o conteúdo do Acumulador e dos Flags. 78 Manual do PLC V1.00 2.3.12 - Comparação com memória ou constante – ComPare OPERANDOS: IB QB MB KB MW KW - GRUPO DE 8 ENTRADAS - GRUPO DE 8 SAÍDAS - MEMÓRIA BYTE - CONSTANTE (0 - 255) - MEMÓRIA WORD - CONSTANTE (0 - 65535) CP Operando CP OPERAÇÃO: Endereço ou Constante DESCRIÇÃO: Compara o conteúdo do Acumulador com o conteúdo do Operando indicado na instrução. Esta operação prepara as condições de teste para salto condicional descritas adiante. Esta operação afeta apenas os Flags do PLC sem alterar o conteúdo do acumulador. Como a instrução afeta os Flags, pode-se, após sua execução, realizar saltos condicionais ou executar qualquer outra instrução (atribuição de bit, set, reset, uma atribuição condicional de byte ou word) que dependa da condição dos Flags. ATENÇÃO: Após esta instrução não se pode prosseguir com uma associação lógica de bits (A, AN, O, …) pois o conteúdo do Acumulador fica indefinido! EXEMPLO: Supondo-se que um dado momento de um programa do MCSplc temos o controle do número de ciclos de uma fresa, onde este valor é fixado em uma memória vinculada ao dado parâmetro do CNC e é feita a comparação com a memória que armazena o número de ciclos já executados. Uma forma de se fazer este controle é usando a instrução CP seguida de um salto condicional, como no exemplo a seguir: 1.º Operando: memória MB 216 2.º Operando: memória MB 032 Operação L CP JP MB 216 MB 032 ENCERRA Número de ciclos de fresagem da máquina Limite de ciclos para a fresa ;Carrega o n.º de ciclos realizados. ;Compara com o limite estipulado ;Se atingido o número de ciclos desvia o ;programa para encerar a produção : : ENCERRA: RF RF J : : Q 0.4 Q 1.7 PRG0 OBSERVAÇÃO A instrução não afeta o conteúdo do Acumulador, apenas os Flags. 79 Manual do PLC V1.00 2.3.13 - Rotação à direita do conteúdo do acumulador – SHift Right OPERANDOS: SHR NÃO POSSUI OPERAÇÃO: SHR DESCRIÇÃO: Rotaciona (desloca) o conteúdo do Acumulador um bit à direita. O bit 0 do Acumulador é transferido para o flag “CARRY” e o valor do flag “CARRY” é transferido ao bit 7 do Acumulador. Esta instrução habilita condições de teste para salto condicional descritas adiante. Esta instrução realiza o deslocamento, bit a bit, do conteúdo do Acumulador com o flag de CARRY movimentando cada bit uma posição para a direita. Uma aplicação desta instrução é a de verificar e armazenar o flag de CARRY para uma futura decisão, ou para construção de dispositivos, cujo acionamento das saídas ocorre de forma seqüencial, realizar uma divisão por dois. ATENÇÃO: Esta instrução opera apenas com operandos byte! Após esta instrução não se pode prosseguir com uma associação lógica de bits (A, AN, O, …) pois o conteúdo do Acumulador fica indefinido! EXEMPLO: Supondo-se em um dado momento do programa temos o Acumulador com o valor de 076H (118 em decimal) o flag de CARRY em nível lógico zero(“0”) e é realizada a instrução SHR, teremos então os seguintes resultados: Operação L IB SHR = QB 1 ;Carrega o acumulador com o valor da entrada I1 (I1 = ;076H logo Acc = 076H). ;Rotaciona o conteúdo do Acumulador. ;Atribui o valor rotacionado da entrada para a saída ;(QB = 03BH). 1 Tabela com os valores do Acumulado e do flag de CARRY, antes e depois da instrução de Rotação para a Direita. Conteudo CARRY Antes Depois 0 0 Acc 076H 03BH Valores em bits (deslocamento para a direita ) C 7 6 5 4 3 2 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 O conteúdo do Acumulador antes da instrução era 076H que em decimal corresponde a 118 e após a rotação de seu conteúdo este valor passou para 03BH que corresponde em decimal ao número 59, ou seja, ao girar (rotacionar) um conteúdo para a direita estará realizando uma divisão de seu conteúdo por dois. 80 Manual do PLC V1.00 2.3.14 - Rotação à esquerda do conteúdo do acumulador – Shift Left OPERANDOS: SHL NÃO POSSUI OPERAÇÃO: SHL DESCRIÇÃO: Rotaciona (desloca) o conteúdo do Acumulador um bit à esquerda. O bit 7 do Acumulador é transferido para o flag “CARRY” e o valor do flag “CARRY” é transferido ao bit 0 do Acumulador. Esta instrução habilita condições de teste para salto condicional descritas adiante. Esta instrução realiza o deslocamento, bit a bit, do conteúdo do Acumulador com o flag de CARRY movimentando cada bit uma posição para a esquerda. Uma aplicação desta instrução é a de verificar e armazenar o flag de CARRY para uma futura decisão, ou para construção de dispositivos, cujo acionamento das saídas ocorre de forma seqüencial, realizar uma multiplicação por dois. ATENÇÃO: Esta instrução opera apenas com operandos byte! Após esta instrução não se pode prosseguir com uma associação lógica de bits (A, AN, O, …) pois o conteúdo do Acumulador fica indefinido! EXEMPLO: Supondo-se em um dado momento do programa temos o Acumulador com o valor de 025H (37 em decimal) o flag de CARRY em nível lógico zero (“0”) e é realizada a instrução SHL, teremos então os seguintes resultados: Operação L IB SHL = QB 0 ;Carrega Acumulador com o conteúdo da entrada I 0 ;Rotaciona o conteúdo do Acumulador. ;Atribui o valor rotacionado da entrada para a saída Q0 0 Tabela com os valores do Acumulado e do flag de CARRY, antes e depois da instrução de Rotação para a Direita. Conteúdo CARRY Acc Antes Depois 0 0 025H 04AH Valores em bits (deslocamento para a esquerda ) C 7 6 5 4 3 2 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 O conteúdo do Acumulador antes da instrução era 025H que em decimal corresponde a 37 e após a rotação de seu conteúdo este valor passou para 04AH que corresponde em decimal ao número 74, ou seja, ao girar (rotacionar) um conteúdo para a esquerda estará realizando uma multiplicação de seu conteúdo por dois. 81 Manual do PLC V1.00 2.3.15 - Soma com memória ou constante – ADD OPERANDOS: IB QB MB KB MW KW ADD - GRUPO DE 8 ENTRADAS - GRUPO DE 8 SAÍDAS - MEMÓRIAS BYTE - CONSTANTE (0 - 255) - MEMÓRIA WORD - CONSTANTE (0 - 65535) OPERAÇÃO: ADD Operando Endereço ou Constante DESCRIÇÃO: Soma o conteúdo do Acumulador com o conteúdo do Operando indicado na instrução. No caso de instruções que operam com byte, o conteúdo do flag CARRY também é adicionado. O resultado é armazenado no próprio Acumulador. Esta instrução habilita condições de teste para salto condicional descritas adiante. ATENÇÃO: Após esta instrução não se pode prosseguir com uma associação lógica de bits (A, AN, O, …) pois o conteúdo do Acumulador fica indefinido! OBSERVAÇÃO: O status do flag CARRY, resultante de operações anteriores, afeta o resultado de operações realizadas com bytes. Caso não se deseje a influência deste flag, deve-se iniciar a seqüência lógica com a instrução EN. No caso de soma de words, o Flag CARRY não afeta o resiltado. EXEMPLO: Supondo-se que um dado momento de um programa do MCSplc temos a execução de uma subrotina que controla o posicionamento do eixo X em relação a posição relativa adotada (zero máquina) durante o processo de usinagem, para o eixo efetuar avanços em relação a esta posição relativa, deve-se somar a posição relativa com a posição desejada, como no exemplo a seguir: 1.º Operando 2.º Operando 3.º Operando M 239; valor da posição relativa do eixo X (zero máquina). M 240; posição desejada para o eixo X em relação ao zero máquina M 241; posição real do eixo X (M239 + M240). Valores das memórias antes da sub-rotina: Valor do flag de Carry = 0 (não houve transbordo de capacidade na operação anterior) 7 6 5 4 3 2 1 0 Valores em hexadecimal das posições bit Acumulador 1 0 0 0 1 0 1 0 08AH (resultado de uma operação anterior) 1 0 1 0 1 0 0 0 0A8H (posição relativa - zero máquina) MB 239 0 0 1 1 0 1 1 0 036H (posição desejada) MB 240 1 0 1 1 0 0 0 0 0B0H (posição final) MB 241 Operação L MB ADD MB = MB 239; carrega posição relativa. 240; realiza a adição entre as posições relativa e desejada. 241; armazena o resultado da posição final. 82 Manual do PLC V1.00 Valores das memórias após realizado programa de sub-rotina: Valor do flag de Carry = 0 (não houve transbordo de capacidade na operação de soma) 7 6 5 4 3 2 1 0 valores em hexadecimal das posições Bit 1 1 0 1 1 1 1 0 0DEH (resultado da adição) Acumulador 1 0 1 0 1 0 0 0 0A8H (posição relativa - zero máquina) MB 239 0 0 1 1 0 1 1 0 036H (posição desejada) MB 240 1 1 0 1 1 1 1 0 0DEH (posição final) MB 241 Conforme resultado armazenado em memória o eixo poderá avançar para sua respectiva posição final, mas se o valor armazenado exceder o máximo deslocamento físico que o eixo pode realizar deve-se gerar uma mensagem de erro e não realizar tal deslocamento, pode-se constatar a ocorrência deste fato de duas formas, sendo a primeira ligada ao flag de Carry que toda vez estiver em nível lógico um (“1”) indicará que a soma excedeu a capacidade do registrador (transbordo) ou realizando uma comparação com o valor máximo. 2.3.16 - Subtração com memória ou constante – SUBtract OPERANDOS: IB QB MB KB MW KW SUB - GRUPO DE 8 ENTRADAS - GRUPO DE 8 SAÍDAS - MEMÓRIA BYTE - CONSTANTE (0 - 255) - MEMÓRIA WORD - CONSTANTE (0 - 65535) OPERAÇÃO: SUB Operando Endereço ou Constante DESCRIÇÃO: Subtrai do conteúdo do Acumulador o conteúdo do Operando indicado na instrução. No caso de instruções que operam com byte, o conteúdo do flag CARRY também é subtraído. O resultado é armazenado no próprio Acumulador. Esta instrução habilita condições de teste para salto condicional descritas adiante. ATENÇÃO: Após esta instrução não se pode prosseguir com uma associação lógica de bits (A, AN, O, …) pois o conteúdo do Acumulador fica indefinido! OBSERVAÇÃO: O status do flag CARRY, resultante de operações anteriores, afeta o resultado de operações realizadas com bytes. Caso não se deseje a influência deste flag, deve-se iniciar a seqüência lógica com a instrução EN. No caso de subtração de words, o Flag CARRY não afeta o resiltado. EXEMPLO: Supondo-se que um dado momento de um programa do MCSplc temos a execução de uma subrotina que controla o posicionamento do eixo X em relação a posição relativa adotada (zero máquina) durante o processo de usinagem, mas agora o eixo deve efetuar recuos em relação a esta posição relativa, deve-se subtrair a posição relativa com a posição desejada, como no exemplo a seguir: 83 Manual do PLC V1.00 1.º Operando 2.º Operando 3.º Operando M 239; valor da posição relativa do eixo X (zero máquina). M 240; posição desejada para o eixo X em relação ao zero máquina M 241; posição real do eixo X (M239 - M240). Valores das memórias antes da sub-rotina: Valor do flag de CARRY = 0 (não houve resultado negativo na operação anterior) bit 7 6 5 4 3 2 1 0 Valores em hexadecimal das posições 1 0 0 0 1 0 1 0 08AH (resultado de uma operação anterior) Acumulador A 1 0 1 0 1 0 0 0 0 8H (posição relativa - zero máquina) MB 239 0 1 1 1 0 1 0 1 075H (posição desejada) MB 240 1 0 1 1 0 0 0 1 0B1H (posição final) MB 241 Operação L MB SUB MB = MB 239; carrega posição relativa. 240; realiza a adição entre as posições relativa e desejada. 241; armazena o resultado da posição final. Valores das memórias após realizado programa de sub-rotina: Valor do flag de CARRY = 0 (não houve resultado negativo na operação de subtração) bit 7 6 5 4 3 2 1 0 valores em hexadecimal das posições 0 0 1 1 0 0 1 1 033H (resultado da subtração) Acumulador 1 0 1 0 1 0 0 0 0A8H (posição relativa - zero máquina) MB 239 0 1 1 1 0 1 0 1 075H (posição desejada) MB 240 0 0 1 1 0 0 1 1 033H (posição final) MB 241 Conforme resultado armazenado em memória o eixo poderá recuar para sua respectiva posição final, mas se o valor armazenado exceder o máximo deslocamento físico que o eixo pode realizar deve-se gerar uma mensagem de erro e não realizar tal deslocamento, pode-se constatar a ocorrência deste fato realizando uma comparação com o valor máximo de recuo. 2.3.17 - Incremento OPERANDO: INC MB MW - MEMÓRIA (BYTE) - MEMÓRIA WORD INC Operando OPERAÇÃO: Endereço DESCRIÇÃO: Soma 1 no conteúdo do operando indicado na instrução. O conteúdo do acumulador não é afetado pela instrução. EXEMPLO: Supondo-se em um dado momento do programa temos a seguinte operação aritmética entre duas memórias e conforme o resultado deve-se desviar o programa para uma rotina que trata este fato, teremos então os seguintes resultados: 1.º Operando 2.º Operando 3.º Operando I 0.5; sensor de contagem de peças produzidas. M 216; registro de peças produzidas, M216 = 057H. M217; quantidade de peças para produzir, M217 = 080H. Operação L I 0.5; prepara a operação de contagem. 84 Manual do PLC V1.00 EDG ; detecta as transições de sinal no sensor. JNZ PRODUZIR; verifica se o sensor de peças detectou a produção de uma nova peça. : : : PRODUZIR: ; incrementa memória de peças produzidas. INC MB 216; controla número de peças produzidas. L MB 216; carrega memória em Acc. LP MB 217; compara a produção. JNZ FINALIZAR; completada a produção deve-se parar a máquina. : Instrução MB 216 MB 217 L JNZ INC L LP JNZ 057H 057H 057H 058H 058H 058H 058H 080H 080H 080H 080H 080H 080H 080H I 0.5 0 1 1 1 1 1 1 Operação armazena Desvia programa se o sensor foi acionado. Incrementa a memória (MB216 = M216 + 1) Carrega a memória no Acumulador Compara se igual Se resultado da comparação for 0, salta p/ FINALIZAR Na tabela acima pode-se verificar que antes da instrução de incremento a memória possuía o conteúdo de 057H e após a instrução ela passa a ter 058H, ou seja, foi somado um em seu conteúdo anterior. 2.3.18 – Decremento OPERANDO: MB MW DEC - MEMÓRIA BYTE - MEMÓRIA WORD OPERAÇÃO: DEC Operando Endereço DESCRIÇÃO: Subtrai 1 no conteúdo do operando indicado na instrução. O conteúdo do acumulador não é afetado pela instrução. EXEMPLO: Supondo-se em um dado momento do programa temos uma operação com memória e conforme o resultado deve-se desviar o programa para uma rotina que trata este fato, teremos então os seguintes resultados: 1.º Operando Q 0.7; saída de lubrificação. 2.º Operando M 216; controle de lubrificação da peça durante o ciclo de usinagem do CNC, M241 = 07H. Operação 85 ED ; detecta acionamento da saída. Manual do PLC V1.00 JNZ CONTROLE; caso a saída tenha sido ligada, vai para o controle de lubrificação de peças. : : ; decrementa ciclo de lubrificação. DEC MB 241; decrementa número de vezes a ser lubrificada peça. L MB 241; carrega memória em Acc. JZ FINALIZAR; completado ciclo de lubrificação, se zero. CONTROLE: Instrução MB 241 Acc Q 0.7 Operação EG JNZ DEC L JZ 07H 07H 07H 06H 06H 06H 10H 10H 10H 10H 10H 10H 0 1 1 1 1 1 detecta acionamento da saída Q 0.7 desvia programa se a saída foi ligada. decrementa a memória (MB241 = M241 - 1) carrega a memória no Acumulador se resultado da comparação for =0, salta p/ FINALIZAR Na tabela acima pode-se verificar que antes da instrução de decremento a memória possuía o conteúdo de 07H e após a instrução ela passa a ter 06H, ou seja,B foi subtraído um do seu conteúdo anterior. 2.3.19 – Multiplicação com memória OPERANDO: MW MULT - MEMÓRIA WORD OPERAÇÃO: MULT Operando Endereço DESCRIÇÃO: Multiplica o conteúdo do Acumulador, em Word, pelo conteúdo do Operando (MW) indicado na instrução. O resultado é um número de 4 Bytes. A Word inferior é carregada no Acumulador e a Word superior no Operando. ATENÇÃO: O conteúdo original do Operando é destruído pela operação! EXEMPLO: Instrução Valores Iniciais MULT MW 390 Registradores envolvidos Operando Acumulador Flag 7890H 0176H C=0 00B0H 2260H C=0 86 Manual do PLC V1.00 2.3.20 - Divisão com memória OPERANDO: DIV MW - MEMÓRIA DUPLA WORD (4 BYTES) DIV Operando OPERAÇÃO: Endereço DESCRIÇÃO: Divide o conteúdo do Operando indicado na instrução (4 Bytes - dividendo) pelo conteúdo do Acumulador (divisor). O quociente é carregado no Acumulador (2 Bytes). O resto é carregado no operando. O dividendo e o divisor devem ser positivos (bit 31 do operando = 0 e bit 15 do acumulador = 0). O dividendo e o divisor devem ser tais que a divisão resulte num valor não superior a 65535. Se a operação for correta o flag de SINAL estará setado (Flag no estado M). Se estiver errada, o Flag de SINAL estará zerado (Flag no estado P). ATENÇÃO: O conteúdo original do Operando é destruído pela operação! EXEMPLO: Instrução Valores Iniciais DIV MW 87 350 Registradores envolvidos Acumulador Operando Flag 9C40H 0320H M=1 0032H 0000H M=1 Manual do PLC V1.00 2.4 - OPERAÇÕES DE DESVIO DE EXECUÇÃO 2.4.1 - Salto incondicional OPERANDO: J ENDEREÇO DE DESTINO DO SALTO OPERAÇÃO: J “RÓTULO” DESCRIÇÃO: Salta a execução do PLC para o endereço indicado de forma incondicional. O conteúdo do acumulador não é afetado pela operação. 2.4.2 - Salto se operação lógica resultar IGUAL – Jump Zero OPERANDO: JZ ENDEREÇO DE DESTINO DO SALTO OPERAÇÃO: JZ “RÓTULO” DESCRIÇÃO: Salta a execução do PLC para o endereço indicado caso o resultado da operação lógica ou aritmética anterior seja zero (Flag Zero no estado Z). Caso contrário, não ocorre salto. O conteúdo do acumulador não é afetado por esta instrução. Esta operação está diretamente relacionada com o resultado final de uma operação lógica ou aritmética, o qual define se haverá desvio (resultado final igual a zero, Flag Zero no estado Z ) ou não (resultado final não zero, Flag Zero no estado NZ). TABELA DA VERDADE: Valores do Operando Acc (valor atual) XXXX XXXX Flag Zero SALTO Ação Estado Z Ocorre salto NZ Não ocorre salto EXEMPLO: Deve-se realizar um desvio no programa dependendo do estado de uma associação lógica: 1.º Operando: entrada I 1.1 2.º Operando: entrada I 2.0 3.º Operando: endereço do salto Operação L O JZ I 1.1 I 2.0 PARADA : : ;Carrega o estado de I 1.1 ;Função OU com o o estado de I 2.0 ;Desvia para o endereço PARADA se Flag Zero = Z PARADA: : 88 Manual do PLC V1.00 Se as duas entradas estiverem desligadas, o programa desvia sua execução para o endereço do rótulo PARADA. O conteúdo do Acumulador se mantém após o salto. OBSERVAÇÃO: Deve-se evitar a utilização de desvios para endereços anteriores ao da lógica que origina o salto. De forma controlada pode-se realizar “loops” de programação. 2.4.3 - Salto se operação lógica resultar DIFERENTE – Jump Not Zero OPERANDO: JNZ ENDEREÇO DE DESTINO DO SALTO OPERAÇÃO: JNZ “RÓTULO” DESCRIÇÃO: Salta a execução do PLC para o endereço indicado caso o resultado da operação lógica ou aritmética anterior seja diferente de zero (Flag Zero no estado NZ). Caso contrário, não ocorre salto. O conteúdo do acumulador não é afetado por esta instrução. Esta operação está diretamente relacionada com o resultado final de uma operação lógica ou aritmética, o qual define se haverá desvio (resultado final diferente de zero, Flag Zero no estado NZ) ou não (resultado final igual a zero, Flag Zero no estado Z). TABELA DA VERDADE: Valores do Operando Acc (valor atual) XXXX XXXX Flag Zero SALTO Ação Estado Z Não ocorre salto NZ Ocorre salto EXEMPLO: Deve-se realizar um desvio no programa dependendo do estado de uma associação lógica: 1.º Operando: entrada I 1.3 2.º Operando: entrada I 1.5 3.º Operando: endereço do salto Operação L I 1.3 A I 1.5 JNZ PARADA : : PARADA: : ;Carrega o estado de I 1.3 ;Função OU com o o estado de I 1.5 ;Desvia para o endereço PARADA se Flag Zero = NZ Se as duas entradas estiverem ligadas, o programa desvia sua execução para o endereço do rótulo PARADA. O conteúdo do Acumulador se mantém após o salto. 89 Manual do PLC V1.00 OBSERVAÇÃO: Deve-se evitar a utilização de desvios para endereços anteriores ao da lógica que origina o salto. De forma controlada pode-se realizar “loops” de programação. 2.4.4 - Salto se operação lógica resultar MAIOR OU IGUAL – Jump Positive OPERANDO: JP ENDEREÇO DE DESTINO DO SALTO OPERAÇÃO: JP “RÓTULO” DESCRIÇÃO: Salta a execução do PLC para o endereço indicado pelo “LABEL” caso o resultado da operação aritmética realizada antes desta instrução, com Byte, seja positivo. Caso contrário, não ocorre salto. O conteúdo do acumulador não é afetado por esta instrução. Esta operação está diretamente relacionada com o resultado final de uma operação lógica ou aritmética anterior, cujo resultado final desta operação define se haverá desvio, caso o valor final da operação for igual ou maior que zero (flag de SINAL setado) ou se não haverá desvio, caso o valor final for menor do que zero (flag de SINAL resetado). EXEMPLO: Supondo-se em um dado momento do programa temos a seguinte operação aritmética entre duas memórias e conforme o resultado deve-se desviar o programa para uma rotina que trata este fato, teremos então os seguintes resultados: 1.º Operando 2.º Operando Operação L MB SUB MB JP PRODUZIR: : : L : M220; memória de peças a produzir, M220 = 0F2H. M221; memória de peças produzidas, M221 = 0C4H. 220; prepara a operação. 221; verifica se ainda não foi atingido a meta de produção. PRODUZIR; caso ainda não tenha sido produzido a quantidade especificada, desvia-se o programa para continuar a produção. MB 221; produção. Instrução SINAL Acc MB 220 MB 221 Operação L 0 1 XX 0F2H 0F2H 0F2H 0C4H 0C4H SUB 1 02EH 0F2H 0C4H JP 1 02EH 0F2H 0C4H armazena subtração, verifica se não foi atingido a meta de produção. desvia o programa Na tabela acima pode-se verificar que antes da instrução de subtração o Acumulador possuía um conteúdo e o flag de SINAL está setado, ou seja, o valor do Acumulador é um número positivo e ao se realizar a instrução de subtração tem-se como resultado da operação um valor positivo (Acumulador com um valor maior ou igual a zero e o flag de SINAL continua setado) logo continuase a produção, feita através do desvio p/ PRODUZIR. 90 Manual do PLC V1.00 OBSERVAÇÃO: Deve-se evitar a utilização de desvios para endereços anteriores ao da lógica que origina o salto. De forma controlada pode-se realizar “loops” de programação. 2.4.5 - Salto se operação lógica resultar MENOR – Jump Minus OPERANDO: JM ENDEREÇO DE DESTINO DO SALTO OPERAÇÃO: JM “RÓTULO” DESCRIÇÃO: Salta a execução do PLC para o endereço indicado pelo “LABEL” caso o resultado da operação aritmética realizada antes desta instrução, com Byte, seja negativo. Caso contrário, não ocorre salto. O conteúdo do acumulador não é afetado por esta instrução. Esta operação está diretamente relacionada com o resultado final de uma operação lógica ou aritmética anterior, cujo resultado final desta operação define se haverá desvio, caso o valor final da operação for menor do que zero (flag de SINAL resetado) não haverá desvio, caso o valor final for igual ou maior que zero (flag de SINAL setado) acontece o desvio e a operação é concluía. EXEMPLO: Supondo-se em um dado momento do programa temos a seguinte operação aritmética entre duas memórias e conforme o resultado deve-se desviar o programa para uma rotina que trata este fato, teremos então os seguintes resultados: 1.º Operando 2.º Operando M223; memória de posição limite de deslocamento, M223 = 0A5H. M225; memória de posição do deslocamento, M225 = 0A9H. Operação L MB 223; prepara a operação. SUB MB 225; verifica se não foi excedida a posição limite. JM RECUAR; caso constatado que foi ultrapassado a posição limite desvia-se o fluxo do programa para tratar do recuo do eixo em questão. : RECUAR: L : MB ‘ 223 ; tratar do recuo. Instrução SINAL Acc MB 223 MB 225 Operação L 1 1 XX 0F2H 0A5H 0A5H 0A9H 0A9H SUB 0 057H 0A5H 0A9H JM 0 057H 0A5H 0A9H armazena subtração, verifica se não ultrapassado a posição limite. desvia o programa Na tabela acima pode-se verificar que antes da instrução de subtração o Acumulador possuía um conteúdo e o flag de SINAL está setado, ou seja, o valor do Acumulador é um número positivo e ao se realizar a instrução de subtração tem-se como resultado da operação um valor negativo (Acumulador com um valor menor que zero e o flag de SINAL foi resetado) logo desvia-se o programa para realizar as devidas operações para corrigir o problema, através do desvio. 91 Manual do PLC V1.00 OBSERVAÇÃO: Deve-se evitar a utilização de desvios para endereços anteriores ao da lógica que origina o salto. De forma controlada pode-se realizar “loops” de programação. 2.4.6 - Salto incondicional para endereço dado em tabela OPERANDO: JT ENDEREÇO DO INÍCIO DA TABELA OPERAÇÃO: JT “RÓTULO” DESCRIÇÃO: Salta a execução do PLC para um endereço contido numa tabela de endereços. O conteúdo do Acumulador aponta qual endereço da lista será chamado. O endereço da tabela é dado diretamente no operando. O salto é realizado de forma incondicional. A tabela deve ser formada por uma sequência de instruções ADR na sequência desejada. O índice indica à instrução qual dos endereços será o destino do salto. O conteúdo do acumulador não é afetado pela operação. EXEMPLO: TABELA: ADR ADR ADR ADR SALTO0 SALTO1 SALTO2 SALTO3 L JT KB TABELA ;índice 0 ;índice 1 ;índice 2 ;índice 3 2 ;aponta SALTO2 Neste exemplo, a instrução JT irá saltar para o endereço SALTO2. 2.4.7 - Chamada condicional de sub-rotina – NÃO ZERO OPERANDO: CALL ENDEREÇO DA SUB-ROTINA OPERAÇÃO: CALL Operando DESCRIÇÃO: Salta para o endereço indicado na instrução caso o resultado da operação lógica anterior seja “1” (Flag Zero no estado NZ). Ao final da execução da sub-rotina, a execução retorna para a instrução seguinte àquela que originou o salto. 92 Manual do PLC V1.00 2.4.8 - Chamada condicional indireta de sub-rotina – NÃO ZERO OPERANDO: MW CALL - MEMÓRIA WORD OPERAÇÃO: CALL MW Endereço Indireto DESCRIÇÃO: Salta para o endereço contido na memória apontada pelo operando da instrução caso o resultado da operação lógica anterior seja “1” (Flag Zero no estado NZ). Ao final da execução da sub-rotina, a execução retorna para a instrução seguinte àquela que originou o salto. 2.4.9 - Chamada condicional de sub-rotina – ZERO OPERANDO: CALLZ ENDEREÇO DA SUB-ROTINA OPERAÇÃO: CALLZ Operando DESCRIÇÃO: Salta para o endereço indicado na instrução caso o acumulador esteja desenergizado ou o resultado de uma operação lógica seja zero. Ao final da execução da sub-rotina, retorna a execução para a instrução seguinte. 2.4.10 - Chamada condicional indireta de sub-rotina – ZERO OPERANDO: CALLZ MW – MEMÓRIA WORD OPERAÇÃO: CALLZ MW Endereço Indireto DESCRIÇÃO: Salta para o endereço contido na memória do operando da instrução caso o resultado da operação lógica anterior seja “0” (Flag Zero no estado Z). Ao final da execução da sub-rotina, a execução retorna para a instrução seguinte àquela que originou o salto. 2.4.11 - Chamada incondicional de sub-rotina apontada por tabela OPERANDO: CALLT ENDEREÇO DA TABELA OPERAÇÃO: CALLT Operando DESCRIÇÃO: Salta a execução do PLC para um endereço contido numa tabela de endereços. O conteúdo do Acumulador aponta qual endereço da lista será chamado. O endereço da tabela é dado diretamente no operando. 93 Manual do PLC V1.00 O salto é realizado de forma incondicional. A tabela deve ser formada por uma sequência de instruções ADR na sequência desejada. O índice indica à instrução qual o endereço da sub-rotina que se deseja executar. O conteúdo do acumulador não é afetado pela operação. Ao final da execução da sub-rotina, , a execução retorna para a instrução seguinte àquela que originou o salto. EXEMPLO: TABELA: ADR ADR ADR ADR ROT0 ROT1 ROT2 ROT3 ;índice 0 ;índice 1 ;índice 2 ;índice 3 L CALLT KB TABELA 2 ;aponta ROT2 Neste exemplo, a instrução CALLT irá executar a sub-rotina ROT2 2.4.12 - Chamada incondicional indireta apontada por tabela OPERANDO: MW CALLT - MEMÓRIA WORD OPERAÇÃO: CALLT MW Endereço Indireto DESCRIÇÃO: Salta a execução do PLC para um endereço contido numa tabela de endereços. O conteúdo do Acumulador aponta qual endereço da lista será chamado. O endereço da tabela é dado no operando. O salto é realizado de forma incondicional. A tabela deve ser formada por uma sequência de instruções ADR na sequência desejada. O índice indica à instrução qual o endereço da sub-rotina que se deseja executar. O conteúdo do acumulador não é afetado pela operação. Ao final da execução da sub-rotina, a execução retorna para a instrução seguinte àquela que originou o salto. EXEMPLO: TABELA: ADR ADR ADR ADR ROT0 ROT1 ROT2 ROT3 ;índice 0 ;índice 1 ;índice 2 ;índice 3 ADR = TABELA MW INDTAB L CALLT KB MW 2 INDTAB ;aponta ROT2 Neste exemplo, o conteúdo da memória INDTAB é o endereço do rótulo TABELA. A instrução CALLT irá executar a sub-rotina ROT2 94 Manual do PLC V1.00 2.4.13 - Chamada incondicional de sub-rotina OPERANDO: DCALL ENDEREÇO DA SUB-ROTINA OPERAÇÃO: DCALL “RÓTULO” DESCRIÇÃO: Salta para o endereço indicado na instrução. Ao final da execução da sub-rotina, a execução retorna para a instrução seguinte àquela que originou o salto. 2.4.14 - Chamada incondicional indireta de sub-rotina OPERANDO: DCALL ENDEREÇO DA SUB-ROTINA OPERAÇÃO: DCALL “RÓTULO” DESCRIÇÃO: Salta para o endereço indicado pelo conteúdo do operando da instrução. Ao final da execução da sub-rotina, a execução retorna para a instrução seguinte àquela que originou o salto. 2.4.15 - Retorno de sub-rotina OPERANDO: RET NÃO POSSUI OPERAÇÃO: RET DESCRIÇÃO: Colocado ao final de uma sub-rotina, faz a execução do PLC retornar para a instrução subseqüente à instrução de chamada que ativou a sub-rotina. O retorno é incondicional. 95 Manual do PLC V1.00 2.5 - OPERAÇÕES COM TIMER 2.5.1 - Introdução e definições As operações com Timer (temporizador) são muito utilizadas em processos, onde os tempos de execução da operação ou atividade definem a conclusão ou não do processo. Para a utilização e o emprego do Timer nos programas do MCSplc, deve-se fazer alguns procedimentos padrões, descritos a seguir: Nos arquivos de PLC temos um arquivo, cuja extensão é .def (arquivo de definições e declarações). Este arquivo possui uma região destinada à definição das variáveis dos temporizadores. Nesta região deve-se definir cada variável de tempo que será utilizada, sendo que os temporizadores de 0 até 4, estão reservados para rotinas básicas do PLC. EXEMPLO: Supondo que estamos fazendo uma programação no MCSplc para um torno, logo seu arquivo de definições é o “TORNO.DEF” e se procurarmos em sua estrutura, encontraremos a região dos temporizadores e nesta região iremos definir três temporizadores (TED = Temporizador para partida - do motor principal, TLP = Temporizador para Lubrificação de Peça e TAP = Temporizador para Abertura de Porta), como a seguir; ;================ ; TEMPORIZADORES ;================ ; Temporizadores T0 a T4 reservados para rotinas básicas #DEFINE #DEFINE #DEFINE ;;#DEFINE ;;#DEFINE ;;#DEFINE ;;#DEFINE ;;#DEFINE ;;#DEFINE ;;#DEFINE ;;#DEFINE TED TLP TAP 8 9 10 11 12 13 14 15 5; Tempo para partida Estrela-Triângulo. 6; Tempo para Lubrificação de Peça. 7; Tempo para Abertura de Porta. ; ; ; ; ; ; ; ; OBSERVAÇÕES: O nome da variável do temporizador pode ser qualquer um, como por exemploT06 ou TX6 ou TEMPO06, etc. Para utilizar a variável não esqueça de remover da frente da palavra “#DEFINE” o sinal de ’;;’. Comentários devem vir após o sinal de ‘;’. Nos arquivos de PLC temos um arquivo, cuja extensão é .1 (arquivo do PLC1), onde será feita a lógica da programação e neste mesmo arquivo deve-se definir o valor das constantes de tempo. O valor da constante de tempo tem de ser declarado como um valor de Word (valor numérico de 16 bits), mesmo que a constante não atinja esta magnitude (um valor numérico, cujo tamanho na memória é de uma Word, pode chegar até 65535, ou seja, em Hexadecimal 0FFFFH). Para cada temporizador deve-se declarar sua própria constante de tempo. 94 Manual do PLC V1.00 EXEMPLO: Utilizando-se dos temporizadores definidos no “TORNO.DEF” que são: TED, TLP e TAP iremos definir, para cada temporizador, sua constante de tempo, no arquivo “TORNO.1”, onde se encontra a própria lógica de programação, como a seguir: L = L = KW T KW T 40 TED 60 TLP ; valor da constante de tempo. ; atribuição da constante de tempo para o temporizador TED. ; valor da constante de tempo. ; atribuição da constante de tempo para o temporizador TLP. L = KW T 100 ; valor da constante de tempo. TAP ; atribuição da constante de tempo para o temporizador TAP. L A == : : I I Q 1.0 1.1 0.0 ; programação do PLC1 ; programação do PLC1 ; programação do PLC1 O valor de tempo deve ser calculado através da seguinte relação de transformação: 1 segundo = 20 unidades da constante de tempo Logo se desejarmos uma temporização de 13,55 segundos temos de ter uma constante de tempo de 271, ou seja, multiplicando-se o valor do tempo, em segundos, pelo valor 20, temos o valor da constante de tempo, como mostrado na equação a seguir: ct 20 t Onde : ou t ct 20 t = tempo, em segundos. ct = constante de tempo, em unidades do PLC. O acionamento da contagem de tempo (ligar o temporizador) é feito através da instrução SET no próprio arquivo do PLC1 (.1). Como a esta instrução possui vários tipos, deve-se analisar qual delas vai se adequar melhor ao tipo de lógica requerida na programação. A seguir temos alguns exemplos para o acionamento da contagem: EXEMPLO: Supondo que estamos desenvolvendo a lógica do programa dado no exemplo do 1.º procedimento e conseqüentemente estamos utilizando os temporizadores TED, TLP e TAP, vamos supor que acionado a entrada I 0.0 liga-se a saída Q 0.1 e esta deve-se manter ligada por um determinado tempo definido pelo temporizador TED e ao fim deste tempo liga-se a saída Q 0.2, ao ser ligado a saída Q 0.3 deve-se mantê-la ligada por um tempo definido pelo temporizador TLP e ao ser acionado a entrada I 0.1 deve-se ligar a saída Q 0.4 por um tempo definido pelo temporizador TAP. A seguir temos o programa com os acionamentos dos temporizadores: ;;=== Temporizador TED === L O == S 95 I T Q M 0.0 TED 0.1 216.0 ; verificando acionamento do botão liga (I 0.0). ; ou se o temporizador está ligado (TED). ; liga a saída p/ partida em Estrela (Q 0.1). ; memoriza partida Estrela , similar a um relé auxiliar. Manual do PLC V1.00 L S Q T 0.1 ; verifica se a partida em Estrela foi acionada. TED ; caso a partida em Estrela tenha sido ligada, aciona-se a ; temporização de TED. LN A = T M Q TED ; verificando se decorrido o tempo de partida em Estrela, 216.0 ; e se o motor partiu em Estrela. 0.2 ; liga a saída p/ partida em Triângulo. ;;=== Temporizador TLP === L EU S Q 0.3 T TLP LN EU R T TLP Q 0.3 ;;=== Temporizador TAP === L O == L I T Q I 0.1 TAP 0.4 0.1 ; verificando acionamento do botão de abertura de porta (I 0.1). ; ou se o temporizador de porta aberta está ligado (TAP). ; liga a saída p/ abertura de porta (Q 0.4). ; verificando acionamento do botão de abertura de porta (I 0.1). Realizado estes procedimentos, basta agora, utilizar o temporizador ao longo da lógica de programação no próprio PLC1, conforme o tipo de lógica desejada, como temos definidas a seguir: 2.5.2 - Carrega acumulador – Load OPERANDO: L T OPERAÇÃO: L T Número do Timer DESCRIÇÃO: Transfere ao Acumulador o estado do Timer indicado na instrução. O estado é "1" se o Timer estiver contando tempo. O estado é "0" se o Timer encerrou a contagem de tempo. 2.5.3 - Carrega acumulador com status negado – Load Not OPERANDO: LN T OPERAÇÃO: LN T Número do Timer DESCRIÇÃO: Transfere ao acumulador o status negado do timer indicado na instrução. O acumulador é carregado com "0" se o timer estiver contando tempo ou "1" se o tempo se encerrou. 96 Manual do PLC V1.00 2.5.4 - Operação lógica E – And OPERANDO: A T OPERAÇÃO: A T Número do Timer DESCRIÇÃO: Realiza a operação lógica E entre o status anterior do acumulador e o status do timer indicado na instrução. 2.5.5 - Operação lógica E NEGADO – And Not OPERANDO: AN T OPERAÇÃO: AN T Número do Timer DESCRIÇÃO: Realiza a operação lógica E entre o status do acumulador e o status negado do timer indicado na instrução. 2.5.6 - Operação lógica OU – Or OPERANDO: O T OPERAÇÃO: O T Número do Timer DESCRIÇÃO: Realiza a operação lógica OU entre o status anterior do acumulador e o status do timer indicado na instrução. 2.5.7 - Operação lógica OU NEGADO – Or Not OPERANDO: ON T OPERAÇÃO: ON T Número do Timer DESCRIÇÃO: Realiza a operação lógica OU entre o status anterior do acumulador e o status negado do timer indicado na instrução. 97 Manual do PLC V1.00 2.5.8 – Operação lógica OU EXCLUSIVO – eXclusive Or OPERANDO: XO T OPERAÇÃO: XO T Número do Timer DESCRIÇÃO: Realiza a operação lógica OU EXCLUSIVO entre o status anterior do acumulador e o status do timer indicado na instrução. 2.5.9 - Operação lógica OU EXCLUSIVO NEGADO – eXclusive Or Not OPERANDO: XON T OPERAÇÃO: XON T Número do Timer DESCRIÇÃO: Realiza a operação lógica OU EXCLUSIVO entre o status anterior do acumulador e o status negado do timer indicado na instrução. 2.5.10 - Atribuição de constante de tempo ao timer OPERANDO: = T OPERAÇÃO: = T Número do Timer DESCRIÇÃO: Atribui o conteúdo do acumulador à constante de tempo do timer indicado na instrução. O acumulador deverá estar carregado com uma variável word (2 bytes). A constante de tempo somente será ativada ao ser setado o timer. 2.5.11 - SET timer energizando o acumulador OPERANDO: SL T OPERAÇÃO: SL T Número do Timer DESCRIÇÃO: O timer será ligado na transição de “0” para “1“ do estado do Acumulador imediatamente antes da execução da instrução. O byte de status do timer correspondente é setado com 0FFH. Caso contrário, o status do timer não será alterado. Após a operação, o status do acumulador é energizado ("1"). 98 Manual do PLC V1.00 2.5.12 - SET sem influência no acumulador OPERANDO: S T OPERAÇÃO: S T Número do Timer DESCRIÇÃO: O timer será ligado na transição de “0” para “1“ do estado do Acumulador imediatamente antes da execução da instrução. O byte de status do timer correspondente é setado com 0FFH. Caso contrário, o status do timer não será alterado. Após a operação, o status do acumulador permanece inalterado. 2.5.13 – SET FORÇADO sem influência no acumulador OPERANDO: SF T OPERAÇÃO: SF T Número do Timer DESCRIÇÃO: O timer será ligado independentemente do status do acumulador. O byte de status do timer correspondente é setado com 0FFH. Após a operação, o status do acumulador permanece inalterado. 2.5.14 - RESET energizando o acumulador OPERANDO: RL T OPERAÇÃO: RL T Número do Timer DESCRIÇÃO: Se o status do acumulador está em "1", o timer será desligado (contagem de tempo vai a 0). Se o status do acumulador está em "0", o tempo decorrido não será afetado. O status do acumulador é energizado ("1"). 2.5.15 - RESET sem influência no acumulador OPERANDO: R T OPERAÇÃO: R T Número do Timer DESCRIÇÃO: Se o status do acumulador está em "1", o timer será desligado (contagem de tempo vai a 0). Se o status do acumulador está em "0", o tempo decorrido não será afetado. O status do acumulador permanece inalterado. 99 Manual do PLC V1.00 2.5.16 - RESET FORÇADO sem influência no acumulador OPERANDO: RF T OPERAÇÃO: RF T Número do Timer DESCRIÇÃO: O timer será desligado independentemente do status do acumulador. O byte de status do timer correspondente é zerado. O status do acumulador permanece inalterado. 100 Manual do PLC V1.00 2.6 - DEMAIS OPERAÇÕES 2.6.1 – Energiza o acumulador OPERANDOS: EN NÃO POSSUI OPERAÇÃO: EN DESCRIÇÃO: Após a execução desta instrução o conteúdo do acumulador estará energizado ("1"). Esta instrução além de mudar o conteúdo do acumulador, também muda o conteúdo dos flags. Após a execução da instrução o Acumulador e os Flags estarão nos estados definidos pela tabela abaixo: TABELA DA VERDADE: Estado do Acumulador Acc (valor atual) 0FFH Zero NZ Estado dos Flags Carry Sinal NC P 2.6.2 - Carrega endereço – load ADRESS OPERANDO: ADR RÓTULO CORRESPONDENTE AO ENDEREÇO DESEJADO OPERAÇÃO: ADR “RÓTULO” DESCRIÇÃO: Transfere para o acumulador o endereço do rótulo indicado na instrução. 2.6.3 - Instrução TELA OPERANDO: TELA NÃO POSSUI OPERAÇÃO: TELA DESCRIÇÃO: Os CNCs da série 500 permitem ao usuário programar e ativar, através do PLC, telas especiais com apresentação ou entrada de dados. O PLC pode tomar conta da tela básica do CNC, escrever na linha de modos, na linha de status e na linha imediatamente acima das softkeys. Pode também apresentar telas gráficas memorizadas no PLC. A instrução TELA é uma instrução genérica relacionada com a construção dessas telas, apresentação ou tomada de dados pelo PLC. 101 Manual do PLC V1.00 O tipo de operação realizada depende do conteúdo do acumulador ao se executar a instrução. Sua descrição é apresentada no capítulo 7. 2.6.4 - FINAL da execução do PLC OPERANDO: END NÃO POSSUI OPERAÇÃO: END DESCRIÇÃO: Encerra a execução do PLC 102 Manual do PLC V1.00 3 - Habilitação de Serviços Palavra de controle de serviços = 96 bits (I12-23), sendo um bit para cada serviço. Quando definidos para nível 1, estes bits habilitam os serviços listados: Byte 12. 0 12. 1 12. 2 12. 3 12. 4 12. 5 12. 6 12. 7 13. 0 13. 1 13. 2 13. 3 13. 4 13. 5 13. 6 13. 7 14. 0 14. 1 14. 2 14. 3 14. 4 14. 5 14. 6 103 Significado Leitura das entradas digitais Escrita nas saídas digitais Leitura das entradas analógicas Escrita nas saídas analógicas Referência dos eixos Execução de programa (canal principal) Execução de programa (canal auxiliar) Escrita em display Leitura de teclado Escrita de cotas Serviço de corte de tubos Serviço de joystick Funções MST (canal principal) Funções MST (canal auxiliar) * Geral S (canal principal) Geral S (canal auxiliar) * Movimento manual / independente (eixo 1) Movimento manual / independente (eixo 2) Movimento manual / independente (eixo 3) Movimento manual / independente (eixo 4) Movimento manual / independente (eixo 5) Movimento manual / independente (eixo 6) Movimento manual / independente (eixo 7) Manual do PLC V1.00 14. 7 15. 0 15. 1 15. 2 15. 3 15. 4 15. 5 15. 6 15. 7 16. 0 16. 1 16. 2 16. 3 16. 4 16. 5 16. 6 16. 7 17. 0 17. 1 17. 2 17. 3 17. 4 17. 5 17. 6 17. 7 Movimento manual / independente (eixo 8) Mensagens / Alarmes Acoplamento de eixos Serviço de comunicação MODBUS Serviço de comunicação CANBUS Real Time Clock (RTC) Modo Manual - Tela RESERVADO RESERVADO Serviço da fotocélula 1 Serviço da fotocélula 2 Came Real Came Virtual Came Digital Came dos Eixos – Vínculos Complexos Termopar Leitura e Escrita Parâmetros Driver CAN Came dos (eixo 1) Came dos (eixo 2) Came dos (eixo 3) Came dos (eixo 4) Came dos (eixo 5) Came dos (eixo 6) Came dos (eixo 7) Came dos (eixo 8) Eixos – Vínculos Normais e Controle Eixos – Vínculos Normais e Controle Eixos – Vínculos Normais e Controle Eixos – Vínculos Normais e Controle Eixos – Vínculos Normais e Controle Eixos – Vínculos Normais e Controle Eixos – Vínculos Normais e Controle Eixos – Vínculos Normais e Controle 104 Manual do PLC V1.00 18. 0 18. 1 18. 2 18. 3 18. 4 18. 5 18. 6 18. 7 19. 0 19. 1 19. 2 19. 3 19. 4 19. 5 19. 6 19. 7 20. 0 20. 1 20. 2 20. 3 20. 4 20. 5 20. 6 20. 7 21. 0 21. 1 21. 2 105 Manivela 1 Manivela 2 Manivela 3 Transferência de dados entre CNCs Manual do PLC V1.00 21. 3 21. 4 21. 5 21. 6 21. 7 22. 0 22. 1 22. 2 22. 3 22. 4 22. 5 22. 6 22. 7 23. 0 23. 1 23. 2 23. 3 23. 4 23. 5 23. 6 23. 7 Aplicação Específica da CM (Lentes) 106 Manual do PLC V1.00 4 - Serviço de Joystick 4.2 - Descrição Geral O serviço de joystick habilita o movimento de até dois eixos simultâneos, baseados em vetores de velocidade determinados por variáveis de controle. Os eixos a serem movidos são indicados na estrutura de dados pelo número ao qual estão associados. As variáveis de controle dos vetores de velocidade (variáveis I do PLC) são de 2 bytes e seu endereço é dado na estrutura de dados. A cada variável de controle são associados parâmetros que definem como será realizado o cálculo do vetor de controle resultante. Para cada canal de controle são definidas variáveis correspondentes ao centro do ponto morto, à janela de inabilitação e ao limite de controle. A janela de inabilitação e o limite de controle são simétricos. A velocidade resultante é dada pelo fator de controle calculado multiplicado pela velocidade máxima estabelecida na estrutura de dados. Variáveis ‘bit’ na estrutura de dados indicam o sentido de movimento e se os fins de curso do eixo devem ou não ser observados. 107 Manual do PLC V1.00 4.3 - Tipos de Dados Int16 = Inteiro de 16 bits (2 bytes) Float32 = Número em ponto flutuante simples (4 bytes) Bits16 = Estrutura de bits (B0 – B15) (2 bytes) 4.4 - Parâmetros de Configuração Utilizados Parâmetros de Eixo: x = num do eixo Px29 = Velocidade máxima em modo manual 4.5 - Parâmetros de PLC Utilizados (P900 – P999) Não há. 108 Manual do PLC V1.00 4.6 - Estrutura de Dados e Comandos ( PLC → CNC ) Ponteiro base da estrutura de dados e comandos (endereço do início da estrutura de dados na área I) = I796 Tamanho da estrutura = 28 bytes Endere ço Base Base+2 Base+4 Base+6 Base+8 Base+1 0 Base+1 2 Base+1 4 Base+1 6 Base+1 8 Base+2 0 Base+2 2 Base+2 4 Base+2 6 Tipo Nome Descrição Int16 Int16 EIXOC1 EIXOC2 Eixo associado ao primeiro canal Eixo associado ao segundo canal Int16 Int16 Int16 Int16 CENPM1 JANPM1 JANCC1 VELMC1 Valor central para ponto morto canal 1 Janela para ponto morto canal 1 Janela para controle canal 1 Velocidade máxima canal 1 Int16 VARCO1 Int16 CENPM2 Variável I ou num do POT de controle canal 1 Valor central para ponto morto canal 2 Int16 JANPM2 Janela para ponto morto canal 2 Int16 JANCC2 Janela para controle canal 2 Int16 VELMC2 Velocidade máxima canal 2 Int16 VARCO2 Variável I ou num do POT de controle canal 2 Int16 Base Status Endereço base para estrutura de status Bits1 6 B00 B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 SENTV HABFC FHPOS FHNEG SENTV HABFC FHPOS FHNEG SIGVC SIGVC Sentido do vetor de velocidade canal 1 Habilita fins de curso eixo canal 1 Bloqueia avanço sentido positivo canal Bloqueia avanço sentido negativo canal Sentido do vetor de velocidade canal 2 Habilita fins de curso eixo canal 2 Bloqueia avanço sentido positivo canal Bloqueia avanço sentido negativo canal VARCO1 é Variável I (=0) ou num do POT VARCO2 é Variável I (=0) ou num do POT RESET Reinicia serviço 4.6.1 - Eixo Correspondente ao Canal Define o número do eixo CNC correspondente ao respectivo canal associado. Deve ser definido antes da habilitação do serviço. 109 Manual do PLC V1.00 Exemplo: Eixo Canal 2 = 4 → canal 2 do joystick acoplado ao eixo 4 do CNC. 4.6.2 - Valor Central para Ponto Morto do Canal Define o valor central correspondente ao ponto morto do referido canal. Exemplo: Limite da variável de controle = 65535 Centro do ponto morto = 32768 (neste exemplo é a metade do limite da variável) 110 Manual do PLC V1.00 4.6.3 - Janela para Ponto Morto do Canal 4.6.3 - Janela para Ponto Morto do Canal Define uma região em torno do ponto morto na qual o fator de controle será 0. Exemplo: Janela para ponto morto = 200 Centro do ponto morto = 2048 Faixa para fator de controle = 0 → (2048 – 200) a (2048 + 200) → 1848 a 2248 4.6.4 - Janela para Controle do Canal Define o limite de variação significativa da variável de controle. Exemplo: Janela para controle do canal = 2000 Centro do ponto morto = 2048 Janela para ponto morto = 200 Limites para variação significativa da variável: Para cima: 2248 a 4048 Para baixo: 1848 a 48 A variação entre 2248 e 4048 ou entre 1848 e 48 faz o módulo do vetor de velocidade variar entre 0 e a velocidade máxima definida na estrutura de dados. O módulo da velocidade será 0 acima do valor 4048 ou abaixo de 48. 4.6.5 - Velocidade Máxima para o Canal Define a máxima velocidade para movimentação do eixo. Se programada com valor 0 ou se o valor for superior ao valor programado no parâmetro de velocidade máxima manual, o CNC assume a velocidade máxima definida pelo parâmetro do eixo correspondente. 4.6.6 - Variável para Controle do Canal Define o número da variável I do PLC ou o número do Potenciômetro que controla o canal, dependendo do valor do bit SIGVC. 111 Manual do PLC V1.00 4.6.7 - Variável Base para Status Define o número da variável I do PLC a partir da qual o serviço irá montar a estrutura de variáveis de status. 4.6.8 - Sentido do Vetor de Velocidade do Canal Define o sentido do vetor de velocidade. Se 0, o sentido será positivo para valores acima e negativa para valores abaixo do ponto morto. Se 1 ocorre o inverso. 4.6.9 - Fins de Curso para o Eixo Associado ao Canal Define se os fins de curso do respectivo eixo associado ao canal estão ativos ou não. Se 0, os fins de curso estão desabilitados. Se 1, os fins de curso ficam habilitados. 4.6.10 - Bloqueio de Avanço Sentido Positivo Se o bit estiver ligado, o CNC bloqueia o movimento no sentido positivo do eixo associado ao referido canal. 4.6.11 - Bloqueio de Avanço Sentido Negativo Se o bit estiver ligado, o CNC bloqueia o movimento no sentido negativo do eixo associado ao referido canal. 4.6.12 - Significado da Variável de Controle Se o bit estiver em 0: variável de controle (VARCO) é o número da variável I do PLC; Se o bit estiver em 1: variável de controle é o número do Potenciômetro. 4.6.13 - Reinicia serviço BIT = 1: 112 Manual do PLC V1.00 SE FOR POSSÍVEL REINICIAR, OU SEJA, SE OS EIXOS NÃO ESTIVEREM EM MOVIMENTO, CHAMA A ROTINA QUE DESABILITA E A QUE HABILITA NOVAMENTE O SERVIÇO, LENDO OS NOVOS VALORES DOS PARÂMETROS DE INICIALIZAÇÃO (EIXOS POR EXEMPLO). ZERA O BIT. Se não for possível, apenas ignora o comando. 113 Manual do PLC V1.00 4.6.15 - Estrutura de Status (CNC → PLC) 4.6.15 - Estrutura de Status (CNC → PLC) Base da estrutura de status (endereço inicial área I) = I(Base+24 da estrutura de dados e comandos) Tamanho da estrutura = 4 bytes Endere ço Base Base+2 Tipo B00 B01 B02 B03 B04 B05 B06 Bits1 B07 B08 6 B09 B10 B11 B12 B13 B14 B15 B00 B01 B02 B03 B04 B05 B06 Bits1 B07 B08 6 B09 B10 B11 B12 B13 B14 B15 Nome INIT OPEN FAIL EMG PTOMOR1 FORAJC1 MOVPOS1 MOVNEG1 FHPOS1 FHNEG1 FCPOS1 FCNEG1 PTOMOR2 FORAJC2 MOVPOS2 MOVNEG2 FHPOS2 FHNEG2 FCPOS2 FCNEG2 Descrição Serviço iniciado Serviço habilitado Falha Estado de emergência Janela de Ponto Morto (canal 1) Fora da Janela de Controle (canal 1) Movimento Positivo (canal 1) Movimento Negativo (canal 1) Bloqueio Positivo (canal 1) Bloqueio Negativo (canal 1) Fim de Curso Positivo (canal 1) Fim de Curso negativo (canal 1) Janela de Ponto Morto (canal 2) Fora da Janela de Controle (canal 2) Movimento Positivo (canal 2) Movimento Negativo (canal 2) Bloqueio Positivo (canal 2) Bloqueio Negativo (canal 2) Fim de Curso Positivo (canal 2) Fim de Curso negativo (canal 2) - 114 Manual do PLC V1.00 4.7 - Descrição de Funcionamento O objetivo do serviço é permitir que se controle o movimento dos eixos de uma máquina a partir de elementos de controle tipo joystick. No caso de atuadores analógicos, a variável de leitura das entradas analógicas é indicada na estrutura de dados e comandos, que assim controla a velocidade e sentido de movimento de cada eixo. Para segurança na operação da máquina, o joystick deve possuir um recurso de centralização da haste de controle para que, uma vez solta, a haste retorne à posição central (ponto morto). A janela de inabilitação define limites de segurança, para que os eixos só se movimentem se o deslocamento da haste em relação ao ponto central for significativo. A partir de valores fora da janela de inabilitação, o CNC calcula o vetor de velocidade do eixo de acordo com os parâmetros definidos na estrutura de dados. A janela de controle define a faixa de controle (limites) para cima ou para baixo do ponto central. Valores da variável de controle que estejam acima do valor máximo (ponto central + janela de controle) ou abaixo do valor mínimo (ponto central janela de controle) bloqueiam o movimento dos eixos. Ao ajustar os parâmetros deve-se assegurar que estes limites não serão atingidos pelo mecanismo do joystick. Desta forma se garante que eventuais maus contatos nos sinais analógicos lidos pelo CNC provoquem disparo nos eixos. O vetor de velocidade varia de zero à velocidade máxima definida na estrutura de dados. A velocidade permanece com o valor zero enquanto o valor da variável de controle estiver dentro da faixa de inabilitação. O valor máximo de velocidade é atingido quando o valor da variável de controle atinge seu limite máximo ou mínimo. O sentido de movimento é definido pela faixa acima ou abaixo do ponto central de controle e pelo bit de inversão de sentido. Para bit de inversão de sentido = 0, valores acima do ponto central provocam deslocamentos no sentido positivo do eixo. Se ligados, os bits de bloqueio de movimento, um para cada sentido de movimento, impedem o deslocamento do eixo no sentido indicado. Caso os dois bits estejam ligados não haverá movimento no eixo. 4.7.1 - Exemplos 115 Manual do PLC V1.00 5 - Execução de Programa 5.1 - Descrição Geral O serviço habilita a execução de um programa do sistema de arquivos (memória do ARM no caso do Proteo e área de receitas no Proteo Mini). O interpretador que pode ser o ARM, o PC ou o PLC interpreta os comandos do programa e gera as funções atômicas. A seleção e interpretação do programa podem ser feitas de uma das seguintes formas (modos de seleção): (1) Proteo: Monitor de execução seleciona o programa de um sistema de arquivos (diretório e número do programa) e o interpretador gera as funções atômicas; (2) Proteo: Cliente do PLC seleciona o programa de um sistema de arquivos (diretório e número do programa) e o interpretador gera as funções atômicas; (3) Proteo Mini: Cliente do PLC seleciona o programa da área de receitas, informando o tamanho do bloco e os índices dos blocos inicial e final. Nesse caso, os blocos já estão interpretados, ou seja, basta enviá-los p/ fila de funções atômicas; (4) Proteo Mini: O PLC interpreta os comandos e gera as funções atômicas, informando o tamanho do bloco, os índices dos blocos inicial e final e o endereço inicial da memória I em que elas se encontram. O DSP faz o cálculo na frente das funções atômicas de movimento e envia p/ fila de segmentos. O segmento é executado pela sqRunCycle e DSP avisa monitor de execução. O monitor de execução é responsável por informar ao DSP os comandos da execução (first start, stop/pause, resume, abort e modo de execução(contínuo ou passo-a-passo)), que podem vir da memória I do PLC. Além disso, recebe os status da execução, como o ID da função atômica que está sendo executada. 116 Manual do PLC V1.00 Diagrama da execução de programa no Proteo Mini: Monitor Execução Comandos/ Status Comandos/ Status FA DSP PC Fila Função Atômica R/W Mem Plc @Z Cálculo na frente FA PLC Blocos de FA Interpretador Receitas (Ciclos Especiais) Blocos de FA RAM Receitas / Programas Sistema de Arquivos (Receitas) FLASH 117 Manual do PLC V1.00 5.2 - Tipos de Dados Int16u = Inteiro 16 bits sem sinal (2 bytes) Bits16 = Estrutura de bits (B0 a B15 - 2 bytes) 5.3 - Parâmetros de configuração utilizados Parâmetros Gerais: P031 a P038 = Associa cada eixo a seu canal de execução de programa. Define os eixos que serão alocados quando o serviço de execução for habilitado. 0 = nenhum canal; 1 = canal principal; 2 = canal auxiliar Obs.: No caso do eixo árvore, como ele é alocado p/ o serviço do GeralS, seu parâmetro de canal de execução deve estar em 0 (nenhum canal) Parâmetros de Eixo: Px08 = Letra associada ao eixo Valor 0 1 2 3 4 5 6 7 8 9 x = num do eixo Descrição Não definido X Y Z A B C U V W Px27 = Velocidade máxima do eixo (Rápido) Px68 = Tempo de acel. / desacel. 118 Manual do PLC V1.00 5.4 - Parâmetros de PLC utilizados (P900 – P999) 5.5 - Estrutura de Dados e Comandos ( PLC → CNC ) Ponteiro base da estrutura (endereço do início da estrutura de dados na área I) = I794 Bit de Habilitação do serviço: 12.5 (canal principal), 12.6 (canal auxiliar) PROTEO: Serviço é habilitado automaticamente com base fixa = 900 (I 794 = 900) Tamanho da estrutura = 18 bytes Endereço Tipo Base Int16u Nome CANEXE Base+2 Base+4 Int16u Int16u SELPRG DIRPRG Base+6 Int16u NUMPRG Base+8 Base+10 Base+12 Base+14 Int16u Int16u Int16u Int16u TAMBFA BLOINI BLOFIM ENDIFA B00 B01 B02 B03 B04 B05 B06 Bits16 B07 B08 Base+16 B09 B10 B11 B12 B13 B14 B15 HABITP MODEXE FSTART STOP RESUME ABORT Descrição Canal de execução de programa utilizado Modo de seleção de programa Num do diretório do programa (se existir) Num do programa (se existir) Tamanho do bloco de função atômica Índice do bloco inicial Índice do bloco final Endereço base da memória I que contém as funções atômicas Habilita interpretador / envia Modo de execução: 0=contínua; 1 = First Start: inicia a execução Stop / Pause Resume: continua execução do ponto Abort: aborta execução Não utilizado Não utilizado Não utilizado Não utilizado Não utilizado Não utilizado Não utilizado Não utilizado Não utilizado Não utilizado 5.5.1 - Canal de execução (CANEXE) Define o canal de execução de programa utilizado. Deve ser definido antes da habilitação do serviço. Valores válidos: 1 = canal de execução principal; 2 = canal de execução auxiliar 119 Manual do PLC V1.00 5.5.2 - Modo de seleção de programa (SELPRG) Escolhe um dos 4 modos de seleção de programa definidos no item 2.1. Deve ser definido antes da habilitação do serviço. Valores válidos: 1 a 4 5.5.3 - Diretório do programa (DIRPRG) Define o número do diretório do programa, se existir no modo de seleção utilizado. Utilizado somente no modo de seleção 2. Deve ser definido antes da habilitação do serviço. 120 Manual do PLC V1.00 5.5.4 - Número do programa (NUMPRG) 5.5.4 - Número do programa (NUMPRG) Define o número do programa, se existir no modo de seleção utilizado. Utilizado somente no modo de seleção 2. Deve ser definido antes da habilitação do serviço. 5.5.5 - Tamanho do bloco de função atômica (TAMBFA) Define o tamanho em bytes do bloco de função atômica que está sendo utilizado. É lido a cada ciclo do PLC. 5.5.6 - Índices dos blocos inicial e final (BLOINI e BLOFIM) Define o início e fim dos blocos de funções atômicas que devem ser colocados na fila de funções atômicas. É lido a cada ciclo do PLC. Modo de seleção 3: os índices referem-se aos blocos que estão na área de receitas. Modo de seleção 4: os índices definem quais blocos, que estão na memória I do PLC, devem ser colocados na fila nesse ciclo do PLC. 5.5.7 - Endereço da memória I p/ funções atômicas (ENDIFA) Define o endereço base da memória I que contém as funções atômicas. Utilizado somente no modo de seleção 4. É lido a cada ciclo do PLC. 5.5.8 - Habilita interpretador (HABITP) Bit de comando em 1, habilita interpretador (envia funções atômicas p/ a fila). No caso do modo de seleção 4, esse bit indica que existe função atômica na memória do PLC (BLOINI a BLOFIM) p/ ser enviada à fila. Interpretador zera o bit se a fila não estiver cheia. É lido a cada ciclo do PLC. 121 Manual do PLC V1.00 5.5.9 - Modo de execução (MODEXE) Define o modo de execução. Bit de comando: 0 = contínua; 1 = passo a passo É lido a cada ciclo do PLC. 5.5.10 - First Start (FSTART) Bit de comando (0 -> 1): Inicia a execução das funções atômicas: DSP inicia o cálculo na frente, envia segmentos p/ fila de segmentos e inicia o movimento; Monitor executa e retira as funções atômicas da fila, dando autorização p/ os movimentos, quando necessário. É lido a cada ciclo do PLC. 5.5.11 - Stop / Pause (STOP) Bit de comando (0 -> 1): Monitor de Execução pausa a execução no ponto atual. Movimento pode ser retomado (resume). É lido a cada ciclo do PLC. 122 Manual do PLC V1.00 5.5.12 - Resume (RESUME) 5.5.12 - Resume (RESUME) Bit de comando (0 -> 1): Monitor de Execução continua a execução do ponto que parou. É lido a cada ciclo do PLC. 5.5.13 - Abort (ABORT) Bit de comando (0 -> 1): Monitor de Execução aborta a execução e limpa as filas de funções atômicas e de segmentos. Movimento não pode ser retomado. É lido a cada ciclo do PLC. 123 Manual do PLC V1.00 5.6 - Estrutura de Status ( CNC → PLC ) Ponteiro base da estrutura (endereço do início da estrutura de dados na área I) = I794 PROTEO: Serviço é habilitado automaticamente com base fixa = 900 (I 794 = 900) Tamanho da estrutura = 6 bytes Endereç o Tipo Bits1 Base+18 6 Base+20 Int16 u Base+22 Int16 u Descrição Nome B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B1 B1 B1 B1 B1 B1 5 INIT OPEN FAIL EMG RUN PAUSE HOLD INIT ABORT Serviço iniciado Serviço habilitado Falha geral / Erro na execução Estado de Emergência Execução rodando Execução parada Aguardando autorização do monitor de execução Estado inicial da execução Execução abortada (**PROTEO MINI**) Não utilizado Não utilizado Não utilizado Não utilizado Não utilizado NOFA Fila de FA vazia WAITF Aguardando envio de função atômica A (fila de segmentos vazia) ID da função atômica que está sendo executada FAEXE POSFC Posição programada além do Fim de Curso (2 bits por eixo: b0 = Fim Curso Positivo Eixo 1 b1 = Fim Curso Negativo Eixo 1 ... ) 5.7 - Descrição de Funcionamento Parâmetros (item 2.3) já devem estar configurados. Acertar os dados da estrutura de dados e comandos que são utilizados na habilitação do serviço: CANEXE, SELPRG, DIRPRG, NUMPRG. Esses dados não podem ser alterados com o serviço habilitado. Habilitar serviço: Bit5 = 1 (canal principal) e Bit6 = 1 (canal auxiliar) Acertar os dados referentes aos blocos de função atômica: TAMBFA, BLOINI, BLOFIM, ENDIFA. Esses dados podem ser alterados com o serviço habilitado, ou seja, são lidos a cada ciclo. Escolher modo de execução (MODEXE): 0 = contínua; 1 = passo a passo. 124 Manual do PLC V1.00 No modo passo a passo de blocos, o flag “Sync” da primeira função atômica de cada bloco deve estar em 1 p/ que a execução aguarde autorização do monitor de execução a cada mudança de bloco. Essa autorização é dada pelo comando “Resume”. Habilitar interpretador: HABITP = 1. Interpretador envia funções atômicas p/ a fila e zera o bit se a fila não estiver cheia. Os bits de comando da estrutura (FSTART, STOP, RESUME, ABORT) são enviados ao Monitor de Execução pelo cliente do PLC, a cada ciclo. O comando FSTART inicia a execução das funções atômicas (cálculo na frente e movimento). DSP atualiza ID da função atômica que está sendo executada e o cliente do PLC envia esse dado à estrutura de status do serviço (FAEXE). 125 Manual do PLC V1.00 5.8 - Exemplos Execução de programa com 3 eixos (X,Y,Z) por PLC Base = início da memória I do PLC utilizada p/ esse serviço. Parâmetros de configuração: Considerando que os parâmetros dos eixos já estão configurados. Canal de execução 1: Eixos 1(X), 2(Y) e 3(Z) P031 P032 P033 1 1 1 Liberação dos eixos: I1160x0007 117 Dados utilizados na habilitação do serviço: Base Base+2 Base+4 Base+6 CANEXE SELPRG DIRPRG NUMPRG 1 4 - Habilitação do serviço: I20.5 1 Dados dos blocos de função atômica: 1 bloco de FA de 32 bytes no endereço I900-931 Base+8 Base+1 0 Base+1 2 Base+1 4 TAMBFA BLOINI 32 0 BLOFIM 0 ENDIFA 900 Inserção dos blocos de função atômica: I900- Bloco de FA desejado 931 Habilitação do interpretador: Base+1 6 B00 HABITP 1 INTERPRETADOR ZERA O BIT APÓS ENVIAR FUNÇÃO ATÔMICA P/ FILA. 126 Manual do PLC V1.00 Bits de comando: enviados ao Monitor de Execução B02 B03 – STOP Base+1 B04 – 6 B05 ABORT 1 0 0 0 FSTART = 1: INICIA A EXECUÇÃO DAS FUNÇÕES ATÔMICAS DA FILA ATÉ QUE SEJA ENVIADO UM COMANDO DE PARADA (STOP OU ABORT) OU QUE TERMINE AS FUNÇÕES ATÔMICAS DA FILA. Status: Base+1 Bits de status da execução 8 Base+2 ID da FA que está sendo 0 executada 127 Manual do PLC V1.00 6 - Serviço de Fotocélula 6.1 - Descrição geral O serviço de fotocélula habilita o uso das rotinas de captura de dados de fotocélula pelo PLC. Através deste serviço, o PLC pode tanto configurar o uso do tratamento da fotocélula quanto acessar os dados capturados. Os dados configuráveis são: Distância da marca de fotocélula para o corte (PHOTOTOCUT): Configura a distância entre a marca de detecção e o corte. Comprimento programado entre marcas (PGMLENGTH): Configura o comprimento programado entre as marcas de detecção. Janela para detecção de marca (MARKWINDOW): Configura a janela onde a detecção da marca pela fotocélula será possível. Canal do eixo associado à fotocélula (AXISCHANNEL): Configura o eixo que será associado à fotocélula. Os dados retornados são: Comprimento médio (MEDLEN): Corresponde ao comprimento médio entre duas marcas de detecção consecutivas. Erro da foto (ERROFOTO): Corresponde ao erro de detecção da marca atual em relação à média do comprimento. Contador de marcas falsas seqüenciais (FALSECNT): Corresponde ao número de marcas falsas detectadas em posições fora dos limites configurados. Posição da fotocélula (POSFOTO): Alternativamente, o serviço pode fazer a leitura da posição da fotocélula. 6.2 - Tipos de dados Int16u = Inteiro 16 bits sem sinal (2 bytes) Bits16 = Estrutura de bits (B0 a B15 - 2 bytes) Int32 = Inteiro 32 bits sem sinal (4 bytes) 6.3 - Parâmetros de Configuração Utilizados Px09: Resolução do eixo (em casas decimais), usada nas unidades de comprimento da foto. 6.4 - Parâmetros de PLC utilizados Não há. 128 Manual do PLC V1.00 6.5 - Hardware Proteo Mini/LCD Fotocélulas disponíveis no hardware: Fotocélu la 1 2 Entrad a 1.7 1.6 6.6 - Fotocélula do módulo MCS I/O CANopen O serviço de fotocélula também está disponível no módulo de interface CANopen MCS I/O. 129 Manual do PLC V1.00 6.7 - Estrutura de Dados e Comandos ( PLC → CNC ) Ponteiro base da estrutura de dados e comandos (endereço do início da estrutura de dados na área I): Numero da fotocélula Fotocélula 1 Fotocélula 2 Endereço (I) 790 792 Tamanho da estrutura = 24 bytes. Endere ço Base Base+4 Base+8 Base+1 2 Base+1 4 Base+1 6 Base+1 8 Base+2 0 Base+2 2 Tipo Nome Int32 Int32 Int32 Int16 PHOTOTOCUT PGMLENGTH MARKWINDOW AXISCHANNEL Int16 NUMMEDCMP Descrição Distancia para a marca do corte Comprimento programado entre marcas Janela para detecção de marca Canal do eixo associado à fotocélula Número de médias desejadas para o comprimento B00 B01 B02 B03 B04 B05 B06 Uint1 B07 B08 6 B09 INITCAP Inicia ciclo de foto celula BLOCK Bloqueia fotocélula INITMEAS Inicia medida de posição da marca (INITCMED) Inicia comprimento médio com primeiro medido REMOTE Bit de identificação remoto/local ENCOUNT Habilita contador de pulsos (foto local) RSTCOUNT Reset contador de pulsos ENBUFFER Habilita buffer de dados da foto CLRBUFFE Limpa buffer L_VINC Não reprograma comprimento do vínculo com Lfoto_med B10 B11 B12 B13 B14 B15 Uint1 IC_MAX Divisões p/ aplicar correção da foto (0 = 8 6 vezes) Uint1 MODUL_ADR Número do módulo da fotocélula remota 6 Int16 RESERVADO Reservado () indica não implementado. 6.7.1 - Distancia para a marca do corte (PHOTOTOCUT) Define a distância entre a marca de detecção e o corte. Consiste de um número int32, com a resolução definida no Parâmetro de Resolução do eixo (109, 209). Deve ser definido antes da habilitação do serviço. 130 Manual do PLC V1.00 6.7.2 - Comprimento programado entre marcas (PGMLENGTH) Define o comprimento programado entre as marcas de detecção. Consiste de um número int32, com a resolução definida no Parâmetro de Resolução do eixo (109, 209). Deve ser definido antes da habilitação do serviço. 6.7.3 - Janela para a detecção de marca (MARKWINDOW) Define a janela onde a detecção da marca pela fotocélula será possível. Consiste de um número int32, com a resolução definida no Parâmetro de Resolução do eixo (109, 209). Deve ser definido antes da habilitação do serviço. 131 Manual do PLC V1.00 6.7.4 - Canal do eixo associado à fotocélula (AXISCHANNEL) 6.7.4 - Canal do eixo associado à fotocélula (AXISCHANNEL) Define o eixo ao qual a fotocélula será associada (1 a 8). Consiste de um número int16. Deve ser definido antes da habilitação do serviço. 6.7.5 - Número de médias desejadas para o comprimento (NUMMEDCMP) Número de medidas a serem amostradas para cálculo do comprimento médio. Para os valores 0 e 1, não realiza o cálculo e adota o valor atual. Valor máximo: 16. 6.7.6 - Inicia Captura de dados (INITCAP) Bit de comando (0 -> 1): habilita a aquisição dos dados da fotocélula. Funciona na transição de 0 para 1 apenas. É lido a cada ciclo do PLC. 6.7.7 - Bloqueia fotocélula (BLOCK) Bit de comando (0 -> 1): bloqueia a aquisição dos dados da fotocélula. Funciona na transição de 0 para 1 apenas. É lido a cada ciclo do PLC. 6.7.8 - Medida da posição da marca (INITMEAS) Bit de comando (0 -> 1): inicia a captura da próxima fotocélula, retornando a posição (em relação à marca de detecção anterior) da marca de detecção presente. Funciona na transição de 0 para 1 apenas. É lido a cada ciclo do PLC. 6.7.9 - Bit de identificação remoto/local (REMOTE) Bit de comando/configuração. Quando colocado em 1, especifica que a fotocélula é remota. O estado do bit é verificado todo ciclo, ou seja, o bit deve ser mantido com o valor desejado. 132 Manual do PLC V1.00 6.7.10 - Bit de habilitação do contador (ENCOUNT) Bit de habilitação do contador associado à fotocélula local. Quando em 1 o contador é incrementado a cada interrupção da fotocélula. Como não há bloqueio da interrupção, o tempo gasto é somente o tratamento da interrupção. Usado como contador de entrada rápida. 6.7.11 - Bit de reset do contador (RSTCOUNT) Bit de reset do contador associado à fotocélula. Quando ocorrer a transição para 1 o contador de 4 bytes é resetado para 0x00000000. 6.7.12 - Iniciar comprimento médio com primeiro comprimento medido (INITCMED) *Não implementado 6.7.13 - Comprimento do vínculo do eixo com Lfoto_med Quando o bit está em 1, não reprograma o comprimento do vínculo do came do eixo que usa a correção da foto com o comprimento médio calculado pela foto 6.7.14 - Incremento de correção máximo (IC_MAX) (Lfoto_med), ou seja, mantém comprimento teórico programado. O estado do bit é verificado todo ciclo, ou seja, o bit deve ser mantido com o valor desejado. Número de divisões p/ aplicar correção da foto. Cada divisão corresponde a 4 ms. Default (0) = 8 vezes. Para correção imediata, programa-se 1. Consiste de um Uint16. 6.7.15 - Número do módulo CAN da fotocélula remota (MODUL_ADR) Número do módulo CAN de I/O responsável pela fotocélula. Varia de 0 a 15. Consiste de um Int16. 133 Manual do PLC V1.00 6.8 - Estrutura de Status (CNC → PLC) Base da estrutura (endereço inicial área I): ver tabela. Tamanho da estrutura = 24 bytes. Endereç o Base+24 Base+28 Base+32 Base+36 Base+38 Tipo Int32 Int32 Int32 Int16 Int16 Base+40 Bits1 6 Base+42 Uint1 6 Base+44 Int32 Descrição Nome POSFOTO MEDLEN ERROFOTO FALSECNT Reservado B0 INIT B0 OPEN B0 FAIL B0 EMG B0 FOTOBLO B0 CAPFOTO B0 FOTO_OK B0 TAPETE B0 B0 B1 B1 B1 B1 B1 B1 5 CNTBUFFER Posição da Marca de detecção Comprimento médio Erro da Fotocélula Contador de marcas falsas seqüenciais COUNTER Contador de fotos válidas Serviço iniciado Serviço habilitado Falha geral Estado de Emergência Fotocélula bloqueada Capturando dados Fotocélula Ok (dados capturados) Foto já estava ligada ao entrar na janela de Número de dados do buffer 6.8.1 - Posição da marca de detecção (POSFOTO) Retorna um número correspondente à posição da marca de detecção. Consiste de um número int32, com a resolução definida no Parâmetro de Resolução do eixo. 6.8.2 - Comprimento médio (MEDLEN) Retorna o valor do comprimento médio capturado pela fotocélula. 6.8.3 - Erro da fotocélula (ERROFOTO) Retorna o valor correspondente ao erro da fotocélula, ou seja, o erro da marca atual em relação ao comprimento médio. Erro = marca atual – (marca anterior + comprimento médio) 134 Manual do PLC V1.00 6.8.4 - Contador de marcas falsas seqüenciais (FALSECNT) Retorna o valor da contagem de marcas falsas. Corresponde às falsas detecções entre marcas verdadeiras. 6.8.5 - Contador de pulsos (COUNTER) Contador de pulsos da fotocélula, incrementado quando houver a interrupção (foto válida ou modo contador). 6.8.6 - Condição de TAPETE Ocorre quando ao entrar na janela de detecção (passar a distância de bloqueio), o estado da foto está ligado. P/ aplicações que usam a foto-célula p/ acoplar o came (ex. GigaWatt): Nessa condição, CNC não libera busca da próxima foto e gera uma marca falsa (posição da foto anterior + distância ideal). Distância ideal = (ângulo de aceleração + ângulo de cruzeiro do vínculo do came) * K_camereal (converte ângulo do came em pulsos do eixo real) 135 Manual do PLC V1.00 7 - Serviço de Came Real 7.1 - Descrição geral O serviço de came real habilita o uso das rotinas de captura de dados de encoder de determinado eixo pelo PLC para uso na sincronização de outro eixo. Através deste serviço, o PLC pode configurar o uso do came real e acessar os dados por ele gerados. Os dados configuráveis são: Canal do eixo associado ao came (EIXO) Fator de acoplamento (FACOP) Deslocamento do MCScame em relação ao encoder (OFFSET) Posição para acoplar (POSACOP). Posição para desacoplar (POSDESACOP). Os dados retornados são: Posição do MCScame Bits de status 136 Manual do PLC V1.00 7.2 - Tipos de dados Int16u = Inteiro 16 bits sem sinal (2 bytes) Bits16 = Estrutura de bits (B0 a B15 - 2 bytes) Int32 = Inteiro 32 bits sem sinal (4 bytes) 7.3 - Parâmetros de Configuração Utilizados Não há. Resolução em graus: 1/100 graus, salvo menção em contrário. 7.4 - Parâmetros de PLC utilizados Não há. 7.5 - Estrutura de Dados e Comandos ( PLC → CNC ) Ponteiro base da estrutura de dados e comandos (endereço do início da estrutura de dados na área I) = I788 Tamanho da estrutura = 22 bytes. Endereço Tipo Base Int16 Base+2 Int16 Descrição Canal do eixo associado ao came Deslocamento do MCScame em relação ao encoder Base+4 Float FACOP Fator de acoplamento (float) MCScame/Encoder Base+8 Int16 POSACOP Posição para acoplar Base+10 Int16 POSDESACOP Posição para desacoplar Base+12 Int16 PRESET Valor de preset para a cota Base+14 Int16 NUMFOTO Número da foto-célula Base+16 Int32 DISTFOTO Distância da foto p/ acoplar MCScame B00 CAPREF Capturar referência B01 ACOPIME Acoplar imediatamente B02 ACOPPOS Acoplar após posição B03 DESACOPIME Desacoplar imediatamente B04 DESACOPPOS Desacoplar após posição B05 PRESET Aplica preset da posição do B06 ACOPFOTO Acoplar MCScame após transição Bits16 B07 B08 Base+20 B09 B10 B11 B12 B13 B14 137 Nome EIXO OFFSET Manual do PLC V1.00 B15 - 7.5.1 - Canal do eixo associado ao Came (EIXO) Define o eixo associado aos serviços/rotinas de came. Consiste de um int16. 7.5.2 - ator de acoplamento (FACOP) Define o fator de acoplamento entre o MCScame e o eixo associado. Consiste de um float. Deslocamento do MCScame em relação ao encoder (OFFSET) Define o deslocamento do valor de posição do eixo do MCScame em relação ao valor real lido no encoder. Consiste de um int16. 7.5.3 - Posição para acoplar (POSACOP) Define a posição onde haverá o acoplamento do MCScame com o eixo associado. Essa posição se refere ao MCScame, ou seja, o acoplamento ocorrerá quando a pos do eixo real corresponder a POSACOP p/ o MCScame, considerando o offset. Ex.: POSACOP = 6000 , OFFSET = 1000 Acoplamento ocorrerá qdo PosReal = 5000 -> MCScame = PosReal + OFFSET = 6000 7.5.4 - Posição para desacoplar (POSDESACOP) Define a posição onde haverá o desacoplamento do MCScame com o eixo associado. Essa posição se refere ao MCScame. 7.5.5 - Capturar referência (CAPREF) Bit de comando (0 -> 1): Inicia a captura da referência para o came. 138 Manual do PLC V1.00 7.5.6 - Acoplar imediato (ACOPIME) Bit de comando (0 -> 1): Acopla imediatamente o MCScame ao eixo. Caso existam cames de eixos relacionados ao came real e o ângulo do MCScame estiver dentro de algum vínculo, o CNC calcula a posição base relativa à posição atual dos eixos. 7.5.7- Acoplar após posição (ACOPPOS) Bit de comando (0 -> 1): Determina que o acoplamento acontecerá apenas após a detecção da posição informada. 7.5.8 - Desacoplar imediato (DESACOPIME) Bit de comando (0 -> 1): Determina o desacoplamento imediato do MCScame. 7.5.9 - Desacoplar após posição (DESACOPPOS) Bit de comando (0 -> 1): Determina que o desacoplamento somente acontecerá após a passagem pela posição de desacoplamento informada. 7.5.10 - Aplica Preset (PRESET) Bit de comando (0->1): Faz com que o valor do preset seja aplicado ao valor do Came Real. 7.5.11 - Acoplar MCScame após transição da foto-célula (ACOPFOTO) Após a transição da foto-célula (NUMFOTO), aguarda distância informada em DISTFOTO (resolução centesimal) e acopla MCS Came com preset em relação a posição p/ acoplar (posreal – posacop). 139 Manual do PLC V1.00 7.6 - Estrutura de Status (CNC → PLC) Base da estrutura (endereço inicial área I) = I788 Tamanho da estrutura = 6 bytes. Endereç o Tipo Bits1 Base+22 6 Base+24 Int16 Base+26 Int16 Nome Descrição B0 INIT Serviço iniciado B0 OPEN Serviço habilitado B0 FAIL Falha geral B0 EMG Estado de Emergência B0 ACOPLANDO Esperando posição para acoplar B0 ACOPLADO MCScame Acoplado B0 DESACOPLAN Esperando posição para desacoplar B0 DESACOPLAD MCScame desacoplado B0 CAPREF Capturando referência B0 REFOK Referência Ok B1 B1 B1 B1 B1 B1 5 POSIT Posição do MCScame RPM Velocidade do MCScame Esperando posição para acoplar (ACOPLANDO) Indica estado de espera pela posição de acoplamento. 7.6.2 - MCScame acoplado (ACOPLADO) Indica que o MCScame está acoplado. 7.6.3 - Esperando posição para desacoplar (DESACOPLANDO) Indica estado de espera pela posição de desacoplamento. MCS7.6.4 - came desacoplado (DESACOPLADO) Indica que o MCScame está desacoplado. 140 Manual do PLC 7.6.5 - Capturando referência (CAPREF) Indica que uma captura de referência está ocorrendo. 7.6.6 - Referência OK (REFOK) Indica uma captura de referência bem sucedida. 7.6.7 - Velocidade do MCScame em RPM (RPM) Retorna a velocidade real do MCScame em RPM. 7.6.8 - Posição do eixo (POSIT) Retorna a posição do eixo em graus. 141 V1.00 Manual do PLC V1.00 8 - Serviço de Came Virtual 8.1 - Descrição geral O serviço de came virtual habilita o uso das rotinas de sincronização de movimento de eixos reais com eixos virtuais. Através deste serviço, o PLC pode configurar o uso do came virtual e acessar os dados por ele gerados. Os dados configuráveis são: Cotas de posicionamento e parada (COTA_POS, COTA_STOP). Velocidade de rotação do eixo (RPM). Os dados retornados são: Indicação de movimento do MCScame. Indicação de parada do MCScame. 8.2 - Tipos de dados Int32 = inteiro de 32 bits sem sinal (4 bytes) Int16u = Inteiro 16 bits sem sinal (2 bytes) Bits16 = Estrutura de bits (B0 a B15 - 2 bytes) 8.3 - Parâmetros de Configuração Utilizados Não há. Resoluções em 0.01 graus. 8.4 - Parâmetros de PLC utilizados Não há. 8.5 - Estrutura de Dados e Comandos ( PLC → CNC ) Ponteiro base da estrutura de dados e comandos (endereço do início da estrutura de dados na área I) = I786 Tamanho da estrutura = 12 bytes. Endereço Tipo Base Int16 Base+2 Base+4 Int16 Int16 Nome PRESET COTA_POS COTA_STOP Descrição Valor pré-definido para posição do eixo Cota de posicionamento Cota p/ parada 142 Manual do PLC Base+6 Base+8 Base+10 Int16 Int16 V1.00 RPM Velocidade de rotação do eixo Aceleração/desaceleração do eixo ACELERAC virtual B00 PRESETCOTA Carrega valor de preset B01 ROTPROG Movimento na rotação programada B02 POSFINAL Movimento até cota de B03 STOP Parada imediata B04 STOPFINAL Parada na cota final (COTA_STOP) B05 UNI_RPM Unidade da velocidade: 0 = 1rpm, B06 B07 Bits16 B08 B09 B10 B11 B12 B13 B14 B15 - () indica não implementado. 8.5.1 - Valor para a posição do eixo (PRESET) Define um valor para ser carregado como posição do eixo quando da execução do comando PRESET. Consiste de um int16. Resolução: 0.01 graus. 8.5.2 - Cota de posição (COTA_POS) Define o valor da cota de posicionamento. Movimenta o came virtual até essa cota quando for dado o comando POSFINAL. 8.5.3 - Cota p/ parada programada (COTA_STOP) Valor da posição para parada programada. O comando STOPFINAL faz com que o came virtual pare nesta posição. Consiste de um int16. 8.5.4 - Velocidade do eixo (RPM) Define a velocidade que o eixo irá movimentar. O valor deve ser passado em unidades de RPM (bit5 = 0) ou décimos de RPM (bit5 = 1) e consiste de um int16. 143 Manual do PLC V1.00 8.5.5 - Aceleração/Desaceleração do eixo do Came Virtual (ACELERAC) Tempo em milissegundos para ir de 0 a RPM programada ou RPM a zero. Todos os movimentos respeitam essa aceleração, exceto se não houver distância suficiente p/ desacelerar e parar na cota programada (comandos POS_FINAL e STOP_FINAL). Nesses casos, o came mestre para imediatamente ao chegar na cota (“tranco”). 8.5.6 - Preset para cota (PRESET_COTA) Bit de comando (0->1). Carrega o valor de preset. 8.5.7 - Rotação com valor programável (ROT_PROG) Bit de comando (0->1). Ordena rotação do eixo com valor programado. 8.5.8 - Posicionamento (POS_FINAL) Bit de comando (0->1). Ordena movimento do eixo até a cota de posicionamento, parando em seguida. 8.5.9 - Parada imediata (STOP) Bit de comando (0->1). Ordena parada imediata. 8.5.10 - Parada com cota final (STOP_FINAL) Bit de comando (0->1). Ordena parada quando o eixo atingir a cota final programada. 144 Manual do PLC V1.00 8.6 - Estrutura de Status (CNC → PLC) Base da estrutura (endereço inicial área I) = I786 Tamanho da estrutura = 6 bytes. Endereço Base+12 Base+14 Base+16 Tipo B00 B01 B02 B03 B04 B05 B06 Bits16 B07 B08 B09 B10 B11 B12 B13 B14 B15 Int16 Int16 Nome INIT OPEN FAIL EMG MESTRE_RUN MESTRE_STOP POSIT RPM Descrição Serviço iniciado Serviço habilitado Falha geral Estado de Emergência MCScame girando MCScame parado Posição do eixo virtual Velocidade do eixo virtual 8.6.1 - MCScame parado (MESTRE_STOP) Indica que o MCScame encontra-se parado. 8.6.2 - MCScame girando (MESTRE_RUN) Indica que o MCScame encontra-se em movimento. 8.6.3 - Velocidade do eixo virtual (RPM) Retorna a informação de velocidade do eixo virtual. 8.6.4 - Posição do eixo virtual (POSIT) Retorna a informação de posição do eixo virtual em graus. Resolução: 1/100 graus. 145 Manual do PLC V1.00 9 - Serviço de Came Digital 9.1 - Descrição geral O serviço de came digital habilita o uso das rotinas de sincronização de movimento de eixos com eventos discretos pelo PLC. Através deste serviço, o PLC pode configurar o uso do came digital e acessar os dados por ele gerados. Os dados configuráveis são: Valores de ângulos iniciais, finais e de deslocamento (ANG_INI_C, ANG_FIN_C, SHIFT_C) associados às saídas digitais de forma que estas possam ser ativadas ou desativadas conforme o eixo estiver posicionado dentro destes valores. Origem da referência do came (virtual ou real - TPCAME), posições de acoplamento e desacoplamento (POSACOP, POSDESACOP), offsets (OFFSETVIRTUAL, OFFSETREAL) e valor máximo de velocidade (RPM_MAX). Grupos de saídas digitais associáveis (GRP_OUT_1 e GRP_OUT_2) que poderão ser ativadas ou desativadas de acordo com as faixas de posição selecionadas. Os dados retornados são: Estados de habilitação para os bits associados ao came. 146 Manual do PLC 9.2 - Tipos de dados Int32 = inteiro de 32 bits sem sinal (4 bytes) Int16u = Inteiro 16 bits sem sinal (2 bytes) Bits16 = Estrutura de bits (B0 a B15 - 2 bytes) 9.3 - Parâmetros de Configuração Utilizados Não há. Resolução dos valores em graus: 1/100 graus, salvo menção em contrário. 9.4 - Parâmetros de PLC utilizados Ver parâmetro P6. 147 V1.00 Manual do PLC V1.00 9.5 - Estrutura de Dados e Comandos ( PLC → CNC ) Ponteiro base da estrutura de dados e comandos (endereço do início da estrutura de dados na área I) = I784 Tamanho da estrutura = 124 bytes. Endereço Base Tipo Bits16 Nome TPCAME Base+2 Base+4 Base+6 Base+8 Base+10 Base+12 Base+14 Base+16 Int16 Int16 Int16 Int16 Int16 Int16 Int16 Bits16 OFFSETREAL POSACOP POSDESACOP OFFSETVIRTUAL RPM_MAX GRPOUT1 GRPOUT2 MASK_OUT Base+18 Int16*16 ANGINI[0..15] Base+50 Int16*16 ANGFIM[0..15] Base+82 Int16*16 Base+114 Bits16 Bits16 Base+116 Base+118 Bits16 SHIFT[0..15] CAME_TEMPO B00 ACOPIME B01 ACOPPOS B02 DESACOPIME B03 DESACOPPOS B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 B00 HAB00 B01 HAB01 B02 HAB02 B03 HAB03 B04 HAB04 B05 HAB05 B06 HAB06 B07 HAB07 B08 HAB08 B09 HAB09 B10 HAB10 B11 HAB11 B12 HAB12 B13 HAB13 Descrição Tipo do came referenciado (0 = real; 1 = virtual) Offset para Came Real Posição para acoplamento Posição para desacoplamento Offset para Came Virtual Valor máximo para RPM Grupo de saídas 1 Grupo de saídas 2 Máscara de atualização das saídas Ângulo inicial para atuação do came Ângulo final de atuação do came / Came Tempo Deslocamento do came em função da velocidade Habilita Came Tempo (Normal=0;Came Tempo=1) Acoplamento imediato Acoplamento após posição Desacoplamento imediato Desacoplamento após posição Habilita Came digital 0 Habilita Came digital 1 Habilita Came digital 2 Habilita Came digital 3 Habilita Came digital 4 Habilita Came digital 5 Habilita Came digital 6 Habilita Came digital 7 Habilita Came digital 8 Habilita Came digital 9 Habilita Came digital 10 Habilita Came digital 11 Habilita Came digital 12 Habilita Came digital 13 148 Manual do PLC V1.00 B14 B15 HAB14 HAB15 Base+120 Bits16 TIPHAB Base+122 Int16 -- Habilita Came digital 14 Habilita Came digital 15 Tipo de habilitação da máscara das saídas (1bit por came): 0 = após transição; 1 = imediato Reservado 9.5.1 - Tipo do Came (TPCAME) Define o tipo de Came Mestre ao qual os acionamentos digitais serão acoplados. Cada bit corresponde a um came. O valor 0 estabelece acoplamento ao Came Real e o valor 1 ao Came Virtual. 9.5.2 - Offset do Came Real (OFFSETREAL) Deslocamento somado ao Came Mestre Real durante o cálculo do came. Valores programados em centésimos de grau (0,00 a 359,99 graus). 9.5.3 - Posição para acoplar (POSACOP) Define a posição angular a partir da qual os cames digitais serão acoplados ao Came Mestre ao se solicitar o acoplamento após determinada posição (ACOPPOS). Valores programados em centésimos de grau (0,00 a 359,99 graus). 9.5.4 - Posição para desacoplar (POSDESACOP) Define a posição angular a partir da qual haverá o desacoplamento dos cames digitais do Came Mestre ao se solicitar o desacoplamento após determinada posição (DESACOPPOS). Valores programados em centésimos de grau (0,00 a 359,99 graus). 9.5.5 - Offset do Came Virtual (OFFSETVIRTUAL) Deslocamento somado ao Came Mestre Virtual durante o cálculo do came. Consiste de um int16. 149 Manual do PLC V1.00 9.5.6 - Velocidade máxima (RPM_MAX) Define a velocidade máxima do came. O valor deve ser passado em RPM. Este valor é usado para calcular os deslocamentos automáticos dos ângulos programados em função da velocidade do Came Mestre (ver SHIFT). 9.5.7 - Grupo de saídas n (GRPOUTn) Associa um grupo de 8 saídas ao Came Digital. Pode-se ter até 2 grupos de saídas associadas a cames digitais. 9.5.8 - Máscara de atualização das saídas (MASK_OUT) As saídas atribuídas a cames digitais podem ser controladas pelo PLC ou pelo Came Mestre. A máscara de atualização das saídas define quais saídas serão controladas pelo Came Mestre e quais serão controladas pelo PLC. Se o bit correspondente estiver programado com 0, a saída passa a ser controlada pelo PLC. Se estiver programada com 1 passa a ser controlada pelo Came Mestre. 9.5.9 - Ângulos iniciais LCAMxx (ANG_INI_C[0..15]) Ângulos iniciais para acionamento das saídas digitais. Definem os ângulos, referidos ao Came Mestre, a partir dos quais as saídas digitais serão ligadas. Valores programados em centésimos de grau (0,00 a 359,99 graus). No caso de cames atuados por tempo, definem o ângulo em que o tempo de atuação do came será disparado. 150 Manual do PLC V1.00 9.5.10 - Ângulos finais ou tempo para acionamento dos cames DCAMxx (ANG_FIN_C[0..15]) Ângulos finais ou tempo para acionamento dos cames (centésimos de grau ou tempo em milissegundos). Se o bit correspondente em CAME_TEMPO for 0, os valores programados indicam a posição angular do Came Mestre a partir da qual as saídas serão desligadas. Os valores programáveis neste caso vão de 0,00 a 359,99 graus. Caso o bit correspondente em CAME_TEMPO esteja programado com 1, o valor armazenado nestes registradores corresponde ao tempo em milissegundos que a respectiva saída digital ficará acionada a partir da passagem do Came Mestre pelo ângulo inicial correspondente. Neste caso os valores programáveis vão de 0 a 65535. 9.5.11 - Avanços para rotação máxima (SHIFT_C[0..15]) Definem o máximo deslocamento angular do came em relação aos ângulos de atuação do mesmo. É utilizado para antecipar a atuação do came proporcionalmente à velocidade do Came Mestre. Valores programados em centésimos de grau (0,00 a 359,99 graus). 9.5.12 - Habilita Came Tempo (CAME_TEMPO) Habilita a função de Came Tempo para a saída digital correspondente. Quando o bit correspondente for 0, a saída do came digital é acionada enquanto o Came Mestre estiver dentro da faixa dada por ANG_INI(n) e ANG_FIN(n). Quando o bit correspondente for 1, funciona como Came Tempo, acionando a saída correspondente quando ANG_INI(n) for atingido e desligando-a quando o tempo em milissegundos armazenado em ANG_FIN(n) for atingido. 9.5.13 - Habilitação dos Cames Digitais Cx (EN_xx) Bits de comando, 16 bits, sendo 1 bit por came. Habilitam o controle de estado dos cames de acordo com os ângulos programados para ligar e desligar os cames (LCAMxx e DCAMxx). Quando em 1, o CNC controla o estado do came correspondente. Quando em 0 o CNC não observa o estado do came. Para que uma saída seja controlada pelo Came Mestre o bit correspondente deverá obrigatoriamente estar programado com 1. 151 Manual do PLC V1.00 9.5.14 - Tipo de habilitação da máscara de atualização das saídas (TIPHAB) Determina o momento no qual a atualização das saídas de cames digitais será transferida do PLC ao Came Digital e vice-versa. Duas situações são possíveis: Atualização na transição ao ligar ou desligar o came Neste caso o valor programado no bit correspondente ao came deve ser 0. Ao se ligar o bit correspondente ao came em MASK_OUT, o controle da saída será transferido do PLC ao Came Mestre na primeira transição de 0 para 1 do estado do referido came. Ao se desligar o bit em MASK_OUT, o controle da saída será transferido do Came Mestre ao PLC na transição de 1 para 0 do estado do referido came. Atualização imediata Neste caso o valor programado no bit correspondente ao came deve ser 1. Ao se ligar ou desligar o bit correspondente ao came em MASK_OUT, a transferência de controle do PLC ao Came Mestre e vice-versa ocorre imediatamente. 152 Manual do PLC V1.00 9.6 - Estrutura de Status (CNC → PLC) Base da estrutura (endereço inicial área I) = I784 Tamanho da estrutura = 12 bytes. Endereço Tipo B00 B01 B02 B03 B04 B05 B06 B07 B08 Base+124 Bits16 B09 B10 B11 B12 B13 B14 B15 B00 B01 B02 B03 B04 B05 B06 B07 B08 Base+126 Bits16 B09 B10 B11 B12 B13 B14 B15 Base+128 Bits16 Base+130 Bits16 Base+132 Bits16 Nome INIT OPEN FAIL EMG R_ACOPLANDO R_ACOPLADO R_DESACOPLANDO R_DESACOPLADO VIRTUAL CAME_00 CAME_01 CAME_02 CAME_03 CAME_04 CAME_05 CAME_06 CAME_07 CAME_08 CAME_09 CAME_10 CAME_11 CAME_12 CAME_13 CAME_14 CAME_15 STT_OFF_ON STT_ON_OFF STT_MASK_HAB Base+134 Int16 -- Descrição Serviço iniciado Serviço habilitado Falha geral Estado de Emergência Esperando posição para MCScame Acoplado (Came Real) Esperando posição para MCScame desacoplado (Came MCScame Virtual acoplado Came 00 ligado (dentro da Came 01 ligado (dentro da Came 02 ligado (dentro da Came 03 ligado (dentro da Came 04 ligado (dentro da Came 05 ligado (dentro da Came 06 ligado (dentro da Came 07 ligado (dentro da Came 08 ligado (dentro da Came 09 ligado (dentro da Came 10 ligado (dentro da Came 11 ligado (dentro da Came 12 ligado (dentro da Came 13 ligado (dentro da Came 14 ligado (dentro da Came 15 ligado (dentro da zona) Transição de entrada (1bit por came) Transição de saída (1bit por came) Máscara de habilitação das saídas (1bit por came) Reservado 9.6.1 - Cames ligados (CAME_xx) Sinaliza quais os bits do came que estão ligados. Estes bits sinalizam os estados das saídas sem levar em conta se estas estão ou não habilitadas. 153 Manual do PLC V1.00 9.6.2- Transição cames ligados (STT_OFF_ON) Sinaliza a transição de estado de 0 para 1 dos cames. Estes bits sinalizam a transição de estado dos cames independentemente das saídas estarem habilitadas ou não. 9.6.3- Transição cames desligados (STT_ON_OFF) Sinaliza a transição de estado de 1 para 0 dos cames. Estes bits sinalizam a transição de estado dos cames independentemente das saídas estarem habilitadas ou não. 9.6.4 - Estado da habilitação das saídas dos cames digitais (STT_MASK_HAB) Indica quem possui o controle das saídas dos cames digitais. Se 0 indica que o controle das saídas está com o PLC. Se 1 indica que o controle está com o Came Digital. 154 Manual do PLC V1.00 10 - Serviço do Came dos Eixos: Vínculos Normais e Controle 10.1 - Descrição geral O serviço do came dos eixos: Vínculos normais e Controle, define as tabelas de vínculos de posição com o Came Real ou o Came Virtual. Através deste serviço, o PLC pode associar até 4 vínculos para cada um dos 8 eixos possíveis, assim como habilitar o acoplamento e desacoplamento do Came dos Eixos ao MCScame (Real ou Virtual). Os dados configuráveis são: Eixo associado Número de vínculos do eixo Sendo que para cada vínculo podem ser definidos: Ângulo inicial e final Comprimento do vínculo Zona de transição 10.2 - Tipos de dados Int32 = inteiro de 32 bits sem sinal (4 bytes) Int16u = Inteiro 16 bits sem sinal (2 bytes) Bits16 = Estrutura de bits (B0 a B15 - 2 bytes) 10.3 - Parâmetros de Configuração Utilizados Não há. Resolução dos valores em graus: 1/100 graus, salvo menção em contrário. Resolução em mm: 1/1000mm, salvo menção em contrário. 10.4 - Parâmetros de PLC utilizados Não há. 155 Manual do PLC V1.00 10.5 - Tabela de Endereços da estrutura de dados e comandos: Ponteiro base da estrutura de dados e comandos (endereço do início da estrutura de dados na área I): Número do eixo Eixo 1 Eixo 2 Eixo 3 Eixo 4 Eixo 5 Eixo 6 Eixo 7 Eixo 8 Endereço (I) 768 770 772 774 776 778 780 782 156 Manual do PLC V1.00 10.6 - Estrutura de Dados e Comandos ( PLC → CNC ) Ponteiro base da estrutura de dados e comandos (endereço do início da estrutura de dados na área I): ver tabela de endereços. Tamanho da estrutura = 116 bytes. Endereço Tipo Nome Base Int16 EIXOASS Base+2 Int16 TPMCSCAME Base+4 Int16 OFFSET Base+6 Int16 POSACOP Base+8 Int16 POSDESACOP Base+10 Int16 POSTABAUX_OK Base+12 Int16 NUMFOTO Base+14 Int16 NUMVINC Base+16 Bits16 SENTVINC Base+18 Base+20 Int16 RECUO Int16 DELTA_REC Base+22 Base+24 Int16 SKIP Int16 VINCPLX_1 Base+26 Base+28 Base+30 Base+32 Int16 Int16 Int16 Int32 Base+36 float FATOR_INI_1 Base+40 float FATOR_FIM_1 Base+44 Int16 VINCPLX_2 Base+46 Base+48 Base+50 Base+52 Int16 Int16 Int16 Int32 Base+56 float FATOR_INI_2 Base+60 float FATOR_FIM_2 Base+64 Int16 VINCPLX_3 Base+66 Base+68 Int16 ANG_INI_3 Int16 ANG_FIM_3 157 ANG_INI_1 ANG_FIM_1 ZONA_TRANS_1 COMPR_VINC_1 ANG_INI_2 ANG_FIM_2 ZONA_TRANS_2 COMPR_VINC_2 Descrição Eixo associado Tipo do MCScame Deslocamento entre Came Eixo e MCScame Posição para acoplar ao MCScame Posição para desacoplar ao MCScame Posição para validar tabela auxiliar Número da foto p/ correção do comprimento do vínculo (0 = modo liso) Número de vínculos do eixo Sentido dos vínculos (1bit/vínculo) Valor do recuo (em 1/10mm) Faixa de recuo (delta) (em 1/100 graus) Modo skip (0=normal) Vínculo complexo associado 1 Ângulo inicial 1 Ângulo final 1 Zona de transição 1 Comprimento do vínculo 1 (em 1/1000 mm) Fator de acoplamento inicial (em mm/grau) Fator de acoplamento final (em mm/grau) Vínculo complexo associado 2 Ângulo inicial 2 Ângulo final 2 Zona de transição 2 Comprimento do vínculo 2 (em 1/1000 mm) Fator de acoplamento inicial (em mm/grau) Fator de acoplamento final (em mm/grau) Vínculo complexo associado 3 Ângulo inicial 3 Ângulo final 3 Manual do PLC V1.00 Base+70 Base+72 Int16 ZONA_TRANS_3 Int32 COMPR_VINC_3 Base+76 float FATOR_INI_3 Base+80 float FATOR_FIM_3 Base+84 Int16 VINCPLX_4 Base+86 Base+88 Base+90 Base+92 Int16 Int16 Int16 Int32 Base+96 float FATOR_INI_4 ANG_INI_4 ANG_FIM_4 ZONA_TRANS_4 COMPR_VINC_4 Base+100 float FATOR_FIM_4 B00 B01 B02 B03 B04 B05 B06 B07 Bits16 B08 Base+104 B09 B10 B11 B12 B13 B14 B15 ACOPIME ACOPPOS DESACOPIME DESACOPPOS HABVINC_1 HABVINC_2 HABVINC_3 HABVINC_4 VALTAB_VINC1 VALTAB_PVINC VALTAB_POS VALTAB_IME PROGVINC VALTAB_VINC1AUX RECUAR COMP_VINC B00 ACOPFOTO1 B01 ACOPFOTO2 B02 MAIN_AUX B03 BLOQ_AUX B04 BLOQ_FOTO Base+106 B05 Bits16 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 Base+108 Int32 DISTFOTO Zona de transição 3 Comprimento do vínculo 3 (em 1/1000 mm) Fator de acoplamento inicial (em mm/grau) Fator de acoplamento final (em mm/grau) Vínculo complexo associado 4 Ângulo inicial 4 Ângulo final 4 Zona de transição 4 Comprimento do vínculo 4 (em 1/1000 mm) Fator de acoplamento inicial (em mm/grau) Fator de acoplamento final (em mm/grau) Acoplamento imediato Acoplamento após posição Desacoplamento imediato Desacoplamento após posição Habilita vínculo 1 Habilita vínculo 2 Habilita vínculo 3 Habilita vínculo 4 Validar tabela auxiliar no Vínculo principal Validar tabela auxiliar 1º no Validar tabela auxiliar Validar tabela auxiliar Programar tabelas Valida tabela auxiliar no Habilita recuo (1=Recuo; Programa vínculo usando compensação (RECUO) Acopla após foto 1 + Acopla após foto 2 + 0 = Soma came eixo auxiliar no eixo principal; 1 = Bloqueia novo came quando atual está no vínculo de foto sincronismo 1 = Bloqueia p/ uso no came (não coloca posição no buffer) Distância da foto acoplar came do eixo p/ 158 Manual do PLC Base+112 Uint16 EIXOAUX Base+114 Uint16 V1.00 Num do eixo virtual auxiliar – max 2 eixos (Byte0 = eixo aux 1; Byte1 = eixo aux 2) Reservado 10.6.1 - Eixo associado (EIXOASS) Eixo para o qual os valores passados pelo PLC serão associados, podendo variar de 1 a 8. Consiste de um int16. 10.6.2 - Tipo do MCScame (TPMCSCAME) Seleciona o tipo do MCScame ao qual o Came dos Eixos será referenciado. Real = 0, Virtual = 1. 10.6.3 - Deslocamento entre Came Eixo e MCScame (OFFSET) Deslocamento entre os ângulos dos eixos do MCScame e Came Eixo. Consiste de um int16. 10.6.4 - Posição para acoplar ao MCScame (POSACOP) Posição do eixo do MCScame onde ocorrerá o acoplamento. Consiste de um int16. 10.6.5 - Posição para desacoplar do MCScame (POSDESACOP) Posição do eixo do MCScame onde ocorrerá o desacoplamento. Consiste de um int16. 10.6.6 - Posição para validar a tabela auxiliar de vínculos (POSTABAUX_OK) Posição do MCScame onde ocorrerá a validação da tabela auxiliar de vínculos. Consiste de um int16. 10.6.7 - Número da fotocélula (NUMFOTO) Determina o número da fotocélula associada ao Came. Se for diferente de zero, indica a fotocélula associada. Quando 0, configura modo liso. 10.6.8 - Número de vínculos do eixo (NUMVINC) Número de vínculos de movimento associados ao eixo. Pode variar de 1 a 4. Consiste de um int16. 10.6.9 - Sentido dos vínculos (SENTVINC) 159 Manual do PLC V1.00 Determina o sentido do comprimento dos vínculos. Positivo = 0, negativo = 1, sendo um bit para cada vínculo. 10.6.10 - Valor do recuo (RECUO) Valor do recuo programável em 1/10 de mm (sempre positivo). Quando usado como compensação do vínculo pode assumir valores negativos e positivos. Consiste de um int16. 10.6.11 - Faixa de recuo (DELTA_REC) Valor da faixa de recuo (ângulo) em graus. Consiste de um int16. 10.6.12 - Modo Skip (SKIP) Habilita o uso do modo skip. Para modo normal é igual a 0. 10.6.13 - Vínculo complexo associado (VINCPLX) Vínculo de movimento do tipo complexo (composto por várias faixas de velocidades) associado ao eixo. Consiste de um int16. 10.6.14 - Ângulo inicial do vínculo (ANG_INI_n) Ângulo inicial do vínculo de movimento n, onde n varia de 1 a 4. Consiste de um int16. Unidade: 000,00º. Consiste de um int16. 10.6.15 - Ângulo final do vínculo (ANG_FIM_n) Ângulo final do vínculo de movimento n, onde n varia de 1 a 4. Consiste de um int16. Unidade: 000,00º. Consiste de um int16. 10.6.16 - Comprimento do vínculo (COMPR_VINC_n) Distância a ser percorrida pelo eixo durante o movimento vinculado. Consiste de um int32. Unidade: 1/1000 de mm. Consiste de u int32. 10.6.17 - Zona de transição para cruzeiro (ZONATRANS) Zona de transição de velocidades. Valor de 0 a 50% que define as faixas de aceleração e desaceleração para os movimentos vinculados. Consiste de um Acoplar imediato (ACOPIME) int16. Bit de comando (0 -> 1): Determina a captura imediata do ponto de referência. 160 Manual do PLC V1.00 10.6.18 - Acoplar após posição (ACOPPOS) Bit de comando (0 -> 1): Determina que o acoplamento acontecerá apenas após a detecção da posição informada. 10.6.19 - Desacoplar imediato (DESACOPIME) Bit de comando (0 -> 1): Determina o desacoplamento imediato do came. 10.6.20 - Desacoplar após posição (DESACOPPOS) Bit de comando (0 -> 1): Determina que o desacoplamento somente acontecerá após a detecção da posição de desacoplamento informada. 10.6.21 - Habilitar vínculo n (HABVINC_n) Bits de habilitação individuais dos 4 vínculos. Habilitados em 1, desabilitados em 0. 10.6.22 - Validar tabela auxiliar no 1º. vínculo (VALTAB_VINC1) Validação da tabela de vínculos auxiliar quando o eixo entrar no primeiro vínculo. 10.6.23 - Validar tabela auxiliar no próximo vínculo (VALTAB_PVINC) Validação da tabela de vínculos auxiliares quando o eixo entrar no próximo vínculo. 10.6.24 - Validar tabela auxiliar após posição (VALTAB_POS) Validação da tabela auxiliar de vínculos após a detecção da posição informada. 10.6.25 - Validar tabela auxiliar imediatamente (VALTAB_IME) Validação imediata da tabela auxiliar de vínculos. 10.6.26 - Programar tabelas auxiliares (PROGVINC) Bit de comando (0 -> 1). Programa tabelas auxiliares de vínculos. Consiste de uma estrutura bits16. 10.6.27 - Habilita recuo (RECUAR) Habilita uso do recurso de recuo (valor definido em RECUO). Recuo=1; Normal=0. 161 Manual do PLC V1.00 10.6.28 - Reprograma vínculo usando compensação (COMP_VINC) Executa a reprogramação do vínculo usando compensação (valor armazenado em RECUO). Ativo em 1. 162 Manual do PLC V1.00 10.6.29 - Acoplar came após transição da foto-célula (ACOPFOTO) 10.6.29 - Acoplar came após transição da foto-célula (ACOPFOTO) Após a transição da foto-célula, aguarda distância informada em DISTFOTO (resolução centesimal do eixo associado ao came real) e acopla came do eixo com preset. Came eixo = 0 quando eixo do came real está na posição p/ acoplar. Como nesse caso a foto está no eixo associado ao came real, as posições usadas são deste mesmo eixo. 163 Manual do PLC V1.00 11 - Came Eixo Auxiliar O parâmetro EIXOAUX define o número do eixo auxiliar usado nesse came principal. Pode-se configurar até 2 eixos auxiliares vinculados ao came principal. Se existir eixo auxiliar e o came do eixo principal já estiver acoplado, o comando acoplar após foto irá acoplar o came do eixo auxiliar. O bit de comando MAIN_AUX define se o ponto teórico do eixo principal será a soma dos cames principal e auxiliar (0 = default) ou só o came principal. Programação do Eixo Virtual Auxiliar: - Deve-se programar um conjunto mínimo de parâmetros p/ o correto funcionamento do came auxiliar (tipo do eixo e canais de entrada e saída). - O serviço dos cames auxiliares deve ser habilitado da mesma forma que o do came principal. - Os comandos (programa tabela de vínculos, habilita vínculos, valida tabela auxiliar...) podem ser programados somente no came principal, já que serão refletidos nos cames auxiliares automaticamente pelo CNC. O bit de comando BLOQ_AUX em 1 bloqueia novo came quando atual está no vínculo de sincronismo (cruzeiro), mantendo o sincronismo atual. Após o término desse vínculo, volta a considerar todos os cames, limitando o “tranco” através dos parâmetros do acionamento. 164 Manual do PLC V1.00 11.1 - Estrutura de Status (CNC → PLC) Base da estrutura (endereço inicial área I): ver tabela de endereços. Tamanho da estrutura = 4 bytes. Endereç o Tipo Bits1 Base+11 6 6 Base+11 Bits1 8 6 Descrição Nome B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B1 B1 B1 B1 B1 B1 5 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B1 B1 B1 B1 B1 B1 5 INIT OPEN FAIL EMG ACOPLANDO ACOPLADO DESACOPLAN DESACOPLAD TAB_AUX_OK TAB_PRI_OK VINC_1_IN VINC_2_IN VINC_3_IN VINC_4_IN RESERVADO RESERVADO Serviço iniciado Serviço habilitado Falha Estado de emergência Came do Eixo esperando posição Came do Eixo acoplado Came do Eixo esperando posição Came do Eixo desacoplado Tabela auxiliar programada Tabela principal programada Came dentro do vínculo 1 Came dentro do vínculo 2 Came dentro do vínculo 3 Came dentro do vínculo 4 Reservado Reservado WAIT_R RECUANDO RECUOU WT_COMP_RE COMP_REC STT_SYNC FC_POS FC_NEG Aguardando recuo Recuando Recuado Aguardando para compensar recuo Compensando recuo 0 = sincronismo OK, 1 = fora Fim de Curso Positivo Fim de Curso Negativo - 11.1.1 - Tabela auxiliar programada (TAB_AUX_OK) 11.1.2 - abela principal programada (TAB_PRI_OK) Quando em 1, indica que a tabela auxiliar de vínculos foi programada. 11.1.3 - Came dentro do vínculo n (VINC_n_IN) Quando em 1, indica que a tabela principal de vínculos foi programada. Quando em 1, indica que o Came está dentro do vínculo n correspondente. Sinaliza os estados dos vínculos estando estes habilitados ou não. 165 para para de Manual do PLC V1.00 11.1.4 - Aguardando recuo (WAIT_R) 11.1.4 - Aguardando recuo (WAIT_R) Quando em 1, indica que o Came está esperando pelo recuo. 11.1.5 - Recuando (RECUANDO) Quando em 1, indica que o Came está recuando. 11.1.6 - Recuado (RECUOU) Quando em 1, indica que o Came está recuado. 11.1.7 - Aguardando para compensar recuo (WT_COMP_REC) Quando em 1, indica que o sistema aguarda a compensação de recuo do Came. 11.1.8 - Compensando recuo (COMP_REC) Quando em 1, indica a ocorrência de uma compensação de recuo por parte do Came. 166 Manual do PLC V1.00 12 - Serviço do Came dos Eixos – Vínculos Complexos 12.1 - Descrição geral O serviço do came dos eixos – Vínculos Complexos define as tabelas de vínculos de posição com o Came Real ou o Came Virtual. Através deste serviço, o PLC pode associar até 4 vínculos para cada um dos 8 eixos possíveis. Os dados configuráveis são: Número do vínculo complexo Número de segmentos do vínculo Comprimento do segmento do vínculo 12.2 - Tipos de dados Int32 = inteiro de 32 bits sem sinal (4 bytes) Int16u = Inteiro 16 bits sem sinal (2 bytes) Bits16 = Estrutura de bits (B0 a B15 - 2 bytes) 12.3 - Parâmetros de Configuração Utilizados Não há. Resolução em mm: 1/1000mm, salvo menção em contrário. 12.4 - Parâmetros de PLC utilizados Não há. 12.5 - Estrutura de Dados e Comandos ( PLC → CNC ) Ponteiro base da estrutura de dados e comandos (endereço do início da estrutura de dados na área I) = I766 Tamanho da estrutura = 262 bytes. Endereço Tipo Base Int16 Base+2 Int16 Base+4 Int16 ... Int16 Base+258 Int16 Bits16 167 Nome NUMCPLX NUNSEGCPX Descrição Número de vínculos complexos Número de segmentos de cada vínculo LENSEG_1 Comprimento do segmento 1 ... ... LENSEG_128 Comprimento do segmento 128 B00 PROG_VINC Programar tabela auxiliar de B01 B02 - Manual do PLC Base+260 V1.00 B03 B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 - 12.5.1 - Número de vínculos complexos (NUMCPLX) Número de vínculos complexos. Consiste de um int16. 12.5.2 - Número de segmentos do vínculo (NUMSEGCPX) Número de segmentos do vínculos complexo. Consiste de um int16. É determinado por: 12.5.3 - Comprimento do segmento n (LENSEG_n) Comprimento correspondente a distância percorrida pelo eixo para cada segmento de vínculo. Consiste de 256 int32, sendo organizados conforme os valores de NUMCPLX e NUMSEGCPX. 12.5.4 - Programar vínculo complexo (PROG_VINC) Bit de comando (0 -> 1). Programa vínculos de movimento complexos. Consiste de uma estrutura bits16. 12.6 - Estrutura de Status (CNC → PLC) Base da estrutura (endereço inicial área I) = I766 Tamanho da estrutura = 2 bytes. 168 Manual do PLC Endereço V1.00 Tipo B00 B01 B02 B03 B04 B05 B06 Bits16 B07 B08 Base+262 B09 B10 B11 B12 B13 B14 B15 Nome INIT OPEN FAIL EMG Descrição Serviço iniciado Serviço habilitado Falha Estado de emergência VINC_PROG Vínculo do eixo programado - 12.6.1 - Vínculo programado (VINC_PROG) Bit de status. Indica que o vínculo de movimento correspondente foi programado. 169 Manual do PLC V1.00 13 - Serviço de teclado (Proteo/Mini) 13.1 - Descrição geral O serviço de teclado disponibiliza o acesso ao hardware de teclado ao PLC, através de um buffer de teclado e um mapa de transição de estados. Através desses recursos é possível ao PLC o reconhecimento tanto dos códigos de varredura das teclas quanto dos códigos de caracter associados às mesmas. O mapa de transição, por sua vez, disponibiliza o código correspondente à varredura de uma tecla durante o ciclo de PLC em que esta é pressionada. Os dados acessíveis são: Tecla pressionada: código de tecla (*) Tecla pressionada: código de varredura Mapa de estados de transição (*) De acordo com a implementação 13.2 - Tipos de dados Int16 = Inteiro 16 bits (2 bytes) 13.3 - Parâmetros de Configuração Utilizados Não há. 13.4 - Parâmetros de PLC utilizados Não há. 13.5 - Estrutura de Dados (CNC → PLC) Base da estrutura (endereço inicial) = 378 Tamanho da estrutura = 22 bytes. 170 Manual do PLC Endereço Tipo Base Int16 Base+2 Base+4 Base+6 Base+8 Base+10 Base+12 Base+14 Base+16 Base+18 Base+20 171 V1.00 Nome CODE_EXT Descrição Código QxRL remoto B00 B01 B02 B03 B04 Caracter correspondente B05 CODE à tecla B06 Bits16 B07 B08 B09 B10 B11 B12 SHIFT Estado shift acionado B13 CTRL Estado ctrl acionado B14 PRESS/RELEASE Tecla pressionada B15 PC Flag de leitura do PLC Int16 Código de tecla PLC Não Implementado > CNC Int16 Intersecção de Q0 com as Int16 Intersecção de Q1 com as Int16 Intersecção de Q2 com as Int16 Intersecção de Q3 com as Intersecção de Q4 com as Mapa de estados Intersecção de Q5 com as Intersecção de Q6 com as Intersecção de Q7 com as linhas RL[0..7] Int16 Intersecção de Q0 com as Int16 Intersecção de Q1 com as Int16 Intersecção de Q2 com as Int16 Intersecção de Q3 com as Mapa de estados de Intersecção de Q4 com as transição Intersecção de Q5 com as Intersecção de Q6 com as Intersecção de Q7 com as linhas RL[0..7] Manual do PLC V1.00 13.5.1 - Código QxRL remoto (CODE_EXT) 13.5.1 - Código QxRL remoto (CODE_EXT) Código correspondente à intersecção de uma coluna Qn com uma linha RLm gerado por terminal externo (quando houver). O comportamento é análogo ao do teclado local. 13.5.2 - Caracter correspondente à tecla (CODE) Quando disponível, retorna o código correspondente à tecla pressionada. Os códigos retornados são os correspondentes das teclas na tabela ASCII padrão e/ou os códigos de tecla/função MCS, conforme implementação. 13.5.3 - Estado shift acionado (SHIFT) Quando em 1, este bit indica estado shift para o teclado. Aguarda implemetação. 13.5.4 - Estado control acionado (CTRL) Quando em 1, este bit indica estado control para o teclado. Aguarda implemetação. 13.5.5 - Tecla pressionada (PRESS/RELEASE) Havendo um código de tecla presente em CODE, um valor 0 neste campo indica que a tecla correspondente está sendo pressionada. Se o valor for 1, indica que a tecla foi liberada. Flag de leitura do PLC (PC) Bit lido/escrito pelo PLC para sinalizar leitura do valor da tecla. 13.5.6 - Mapa de estados Região da memória do PLC correspondente ao mapa de estado da(s) última(s) tecla(s) pressionada(s). A intersecção da linha de varredura do teclado com a linha de retorno é retornada no endereço Base+4 acrescido da coluna Qn (correspondente à linha de varredura). A linha de retorno RLn apresenta valor 1 quando pressionada, e 0 quando não pressionada. 172 Manual do PLC Endereç o Tipo Byte Base+n V1.00 Descrição Nome B00 B01 B02 B03 B04 B05 B06 RL0 RL1 RL2 RL3 RL4 RL5 RL6 Linha Linha Linha Linha Linha Linha Linha de de de de de de de retorno retorno retorno retorno retorno retorno retorno RL0 RL1 RL2 RL3 RL4 RL5 RL6 Obs.: A existência ou não de algumas colunas Qn ou linhas de retorno RLn pode variar de acordo com a implementação da membrana do teclado. Ver Mapa de estados de transição documentação do respectivo hardware. Região da memória do PLC correspondente ao mapa de estados de transição. Tem estrutura análoga ao Mapa de Estados, exceto pelo fato de representar apenas uma tecla pressionada e manter o valor da tecla presente na memória apenas pelo tempo de um ciclo de PLC, preenchendo este valor com zero no ciclo seguinte. Funciona tanto com o teclado local quanto com o remoto. 173 Manual do PLC V1.00 14 - Serviços de teclado (PROTEO) 14.1 - Estrutura de Dados (PLC → CNC) Base da estrutura (endereço inicial) = 550 Tamanho da estrutura = 16 bytes. Endereço Base Base+2 Base+4 Tipo Nome B00 NEW_KEY B01 KEY_FILTER B02 SFK_STATREQ B03 STAT_FILTER B04 CHG_SFK_MEM B05 B06 Bits16 B07 B08 B09 B10 B11 B12 B13 B14 B15 Int16 KEYCODE Int16 SFKREQ_H_STT Base+6 Int16 Base+8 Int32 Base+12 Int32 SFKREQ_V_STT SFK_DISABLE SFK_MEMORY Descrição Nova tecla para CNC Filtro de teclas pelo PLC Requisição de novo estado de Filtro de estados da softkey Altera memória das softkeys Código da tecla Nova requisição de status das softkeys Horizontais Nova requisição de status das softkeys Verticais 32 bits correspondentes às softkeys desabilitadas 32 bits correspondentes à memória das softkeys 14.1.1 - Nova tecla para CNC (NEW_KEY) 14.1.2 - Filtro de teclas para PLC (KEY_FILTER) 14.1.3 - Requisição de novo estado de softkey pelo PLC (SFK_STATREQ) 14.1.4 - Filtro de estados da softkey pelo PLC (STAT_FILTER) 14.1.5 - Altera memória das softkeys (CHG_SFK_MEM) 14.1.6 - Código de tecla (KEYCODE) 174 Manual do PLC 14.1.7 - Nova requisição de status das softkeys Horizontais (SFREQ_H_STT) 14.1.8 - Nova requisição de status das softkeys Verticais (SFREQ_V_STT) 14.1.9 - Mapa de 32 bits correspondentes às softkeys desabilitadas (SFK_DISABLE) 14.1.10 - Mapa de 32 bits correspondentes à memória das softkeys (SFK_MEMORY) 175 V1.00 Manual do PLC V1.00 14.2 - Estrutura de Status (CNC → PLC) Tamanho da estrutura = 28 bytes. Endereço Tipo Nome B00 NEWKEY B01 SFK_STREQ B02 B03 B04 B05 B06 Bits16 B07 B08 Base+16 B09 B10 B11 B12 B13 B14 B15 Base+18 Int16 KEYCODE Base+20 Int16 SFK_REQ_H Base+22 Int16 Base+24 Int16 Base+26 Int16 Base+28 Int32 Base+32 Int32 Base+36 Base+40 Base+42 Int32 Int16 Int16 Descrição Nova tecla para o PLC Requisição de novo estado de Código da tecla Requisição de novo estado de softkeys Horizontais Requisição de novo estado de SFK_REQ_V softkeys Verticais Estado corrente das softkeys SFK_STT_H horizontais Estado corrente das softkeys SFK_STT_V verticais 32 bits de máscara de enable para SFK_EN_MSK softkeys 32 bits de máscara de memória SFK_MEM_MASK para softkeys SFK_MEM 32 bits de memória das softkeys CURRENT_VK Foco atual LAST_VK Último foco 14.2.1 - Nova tecla para o PLC (NEWKEY) 14.2.2 - Requisição de novo estado de softkey para PLC (SFK_REQ) 14.2.3 - Código de tecla (KEYCODE) 14.2.4 - Requisição de novo estado de softkeys Horizontais (SFK_REQ_H) 176 Manual do PLC 14.2.5 - Requisição de novo estado de softkeys Verticais (SFK_REQ_V) 14.2.6 - Estado corrente das softkeys Horizontais (SFK_STT_H) 14.2.7 - Estado corrente das softkeys Verticais (SFK_STT_V) 14.2.8 - Máscara de 32 bits de habilitação para softkeys (SFK_EN_MSK) 14.2.9 - Máscara de 32 bits de memória para softkeys (SFK_MEM_MASK) 14.2.10 - Memória de 32 bits das softkeys (SFK_MEM) 177 V1.00 Manual do PLC V1.00 15 - Serviço de display LCD 15.1 - Descrição geral O serviço de display LCD disponibiliza o acesso à escrita do display ao PLC através de um buffer de display na memória do PLC. São possíveis 80 posições de memória que podem ser preenchidas com caracteres ASCII para visualização. O formato de visualização é composto de 4 linhas com até 20 caracteres cada. 15.2 - Tipos de dados Int16u = Inteiro 16 bits sem sinal (2 bytes) 15.3 - Parâmetros de Configuração Utilizados Não há. 15.4 - Parâmetros de PLC utilizados Não há. 15.5 - Estrutura de Dados (CNC → PLC) Base da estrutura (endereço inicial área I) = I400 Tamanho da estrutura = 82 bytes. Endereço Tipo Base Int16 Nome Posição 0 Posição 1 Base+2 Int16 Posição 2 Posição 3 Base+... ... Base+78 Int16 Posição 78 Posição 79 B00 BLINK B01 CLRLCD B02 B03 B04 B05 B06 B07 B08 Base+80 Bits16 B09 B10 B11 B12 B13 B14 B15 Descrição Linha 1, coluna 1 Linha 1, coluna 2 Linha 1, coluna 3 Linha 1, coluna 4 ... Linha 4, coluna 19 Linha 4, coluna 20 Não Implementado Não Implementado - 178 Manual do PLC V1.00 15.5.1 - Disposição dos caracteres no display Disposição física dos caracteres no display: Colunas Linha 1 Linha 2 Linha 3 Linha 4 1 2 3 4 5 6 7 8 9 1 1 10 1 2 11 1 3 12 1 4 13 1 5 14 1 6 15 1 7 16 1 8 17 1 9 18 20 08 1 0 09 00 01 02 03 04 05 06 07 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 15.6 - Acesso ao display Para escrever no display, basta preencher o buffer de display com os dados em ASCII correspondentes ao texto desejado. O display dispõe dos caracteres de 32d a 127d em conformidade com a norma, além de caracteres extras correspondentes aos códigos acima de 127d (padrão Samsung/KS0076B ou Hitachi/HD44840B – ver tabela do fabricante conforme implementação do hardware). O apagamento de texto é feito escrevendo-se o caracter de “espaço” (ASCII 32d ou 20h) em todas as posições de memória do display. 179 19 Manual do PLC V1.00 16 - Serviço de Movimento Manual 16.1 - Descrição geral O serviço de movimento manual permite que um cliente realize o movimento de um eixo. Geralmente, este movimento é solicitado no modo de operação manual para permitir ao operador deslocar os eixos através de chaves de movimento ou softkeys. Em aplicações especiais pode ser necessário mover os eixos por interferência do operador nos modos de execução ou programação. 16.2 - Tipos de dados Int32 = inteiro de 32 bits sem sinal (4 bytes) Int16u = Inteiro 16 bits sem sinal (2 bytes) Bits16 = Estrutura de bits (B0 a B15 - 2 bytes) 16.3 - Parâmetros de Configuração Utilizados Px29 = Velocidade em modo manual /modo manivela (mm/min) Parâmetros de PLC utilizados (I)64 a (I)80 - Sendo dois bytes para cada eixo que indicam a velocidade do movimento manual incremental ou independente. Se estas variáveis estiverem zeradas, a velocidade será é dada pelo parâmetro Px29, senão, a velocidade é dada pelo valor inserido nestas variáveis, referentes a cada eixo. 180 Manual do PLC V1.00 16.4 - Estrutura de Dados e Comandos (PLC → CNC) Endereço 2 e 3 Tipo B00 B01 B02 B03 B04 B05 B06 Bits16 B07 B08 B09 B10 B11 B12 B13 B14 B15 14 Bits16 29 Bits8 Nome E1P E1N E2P E2N E3P E3N E4P E4N E5P E5N E6P E6N E7P E7N E8P E8N ZERO B00 MMAIN1 B01 MMAIN2 B02 MMAIN3 B03 MMAIN4 B04 MMAIN5 B05 MMAIN6 B06 MMAIN7 B07 MMAIN8 B08 MOVIN1 30 e 31 Bits16 B09 MOVIN2 B10 MOVIN3 B11 MOVIN4 B12 MOVIN5 B13 MOVIN6 B14 MOVIN7 B15 MOVIN8 32 Int32 POSMJ1 181 36 Int32 POSMJ2 40 Int32 POSMJ3 44 Int32 POSMJ4 48 Int32 POSMJ5 52 Int32 POSMJ6 56 Int32 POSMJ7 60 Int32 POSMJ8 Descrição Movimento eixo 1 sentido positivo Movimento eixo 1 sentido negativo Movimento eixo 2 sentido positivo Movimento eixo 2 sentido negativo Movimento eixo 3 sentido positivo Movimento eixo 3 sentido negativo Movimento eixo 4 sentido positivo Movimento eixo 4 sentido negativo Movimento eixo 5 sentido positivo Movimento eixo 5 sentido negativo Movimento eixo 6 sentido positivo Movimento eixo 6 sentido negativo Movimento eixo 7 sentido positivo Movimento eixo 7 sentido negativo Movimento eixo 8 sentido positivo Movimento eixo 8 sentido negativo ... Ver tabela de habilitações ... 0 = Zero Ativo, 1 = Zero Máquina(G53) (1 bit/eixo) Movimento manual incremental eixo 1 Movimento manual incremental eixo 2 Movimento manual incremental eixo 3 Movimento manual incremental eixo 4 Movimento manual incremental eixo 5 Movimento manual incremental eixo 6 Movimento manual incremental eixo 7 Movimento manual incremental eixo 8 Movimento independente eixo 1 Movimento independente eixo 2 Movimento independente eixo 3 Movimento independente eixo 4 Movimento independente eixo 5 Movimento independente eixo 6 Movimento independente eixo 7 Movimento independente eixo 8 Posição ou incremento para movimento jog eixo 1 Posição ou incremento para movimento jog eixo 2 Posição ou incremento para movimento jog eixo 3 Posição ou incremento para movimento jog eixo 4 Posição ou incremento para movimento jog eixo 5 Posição ou incremento para movimento jog eixo 6 Posição ou incremento para movimento jog eixo 7 Posição ou incremento para movimento jog eixo 8 Manual do PLC V1.00 64 Bits16 FEED_JOG1 Velocidade do movimento manual incremental ou independente (eixo 1 ) 66 Bits16 FEED_JOG2 Velocidade do movimento manual incremental ou independente (eixo 2 ) 68 Bits16 FEED_JOG3 Velocidade do movimento manual incremental ou independente (eixo 3 ) 70 Bits16 FEED_JOG4 Velocidade do movimento manual incremental ou independente (eixo 4 ) 72 Bits16 FEED_JOG5 Velocidade do movimento manual incremental ou independente (eixo 5 ) 74 Bits16 FEED_JOG6 Velocidade do movimento manual incremental ou independente (eixo 6 ) 76 Bits16 FEED_JOG7 Velocidade do movimento manual incremental ou independente (eixo 7 ) 78 Bits16 FEED_JOG8 Velocidade do movimento manual incremental ou independente (eixo 8 ) 16.4.1 - Movimento dos eixos nos sentidos positivo e negativo (EnP/EnN) Para o movimento manual, estes bits determinam o sentido de movimento dos eixos. São ativos em 1. 16.4.2 - Movimento manual incremental/independente do eixo n (MMAINn/MOVINn) Define o tipo do movimento executado pelo serviço. Se selecionado o modo manual incremental, os eixos se moverão por comando manual de acordo com o incremento definido em POSMJn. Se selecionado o modo independente, POSMJn conterá a cota de posicionamento até nas quais os eixos se posicionarão. 182 Manual do PLC V1.00 16.4.3 - Posição ou incremento para movimento jog/eixo (POSMJn) Cota para posicionamento dos eixos, quando em modo independente, ou valor do incremento, quando em modo incremental. 16.4.4 - Procedimentos movimento manual Como exposto acima, existem três tipos de movimento manual: Movimento do eixo sentido positivo/negativo; movimento incremental e movimento independente. Primeiramente é necessário habilitar o serviço na variável I14 (ver tabela habilitações - um bit por eixo). - Para movimento do eixo sentido positivo/negativo basta setar as variáveis 2 a 3 conforme tabela acima. - Para movimento manual incremental, as variáveis de 32 a 60 (ver tabela acima 4 bytes por eixo) devem receber o valor desejado que será incrementado na posição do eixo, a cada transição das variáveis 2 a 3 (dependendo do eixo – ver tabela acima). Os bits da variável 30 deverão ser setados para 1.(ver tabela acima – um bit por eixo) - Para movimento independente, as variáveis de 32 a 64 (ver tabela – 4 bytes por eixo) devem receber o valor ao qual o eixo moverá, bastando para isso setar os bits da variável 31, de acordo com a tabela acima. 183 Manual do PLC V1.00 16.5 - Estrutura de Status (CNC → PLC) Tamanho da estrutura = 2 bytes por eixo. Eixo 1 = I100-101 ... Eixo 8 = I114-115 i = 2 * (num do eixo - 1) Endereço Tipo B00 B01 B02 B03 B04 B05 B06 B07 100 + i Bits16 B08 B09 Nome INIT OPEN INMOVE INMOVEWSTART ABORT FC_POS FC_NEG SUCS_MOVE FAIL OUT_FC_POS B10 OUT_FC_NEG B11 EMERGENCY B12 B13 B14 B15 Descrição Serviço iniciado Serviço habilitado Em movimento Em movimento com Start ou Movimento abortado Fim de curso positivo Fim de curso negativo Movimento Concluído Falha Cota além do fim de curso positivo (não move) Cota além do fim de curso negativo (não move) Sinaliza emergência - Os bits de status do movimento (B02 a B07, B09 e B10) são excludentes, ou seja, somente um bit estará ativo por vez e ficará ativo até que outro bit seja ligado. Caso seja programado um movimento p/ o mesmo ponto, o bit de movimento concluído (B07) irá p/ 1 a partir do próximo ciclo. 16.5.1 - Em movimento (INMOVE) Sinaliza que o respectivo eixo encontra-se em movimento. 16.5.2 - Fins de curso (FC_POS/FC_NEG) Sinaliza que o respectivo eixo atingiu seu fim de curso. 16.5.3 - Cota além do fim de curso (OUT_FC_POS/OUT_FC_NEG) Sinaliza que foi programada uma cota além do fim de curso. Nesse caso, não ocorre o movimento. 184 Manual do PLC V1.00 17 - Serviço de busca de referência 17.1 - Descrição geral A busca de referência é o procedimento de captura da posição absoluta de um eixo de uma máquina que utiliza transdutores incrementais de posição. É necessária para permitir que posicionamentos destes eixos estejam sempre referidos a uma posição determinada da máquina chamada “zero máquina”. 17.2 - Tipos de dados Int32 = inteiro de 32 bits sem sinal (4 bytes) Int16u = Inteiro 16 bits sem sinal (2 bytes) Bits16 = Estrutura de bits (B0 a B15 - 2 bytes) 17.3 - Parâmetros de Configuração Utilizados Px46: Entrada Sentido de busca de referencia. Entrada ligada ao fim de curso de referencia (Grupo, Bit). Px47: Sentido da busca de referência. Px48: Velocidade da busca de referência. Px49: Velocidade de captação de referência. Px52: Tipo de chave de referencia. (Nenhuma(0); Entrada Física(1); Lógica PLC(2)) Px53: Polaridade da chave de referência. 17.4 - Parâmetros de PLC utilizados Não há. 185 Manual do PLC V1.00 17.5 - Estrutura de Dados e Comandos (PLC → CNC) Endereço 4 e 5 6 e 7 8 Tipo Nome B00 CHREF1 B01 BLOQR1 B02 POMAR1 B03 NOREV1 B04 CHREF2 B05 BLOQR2 B06 POMAR2 B07 NOREV2 B08 CHREF3 Bits16 B09 BLOQR3 B10 POMAR3 B11 NOREV3 B12 CHREF4 B13 BLOQR4 B14 POMAR4 B15 NOREV4 B00 CHREF5 B01 BLOQR5 B02 POMAR5 B03 NOREV5 B04 CHREF6 B05 BLOQR6 B06 POMAR6 B07 NOREV6 B08 CHREF7 Bits16 B09 BLOQR7 B10 POMAR7 B11 NOREV7 B12 CHREF8 B13 BLOQR8 B14 POMAR8 B15 NOREV8 Int16 STATUS AXISREF 10 e 11 Descrição Chave de referência eixo 1 Bloqueio de referência eixo 1* Posicionar na marca de referência Não reverte movimento Chave de referência eixo 2 Bloqueio de referência eixo 2* Posicionar na marca de referência Não reverte movimento Chave de referência eixo 3 Bloqueio de referência eixo 3* Posicionar na marca de referência Não reverte movimento Chave de referência eixo 4 Bloqueio de referência eixo 4* Posicionar na marca de referência Não reverte movimento Chave de referência eixo 5 Bloqueio de referência eixo 5* Posicionar na marca de referência Não reverte movimento Chave de referência eixo 6 Bloqueio de referência eixo 6* Posicionar na marca de referência Não reverte movimento Chave de referência eixo 7 Bloqueio de referência eixo 7* Posicionar na marca de referência Não reverte movimento Chave de referência eixo 8 Bloqueio de referência eixo 8* Posicionar na marca de referência Não reverte movimento Status (Ver tabela correspondente) Eixo para buscar referência (1 a 8) Int16 B15 RESET Reinicia servico referência de busca de * Não Implemetado 186 Manual do PLC 17.5.1 - Chave de referência do eixo n (CHREFn) 17.5.1 - Chave de referência do eixo n (CHREFn) Chave de sinalização de referência. 17.5.2 - Bloqueio de referência do eixo n (BLOQRn) Comanda o bloqueio da referência do respectivo eixo. 17.5.3 - Posicionar na marca de referência do eixo n (POMARn) Comanda o posicionamento do respectivo eixo em sua marca de referência. 17.5.4 - Não reverte movimento (NOREV8) Aciona comando que impede a reversão do movimento do eixo na busca de referencia. 17.5.5 - Eixo para buscar referência (AXISREF) Determina para quais eixos serão realizadas as buscas de referência. 187 V1.00 Manual do PLC V1.00 17.6 - Estrutura de Status (CNC → PLC) Tamanho da estrutura = 2 bytes. Endereço 8 e 9 Tipo Nome B00 INIREF B01 STAREF B02 AFCBRF B03 AACBRF B04 AMRBRF B05 ATREFF B06 POSREF PAUSRF Bits16 B07 B08 STOPRF B09 FALHRF B10 REFOKF B11 EMERRF B12 B13 B14 B15 Descrição Serviço Iniciado Esperando start para a referência do Aguardando fechar chave de busca de Aguardando abrir chave de busca de Aguardando marca de referencia eixo Atualizando referencia eixo Posicionando na referencia eixo Referencia em pausa - feed hold eixo Referencia parada (STOP) eixo Falha na referencia eixo Referencia eixo ok Emergencia na referencia do eixo - 17.6.1 - Inicialização para a referência do eixo (INIREF) Sinaliza que a referência do eixo foi inicializada. 17.6.2 - Esperando start para a referência do eixo (STARREF) Indica que o serviço está aguardando p comando de início da busca de referência. 17.6.3 - Aguardando fechar chave de busca de referência do eixo (AFCBRF) Indica que o serviço ainda não encontrou a referência, estando no aguardo do fechamento da chave de fim de curso. 17.6.4 - Aguardando abrir chave de busca de referência do eixo (AACBRF) Indica que o serviço está esperando pela abertura da chave de fim de curso do eixo. 17.6.5 - Aguardando marca de referência do eixo (AMRBRF) Indica que a marca de referência está sendo aguardada. 188 Manual do PLC 17.6.6 - Atualizando referência do eixo (ATREFF) Sinaliza a atualização da referência do eixo. 17.6.7 - Posicionando na referência do eixo (POSREF) Sinaliza que o eixo está posicionado em sua marca de referência 17.6.8 - Referência em pausa (PAUSRF) Indica que a busca de referência foi pausada. 17.6.9 - Referência parada (STOPRF) Indica que a busca de referência está parada. 17.6.10 - Falha na referência do eixo (FALHRF) Sinaliza falha na referência. 17.6.11 - Referência eixo ok (REFOKF) Sinaliza que a busca ocorreu com sucesso. 17.6.12 - Emergência na referência do eixo (EMERRF) Indica estado de emergência no serviço de busca de referência do eixo. 189 V1.00 Manual do PLC V1.00 17.7 - Descrição do funcionamento 17.7.1 - Busca com chave de fim de curso Para discriminar uma das várias marcas de referência existentes em um eixo linear ou rotativo com redução entre o motor e o eixo propriamente dito, o CNC observa uma entrada (física ou lógica) que determina onde se encontra a marca de referência desejada. Esta chave de referência divide o eixo em duas regiões: antes e depois da marca. Ao iniciar o procedimento de busca de referência, o CNC observa o estado da chave e movimenta o eixo no sentido de buscar o estado fechado da chave caso esta esteja aberta, ou aberto, caso esteja fechada. 17.7.2 - Busca sem chave de fim de curso No caso de eixos rotativos onde uma volta do eixo corresponde a uma volta do transdutor, onde só existe uma marca de referência por volta e o eixo pode girar indefinidamente para qualquer um dos sentidos, não é necessária a existência de chave de referência. Para discriminar a marca de referência, o CNC move o eixo no sentido de capturá-la. Para ambos os casos, o eixo de movimento deve ser definido antes da habilitação do serviço. 17.7.3 - Procedimentos Busca de referencia Para a busca de referencia são necessários alguns passos: - Nas variáveis 10 ou 11 (depende do número do eixo) inserir o eixo em que será feita a busca. - Na variável 12.4, habilitar o serviço de busca de referencia. - Na variável 0, iniciar movimento do eixo. - Na variável 4, 5, 6 ou 7 (depende do número do eixo) controlar os movimentos desejados de acordo com tabela de a estrutura de dados e comandos acima. Em caso de busca com chave física, basta controlar a captura pela chave na entrada 0.0, e no caso de não haver chave de referencia, basta iniciar o movimento do eixo na variável 0, e a busca será feita automaticamente. - Acompanhar estrutura de Status nas variáveis 8 e 9. 190 Manual do PLC V1.00 18 - Serviços/Funções MST Ponteiro base da estrutura (endereço na área I) = I 730 Tamanho Total da estrutura: 22 bytes. 18.1 - Estrutura de Controle (PLC → CNC) Tamanho da estrutura = 2 bytes. Endereço Base Tipo B00 B01 B02 B03 B04 B05 B06 B07 B08 Bits1 B09 6 B10 B11 B12 B13 B14 B15 Nome MCODE_OK SPINDLE_OK TOOL_OK Descrição O PLC quitou todas as funções O PLC quitou a função S requisitada O PLC quitou a função T requisitada - 18.1.1 - Funções M requisitadas quitadas pelo PLC (MCODE_OK) Indica que o PLC terminou a execução das funções M. 18.1.2 - Função S quitada pelo PLC (SPINDLE_OK) Indica que o PLC terminou a execução da função S. 18.1.3 - Função T quitada pelo PLC (TOOL_OK) Indica que o PLC terminou a execução da função T (troca de ferramenta). 191 M Manual do PLC V1.00 18.2 - Estrutura de Controle (CNC → PLC) Tamanho da estrutura = 2 bytes. Endereço Base+2 Tipo B00 B01 B02 B03 B04 B05 B06 Bits16 B07 B08 B09 B10 B11 B12 B13 B14 B15 Nome ENABLE FAIL MCODE_REQ SPIND_REQ TOOL_REQ Descrição Serviço habilitado Falha no serviço Requisição de funções M para o Requisição de função S para o PLC Requisição de função T para o PLC - 18.2.1 - Requisição de funções M para o PLC (MCODE_REQ) Requisita a execução de uma função M (miscelânia) para o PLC. 18.2.2 - Requisição de função S para o PLC (SPIND_REQ) Requisita a execução de uma função S para o PLC. 18.2.3 - Requisição de função T para o PLC (TOOL_REQ) Requisita a execução da função T (troca de ferramenta) para o PLC. 18.3 - Funções M Tamanho = 12 bytes Endereço Base+4 Base+6 Base+8 Base+10 Base+12 Tipo Int16 Int16 Int16 Int16 Int16 Nome MCODE_0 MCODE_1 MCODE_2 MCODE_3 Descrição Matriz para funções-miscelânia auxiliares (M-functions) Bits decodificados do (M_bit_0 a M_bit_15) Base+14 Int16 Bits decodificados do MCODE_BITS_1 (M_bit_16 a M_bit_31) MCODE_BITS_0 código M código M 192 Manual do PLC V1.00 18.3.1 - Matriz para funções-miscelânia auxiliares (MCODE_n) 18.3.2 - Bits decodificados do código M (MCODE_BITS_0 e MCODE_BITS_1) 18.4 - Funções S Tamanho = 2 bytes Endereç Tipo o Base+16 Int16 Descrição Nome SCODE Código S do eixo árvore principal 18.4.1 - Código S (SCODE) Código da função S passada para o PLC. Consiste de um int16. 18.5 - Funções T Tamanho = 2 bytes Endereç Tipo o Base+18 Int16 Descrição Nome TCODE Código T da ferramenta (posição no trocador) 18.5.1 - Código T (TCODE) Recebe o código da ferramenta (posição no trocador) para a função T de troca de ferramentas. Consiste de um int16. 18.6 - Funções S (eixo árvore auxiliar) Tamanho = 2 bytes Endereç Tipo o Base+20 Int16 193 Nome SCODE_AUX Descrição Código S do eixo árvore auxiliar Manual do PLC V1.00 19 - Serviço de Mensagens / Alarmes 19.1 - Estrutura de Dados (PLC → CNC) Habilitação do Serviço: Bit 15.0 Ponteiro base da estrutura do serviço (base indireta): Word 738 Tamanho da estrutura = 40 bytes. Endereço Tipo Nome Descrição Base Uint16 ALARME_00 Código de alarme 0 (PLC->CNC) ... ... ... Base+20 Uint16 ALARME_10 Código de alarme 10 Base+22 Uint16 1º Código de Erro do CNC (Status CNCSTT_ERRO >PLC) Base+24 Bits8 Mensagens: 0.0 a 0.7 (1 bit por MSG_0X mensagem) ... ... ... Base+39 Bits8 MSG_15X Mensagens: 15.0 a 15.7 19.1.1 - Códigos de alarme (ALARME_nn) 19.1.2 - Status de Erro (STT_ERRO) Status CNC -> PLC: 1º Código de Erro do CNC (erro apresentado na tela). Ao limpar erros, esse código será 0. 0 = nenhum erro. Mensagens (MSG_nX) 194 Manual do PLC V1.00 20 - Geral S (spindle) 20.1 - Parâmetros de Configuração Utilizados PROTE O Geral P026 P027 P028 P058 MINI P053 P052 -P058 DESCRIÇÃO Seleciona POT S Valor max do POT S (em %) Valor min do POT S (em %) Cálculo da velocidade média do eixo árvore (S real) Eixo Px00 Px00 Tipo do eixo Px01 Px02 Px12 Px13 Px14 Px15 Px16 Px17 Px18 Px19 Px20 Px21 Px03 Px73 Px14 Px15 Px16 -Px18 Px19 Px21 Px22 Px71 Px12 Px24 Px25 Px69 Px13 Px27 Px29 Px28 Px29 Px31 Px60 Px28 Px68 Px74 Px31 Controle do motor CAN: Tipo de acionamento Canal Analógico / CAN Saída Analógica do PLC Polaridade do sinal de saída Tipo do sinal de saída (0 = velocidade, 1 = torque) Limite do sinal de saída p/ max velocidade do motor (%) Max valor do sinal de saída (correspondente aos 10V) Canal de entrada do contador Inversão do sentido de contagem Pulsos por volta do encoder Relação de acoplamento do encoder (voltas do encoder / voltas do eixo) Máxima RPM do motor Relação de acoplamento do motor (voltas do motor / voltas do eixo) Velocidade no modo manual (rpm) - pode ser passado pelo Serviço do PLC Velocidade da parada indexada (M19) (rpm) Tempo de aceleração (em ms) para atingir máxima velocidade Módulo do eixo rotativo (graus) Ganho Proporcional (Kp) - usado no M19 x = número do eixo (1 a 8) 20.2 - Variáveis do PLC 0.5: Pot S por PLC 128-129: Valor do Pot S 195 VALOR 0 = 128ms 1 = 16ms (3 = árvore) (0 = CNC) Manual do PLC V1.00 20.3 - Procedimento p/ Configuração do GeralS M3 deve contar pulsos no sentido positivo: Acertar polaridade da saída analógica (Px16) para M3 girar no sentido desejado (horário ou anti-horário); Acertar sentido de contagem (Px22) para M3 contar pulsos no sentido positivo. 196 Manual do PLC V1.00 20.4 - Estrutura de Dados e Comandos(PLC → CNC) Habilitação do Serviço: Bit 13.6 Ponteiro base da estrutura do serviço (base indireta): Word 736 Tamanho da estrutura = 10 bytes. Endereç Tipo o Base Int16 Base+2 Int16 Base+4 Int16 Base+6 Base+8 Nome Descrição AXIS JOG_RPM Eixo associado Velocidade de jogging M3/M4 (em RPM) Rotação máxima p/ definir relação da gama GAMA_MAX (RPM) Int16 Valor a ser programado nas variáveis de PROG prog B0 M3 ... (0->1) B0 M4 ... (0->1) B0 M5 ... (0->1) B0 M19 Parada indexada. Ativo enquanto igual a 1 B0 JOG_M3 ... Ativo enquanto igual a 1 B0 JOG_M4 ... Ativo enquanto igual a 1 B0 Scode Programa Scode (PROG) p/ M3 e M4 (0->1) B0 AngM19 Programa ângulo (PROG) p/ M19 (0->1) Bits1 B0 Smax_Vcc Programa Smax (PROG) p/ corte cte (0->1) 6 B0 Vcc Programa Vel Corte Cte (PROG) (0->1) B1 EixoVcc Programa eixo (PROG) do corte cte (0->1) B1 Vcc_ON Liga modo de Velocidade de corte cte (0B1 Vcc_OFF Desliga modo de Velocidade de corte cte B1 Ref Busca Ref novamente ao pedir movimento B1 Smax Programa limite do S teórico na gama B1 M119 Eixo controlado (PID). Ativo em 1 5 20.4.1 - Eixo associado (AXIS) Número do eixo associado ao serviço Geral S 20.4.2 - Velocidade de jogging M3/M4 (JOG_RPM) Velocidade de movimento em JOG. Se 0 vale o parâmetro de velocidade em modo manual (em RPM). 20.4.3 - Rotação máxima na gama selecionada (GAMA_MAX) Rotação máxima do eixo árvore na gama selecionada (corresponde a MaxRPM do motor). Define relação de acoplamento da gama selecionada e calcula fator de conversão. = 0: vale o valor configurado nos parâmetros (MaxRPM / Acoplamento Motor). != 0: vale o valor programado pelo PLC. 197 Manual do PLC V1.00 Esse valor (Smax_gama) é usado p/ calcular os ganhos do GeralS e PID (posicionamento) p/ o eixo árvore. O acoplamento do motor/eixo pode ser calculado dividindo o parâmetro de MaxRPM pelo Smax_gama. Para o cálculo do número de pulsos por volta do motor (módulo do drive), multiplica-se o parâmetro de pulsos do encoder pelo parâmetro de acoplamento encoder/eixo dividido pelo acoplamento motor/eixo. Ou seja, Pulsos do motor = Px20 * Px21 / (Px24 / Smax_gama). 20.4.4 - Valor a ser programado nas variáveis de programa (PROG) Os bits de comando (programação) definem o significado dessa variável: Velocidade S desejada em RPM para M3 e M4; Ângulo em centésimos de grau para M19; RPM máxima para VCC (RPM máxima para velocidade de corte constante); Velocidade de Corte Constante em m/min; Eixo associado à velocidade de corte constante (normalmente X); 20.4.5 - Bit M19 (Parada Indexada) Quando vai para 1, fecha a malha e pára no ângulo programado usando PID. O eixo árvore permanece controlado enquanto bit estiver em 1. Quando bit zera, abre a malha do eixo novamente. Velocidade dada pelo parâmetro Px28 (rpm). 20.4.6 - Bit Ref Ao pedir 1º movimento (M3, M4 ou Jog), busca referência do eixo automaticamente. Se esse bit estiver em 1 quando pede um movimento, o eixo será referenciado novamente. 20.4.7 - Bit M119 (Eixo Controlado) Transição 0->1: eixo árvore torna-se controlado (fecha a malha PID), permitindo posicionamentos. Transição 1->0: eixo árvore volta a ser do GeralS (malha aberta). * Ao receber código M119, PLC deve ligar bit de comando e aguardar bit de status M119 ligar p/ quitar função M. Isso garante que a execução só continue após as inicializações necessárias do básico. 198 Manual do PLC V1.00 20.5 - Estrutura de Status (CNC → PLC) Habilitação do Serviço: Bit 13.6 Ponteiro base da estrutura do serviço (base indireta): Word 736 Tamanho da estrutura = 4 bytes. Endereç o Tipo Bits1 Base+10 6 Base+12 Uint1 6 Descrição Nome B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B1 B1 B1 B1 B1 B1 5 INIT OPEN REF_ERR S_ERROR FAIL EMERGEN IN_MOVE IN_WIND M19 MOD_VCC FAIL_CN BUSCREF REFOK M119 S_REAL Erro de referência no M19 S inválido ou igual a 0 S em movimento S dentro da janela (no M19) S em M19 Modo: 0 = normal; 1 = Velocidade de Corte Sentido de contagem invertido (falha) Buscando Referência do eixo árvore Eixo árvore referenciado S em M119 (malha fechada) Velocidade do eixo árvore (spindle, em RPM) 20.5.1 - Erro de referência no M19 (REF_ERROR) 20.5.2 - S em movimento (IN_MOVE) Sinal de Saída (analógica) diferente de 0 -> S em movimento (bit = 1) 20.5.3 - S dentro da janela (IN_WINDOW) 20.5.4 - Velocidade do eixo árvore (S_REAL) Eixo COM Encoder -> Leitura do Sreal. Eixo SEM Encoder -> Sreal = Steo = Sprog * PotS (considerando aceleração e vel de corte cte). 199 Manual do PLC V1.00 21 - Serviço de temperatura 21.1 - Descrição geral O serviço de temperatura provê meios de programar os fatores Ki, Kp e Kd dos controles de termopar por canal (para as versões de módulos com 3, 5 e 10 canais). Pode ainda, programar as potências de desumidificação, Set Points, faixas de controle de atuação do PID, faixa de controle do fator integrador do PID, constantes de conversões e habilitações de canais. O serviço deve retornar informações de temperatura, porcentagem de potências de saída e avisos de canais abertos, além de informação a respeito de quantos canais estão habilitados no módulo e status do serviço. Cada serviço solicitado ao módulo deverá ser realizado um de cada vez, devendo aguardar o término de um para iniciar outro. 21.2 - Tipos de dados Uint16= Inteiro 16 bits sem sinal (2 bytes) Bits48 = Estrutura de bits (B0 a B48 - 6 bytes) 21.3 - Parâmetros de Configuração Utilizados P6: Módulo 0 P7: Módulo 1 ... ,,, P22: Módulo 14 P21: Módulo 15 Código correspondente ao módulo temperatura: 10 (MOD_TEMPERATURA_CAN) Código correspondente ao módulo misto de temperatura com IO: 11(MOD_MIX_TEMPERATURA_IO) 21.4 - Parâmetros de PLC utilizados Definir 200 Manual do PLC V1.00 21.5 - Estrutura de Dados e Comandos ( PLC → CNC ) Ponteiro base da estrutura de dados e comandos (endereço na área I): I732. Tamanho da estrutura = 36 bytes. Endereç o Base Base+2 Tipo Uint16 Uint16 CUR_CHANN LAST_CHANN Base+4 Bits48 EN_OUT Base+10 Base+12 Uint16 Uint16 Reservado TEMP_ZONE Base+14 Uint16 ZONA_INTEGRADOR Base+16 Uint16 Base+18 Base+20 Base+22 Base+24 Base+26 Base+28 Uint16 Uint16 Uint16 Uint16 Uint16 Uint16 Base+30 Uint16 Base+32 Bits16 Nome Descrição Canal atual n Endereço do último canal (modo range) Habilitações das saídas (uma por bit) Reservado Zona de controle do PID (% set point – Default 50%) Zona de atuacao do fator integrador do PID (% Set Point – Default 20%) DESUM_PWR Potência de desumidificação para canal n FATOR_KP Fator Kp para canal n FATOR_KI Fator Ki para canal n FATOR_KD Fator Kd para canal n SETPOINT Set point para canal n K1 Constante K1 para calculo off set K2 Constante K2 de conversão para grau celsius K3 Constante K3 para calculo temperatura da placa B00 PROGRAMAR Transfere os dados para o módulo B01 RANGE Modo range (seleciona faixa de B02 REFRESH Atualiza dados de status (RD) B03 STORE Salva os parâmetros no módulo B04 LOAD Carrega os parâmetros no módulo B05 HABILITA Habilita ou desabilita as saídas do Módulo B06 CALC_OFFSE Ordem para calcular off set do T modulo do canal atual B07 B08 B09 B10 B11 B12 B13 B14 B15 21.5.1 - Habilitações dos Canais Define quais são as saídas dos canais que serão habilitados. Corresponde a uma saída habilitada para cada bit em nível 1. 201 Manual do PLC V1.00 Um canal habilitado significa fazer a leitura da temperatura e emitir um sinal de saída. Um canal desabilitado, faz a leitura da temperatura mas não emite nenhum sinal na saída. 21.5.2 - Zona de controle do PID (TEMP_ZONE) Define uma porcentagem da temperatura do Set Point (Default 50%), a partir da qual inicializa o controle PID . 21.5.3 - Zona de controle do fator integrador do PID (ZONA_INTEGRADOR) Define uma porcentagem da temperatura do Set Point (Default 20%), a partir da qual é ativado o fator integrador do PID. Antes de atingir esta zona, o fator integrador do PID atribui 20% da potencia total do PID. 21.5.4 - Fatores Ki, Kd e Kp para canal n (FATOR_Kx) Define o valor dos fatores K do controlador PID. Podem ser definidos fatores independentes para cada canal(Definido em canal atual) ou para uma faixa de canais(Modo Range). 21.5.5 - Potência para desumidificação (DESUM_PWR) Define a porcentagem de potência de desumidificação para cada canal n. A potência de desumidificação é aquela em que o módulo é iniciado até atingir a temperatura de 50 oC. 21.5.6 - Set point (SETPOINT) Define o valor do set point de cada canal de forma independente. 21.5.7 - Constante K1 para calculo de off Set (K1) Valor de referencia para cálculo de off set da placa. 21.5.8 - Constante K2 de conversão para graus Celsius(K2) Fator de conversão do valor da leitura do ADC para grau celsius. (219) 21.5.9 - Constante K3 para cálculo da temperatura da placa(k3) Valor de referencia para calculo de temperatura da placa. 202 Manual do PLC V1.00 21.5.10 - Programa canal (PROGRAMAR) Quando colocado em 1, transfere os dados referentes ao canal atual para o módulo a que ele pertence. 21.5.11 - Modo Range (RANGE) Quando colocado em 1 simultaneamente com PROGRAMAR, transfere os dados referentes ao canal atual para o módulo, com ordem para copiar estes valores para todos os canais até o canal final definido em LAST_CHANN. 21.5.12 - Atualiza dados de status (REFRESH) Quando colocado em 1, recolhe dados do módulo referentes ao canal atual e os coloca na estrutura de status. 21.5.13 - Salvar parâmetros no módulo (STORE) Quando colocado em 1, envia ordem para o módulo salvar na memória flash os parâmetros de Set Point, Off Set, fatores Kp, Ki, Kd e potencia de desumidificação de cada canal. Grava ainda as constantes K2, K3, Zona de controle PID e canais habilitados. 21.5.14 - Lê parâmetros no módulo (LOAD) Quando colocado em 1, envia ordem para o módulo ler da memória flash e atualizar no módulo os parâmetros de Set Point, Off Set, fatores Kp, Ki, Kd, potencia de desumidificação de cada canal e constantes K2, K3. 21.5.15 - Habilita ou desabilita as saídas do modulo(HABILITA) Quando colocado em 1, envia para cada módulo configurados em EN_OUT. a habilitação dos canais 21.5.16 - Calculo Off Set (CALC_OFFSET) Quando colocado em 1, envia ordem para calcular off set dos canais do módulo ao qual pertence o canal atual. 203 Manual do PLC V1.00 21.6 - Estrutura de Status (CNC → PLC) Base da estrutura (endereço inicial área I): I732. Tamanho da estrutura = 24 bytes. Endereço Tipo Nome Base+34 Uint16 CHAN_CNT Base+36 Bits48 OPEN_TRM Base+42 Bits48 EN_CHANNEL Base+48 Uint16 CHANN_N Base+50 Uint16 CHANN_N+1 Base+52 Uint16 CHANN_N+2 Base+54 Uint16 CHANN_N+3 Base+56 Uint16 CHANN_N+4 Base+58 Base+60 Uint16 CURR_CHAN Uint16 PROP_PWR Base+62 Uint16 PORP_PWR1 Descrição Total de canais disponíveis Termopar aberto (um bit por termopar) Habilitações dos canais(uma por bit) 1º. canal da faixa de leitura de temperaturas 2º. canal da faixa de leitura de temperaturas 3º. canal da faixa de leitura de temperaturas 4º. canal da faixa de leitura de temperaturas 5º. canal da faixa de leitura de temperaturas Canal selecionado atual Porcentagem de potência de saída do canal atual Porcentagem de potência de saída do 2o canal Base+64 Uint16 PORP_PWR2 Porcentagem de potência de saída do 3o canal Base+66 Uint16 PORP_PWR3 Porcentagem de potência de saída do 4o canal Base+68 Uint16 PORP_PWR4 Porcentagem de potência de saída do 5o canal Base+70 Uint16 *DEV_TYPE Tipo de dispositivo e descrição de entradas Base+72 Uint16 *DEV_NAME Nome do dispositivo Base+74 Uint16 *HW_VERSION Versão de hardware Base+76 Uint16 *SW_VERSION Versão de software B00 INIT Serviço iniciado B01 OPEN Serviço habilitado B02 FAIL Falha B03 EMERGENCY Sinaliza emergência B04 WAIT Dados sendo atualizados B05 READY Dados prontos para leitura B06 SAVE Gravando parâmetros no módulo B07 SAVE_OK Gravação realizada com Base+78 Bits16 B08 B09 B10 B11 B12 B13 B14 B15 * Não implementado 204 Manual do PLC V1.00 21.6.1 - Termopar aberto (OPEN_TRM) Indica que o canal correspondente ao bit em nível 1 está aberto. 21.6.2 - Canais Habilitados (EN_CHANNEL) Indica que o canal correspondente ao bit em nível 1 está habilitado. 21.6.3 - Porcentagem de potência de saída do canal atual (PROP_PWR + m) Retorna a porcentagem da potência presente na saída do canal selecionado como atual e dos 4 canais subsequentes a ele. 21.6.4 - Canal n da faixa de leitura de temperaturas (CHANN_N+m) Retorna o valor da temperatura em graus Celsius do canal selecionado como atual e dos 4 subsequentes a ele. 21.6.5 - Canal selecionado atual (CURR_CHAN) Retorna o número do canal selecionado atual. Informação proveniente do módulo. 21.6.6 - Dados sendo atualizados (WAIT) Quando em 1, indica que os dados estão sendo alterados e/ou que ocorre uma leitura do módulo. 21.6.7 - Dados prontos (READY) Quando em 1, indica que os dados disponíveis na estrutura são válidos e estão prontos para leitura. 21.6.8 - Indicação de Falha (FAIL) Quando em 1, indica que ocorreu falha na comunicação com o módulo. Nesse ponto é necessário desativar o serviço de temperatura, tornar reativá-lo para ser recuperado a comunicação. 21.6.9 - Gravando dados na Flash (GRAVANDO) Quando em 1, indica que o módulo está em processo de gravação da memória flash. 205 Manual do PLC V1.00 21.6.10 - Gravação efetuada com sucesso (GRAVACAO_OK) Quando em 1, indica que os dados foram gravados corretamente na memoria do módulo. 22 - LEDs do Terminal 22.1 - Descrição geral Para acessar os LEDs disponíveis no terminal, é necessário escrever na memória 250 do PLC, onde cada bit tem correspondência com um LED. Terminal PROTEO (Integrado e CAN): Endereço 250.0 250.1 250.2 250.3 250.4 250.5 LED 2nd !(Alarme ) F4 F3 F2 F1 Controle CNC CNC PLC PLC PLC PLC 22.1.1 - Estado dos LEDs: Ligado = 1 Desligado = 0 206 Manual do PLC V1.00 23 - Serviço de Leitura e Escrita de Parâmetros de Drive 23.1 - Descrição geral * NÃO IMPLEMENTADO O serviço de leitura e escrita de parâmetros de drives provê meios para programar e ler dados de acionamentos de servomotores ou inversores através da comunicação digital CANOpen. Para programar um parâmetro deve-se indicar na estrutura de dados o número do canal de comunicação CAN do drive, o número do parâmetro e o valor desejado. O dado será transmitido ao drive após a transição de 0 para 1 do bit de controle WRITE_PAR. O serviço indica operação concluída num bit de status. A leitura de parâmetros pode ser feita apenas uma vez ou ser repetida automaticamente a cada “n” ciclos de PLC. Existem 4 canais de resposta para leitura de parâmetros. Para ler um parâmetro deve-se indicar na estrutura de dados o número do canal de comunicação CAN do drive, o número do parâmetro, a taxa de repetição e o canal de resposta. Programando-se 0 na taxa de repetição, o parâmetro será lido apenas 1 vez. 23.2 - Tipos de dados Uint16 = Inteiro 16 bits sem sinal (2 bytes) Bits16 = Estrutura de bits (B0 a B15 - 2 bytes) Int32 = Inteiro 32 bits com sinal (4 bytes) 23.3 - Parâmetros de Configuração Utilizados Não há. 23.4 - Parâmetros de PLC utilizados Não há. 207 Manual do PLC V1.00 23.5 - Estrutura de Dados e Comandos ( PLC → CNC ) * NÃO IMPLEMENTADO Ponteiro base da estrutura de dados e comandos (endereço na área I): Tamanho da estrutura = 44 bytes. Endereço Base Base+2 Base+4 Base+6 Tipo Uint16 Uint16 Uint16 Uint16 Base+8 Int32 Base+12 Base+14 Nome PAR_ADRESS DRIVER_ADRESS RETURN_CHANNEL REFRESH_RATE WRITE_VALUE B00 WRITE_PAR B01 READ_PAR B02 B03 B04 B05 B06 B07 Bits16 B08 B09 B10 B11 B12 B13 B14 B15 Uint16 RESERVADO Descrição Número do Parâmetro Endereço CAN do Driver Canal de Resposta do Parâmetro Taxa de Atualização (ciclos de PLC) Valor para o Parâmetro Escreve Dado no Parámetro (WR) Lê Dado do Parâmetro Reservado 23.5.1 - Número do Parâmetro (PAR_ADRESS) Define o número do parâmetro ao qual se refere a operação. 23.5.2 - Endereço CAN do Driver (DRIVER_ADRESS) Define o endereço CAN do driver ao qual se refere a operação. 23.5.3 - Canal de Resposta (RETURN_CHANNEL) Define o canal de resposta para o valor do parâmetro indicado. 23.5.4 - Taxa de Atualização (REFRESH_RATE) Define a taxa de atualização, em ciclos do PLC, da leitura do parâmetro indicado. 23.5.5 - Valor para o Parâmetro (WRITE_VALUE) Indica o valor a ser escrito no parâmetro. 208 Manual do PLC V1.00 23.5.6 - Escreve Dado (WRITE_PAR) Bit de comando (0 -> 1). Programa o valor no parâmetro de acordo com os dados apontados na estrutura. 23.5.7 - Lê Dado (READ_PAR) Bit de comando (0 -> 1). Executa a leitura do parâmetro de acordo com os dados apontados na estrutura. 209 Manual do PLC V1.00 23.6 - Estrutura de Status (CNC → PLC) * NÃO IMPLEMENTADO Base da estrutura (endereço inicial área I): Tamanho da estrutura = 44 bytes. Endereço Tipo Base+16 Bits16 Base+18 Base+20 Base+22 Base+24 Base+26 Base+28 Base+30 Base+32 Base+34 Base+36 Base+38 Base+40 Base+42 Uint16 Uint16 Uint16 Int32 Uint16 Uint16 Int32 Uint16 Uint16 Int32 Uint16 Uint16 Int32 Nome INIT OPEN FAIL EMERGENCY WAIT1 READY1 WAIT2 READY2 WAIT3 READY3 WAIT4 READY4 B00 B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 RESERVADO DRIVER_ADRESS1 PAR_ADRESS1 PAR_VALUE1 DRIVER_ADRESS2 PAR_ADRESS2 PAR_VALUE2 DRIVER_ADRESS3 PAR_ADRESS3 PAR_VALUE3 DRIVER_ADRESS4 PAR_ADRESS4 PAR_VALUE4 Descrição Serviço iniciado Serviço habilitado Falha Sinaliza emergência Dados sendo atualizados canal Dados prontos para leitura Dados sendo atualizados canal Dados prontos para leitura Dados sendo atualizados canal Dados prontos para leitura Dados sendo atualizados canal Dados prontos para leitura Reservado Endereço do Driver canal 1 Número do Parâmetro canal 1 Valor do Parâmetro canal 1 Endereço do Driver canal 2 Número do Parâmetro canal 2 Valor do Parâmetro canal 2 Endereço do Driver canal 3 Número do Parâmetro canal 3 Valor do Parâmetro canal 3 Endereço do Driver canal 4 Número do Parâmetro canal 4 Valor do Parâmetro canal 4 23.6.1 - Dados sendo atualizados (WAITn) Quando em 1, indica que os dados estão sendo alterados e/ou que ocorre uma leitura do parâmetro. 23.6.2 - Dados prontos (READYn) Quando em 1, indica que os dados disponíveis na estrutura são válidos e estão prontos para leitura. 23.6.3 - Endereço do Driver (DRIVER_ADRESSn) Indica que o endereço CAN do driver correspondente aos dados lidos no canal “n”. 210 Manual do PLC 23.6.4 - Número do Parâmetro (PAR_ADRESSn) Indica que o número do parâmetro lido no canal “n”. 23.6.5 - Valor do Parâmetro (PAR_VALUEn) Indica que o valor do parâmetro lido no canal “n”. 211 V1.00 Manual do PLC V1.00 24 - Serviço de Acoplamento entre Eixos 24.1 - Descrição geral O serviço de acoplamento entre eixos provê meios para que se possa vincular o movimento de um eixo, denominado de eixo escravo, a outro eixo, denominado de eixo mestre. Para efetuar o acoplamento deve-se indicar na estrutura de dados o número do eixo mestre, o número do eixo escravo e o fator de acoplamento. O acoplamento será realizado após a transição de 0 para 1 do bit de controle ACOPLAR. Para cancelar o acoplamento deve-se indicar na estrutura de dados o número do eixo mestre e o número do eixo escravo. O desacoplamento será realizado após a transição de 0 para 1 do bit de controle DESACOPLAR. 24.2 - Tipos de dados Float32 = Número em ponto flutuante simples (4 bytes) Uint16 = Inteiro 16 bits sem sinal (2 bytes) Bits16 = Estrutura de bits (B0 a B15 - 2 bytes) 24.3 - Parâmetros de Configuração Utilizados Não há. 24.4 - Parâmetros de PLC utilizados Não há. 212 Manual do PLC V1.00 24.5 - Estrutura de Dados e Comandos ( PLC → CNC ) Habilitação do Serviço: Bit 15.1 Ponteiro base da estrutura de dados e comandos (endereço na área I): I746. Tamanho da estrutura = 12 bytes. Endereço Base Base+2 Base+4 Tipo Uint16 Uint16 Float3 2 Base+8 Bits16 Base+10 int16 Nome EIXO_MESTRE EIXO_ESCRAVO FAT_ACOP B00 B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 ACOPLA DESACOPL ACOP_REA ACOP_POS ACOP_NEG ANG_TAN INCR Descrição Número do Eixo Mestre Número do Eixo Escravo Fator de Acoplamento Ordem p/ Acoplar Eixo Ordem p/ Desacoplar Eixo Acopla eixo ao ponto real Acopla somente no sentido positivo Acopla somente no sentido negativo Acopla ao ângulo tangente à trajetória Incremento no acoplamento (0.001 mm ou graus) 24.5.1 - Número do Eixo Mestre (EIXO_MESTRE) Define o número do eixo mestre para o acoplamento. 24.5.2 - Número do Eixo Escravo (EIXO_ESCRAVO) Define o número do eixo escravo para o acoplamento. 24.5.3 - Fator de Acoplamento (FAT_ACOP) Define a relação de acoplamento entre os eixos. Eixos Lineares: unidade em 0.0001 mm. Eixos Rotativos: unidade em graus. Ou seja, ao acoplar eixo linear ao rotativo a relação será graus -> 0.0001 mm. 24.5.4 - Acopla eixos (ACOPLA) Bit de comando (0 -> 1). Efetua o acoplamento dos eixos de acordo com os dados apontados na estrutura. 213 Manual do PLC V1.00 24.5.5 - Descopla eixos (DESACOPLA) Bit de comando (0 -> 1). Efetua o desacoplamento dos eixo escravo apontado na estrutura. 24.5.6 - Acopla eixo ao Ponto Real (ACOP_REAL) Se “1” acopla o eixo escravo ao ponto real do eixo mestre. Caso contrário o acoplamento será feito pelo ponto teórico. 24.5.7 - Ângulo Tangente à trajetória (ANG_TAN) Ao acoplar eixo escravo, se bit estiver em 1, acopla ao ângulo tangente à trajetória no plano definido e não ao eixo mestre. Movimento incremental no eixo escravo considerando a variação do ângulo tangente em graus. Nesse tipo de acoplamento basta informar o eixo escravo que será acoplado e ligar os bits ACOPLA e ANG_TAN. 24.5.8 - Incremento no acoplamento (INCR) Valor a ser incrementado uma única vez no eixo escravo do acoplamento. CNC zera valor. Unidades: milésimos de mm ou graus. 214 Manual do PLC V1.00 24.6 - Estrutura de Status (CNC → PLC) Habilitação do Serviço: Bit 15.1 Base da estrutura (endereço inicial área I): I746. Tamanho da estrutura = 4 bytes. Endereço Tipo Base+12 Bits1 6 Base+14 Uint1 6 Nome INIT OPEN FAIL EMERGEN B0 B0 B0 B0 B0 B0 B0 B0 B0 Eixo1Ac B0 Eixo2Ac B1 Eixo3Ac B1 Eixo4Ac B1 Eixo5Ac B1 Eixo6Ac B1 Eixo7Ac B1 Eixo8Ac 5 op SERV_FAIL Descrição Serviço iniciado Serviço habilitado Falha Sinaliza emergência Sinaliza Sinaliza Sinaliza Sinaliza Sinaliza Sinaliza Sinaliza Sinaliza que que que que que que que que o o o o o o o o eixo eixo eixo eixo eixo eixo eixo eixo 1 2 3 4 5 6 7 8 foi foi foi foi foi foi foi foi acoplado acoplado acoplado acoplado acoplado acoplado acoplado acoplado Falha do Serviço 24.6.1 - Serviço Iniciado (INIT) Quando em 1, indica que ocorreu a inicialização do serviço. 24.6.2 - Serviço Habilitado (OPEN) Quando em 1, indica que o serviço está habilitado. 24.6.3 - Falha (FAIL) Quando em 1, indica que ocorreu falha no serviço.O tipo de falha é indicado em SERV_FAIL 24.6.4 - Emergência (EMERGENCY) Indica que ocorreu emergência no serviço. 24.6.5 - Eixo NAcop Indica que o eixo N (1 a 8) foi acoplado. 24.6.6 - Falha do Serviço (SERV_FAIL) 215 Manual do PLC V1.00 Indica o código da falha do serviço. 27 - Serviço de Tempo Real (RTC) 27.1 - Descrição geral O serviço de tempo real (RTC) provê meios para que se possa programar e consultar datas pelo PLC. A informação da data é composta por uma sequência de variáveis informando o dia, mês, ano, horas, minutos e segundos. A informação sobre a data é mantida por bateria. Através de bits de comando o PLC pode alterar ou consultar a data/hora. 27.2 - Tipos de dados Float32 = Número em ponto flutuante simples (4 bytes) Uint16 = Inteiro 16 bits sem sinal (2 bytes) Bits16 = Estrutura de bits (B0 a B15 - 2 bytes) 27.3 - Parâmetros de Configuração Utilizados Não há. 27.4 - Parâmetros de PLC utilizados Não há. 216 Manual do PLC V1.00 27.5 - Estrutura de Dados e Comandos ( PLC → CNC ) Ponteiro base da estrutura de dados e comandos (endereço na área I): I744. Tamanho da estrutura = 36 bytes. Endereço Base Base+2 Base+4 Base+6 Base+8 Base+10 Base+12 Base+14 Tipo Uint16 Uint16 Uint16 Uint16 Uint16 Uint16 Uint16 Uint16 Base+16 Bits16 Base+18 Uint16 Nome WSECONDS WMINUTS WHOURS WWEEKDAY WDATE WMONTH WYEAR RESERVADO B00 WRITE_DAT B01 READ_DATE B02 MODE12-24 B03 STATE_AM/ B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 RESERVADO Descrição Segundos Minutos Horas Dia da semana Dia do mês Mês Ano Reservado Memoriza nova data Atualiza data (lê a data no RTC) Modo 12-24 Estado AM/PM Reservado ATENÇÃO: Os dados enviados para o RTC deverão ser no formato BCD. 27.5.1 - Segundos (WSECONDS) Define os segundos que se deseja programar. (0 a 59) 27.5.2 - Minutos (WMINUTS) Define os minutos que se deseja programar. (0 a 59) 27.5.3 - Horas (WHOURS) Define a hora que se deseja programar. (0 a 23) 27.5.4 - Dia da Semana (WWEEKDAY) (1 a 07) Define o dia da semana que se deseja programar. 217 Manual do PLC V1.00 27.5.5 - Dia do Mês (WDATE) (1 a 31) Define o dia do mês que se deseja programar. 27.5.6 - Mês (WMONTH) Define o mês que se deseja programar. (1 a 12) 27.5.7 - Ano (WYEAR) Define o ano que se deseja programar. (0 a 99) 27.5.8 - Atualiza Data (READ_DATE) Bit de comando (0 -> 1). Efetua a leitura da data armazenada no RTC na transição de 0 para 1 deste bit. 27.5.9 - Memoriza Nova Data (WRITE_DATE) Bit de comando (0 -> 1). Carrega os valores programados para a data no RTC na transição de 0 para 1 deste bit. 27.5.10 - Mod 12-24/AM-PM (MODE12-24) Define o tipo de apresentação da hora. Se 0 a hora será apresentada no modo 0 a 24h. Se 1 a hora será apresentada no modo 0 a 12h (AM-PM). 27.5.11 - State AM-PM Define estado AM/PM. Se modo 12 horas, deve-se indicar se está antes ou depois de meio dia.(0 = AM, 1=PM) 218 Manual do PLC V1.00 27.6 - Estrutura de Status (CNC → PLC) Base da estrutura (endereço inicial área I): I744. Tamanho da estrutura = 36 bytes. Endereç o Tipo Base+20 Bits16 Base+22 Base+24 Base+26 Base+28 Base+30 Base+32 Base+34 Uint16 Uint16 Uint16 Uint16 Uint16 Uint16 Uint16 Nome B00 INIT B01 OPEN B02 FAIL B03 BAT_LOW B04 /AM-PM B05 12-/24 B06 OK B07 B08 B09 B10 B11 B12 B13 B14 B15 SECONDS MINUTS HOURS WEEKDAY DATE MONTH YEAR Descrição Serviço iniciado Serviço habilitado Falha Bateria fraca Estado AM (0) ou PM(1) Modo horas 12 ou 24 (24 = 0, 12 = 1) Comunicação Ok Segundos Minutos Horas Dia da semana Dia do mês Mês Ano ATENÇÃO: Os dados lidos do RTC estão no formato BCD. Serviço Iniciado (INIT) Quando em 1, indica que ocorreu a inicialização do serviço. 27.6.1 - Serviço Habilitado (OPEN) Quando em 1, indica que o serviço está habilitado. 27.6.2 - Falha (FAIL) Quando em 1, indica que ocorreu falha no serviço.O tipo de falha é indicado em SERV_FAIL 27.6.3 - Bateria Fraca (BAT_LOW) Quando em 1, indica que a bateria de sustentação de dados está descarregada. 219 Manual do PLC V1.00 27.6.4 - Estado AM-PM (/AM-PM) Se a data estiver no modo 12hs, quando em 1 este bit indica horário PM. Se a data estiver no modo 24hs, quando em 1 este bit indica horas de 20 a 24. 27.6.5 - Segundos (SECONDS) Segundos da ultima leitura da data. 27.6.6 - Minutos (MINUTS) Minutos da ultima leitura da data. 27.6.7 - Horas (HOURS) Hora da ultima leitura da data. 27.6.8 - Dia da Semana (WEEKDAY) Dia da semana da ultima leitura da data. 27.6.9 - Dia do Mês (DATE) Dia do mês da ultima leitura da data. 27.6.10 - Mês (MONTH) Mês da ultima leitura da data. 27.6.11 - Ano (YEAR) Ano da ultima leitura da data. 220 Manual do PLC V1.00 28 - Serviço de Encoder Digital 28.1 - Descrição geral * NÃO IMPLEMENTADO O serviço de Encoder Digital provê meios para leitura de encoder através de entradas digitais dos módulos IO Escolhendo três entradas de IO (Down, Up, Ref) para contagem do encoder via Módulo IO. O próprio módulo lê essas entradas e após calcular a contagem envia esta informação ao PLC através deste serviço. O serviço prevê até 4 encoders. 28.2 - Tipos de dados Float32 = Número em ponto flutuante simples (4 bytes) Uint16 = Inteiro 16 bits sem sinal (2 bytes) Bits16 = Estrutura de bits (B0 a B15 - 2 bytes) 28.3 - Parâmetros de Configuração Utilizados Não há. 28.4 - Parâmetros de PLC utilizados Não há. 221 Manual do PLC V1.00 28.5 - Estrutura de Dados e Comandos ( PLC → CNC ) * NÃO IMPLEMENTADO Ponteiro base da estrutura de dados e comandos (endereço na área I): 734. Tamanho da estrutura = 24 bytes. Endereço Tipo Base Base+2 Base+4 Base+6 Base+8 Base+10 Base+12 Uint16 Uint16 Uint16 Uint16 Uint16 Uint16 Uint16 Base+14 Bits16 Nome MasK_Encoder1 MasK_Encoder2 MasK_Encoder3 MasK_Encoder4 End_Modulo Reservado Reservado B00 Send_Mask Descrição Bits para encoder 1 (Down, Up, Bits para encoder 2 (Down, Up, Bits para encoder 3 (Down, Up, Bits para encoder 4 (Down, Up, Endereço real Módulo na rede Ref) Ref) Ref) Ref) Envia mascaras para encoders Habilitando/Desabilitando B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 28.5.1 - MasK_Encoder1, MasK_Encoder2, MasK_Encoder3 e MasK_Encoder4 Mascara que define os bits que serão utilizados para entradas de dados dos encoders 1, 2, 3 e 4 respectivamente. O bit que deseja ser habilitado para entrada de dados deverá ser colocado em 1. 28.5.2 - End_Modulo Define endereço real na rede CAN do módulo que será utilizado para captura de dados dos encoders. (Observar offset de 10) 28.5.3 - Send_Mask Quando setado este bit , o camando envia as máscaras dos encoders desejados ao módulo especificado pelo endereço e sendo diferente de zero, passa a enviar os valor dos respectivos contadores. 222 Manual do PLC V1.00 28.6 - Estrutura de Status (CNC → PLC) * NÃO IMPLEMENTADO Base da estrutura (endereço inicial área I): 734. Tamanho da estrutura = 16 bytes. Endereç o Tipo Nome B00 B01 B02 B03 Base+16 Bits16 Base+18 Base+20 Base+22 Base+24 Base+26 Base+28 Uint16 Uint16 Uint16 Uint16 Uint16 Uint16 INIT OPEN FAIL B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 Valor_Encoder1 Valor_Encoder2 Valor_Encoder3 Valor_Encoder4 Reservado Reservado Descrição Serviço iniciado Serviço habilitado Falha Valor Valor Valor Valor encoder encoder encoder encoder 1 2 3 4 28.6.1 - Serviço Iniciado (INIT) Quando em 1, indica que ocorreu a inicialização do serviço. 28.6.2 - Serviço Habilitado (OPEN) Quando em 1, indica que o serviço está habilitado. 28.6.3 - Falha (FAIL) Quando em 1, indica que ocorreu falha no serviço. 28.6.4 - Valor_Encoder1, Valor_Encoder2, Valor_Encoder3 e Valor_Encoder4 Estes campos indicam o valor da contagem dos respectivos encoders. Estes valores são enviados pelo módulo especificado a partir de uma máscara setada diferente de zero para determinado encoders. 223 Manual do PLC V1.00 224 Manual do PLC V1.00 29 - Serviço de comunicação MODBUS 29.1 - Descrição geral O serviço de comunicação MODBUS provê meios para acessar parâmetros remotos que utilizem este tipo de comunicação. Com este serviço é possível realizar leituras ou modificar os valores desses parâmetros via MODBUS, remotamente. No caso do CNC, a memória do PLC pode ser acessada remotamente através dos registradores do MODBUS. 29.2 - Tipos de dados Uint16= Inteiro 16 bits sem sinal (2 bytes) 29.3 - Parâmetros de Configuração Utilizados PROTEO / Mini: P052 / P025 P053 / P026 P054 / P027 P055 / P028 P056 / P005 - Taxa de comunicação serial (default = 9600) - Número de bits da serial (default = 8) *FIXO - Número de stop bits da serial (default = 1) *FIXO - Paridade da serial (default = sem paridade) *FIXO - Endereço do CNC na rede MODBUS. 29.4 - Parâmetros de PLC utilizados 29.5 - Parâmetros para Drive SV-LG5A. Para utilizar o Drive SV-LG5A com comunicação MODBUS, é necessário configurar alguns parâmetros específicos: Parâmetros Drive Group: drv = 3 (Modo ModBus) Frq = 7 (Seta MODBus) I/O – Input/Output Group: Configuração da transmissão: I59 = 0 (Seleciona ModBus RTU) I60 = 1 (Endereço do drive na rede - 1 a 255) I61 = 3 (Taxa de comunicação Bps -> 0 – 1200; 1 – 2400; 2 – 4800; 3 – 9600; 4 – 19200 .) I64 = 10 (Tempo delay do frame de comunicação ) 225 Manual do PLC V1.00 Para habilitar/desabilitar o drive acessar o registrador do endereço 0x0006. (1 – Habilitar 2 - Desabilitar) 226 Manual do PLC V1.00 29.6 - Estrutura de Dados e Comandos ( PLC → CNC ) Ponteiro base da estrutura de dados e comandos (endereço na área I): 740. Tamanho da estrutura = 16 bytes. Endereç o Base Base+2 Base+4 Base+6 Base+8 Tipo Nome Int16 Int16 Int16 Int16 Int16 ModID FunctionID AddressReg RegValue NumBits Base+10 Int16 Base+12 Int16 Base+14 Bits1 6 Descrição Identifica Módulo MODBUS Identifica Função Número / Endereço do Registrador Valor que será enviado ao registrador Número de bits (coils) a serem acessados Posição de memória do PLC com valores dos MemSeqBytes registradores para enviar sequência de * bytes NumReg Número de registradores a serem acessados B00 SENDMS Envia mensagem MODBUS 1 = endereço da memória do PLC em bytes (inicia em 0) B01 REG 0 = número do registrador MODBUS (inicia em 1) B02 B03 B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 * Não implementado 29.6.1 - ModID : Endereço do módulo MODBUS com o qual se deseja comunicar (escravo / servidor). 29.6.2 - FunctionID: Identificador de função MODBUS. 0x03 - Leitura de registrador 0x06 - Escrita de registrador 29.6.3 - AddressReg: Número ou Endereço do registrador que se deseja acessar para ler ou escrever, dependendo do valor do bit REG (B01). 227 Manual do PLC V1.00 29.6.4 - RegValue: Valor que será enviado ao registrador. 29.6.5 - NumBits: Número de bits (coils) a serem acessados. 29.6.6 - MemSeqBytes: Posição de memória do PLC com valores dos registradores para enviar seqüência de bytes. 29.6.7 - NumReg: Número de registradores de 16 bits a serem acessados. No caso da memória do PLC cada registrador é 1 word. 29.6.8 - SENDMSG: Solicita envio de mensagem MODBUS. 29.6.9 - REG: Tipo de identificação do registrador especificado em AddressReg. 0 = número do registrador MODBUS (inicia em 1) Como o endereço do registrador inicia em 0 -> subtrai 1 do AddressReg. P/ funções de acesso a bits não subtrai. Usado p/ acessar parâmetros dos drives MODBUS. 1 = endereço da memória do PLC em bytes (inicia em 0) Como os registradores tem 16 bits (word) -> divide AddressReg por 2. Usado p/ acessar memória do PLC de um CNC remoto via MODBUS. Disponível a partir das versões Proteo 9.16 e MINI 4.19. 228 Manual do PLC V1.00 29.7 - Estrutura de Status (CNC → PLC) Base da estrutura (endereço inicial área I): 740. Tamanho da estrutura = 06 bytes. Endereço Base+1 6 Tipo Nome B00 B01 B02 B03 B04 B05 B06 Bits1 B07 B08 6 B09 B10 B11 B12 B13 B14 B15 INIT OPEN FAIL SENDMSG WAIT FINISH TEST_HDW Base+1 8 Int16 RegValueHI Base+2 0 Int16 RegValueLO Descrição Serviço iniciado Serviço habilitado Falha Transmitindo mensagem MODBUS Aguardando Receber resposta Comunicação concluída Sinaliza funcionamento correto Valor lido do 1º registrador / Word + significativa do registrador de 32 bits Valor lido do 2º registrador / Word – significativa do registrador de 32 bits 29.7.1 - INIT: Indicação Serviço iniciado. 29.7.2 - OPEN: Indicação Serviço habilitado. 29.7.3 - FAIL: Indicação de falha de comunicação na transmissão ou resposta de uma mensagem. O bit vai a “0” quando uma nova mensagem é enviada. 29.7.4 - SENDMSG: Indicação de transmissão de mensagem. 29.7.5 - WAIT: Indicação de que uma mensagem foi enviada e está aguardando resposta. 229 do Manual do PLC V1.00 29.7.6 - FINISH: Indicação de que uma mensagem foi enviada corretamente e obteve resposta. 29.7.7 - TEST_HDW: Este bit setado para 1 indica que a saída serial (hardware) está funcionando corretamente. Este bit permanecerá em 1 até que uma outra mensagem seja enviada. 29.7.8 - RegValueHI: Valor lido do 1º registrador / Word mais significativa do registrador de 32 bits. 29.7.9 - RegValueLO: Valor lido do 2º registrador / Word menos significativa do registrador de 32 bits. 29.8 - Exemplos 29.8.1 - Leitura de Registrador MODBUS: Endereço do CNC na rede MODBUS (mestre / cliente) = 1 Endereço do módulo MODBUS (escravo / servidor) = 2 Base do serviço = 1000 Registrador a ser lido = 108 Valor do registrador = 02 2B hexa = 555 decimal Comandos (PLC -> CNC): Endereço 1000 1002 1004 1006 1008 1010 1012 1014 Tipo Int16 Int16 Int16 Int16 Int16 Int16 Nome ModID FunctionID AddressReg RegValue NumBits MemSeqBytes * Int16 NumReg B00 SENDMSG Bits16 B01 REG Valor 2 3 (leitura de registrador) 108 ---1 0 -> 1 0 = número do registrador MODBUS (inicia em 1) 230 Manual do PLC V1.00 Mensagens MODBUS (big endian) de requisição do CNC e resposta p/ o CNC: Requisição ModID FunctionID AddressReg Hi AddressReg Lo NumReg Hi NumReg Lo Status (CNC -> PLC): Endereç o 1016 231 02 03 00 6B 00 01 Resposta ModID FunctionID Byte Count RegValue Hi RegValue Lo Tipo Nome B00 B01 B02 B03 B04 B05 B06 Bits1 B07 B08 6 B09 B10 B11 B12 B13 B14 B15 INIT OPEN FAIL SENDMSG WAIT FINISH TESTE_HDW 1018 Int16 RegValueHI 1020 Int16 RegValueLO Valor 1 1 0 0 0 1 1 555 (02 2B hexa) -- 02 03 02 02 2B Manual do PLC V1.00 29.8.2 - Escrita de Registrador MODBUS (Memória do PLC): 29.8.2 - Escrita de Registrador MODBUS (Memória do PLC): Endereço do CNC na rede MODBUS (mestre / cliente) = 1 Endereço do módulo MODBUS (escravo / servidor) = 2 Base do serviço = 1000 Memória do PLC a ser escrita (em bytes) = 3000 Valor a ser escrito = 02 2B hexa = 555 decimal Comandos (PLC -> CNC): Endereço 1000 1002 1004 1006 1008 1010 1012 1014 Tipo Int16 Int16 Int16 Int16 Int16 Int16 Nome ModID FunctionID AddressReg RegValue NumBits MemSeqBytes * Int16 NumReg B00 SENDMSG Bits16 B01 REG Valor 2 6 (escrita de registrador) 3000 (05 DC hexa) 555 (02 2B hexa) ---0 -> 1 1 = endereço da memória do PLC em bytes (inicia em 0) Mensagens MODBUS (big endian) de requisição do CNC e resposta p/ o CNC: Requisição ModID FunctionID AddressReg Hi AddressReg Lo RegValue Hi RegValue Lo 02 06 05 DC 02 2B Resposta ModID FunctionID AddressReg Hi AddressReg Lo RegValue Hi RegValue Lo 02 06 05 DC 02 2B 232 Manual do PLC Status (CNC -> PLC): Endereç o 1016 1018 1020 233 V1.00 Tipo Nome B00 INIT B01 OPEN B02 FAIL B03 SENDMSG B04 WAIT B05 FINISH B06 TESTE_HDW Bits1 B07 B08 6 B09 B10 B11 B12 B13 B14 B15 Int16 RegValueHI Int16 RegValueLO Valor 1 1 0 0 0 1 1 --- Manual do PLC V1.00 30 - Serviço de comunicação CANBUS 30.1 - Descrição geral O serviço de comunicação CANBUS provê meios para acessar objetos CANopen via SDO indicando o respectivo índice e sub-índice. Com este serviço é possível realizar leituras ou modificar os valores desses objetos remotamente. Para utilizar este serviço é necessário habilitá-lo setando o bit 3 da variável 15 do PLC, conforme tabela de habilitação. 30.2 - Tipos de dados Uint16= Inteiro 16 bits sem sinal (2 bytes) 30.3 - Parâmetros de Configuração Utilizados 30.4 - Parâmetros de PLC utilizados 234 Manual do PLC V1.00 30.5 - Estrutura de Dados e Comandos ( PLC → CNC ) Habilitação do Serviço: Bit 15.3 Ponteiro base da estrutura do serviço (base indireta): 742 Tamanho da estrutura = 14 bytes. Endere ço Base Base+2 Base+4 Base+6 Base+8 Base+1 0 Base+1 2 Tipo Nome Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Endereço Bits1 6 Indice Descrição Endereço CAN do dispositivo Índice do objeto SubIndice Sub-índice do objeto WriteObj_L Valor que será escrito no objeto (significativo) Valor que será escrito no objeto significativo) Número de bytes do objeto WriteObj_H NumeroBytes B00 B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 Write Read Escreve objeto CANopen Lê objeto CANopen 30.5.1 - Endereço: Endereço CAN do dispositivo em que está o objeto a ser acessado. OBS: Eixo CAN (drive) = endereço 1 a 8. Módulo = endereço 10 a 25 (soma 10 a posição da chave). 30.5.2 - Ìndice: Verificar dicionário de objetos CAN do dispositivo. 30.5.3 - SubIndice: Verificar dicionário de objetos CAN do dispositivo (default = 0). 235 (+ Manual do PLC V1.00 30.5.4 - ValorRegistrador: Valor que será escrito no objeto. Pode ter 1, 2 ou 4 bytes. 30.5.5 - NumeroBytes: Número de bytes a serem acessados no objeto. Especifica se objeto é de 1, 2 ou 4 bytes. 30.5.6 - WRITE: Solicita escrita no objeto especificado. 30.5.7 - READ: Solicita leitura do objeto especificado. 30.6 - Estrutura de Status (CNC → PLC) Habilitação do Serviço: Bit 15.3 Ponteiro base da estrutura do serviço (base indireta): 742 Tamanho da estrutura = 6 bytes. Endereço Nome B00 INIT B01 OPEN B02 FAIL B03 SENDMSG B04 WAIT B05 FINISH B06 Bits16 B07 B08 Base+14 B09 B10 B11 B12 B13 B14 B15 Base+16 ReadObj_L Uint16 Base+18 Tipo Uint16 ReadObj_H Descrição Serviço iniciado Serviço habilitado Falha na comunicação Transmitindo Mensagem CAN Aguardando Receber resposta Comunicação concluída Valor lido significativo) Valor lido significativo) do objeto (- do objeto (+ 30.6.1 - INIT: Indicação serviço iniciado 236 Manual do PLC 30.6.2 - OPEN: Indicação serviço habilitado 30.6.3 - FAIL: Indicação de falha na transmissão de mensagens CAN (time-out na resposta). 30.6.4 - SENDMSG: Indicação de que está transmitindo uma mensagem. 30.6.5 - WAIT: Indicação de que uma mensagem foi enviada e está aguardando resposta. 30.6.6 - FINISH: Indicação de que uma mensagem foi enviada corretamente e obteve resposta. 30.6.7 - ReadValorObjeto: Valor lido do objeto especificado. Pode ter 1, 2 ou 4 bytes. 237 V1.00 Manual do PLC V1.00 31 - Modo Manual – Objeto de Tela (Proteo) 31.1 - Descrição geral O serviço do Modo Manual faz a comunicação entre o objeto de tela “Manual” e as memórias do PLC. Tela -> PLC: os valores programados pelo usuário na tela são enviados p/ as memórias do PLC. 31.2 - Tipos de dados Uint16 = Inteiro 16 bits sem sinal (2 bytes) int16 = Inteiro de 16 bits com sinal (2 bytes) Bits16 = Estrutura de bits (B0 a B15 - 2 bytes) 31.3 - Parâmetros de Configuração Utilizados Não há. 31.4 - Parâmetros de PLC utilizados Não há. 31.5 - Estrutura de Dados e Comandos ( PLC → CNC ) 31.6 - Estrutura de Status ( CNC → PLC ) Habilitação do Serviço: Bit 15.5 Ponteiro base da estrutura do serviço (base indireta): 748 Tamanho da estrutura = 12 bytes. Endereço Base Tipo Bits16 B00 B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 Nome ENABLE FAIL JOG INC MANIV JOY Descrição Serviço Habilitado Falha no serviço Modo Jog Modo Incremental Modo Manivela Modo Joystick 238 Manual do PLC Base+2 Base+4 Base+6 Base+8 Base+10 Uint16 V1.00 B15 VAL_INC Modo Incremental: valor do incremento Uint16 MANIV_EIXO Modo Manivela: eixo selecionado int16 MANIV_ESCALA Modo Manivela: escala Uint16 Rsvd Uint16 Rsvd - - Modos: Jog / Incremental / Manivela / Joystick 31.6.1 - Modo Incremental (INC) VAL_INC: Valor do incremento em milésimos de mm 31.6.2 - Modo Manivela (MANIV) MANIV_EIXO: Eixo selecionado p/ manivela: 0 = nenhum 1=X 2=Y 3=Z MANIV_ESCALA: Escala em milésimos de mm; -1 = Escala Automática 239 Manual do PLC V1.00 32 - Manivela 32.1 - Descrição geral Esse serviço implementa o movimento dos eixos pela manivela. Os pulsos gerados pela manivela fazem um movimento incremental no eixo. O CNC pode ter até 3 manivelas, então há 3 canais de serviço de manivela independentes. Ponteiro base da estrutura do serviço (base indireta): Manivela 1 = 750 Manivela 2 = 752 Manivela 3 = 754 Habilitação do serviço: Manivela 1 = 18.0 Manivela 2 = 18.1 Manivela 3 = 18.2 O objeto de tela do Modo Manual do Proteo pode ser usado p/ configurar a Manivela 1. Nesse caso, os dados da tela são passados ao PLC pelo Serviço do Modo Manual (item 25) e devem ser copiados nas variáveis correspondentes do serviço da manivela 1. 32.2 - Tipos de dados Uint16 = Inteiro 16 bits sem sinal (2 bytes) int16 = Inteiro de 16 bits com sinal (2 bytes) Bits16 = Estrutura de bits (B0 a B15 - 2 bytes) Float32 = Número em ponto flutuante simples (4 bytes) 32.3 - Parâmetros de Configuração Utilizados OBS: Os parâmetros da manivela no proteo MINI LCD estão localizados em posições diferentes em relação aos mesmos parâmetros do PROTEO. PROTEO MINI : Manivela 1: P060: Seleciona canal de encoder da Manivela - 1 ou 2 (local) , 11 a 14 (módulo analógico) P061: Letra do Eixo controlado pela manivela P062: Velocidade Máxima (mm/min) P063: Inverte Sentido 240 Manual do PLC Manivela 2: P064: Seleciona canal de encoder da Manivela P065: Letra do Eixo selecionado P066: Velocidade Máxima (mm/min) P067: Inverte Sentido Manivela 3: P068: Seleciona canal de encoder da Manivela P069: Letra do Eixo selecionado P070: Velocidade Máxima (mm/min) P071: Inverte Sentido PROTEO: Manivela 1: P036: Seleciona Manivela (localização) - Terminal Integrado, Terminal Remoto ou Módulo Analógico P037: Letra do Eixo selecionado P038: Velocidade Máxima (mm/min) P039: Inverte Sentido Manivela 2: P040: Seleciona Manivela (localização) P041: Letra do Eixo selecionado P042: Velocidade Máxima (mm/min) P043: Inverte Sentido Manivela 3: P044: Seleciona Manivela (localização) P045: Letra do Eixo selecionado P046: Velocidade Máxima (mm/min) P047: Inverte Sentido 32.4 - Parâmetros de PLC utilizados Não há. 241 V1.00 Manual do PLC V1.00 32.5 - Estrutura de Dados e Comandos ( PLC → CNC ) Habilitação do Serviço: Bit 18.0 / 18.1 / 18.2 Ponteiro base da estrutura do serviço (base indireta): 750 / 752 / 754 Tamanho da estrutura = 12 bytes. Endereço Tipo Nome MODPOS *MODLIMSUP *MODLIMINF OFFSET B00 B01 B02 B03 Base+2 B04 B05 B06 Bits16 B07 B08 B09 B10 B11 B12 B13 B14 B15 Uint16 Base+4 int16 ESCALA Base+6 Uint16 VEL_MAX Base+8 Uint16 PULSOS Base EIXO Descrição Ativa modo posição, manivela Ativa modo limite superior Ativa modo limite inferior 0 = ativa offset de 2 pulsos no delta da contagem; 1 = Letra do eixo selecionado (0 = Parâmetro) Escala em milésimos de mm (1=auto, 0=0.001) Velocidade máxima em mm/min (0 = Parâmetro) Pulsos por volta da manivela (0 = 100 pulsos) Base+10 Uint16 * Não implementado 32.5.1 - Modo Posição (MODPOS) Enquanto bit estiver em 1 ativa modo posição, ou seja, pulsos da manivela geram movimento incremental p/ eixo selecionado. Ao desligar bit, mantendo letra do eixo selecionado, acerta as posições teóricas. 32.5.2 - Modo Limite Superior e Inferior (MODLIMSUP e MODLIMINF) Enquanto bit estiver em 1 ativa modo limite, ou seja, pulsos da manivela alteram o limite superior ou inferior do ponto teórico do eixo selecionado respeitando a escala programada. 32.5.3 - EIXO Letra do eixo selecionado: 242 Manual do PLC Valor 0 1 2 3 4 5 6 7 8 9 V1.00 Descrição Lê do Parâmetro de eixo selecionado (P037 / P040/ P043) X Y Z A B C U V W Eixo Configurável: copiar eixo da manivela no serviço do modo manual – Tela Proteo. Ao trocar letra do eixo com bit do modo posição ativo, acerta posições do eixo anterior e ativa manivela p/ novo eixo selecionado. Equivalente a desligar bit de modo posição e ativá-lo novamente trocando o eixo no próximo ciclo de PLC. 32.5.4 - ESCALA Escala em milésimos de mm (eixo linear). Valores de escala configurados pela Tela do Modo Manual: -1 = Escala Automática (quanto maior a velocidade da manivela, maior a escala) 0 = Escala mínima = 0.001 mm Outros: 0.002 ; 0.005 ; 0.010 ; 0.020 ; 0.050 ; 0.100 ; 0.200 ; 0.500 ; 1.000 ; 2.000 ; 5.000 mm 32.5.5 - Velocidade Máxima (VEL_MAX) Velocidade máxima da manivela em mm/min (eixo linear) 0 = Lê do Parâmetro de velocidade máxima (P038 / P041 / P044) 32.5.6 - PULSOS Número de pulsos por volta da manivela (Default: 0 = 100 pulsos) 243 Manual do PLC V1.00 32.6 - Estrutura de Status ( CNC → PLC ) Habilitação do Serviço: Bit 18.0 / 18.1 / 18.2 Ponteiro base da estrutura do serviço (base indireta): 750 / 752 / 754 Tamanho da estrutura = 12 bytes. Endereço Tipo Base+12 Bits16 Base+14 Uint16 Base+16 Base+18 Base+20 Base+22 Nome ENABLE FAIL FCPOS FCNEG LIMSUP LIMINF B00 B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 VEL_MANIV Descrição Serviço Habilitado Falha no serviço Fim de Curso Positivo Fim de Curso Negativo Eixo atingiu limite superior Eixo atingiu limite inferior Velocidade da Manivela em pulsos/amostragem (80ms) Uint16 VEL_REAL_EIXO Velocidade Real do Eixo em mm/min Uint16 ESCALA_REAL Escala real em milésimos de mm Uint16 CNT_MANIV Contador de Pulsos da manivela Uint16 -Reservado 244 Manual do PLC V1.00 33 - PLC RÁPIDO 33.1 - Descrição geral PLC Rápido é uma sub-rotina do PLC que deve ser executada em um tempo mais rápido que o ciclo normal. Ciclo Normal: 16 ms PLC Rápido: 4 ms O endereço dessa rotina deve ser colocado numa memória específica do PLC, o que já habilita a execução do PLC Rápido. Essa rotina pode acessar 2 grupos de entradas e saídas rápidas (1 módulo rápido) configuradas através dos parâmetros de tipo de módulo. A rotina do PLC Rápido deve ser bem simples e rápida p/ não prejudicar a performance do CNC. Ao desligar o PLC Rápido, os valores das saídas rápidas devem ser copiados p/ as memórias das saídas normais p/ que continuem com os mesmos valores. 33.2 - Parâmetros de Configuração P060 a P075: Tipo de Módulo conectado ao CNC Deve-se configurar 1 módulo CAN que será usado p/ entradas e saídas rápidas. O funcionamento desse módulo é idêntico ao normal mas com os acessos a entradas e saídas mais rápidos. Os valores possíveis são: Módulo CAN 16E + 16S Rápido Módulo CAN Temperatura + E/S Rápido Módulo CAN Analógicas + E/S Rápido = 16 = 17 = 18 33.3 - Memórias do PLC 245 290 Uint16 292 294 296 Uint16 Uint16 Uint16 ENDERECO Endereço da rotina do PLC Rápido (0 = desabilitado) ENTRADAS Entradas Rápidas (16 entradas) SAIDAS Saídas Rápidas (16 saídas) MASK_OUT Máscara de habilitação das saídas rápidas (16 saídas) Manual do PLC V1.00 34 - Erro de Acompanhamento (LAG) 34.1 - Descrição geral O tratamento do erro de acompanhamento (LAG) pode ser feito pelo CNC ou PLC. A verificação é feita p/ todos os eixos em malha fechada. CNC – Bit 96.0 = 0 (default): Atualiza status do erro de LAG (Byte 86). Corta liberação do eixo (LibCnc). Coloca status do serviço em Emergência. Aborta movimento. PLC – Bit 96.0 = 1 : Atualiza status do erro de LAG (Byte 86). Reset do erro de LAG: O PLC pode limpar o erro de LAG ligando o bit 96.1. Nesse caso, o CNC: Copia ponto real do eixo p/ teórico. Habilita novamente o eixo (LibCnc). 34.2 - Parâmetros de Configuração P x53 : Máximo valor do LAG em movimento (mm ou graus). x = número do eixo. 34.3 - Bits de Comando (PLC -> CNC) B00 LAGSERV Tratamento do erro de LAG pelo CNC (0) ou B01 RSTLAG Reset do erro de LAG B02 96 Bits B03 B04 B05 B06 B07 Bits de Status (CNC -> PLC) B00 B01 B02 86 Bits B03 B04 B05 B06 B07 LAGERR_1 LAGERR_2 LAGERR_3 LAGERR_4 Status do erro de LAG (1 bit por eixo) LAGERR_5 LAGERR_6 LAGERR_7 LAGERR_8 246 Manual do PLC V1.00 35 - Serviço de Transferência de Dados entre CNCs 35.1 - Descrição geral Define áreas da memória de dados do PLC que serão transferidas ou recebidas de outro CNC. Pode ser usado p/ transferência de dados entre um CNC mestre e um outro usado como Terminal CAN (escravo) por exemplo. Nesse caso, os softwares básicos do ProteoMini mestre e escravo são diferentes. Ponteiro base da estrutura do serviço (base indireta): Habilitação do serviço: Word 756 Bit 18.3 35.2 - Parâmetros de Configuração utilizados P099: Modo do CNC: 0 = CNC mestre 1 = Terminal CAN (escravo) P006 a P021: Módulos do CNC (0 a 15) Configurar um dos módulos como Proteo Mini CAN (=13) tanto no CNC mestre como no escravo. 35.3 - Parâmetros de PLC utilizados 247 Manual do PLC V1.00 35.4 - Estrutura de Dados e Comandos ( PLC → CNC ) Habilitação do Serviço: Bit 18.3 Ponteiro base da estrutura do serviço (base indireta): Word 756 Tamanho da estrutura = 36 bytes. Endereço Tipo Nome B00 TX_1 B01 TX_2 B02 RX_3 B03 RX_4 B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 RSVD PT_1 Base Bits16 Base+2 Base+4 Uint16 Uint16 Base+6 Uint16 TAM_DADOS_1 Base+8 Uint16 TEMPO_1 Base+10 Base+12 Uint16 Uint16 RSVD PT_2 Base+14 Uint16 TAM_DADOS_2 Base+16 Uint16 TEMPO_2 Base+18 Base+20 Uint16 Uint16 RSVD PT_3 Base+22 Uint16 TAM_DADOS_3 Base+24 Base+26 Base+28 Uint16 Uint16 Uint16 Base+30 Uint16 TAM_DADOS_4 Base+32 Base+34 Uint16 Uint16 RSVD RSVD PT_4 RSVD RSVD Habilita Habilita Habilita Habilita Descrição transmissão transmissão recepção da recepção da da área 1 da área 2 área 3 área 4 -Ponteiro p/ área 1 do PLC (transmissão) Número de bytes da área 1 transmissão Tempo de retransmissão da 1 (ciclos de PLC) -Ponteiro p/ área 2 do PLC (transmissão) Número de bytes da área 2 transmissão Tempo de retransmissão da 2 (ciclos de PLC) -Ponteiro p/ área 3 do PLC (recepção) Número de bytes da área 3 recepção --Ponteiro p/ área 4 do PLC (recepção) Número de bytes da área 4 recepção --- de área de área de de 248 Manual do PLC V1.00 35.4.1 - Bits de Comando Ao ativar bits de transmissão (TX_1 e TX_2), inicia uma nova transmissão dos dados configurados até terminar os bytes e enquanto o bit estiver ativo. Enquanto os bits de recepção (RX_3 e RX_4) estiverem ativos, as mensagens recebidas serão colocadas nas áreas do PLC apontadas pelo serviço. 35.4.2 - TEMPO Tempo de retransmissão das áreas 1 e 2 em número de ciclos do PLC (16 ms). 0 = sem retransmissão (envia uma única vez). 1 = retransmite automaticamente a cada ciclo do PLC ou o mais rápido possível. 249 Manual do PLC V1.00 35.5 - Estrutura de Status ( CNC → PLC ) Habilitação do Serviço: Bit 18.3 Ponteiro base da estrutura do serviço (base indireta): Word 756 Tamanho da estrutura = 4 bytes. Endereço Base+36 Base+38 Tipo Nome Descrição B00 ENABLE Serviço Habilitado B01 FAIL Falha no Serviço B02 *STT_REM Status do CNC remoto (1 = B03 B04 B05 B06 B07 Bits16 B08 B09 B10 B11 B12 B13 B14 B15 Uint16 RSVD -- * Não implementado 250 Manual do PLC V1.00 35.1 - Exemplo 2 CNCs Proteo Mini: CNC mestre + Terminal CAN Definir os parâmetros P099 (mestre / escravo) e o parâmetro correspondente ao módulo Proteo Mini CAN (P006 a P021) tanto no mestre como no escravo. Coloca-se a base do serviço na memória 756 e habilita-se o serviço no bit 18.3. Transferência dos dados da tela do CNC p/ o Terminal: - A cada 4 ciclos de PLC (64ms) o mestre envia 80 bytes da tela (400 a 479) p/ o terminal. - Pode-se configurar TEMPO = 1 ciclo, assim o CNC retransmitirá o mais rápido possível. Transferência do mapa de transição de teclas do Terminal p/ CNC: - A cada ciclo do PLC (16ms) o terminal envia 8 bytes do mapa (392), se existir, p/ a memória 378 do mestre. Status: Bits 0 e 2 devem estar em 1 no funcionamento normal. CNC mestre (PLC -> CNC): Endere ço Base Base+2 Base+4 Base+6 Base+8 Base+1 0 Base+1 2 Base+1 4 Base+1 6 Base+1 8 Base+2 0 Base+2 2 Base+2 4 Base+2 6 Base+2 8 251 Tipo Nome Valor Bits1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 BITS_CMD 5 RSVD -- PT_1 400 TAM_DADOS_1 80 TEMPO_1 1 RSVD -- PT_2 TAM_DADOS_2 TEMPO_2 RSVD PT_3 392 TAM_DADOS_3 8 RSVD -- RSVD -- PT_4 Manual do PLC Base+3 0 Base+3 2 Base+3 4 V1.00 Uint1 6 Uint1 6 Uint1 6 TAM_DADOS_4 RSVD RSVD Terminal CAN (PLC -> CNC): Endere ço Base Base+2 Base+4 Base+6 Base+8 Base+1 0 Base+1 2 Base+1 4 Base+1 6 Base+1 8 Base+2 0 Base+2 2 Base+2 4 Base+2 6 Base+2 8 Base+3 0 Base+3 2 Base+3 4 Tipo Nome Valor Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 Uint1 6 BITS_CMD 5 RSVD -- PT_1 392 TAM_DADOS_1 8 TEMPO_1 1 RSVD -- PT_2 TAM_DADOS_2 TEMPO_2 RSVD PT_3 400 TAM_DADOS_3 80 RSVD -- RSVD -- PT_4 TAM_DADOS_4 RSVD RSVD 252 Manual do PLC V1.00 36 - Serviço Específico da CM (Lentes) 36.1 - Descrição geral Esse serviço habilita as rotinas específicas do software básico p/ a aplicação da CM (lentes): - Algoritmos CM habilitados por código de função M - Protocolo @Z p/ envio do pedido de Ordem de Serviço Ponteiro base da estrutura do serviço (base indireta): Habilitação do serviço: Bit 22.0 36.2 - Parâmetros de Configuração Utilizados 36.3 - Parâmetros de PLC utilizados 253 Word 798 Manual do PLC V1.00 36.4 - Estrutura de Dados e Comandos ( PLC → CNC ) Habilitação do Serviço: Bit 22.0 Ponteiro base da estrutura do serviço (base indireta): Word 798 Tamanho da estrutura = 8 bytes. Endereço Tipo Nome Descrição B00 ENVIA_OS Envia pedido da Ordem de B01 B02 B03 B04 B05 B06 B07 Base Bits16 B08 B09 B10 B11 B12 B13 B14 B15 Base+2 Uint16 END_RESP Endereço onde dados da OS serão gravados Base+4 FLOAT NUM_OS Número da Ordem de Serviço OBS.: Antes de enviar pedido da OS, PLC deve limpar memória que receberá status da resposta (colocando -1 por exemplo). 36.5 - Estrutura de Status ( CNC → PLC ) Habilitação do Serviço: Bit 22.0 Ponteiro base da estrutura do serviço (base indireta): Word 798 Tamanho da estrutura = 4 bytes. Endereç o Tipo Base+8 Bits1 6 Base+10 Uint1 6 Nome B00 B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 ENABLE FAIL Descrição Serviço Falha no RSVD 254 Manual do PLC V1.00 36.6 - Dados da Ordem de Serviço (resposta do protocolo @Z) Tamanho da estrutura = 132 bytes Endereço END_RESP END_RESP+6 4 Tipo 16 Floats 16 Floats Nome OLHO_ES Q OLHO_DI R Descrição Dados do olho esquerdo Dados do olho direito END_RESP+1 28 Uint16 STATUS Status dos dados: 0 = OK 1 = OS não encontrada 2 = time-out do servidor END_RESP+1 30 Uint16 RSVD Reservado: Alinhamento de 4 bytes 255 Manual do PLC V1.00 37 - Serviço de Comunicação Serial CNC <=> Periférico Genérico ( ARM 9.22 ) 37.1 - Descrição geral Permite a comunicação serial entre o CNC e um ou mais periféricos Genéricos através de um protocolo definido pelo PLC programando uma estrutura genérica proposta pelo serviço. Ponteiro base da estrutura do serviço (base indireta): #10255 ( W ) Variável Reservada Habilitação do serviço: Base da estrutura precisa conter o valor constante 2727 37.2 - Parâmetros de Configuração utilizados P052 P053 P054 P055 P056 - Taxa de comunicação serial (default = 9600) Número de bits da serial (default = 8) Número de stop bits da serial (default = 1) Paridade da serial (default = sem paridade) *FIXO Endereço do CNC na rede Mestre / Escravo e ModBus. *FIXO *FIXO 37.3 - Estrutura de Dados e Comandos ( CNC PERIFÉRICO ) Habilitação do Serviço: VIA VARIÁVEL RESERVADA #10255 = BASE ESTRUTURA Ponteiro base da estrutura do serviço (base indireta): #10255 Tamanho da estrutura = 32 bytes. Endereço Base+0 Base+2 Tipo Uint16 Uint16 Nome SIGNATURE TX_SIZE Base+4 Uint16 TX_BUF_ADR Base+6 Base+8 Uint16 Uint16 RX_SIZE RX_BUF_ADR Base+10 Uint16 CMD Base+12 Uint16 STATE Descrição VALOR FIXO = 2727 TAMANHO DO BUFFER DE TRANSMISSÃO Ponteiro p/ BUFFER DE TRANSMISSÃO: ADR PLC MEMO TX TAMANHO DO BUFFER DE RECEPÇÃO Ponteiro p/ BUFFER DE RECEPÇÃO: ADR PLC MEMO RX COMANDO: 0 = NENHUM 1 = TRANSMITIR 2 = RESET 0 = READY 1 = LEITURA 2 = ESCRITA 3 = OK, COMANDO EXECUTADO 4 = ERRO 5 = AGUARDANDO COMUNICAÇÃO 256 Manual do PLC V1.00 Base+14 Uint16 STATUS Base+16 Uint16 TYPE Base+18 Base+20 Base+22 Uint16 Uint16 Uint16 INI_TOKEN END_TOKEN CKS_TYPE Base+24 Uint16 TIMEOUT 0 = OFF 1 = TX_OK 2 = RX_OK 3 = TX_ERRO 4 = RX_ERRO 5 = TIMEOUT 6 = CMD INVALIDO TIPO DE PROTOCOLO: 0 = GENÉRICO, ASCII 1 = GENÉRICO, BINÁRIO CÓDIGO ASCII TOKEN INICIAL CÓDIGO ASCII TOKEN FINAL 0 = SEM CHECK SUM 1 = 1 BYTE PARA CHECK SUM 2 = 2 BYTES PARA CHECK SUM 0 = SEM RESPOSTA >0 = RESPOSTA ANTES DE TIMEOUT ( UNIDADES PLC TIC ) Descrição de funcionamento: O PLC deve definir as propriedades do serviço de comunicação inicializando a estrutura de comunicação com as informações necessárias, ANTES de escrever na variável reservada que inicia o serviço de comunicação: 1 – Definir o endereço inicial onde fica a estrutura ( reservar 32 bytes ). Ex.: Estrutura fica na posição 800 ocupando 32 bytes : 800 até 831. 2 – Definir onde ficam os buffers de comunicação : RX e TX, levando em conta também o tamanho que cada buffer ocupará na memória do PLC. Ex.: Estrutura fica na posição 800 ocupando 32 bytes : 800 até 831. Buffer de recepção fica em 832 ocupando 32 bytes Buffer de transmissão fica em 864 ocupando 32 bytes 3 – Inicializar a estrutura do serviço de comunicação: Ex.: 800 802 804 806 808 810 812 814 816 818 820 822 802 257 = (w) 2727 - identidade = (w) 32 - TAMANHO DO BUFFER DE TRANSMISSÃO = (w) 832 - BUFFER DE TRANSMISSÃO TX = (w) 32 - TAMANHO DO BUFFER DE RECEPÇÃO = (w) 864 - BUFFER DE RECEPÇÃO = (w) 0 - COMANDO = (w) 0 - ESTADO = (w) 0 - STATUS = (w) 0 - TIPO DE PROTOCOLO: 0 = GENÉRICO ASCII = (w) 62 - TOKEN INICIAL: > = (w) 60 - TOKEN FINAL: < = (w) 2 - CHECK_SUM : 2 BYTES = (w) 0 - TIMEOUT Manual do PLC V1.00 258 Manual do PLC V1.00 4 - Inicializar o serviço de comunicação: #10255 = BASE ESTRUTURA Ex.: #10255 = 800 5 – Para transmitir: Colocar o CONTEÚDO da mensagem no buffer de transmissão com o número de bytes correspondente ( ao conteúdo apenas ). O CNC vai transmitir: {TOKEN_INICIAL} CONTEÚDO {CHECK_SUM} {TOKEN_FINAL} OS CAMPOS ENTRE CHAVES SÃO OPCIONAIS, APENAS CONFORME ESPECIFICADO. TIMEOUT = QUANDO NÃO ZERO CONTA TEMPO, RECEPÇÃO DE MENSAGEM ZERA TIMER. 5 – Para RECEBER: Caso chegue uma resposta durante a contagem do tempo de timeout, esta zera timer e não informa mais o erro de timeout. Caso chegue uma resposta válida, apenas o CONTEÚDO da mensagem será colocado no buffer de recepção e o tamanho do CONTEÚDO informado. {TOKEN_INICIAL} CONTEÚDO {CHECK_SUM} {TOKEN_FINAL} OS CAMPOS ENTRE CHAVES SÃO OPCIONAIS, APENAS CONFORME ESPECIFICADO. 259 Manual do PLC V1.00 38 - Função Atômica A função atômica é a estrutura de dados que o interpretador do programa (PC ou PLC) envia à fila de execução para ser executada pelo DSP. 38.1 - Estrutura da Função Atômica FA_Struct: Tipo de Dado Int16 Byte Byte ID Tipo Sync Dados Data_Struc t Descrição Identifica a função atômica Tipo de função atômica Indica se função atômica requer sincronismo da execução Estrutura de dados da função atômica, depende do tipo de função ID pode ser composto de forma a identificar várias informações. Por exemplo, pode-se usar o byte mais significativo p/ identificar o número do bloco da receita e o menos significativo p/ identificar o número da função atômica desse bloco. 38.2 - Blocos de Função Atômica Cada bloco de função atômica possui n bytes, normalmente 32 ou 64 bytes. Os primeiros 2 bytes (Int16) são o cabeçalho ou comando (CMD) do bloco. Os bytes remanescentes representam a estrutura da função atômica, ou seja, os dados que são enviados à fila de execução. A estrutura do bloco de função atômica está representada na tabela a seguir: CMD FA Tipo de Dado Int16 FA_Struct Funções atômicas cujo tamanho ultrapasse o tamanho do bloco serão enviadas em blocos subseqüentes ao inicial. Para isto, utilizam-se os 3 bits mais significativos de CMD para informar o tipo de bloco que está sendo enviado, conforme tabela abaixo: Descrição 0 Bloco Simples 1 Bloco Múltiplo Início de Função Atômica (FA) 00 B14 B13 CMD B15 Valor 01 Complementos 10 Fim de FA 260 Manual do PLC Bloco Simples V1.00 - Bloco Múltiplo Indica que o bloco possui uma função atômica completa e que não há blocos subseqüentes. Indica que este bloco está contido em uma seqüência de blocos que juntos formam uma função atômica completa. Início de FA - Complementos - Fim de FA - 261 Indica que o bloco é o primeiro de uma série de blocos que formam uma função atômica completa. Indica que o bloco faz parte de uma seqüência de blocos que formam uma função atômica (bloco intermediário). Indica que o bloco é o último de uma série de blocos que formam uma FA completa. Manual do PLC V1.00 39- ESTRUTURAS Int16 = Inteiro 16 bits ( 2 bytes ) Float32 = Número em ponto flutuante simples ( 4 bytes ) 39.1 - CNC_AXES Estrutura que possui os valores das coordenadas. Para cada eixo, contém o ID, modo de coordenada (absoluta ou incremental) e seu valor, conforme tabela abaixo: Tipo Descrição id CNC_AXIS_ID ID do eixo mode CNC_COORDINATE_MODE Modo de coordenada value Float32 Valor da coordenada Ou seja, possui 8 bytes por eixo. Quando for enviado um número de eixos menor que o máximo de eixos interpolados, no final deve ser enviado um id=0 (não definido) p/ informar o fim dos eixos. Isso só não será necessário quando o valor do último eixo completar o bloco e não houver mais nada a ser enviado, ou seja, não será enviado um outro bloco só com id=0. Tamanho = nEixos * 8 + 2 Considerando que o número máximo de eixos interpolados seja 6, essa estrutura terá no máximo 6*8 = 48 bytes. CNC_AXIS_ID Estrutura do tipo Int16 que contém os valores possíveis p/ o ID do eixo. Valor 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Descrição Não definido X Y Z A B C U V W I J K R PR (Polar Radius) PA (Polar Angle) 262 Manual do PLC CNC_COORDINATE_MODE Estrutura do tipo Int16. Valor 0 1 2 Descrição Absoluta Incremental Modal 39.2 - CNC_SET_ORIGIN_OFFSETS Possui as informações do tipo e valores da origem a ser utilizada. Tipo Descrição origin Int16 Tipo de origem (zero) absoluta incOffset Int16 Tipo de origem (zero) incremental axes CNC_AXES Valores das coordenadas da origem Tamanho = 4 + (nEixos*8 + 2) ; Max = 52 bytes Origem (zero) absoluta Valor 0 1 2 3 4 5 6 Descrição G54 G55 G56 G57 G53 (zero máquina) Atual Não definido Origem (zero) incremental Valor 0 1 2 263 Descrição G58 G59 Não definido V1.00 Manual do PLC V1.00 39.3 - CNC_SELECT_PLANE Estrutura do tipo Int16 que contém os possíveis planos p/ interpolação circular ou compensação de raio de ferramenta. Valor 0 1 2 Descrição XY ZX YZ TAMANHO = 2 BYTES 39.4 - CNC_SET_FEED_RATE Contém o tipo e valor do Feed Rate. Tipo ftype rsvd fvalue Descrição Tipo de feed rate: 0 = unidades/minuto Int16 1 = unidades/volta Int16 Alinhamento de 32 bits Float32 Valor do feed rate Tamanho = 8 bytes 39.5 - CNC_STRAIGHT_TRAVERSE Estrutura do tipo CNC_AXES que contém os valores das coordenadas da interpolação linear usando velocidade igual ao Rápido dos eixos. Tamanho = (nEixos*8 + 2) ; Max = 48 bytes 39.6 - CNC_STRAIGHT_FEED Estrutura do tipo CNC_AXES que contém os valores das coordenadas da interpolação linear usando última velocidade configurada pela função atômica FEED_RATE. Tamanho = (nEixos*8 + 2) ; Max = 48 bytes 264 Manual do PLC V1.00 39.7 - CNC_ARC_FEED Estrutura que contém os valores das coordenadas (CNC_AXES) da interpolação circular, usando última velocidade configurada pela função atômica _FEED_RATE, bem como a direção do movimento (horário ou anti-horário). Tipo Descrição Direção do movimento: 0 = horário direction Int16 1 = anti-horário 2 = não definido axes CNC_AXES Valores das coordenadas da interpolação circular Tamanho = 2 + (nEixos*8 + 2) ; Max = 50 bytes Para essa estrutura, foram feitas alterações para que uma interpolação circular de 2 eixos mais o raio caiba em 1 bloco de 32 bytes. Nesse caso, não é necessário enviar um id=0 no final. 39.8 - CNC_THREAD_CUTTING Estrutura que contém os valores das coordenadas (CNC_AXES) e os demais dados da rosca, como passo, ângulo e distância de pull-out. pitch pullOut angle axes Tipo Float32 Float32 Float32 CNC_AXES Descrição Passo da rosca (em mm) Distância de pull-out (em mm) Ângulo de pull-out (em graus) Valores das coordenadas para rosca Tamanho = 3*4 + (nEixos*8 + 2) ; Max = 60 bytes 265 Manual do PLC V1.00 40 - TIPOS DE FUNÇÃO ATÔMICA 40.1 - SET_ORIGIN_OFFSETS Configura os valores das coordenadas das origens (G54 a G59). FA_Struct->Tipo = 0 Data_Struct = CNC_SET_ORIGIN_OFFSETS Exemplo: Definição do G54 p/ coordenadas X,Y,Z - Base = I100 origin incOffset id mode value id mode axes value id mode value id Variáve l I100 I102 I104 I106 I108 I112 I114 I116 I120 I122 I124 I128129 Valor 0 (G54) 2 (não definido) 1 (X) 0 (absoluta) 10.0000 2 (Y) 0 (absoluta) 20.0000 3 (Z) 0 (absoluta) 30.0000 0 (não definido) 40.2 - SELECT_ORIGIN_OFFSETS Seleciona qual origem será utilizada (G53 a G59). FA_Struct->Tipo = 1 Data_Struct = CNC_SET_ORIGIN_OFFSETS Exemplo: Seleção do G58 - Base = I100 origin incOffset axes id Variáve l I100 6 I102 0 I1040 105 Valor (não definido) (G58) (não definido) 266 Manual do PLC V1.00 40.3 - SELECT_PLANE Seleciona plano geométrico da interpolação circular ou da compensação de raio de ferramenta. FA_Struct->Tipo = 3 Data_Struct = CNC_SELECT_PLANE Exemplo: Seleção do plano XY - Base = I100 Variáve l CNC_SELECT_PLA I1000 NE 101 Valor (XY) 40.4 - FEED_RATE Configura o tipo e valor do feed rate. FA_Struct->Tipo = 8 Data_Struct = CNC_SET_FEED_RATE Exemplo: Feed Rate = 1000 mm/min - Base = I100 Variáve Valor l I100 0 (unidades/minuto) I102 0 (alinhamento) I1041000.0000 107 ftype rsvd fvalue 40.5 - STRAIT_TRAVERSE Gera movimento de interpolação linear passando os valores das coordenadas cartesianas. A velocidade é o Rápido dos eixos envolvidos. FA_Struct->Tipo = 10 Data_Struct = CNC_STRAIGHT_TRAVERSE Exemplo: Interpolação linear de 3 eixos (XA10 YA15 ZI-20) - Base = I100 axes 267 id mode value id mode Variáve l I100 I102 I104 I108 I110 Valor 1 (X) 0 (absoluta) 10.0000 2 (Y) 0 (absoluta) Manual do PLC value id mode value id V1.00 I112 I116 I118 I120 I124125 15.0000 3 (Z) 1 (incremental) -20.0000 0 (não definido) 40.6 - STRAIT_TRAVERSE_POLAR Gera movimento de interpolação linear passando os valores das coordenadas polares. A velocidade é o Rápido dos eixos envolvidos. FA_Struct->Tipo = 11 Data_Struct = CNC_STRAIGHT_TRAVERSE 40.7 - STRAIT_FEED Gera movimento de interpolação linear passando os valores das coordenadas cartesianas. A velocidade é a última configurada pela função atômica FEED_RATE. FA_Struct->Tipo = 12 Data_Struct = CNC_STRAIGHT_FEED 40.8 - STRAIT_FEED_POLAR Gera movimento de interpolação linear passando os valores das coordenadas polares. A velocidade é a última configurada pela função atômica FEED_RATE. FA_Struct->Tipo = 13 Data_Struct = CNC_STRAIGHT_FEED 268 Manual do PLC V1.00 40.9 - ARC_CENTER Define o centro da interpolação circular. FA_Struct->Tipo = 14 Data_Struct = CNC_ARC_FEED Exemplo: Centro = XA5 YA10 - Base = I100 direction id mode value id axes mode value id Variáve l I100 I102 I104 I106 I110 I112 I114 I118119 Valor x 1 (X) 0 (absoluta) 5.0000 2 (Y) 0 (absoluta) 10.0000 0 (não definido) 40.10 - ARC_FEED Gera movimento de interpolação circular passando os valores das coordenadas cartesianas e a direção (horária ou anti-horária). A velocidade é a última configurada pela função atômica FEED_RATE. FA_Struct->Tipo = 15 Data_Struct = CNC_ARC_FEED Exemplo: Interpolação circular horária de 2 eixos c/ raio (XA10 YA50 R20) Base = I100 direction id mode value id mode axes value id mode value id 269 Variáve l I100 I102 I104 I106 I110 I112 I114 I118 I120 I122 I126127 Valor 0 (horário) 1 (X) 0 (absoluta) 10.0000 2 (Y) 0 (absoluta) 50.0000 13 (R) 0 20.0000 0 (não definido) Manual do PLC V1.00 40.11 - ARC_FEED_POLAR Gera movimento de interpolação circular passando os valores das coordenadas polares e a direção (horária ou anti-horária). A velocidade é a última configurada pela função atômica FEED_RATE. FA_Struct->Tipo = 16 Data_Struct = CNC_ARC_FEED 40.12 - THREAD_CUTTING Gera movimento de rosca passando os valores das coordenadas cartesianas e demais dados da rosca. FA_Struct->Tipo = 18 Data_Struct = CNC_THREAD_CUTTING Exemplo: Rosca p/ X = 50 e Passo = 10 - Base = I100 pitch pullOut angle id mode axes value id Variáve l I100 I104 I108 I112 I114 I116 I120121 Valor 10 0 0 1 (X) 0 (absoluta) 50.0000 0 (não definido) 40.13 - THREAD_CUTTING_POLAR Gera movimento de rosca passando os valores das coordenadas polares e demais dados da rosca. FA_Struct->Tipo = 19 Data_Struct = CNC_THREAD_CUTTING 270 Manual do PLC V1.00 40.14 - Tabela Resumida Campos Tipo e Dados (Data_Struct) da estrutura da função atômica, bem como seu tamanho. Tamanho (em bytes) 4 + (nEixos*8 0 SET_ORIGIN_OFFSETS CNC_SET_ORIGIN_OFFSETS + 2); max = 52 1 SELECT_ORIGIN_OFFSETS CNC_SET_ORIGIN_OFFSETS 6 3 SELECT_PLANE CNC_SELECT_PLANE 2 8 FEED_RATE CNC_SET_FEED_RATE 8 (nEixos*8 + 10 STRAIT_TRAVERSE CNC_STRAIGHT_TRAVERSE 2); max = 48 (nEixos*8 + 11 STRAIT_TRAVERSE_POLAR CNC_STRAIGHT_TRAVERSE 2); max = 48 (nEixos*8 + 12 STRAIT_FEED CNC_STRAIGHT_FEED 2); max = 48 (nEixos*8 + 13 STRAIT_FEED_POLAR CNC_STRAIGHT_FEED 2); max = 48 2 + (nEixos*8 14 ARC_CENTER CNC_ARC_FEED + 2); max = 50 2 + (nEixos*8 15 ARC_FEED CNC_ARC_FEED + 2); max = 50 2 + (nEixos*8 16 ARC_FEED_POLAR CNC_ARC_FEED + 2); max = 50 3*4 + 18 _THREAD_CUTTING CNC_THREAD_CUTTING (nEixos*8 + 2); max=60 3*4 + 19 _THREAD_CUTTING_POLAR CNC_THREAD_CUTTING (nEixos*8 + 2); max=60 Tipo 271 Data_Struct Manual do PLC V1.00 41 - EXEMPLOS DE USO 41.1 - Interpolação linear de 3 eixos Feed = 1000 mm/min XA10 YI-10 ZA30 Base = I100 Blocos de 32 bytes FEED_RATE (Bloco 1): CMD ID Tipo Sync ftype rsvd Dados fvalu e Variável I100-101 I102-103 I104 I105 I106-107 I108-109 I110-113 Valor 0xxxxxxx xxxxxxxx (bin) 0 8 0 0 (unidades/minuto) x (alinhamento) 1000.0000 STRAIT_FEED (Bloco 2): CMD ID Tipo Sync id mode value id mode Dados value id mode value id Variável I100-101 I102-103 I104 I105 I106-107 I108-109 I110-113 I114-115 I116-117 I118-121 I122-123 I124-125 I126-129 I130-131 0xxxxxxx xxxxxxxx 1 12 0 1 (X) 0 (absoluta) 10.0000 2 (Y) 1 (incremental) -10.0000 3 (Z) 0 (absoluta) 30.0000 0 (não definido) Valor (bin) 272 Manual do PLC V1.00 41.2 - Interpolação circular de 2 eixos XA10 YA50 R20 Base = I100 Blocos de 32 bytes ARC_FEED (Bloco 1): Variável I100-101 I102-103 I104 I105 directio I106-107 n id I108-109 mode I110-111 value I112-115 Dado id I116-117 s mode I118-119 value I120-123 id I124-125 mode I126-127 value I128-131 CMD ID Tipo Sync 0xxxxxxx xxxxxxxx 2 15 0 0 (horário) Valor (bin) 1 (X) 0 (absoluta) 10.0000 2 (Y) 0 (absoluta) 50.0000 13 (R) 0 (absoluta) 20.0000 Nesse caso, não é enviado o id=0 no final, pois o bloco de 32 bytes já está completo. 273 Manual do PLC V1.00 42 - Apêndice - Memórias Gerais do PLC (não estão ligadas a um serviço específico) - Mapa do teclado/Painel - Tabela de teclas - Tabela de caracteres do display - Novas instruções 274 Manual do PLC V1.00 42.1 - Memórias Gerais do PLC Memórias fixas que não estão ligadas a um serviço específico do PLC. Endereço 0 Tipo Bits B00 B01 B02 B03 B04 B05 B06 B07 B00 B01 B02 B03 B04 B05 B06 B07 B00 B01 B02 B03 B04 B05 B06 B07 B00 B01 B02 B03 B04 B05 B06 B07 Nome START STOP EMG Descrição Inicia movimento (ativo em 1) Pára movimento (ativo em 0) Emergência do PLC (ativo em 0) POTFPLC POTSPLC FEEDHOLD DRYRUN POTF por PLC POTS por PLC Feed Hold Geral (ativo em 0) Dry Run – Execução em avanço REFOK_1 REFOK_2 REFOK_3 REFOK_4 REFOK_5 REFOK_6 REFOK_7 REFOK_8 FHOLD DRYRUN Status de Referência OK p/ Status de Referência OK p/ Status de Referência OK p/ Status de Referência OK p/ Status de Referência OK p/ Status de Referência OK p/ Status de Referência OK p/ Status de Referência OK p/ CNC STATUS: Feed Hold (ativo Modo DryRun ativo Modos de Simulação: 0=Normal(OFF) / 1=Pontos / SIMUL 2=Desenho(Elementos+COMP_OFF) / 3=Elementos / PUNCH_OK Modo Puncionadeira: Ordem p/ PUNCH_BLOCK Movimento bloqueado (Modo RUN CNC em execução EXESUSP Execução suspensa 25 Bits 26 Bits 27 Bits 28 Bits PRESET_x 29 Bits OFFSET_x 32-35 INT32 POSMJ1 INT32 POSMJ8 --60-63 80 275 Bits B00 B01 B02 B03 B04 B05 B06 VTEO_1 VTEO_2 VTEO_3 VTEO_4 VTEO_5 VTEO_6 VTEO_7 PROTEO MINI: Preset de eixo com cota do PLC (1 porPeça eixo) 0 =bit Zero (usuário) ; 1 = Zero Máquina (1 bit por eixo) Cota do PLC p/ eixo 1 (Mov Manual Incremental, Independente e Preset) Cota do PLC p/ eixo 8 (Mov Manual Incremental, Independente e Preset) Eixo em movimento (velocidade teórica) (1 bit por eixo) Manual do PLC V1.00 B07 VTEO_8 83 86 88 89 JANELA_x Eixo dentro da posicionamento (1 bit por eixo) B00 B01 B02 B03 B04 B05 B06 B07 LAGERR_1 LAGERR_2 LAGERR_3 LAGERR_4 LAGERR_5 LAGERR_6 LAGERR_7 LAGERR_8 Erro de Acompanhamento (1 bit por eixo) B00 B01 B02 B03 B04 B05 B06 B07 B00 B01 B02 B03 B04 B05 B06 B07 MLIVRE_1 MLIVRE_2 MLIVRE_3 MLIVRE_4 MLIVRE_5 MLIVRE_6 MLIVRE_7 MLIVRE_8 PRESET_TP Bits Bits Bits Bits 94 B00 B01 B02 Bits16 B03 B04 B05 B06 B07 96 B00 LAGSERV B01 RSTLAG B02 Bits16 B03 B04 B05 B06 B07 116 Bits 117 Bits B00 B01 B02 B03 B04 B05 B06 B07 B00 B01 FOLGA_1 FOLGA_2 FOLGA_3 FOLGA_4 FOLGA_5 FOLGA_6 FOLGA_7 FOLGA_8 LIBAX_1 LIBAX_2 LIBAX_3 LIBAX_4 LIBAX_5 LIBAX_6 LIBAX_7 LIBAX_8 STOPAX_1 STOPAX_2 janela de Modo Livre: Copia Pto Real p/ Pto Teórico (1 bit por eixo) Tipo de preset de eixo (0 = Compensação de Folga: Ativa (1 bit por eixo) 1 = Tratamento do erro de Lag pelo Reset do erro de Lag Liberação Liberação Liberação Liberação Liberação Liberação Liberação Liberação Pára eixo Pára eixo de saída para de saída para de saída para de saída para de saída para de saída para de saída para de saída para 1 (Modo Stop) 2 eixo eixo eixo eixo eixo eixo eixo eixo 276 1 2 3 4 5 6 7 8 Manual do PLC V1.00 118 Bits 119 Bits 120 Uint16 STOPAX_3 STOPAX_4 STOPAX_5 STOPAX_6 STOPAX_7 STOPAX_8 FCPOS_1 FCPOS_2 FCPOS_3 FCPOS_4 FCPOS_5 FCPOS_6 FCPOS_7 FCPOS_8 FCNEG_1 FCNEG_2 FCNEG_3 FCNEG_4 FCNEG_5 FCNEG_6 FCNEG_7 FCNEG_8 C1MS 124 Uint16 CNC_CAN_ERR 138 Uint16 CAN_ERR_CNT 140-147 Byte DRIVE_STT 148-149 Bits16 B02 B03 B04 B05 B06 B07 B00 B01 B02 B03 B04 B05 B06 B07 B00 B01 B02 B03 B04 B05 B06 B07 MOD_STT 150-157 Byte DRIVE_ERROR 198 Uint16 PLC_LOG_EVENT 270-285 Uint16 277 AXIS_REF Pára Pára Pára Pára Pára Pára eixo eixo eixo eixo eixo eixo 3 4 5 6 7 8 Status Geral (CNC -> PLC) Fim de Curso Positivo (1 bit por eixo) Status Geral (CNC -> PLC) Fim de Curso Negativo (1 bit por eixo) Contador de tempo entre ciclos CAN: Registrador de status e erros do CNC (CANES) PLC limpa memória escrevendo 0 CAN: contadores de erros da transmissão e recepção: CANTEC CAN-OPEN: status de comunicação (1 byte por eixo) F0h = pré-operacional, FFh = operacional, CAN-OPEN: status de comunicação (1 bit por módulo) 0 = não operacional , 1 = operacional Erros nos drives CAN (1 byte por eixo) Código enviado na msg de emergência (080h + adr) Um valor diferente de zero produz um evento que vai ser registrado no arquivo Proteo.log Sinal de saída enviado aos eixos (1 word por eixo) (unidade do conversor DA: +- Manual do PLC V1.00 42.2 - BITS PULSADOS DE EVENTOS Bytes 260-267 (64 bits) Bits permanecem ativos durante 1 ciclo do PLC B00 B01 B02 B03 B04 B05 B06 Bits16 B07 B08 260 B09 B10 B11 B12 B13 B14 B15 1o ciclo do Plc (ao ligar) Novo Plc Atualizou parâmetros do CNC Timer 50 ms Timer 100 ms Timer 200 ms Timer 500 ms Timer 1 segundo Timer 1 hora 278 Manual do PLC V1.00 42.3 - Códigos de Emergência - Proteo Mini Código EMG 1 EMG 2 EMG 4 EMG 8 EMG 16 Significado Emergência gerada pelo PLC (bit 0.2) Time-out do PLC (mostra num de instruções executadas) Erro na execução do PLC (mostra código de erro do PLC) Problema na Interrupção Principal de Controle Problema na Interrupção da execução dos segmentos (RunCycle) Códigos de erro do PLC (EMG 4): #define #define #define #define #define #define #define #define #define #define #define #define 279 kPLC_EXIT_OK kPLC_EXIT_InvalidInstruction kPLC_EXIT_CallStackOverflow kPLC_EXIT_CallStackUnderflow kPLC_EXIT_ParentesisStackOverflow kPLC_EXIT_ParentesisStackUnderflow kPLC_EXIT_UnbalancedParentesis kPLC_EXIT_UnbalancedCallRet kPLC_EXIT_ParameterOutOfRange kPLC_EXIT_Found_ENDC_instruction kPLC_EXIT_Invalid_TELA_Instruction kPLC_EXIT_JUMP_InvalidAddress 0 1 2 3 4 5 6 7 8 9 10 11 Manual do PLC V1.00 43 - Código de Teclas Tecla ASCII NO_KEY KEY_UNDEFINED Código 0 1 KEY_DATA_SPACE space 32 KEY_NUM_GRID KEY_NUM_DOLLAR # $ 35 36 KEY_NUM_LEFT_PARENTESIS KEY_NUM_RIGHT_PARENTESIS KEY_NUM_STAR KEY_NUM_PLUS KEY_NUM_COMMA KEY_NUM_MINUS KEY_NUM_DEC KEY_NUM_DASH ( ) * + , . / 40 41 42 43 44 45 46 47 KEY_NUM_0 KEY_NUM_1 KEY_NUM_2 KEY_NUM_3 KEY_NUM_4 KEY_NUM_5 KEY_NUM_6 KEY_NUM_7 KEY_NUM_8 KEY_NUM_9 0 1 2 3 4 5 6 7 8 9 48 49 50 51 52 53 54 55 56 57 KEY_NUM_EQUAL = 61 KEY_DATA_A KEY_DATA_B KEY_DATA_C KEY_DATA_D KEY_DATA_E KEY_DATA_F KEY_DATA_G KEY_DATA_H KEY_DATA_I KEY_DATA_J KEY_DATA_K KEY_DATA_L KEY_DATA_M KEY_DATA_N A B C D E F G H I J K L M N 65 66 67 68 69 70 71 72 73 74 75 76 77 78 280 Manual do PLC KEY_DATA_O KEY_DATA_P KEY_DATA_Q KEY_DATA_R KEY_DATA_S KEY_DATA_T KEY_DATA_U KEY_DATA_V KEY_DATA_W KEY_DATA_X KEY_DATA_Y KEY_DATA_Z KEY_NUM_LEFT_BRACKET KEY_NUM_RIGHT_BRACKET __NOT_ASCII KEY_NUM_SIGN KEY_DATA_CLEAR KEY_DATA_BACKSPACE KEY_NAV_DELETE KEY_NAV_ENT KEY_NAV_NO_ENT KEY_DATA_LINE_FEED KEY_NAV_DOWN KEY_NAV_HOME KEY_NAV_END KEY_NAV_F1 KEY_NAV_F2 KEY_NAV_F3 KEY_NAV_F4 KEY_NAV_GO_TO KEY_NAV_GRF KEY_NAV_HELP KEY_NAV_LEFT KEY_NAV_MOD KEY_NAV_PGUP KEY_NAV_PGDN KEY_NAV_PROGRAM KEY_NAV_RIGHT KEY_NAV_TEACH_IN KEY_NAV_UP KEY_NAV_WHEEL KEY_NAV_ALARMS KEY_INCREMENTAL KEY_CMD_CC KEY_CMD_CHF KEY_CMD_CIR 281 V1.00 O P Q R S T U V W X Y Z [ ] 79 80 81 82 83 84 85 86 87 88 89 90 91 93 CNC [ +/- ] [ CLEAR ] [ CE ] [ DELETE ] [ENT] [NO ENT] [ LF ] [ DOWN ] [ HOME ] [ END ] [ F1 ] [ F2 ] [ F3 ] [ F4 ] [ GO TO ] [ GRF ] [ HELP ] [←] [ MOD ] [ PG UP ] [ PG DN ] [ PGM ] [ → ] [ TEACH ] [ ↑ ] [ MANIV ] [ ALARM ] [ INCR ] [ CC ] [ CHF ] [ CIR ] 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 Manual do PLC KEY_CMD_CYC KEY_CMD_EXP KEY_CMD_FAT KEY_CMD_FUNC KEY_CMD_ISO KEY_CMD_LBC KEY_CMD_LBS KEY_CMD_MIR KEY_CMD_MSG KEY_CMD_POLAR KEY_CMD_POS_X KEY_CMD_POS_Y KEY_CMD_POS_Z KEY_CMD_POS_A KEY_CMD_POS_B KEY_CMD_POS_C KEY_CMD_POS_U KEY_CMD_POS_V KEY_CMD_POS_W KEY_CMD_RND KEY_CMD_ROT KEY_CMD_SKP KEY_CMD_STP KEY_CMD_TCL KEY_CMD_TDF KEY_CTR_2ND KEY_CMD_SKP_MODE KEY_CMD_STOP_MODE KEY_CMD_KERF KEY_CMD_ISO_A KEY_CMD_ISO_B KEY_CMD_ISO_C KEY_CMD_ISO_D KEY_CMD_ISO_E KEY_CMD_ISO_F KEY_CMD_ISO_G KEY_CMD_ISO_H KEY_CMD_ISO_I KEY_CMD_ISO_J KEY_CMD_ISO_K KEY_CMD_ISO_L KEY_CMD_ISO_M KEY_CMD_ISO_N KEY_CMD_ISO_O KEY_CMD_ISO_P KEY_CMD_ISO_Q KEY_CMD_ISO_R V1.00 [ CYC ] [ EXP ] [ FAT ] [ FUNC ] [ ISO ] [ LBC ] [ LBS ] [ MIR ] [ MSG ] [ POLAR ] [ POS X ] [ POS Y ] [ POS Z ] [ POS A ] [ POS B ] [ POS C ] [ POS U ] [ POS V ] [ POS W ] [ RND ] [ ROT ] [ SKP ] [ STP ] [ TCL ] [ TDF ] [ 2nd ] [ SKP ] [ STOP ] [ KERF ] 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 188 189 190 191 [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 282 Manual do PLC KEY_CMD_ISO_S KEY_CMD_ISO_T KEY_CMD_ISO_U KEY_CMD_ISO_V KEY_CMD_ISO_W KEY_CMD_ISO_X KEY_CMD_ISO_Y KEY_CMD_ISO_Z KEY_NAV_CLEAR_PGM V1.00 [S] [T] [U] [V] [W] [X] [Y] [Z] [ CL PGM ] 213 214 215 216 217 218 219 220 221 FIRST_VIRTUAL_KBD_KEY KEY_VIRT_KBD_0 KEY_VIRT_KBD_1 KEY_VIRT_KBD_2 KEY_VIRT_KBD_3 KEY_VIRT_KBD_4 KEY_VIRT_KBD_5 KEY_VIRT_KBD_6 KEY_VIRT_KBD_7 KEY_VIRT_KBD_8 KEY_VIRT_KBD_9 KEY_VIRT_KBD_10 KEY_VIRT_KBD_11 KEY_VIRT_KBD_12 KEY_VIRT_KBD_13 KEY_VIRT_KBD_14 KEY_VIRT_KBD_15 [VKB0] [VKB1] [VKB2] [VKB3] [VKB4] [VKB5] [VKB6] [VKB7] [VKB7] [VKB7] [VKB7] [VKB7] [VKB7] [VKB7] [VKB7] [VKB7] 222 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 FIRST_KEY_INCREMETAL KEY_ADD_100K KEY_ADD_10K KEY_ADD_1K KEY_ADD_100 KEY_ADD_10 KEY_ADD_1 KEY_ADD_1TENTH KEY_ADD_1CENT KEY_ADD_1MILI [ ADD_100K ] [ ADD_10K ] [ ADD_1K ] [ ADD_100 ] [ ADD_10 ] [ ADD_1 ] [ ADD_0.1 ] [ ADD_0.01 ] [ ADD_0.001 ] 238 238 239 240 241 242 243 244 245 246 FIRST_KEY_SUB KEY_SUB_100K KEY_SUB_10K KEY_SUB_1K KEY_SUB_100 KEY_SUB_10 KEY_SUB_1 KEY_SUB_1TENTH KEY_SUB_1CENT [ SUB_100K ] [ SUB_10K ] [ SUB_1K ] [ SUB_100 ] [ SUB_10 ] [ SUB_1 ] [ SUB_0.1 ] [ SUB_0.01 ] 247 247 248 249 250 251 252 253 254 283 Manual do PLC KEY_SUB_1MILI V1.00 [ SUB_0.001 ] 255 284 Manual do PLC KEY_ENTER_EDIT VK_CMD_X_PLUS VK_CMD_X_MINUS VK_CMD_Y_PLUS VK_CMD_Y_MINUS VK_CMD_Z_PLUS VK_CMD_Z_MINUS VK_CMD_4_PLUS VK_CMD_4_MINUS VK_CMD_M3 VK_CMD_M4 VK_CMD_M4 VK_CMD_M8 VK_CMD_M9 VK_CMD_RAP VK_CMD_ON_OFF VK_STOP_MANUAL VK_SET_MANUAL_JOG VK_SET_MANUAL_INCREMENTAL VK_SET_MANUAL_WHEEL VK_SET_MANUAL_JOYSTICK VK_CMD_POT_UP VK_CMD_POT_DOWN 285 V1.00 [ EDIT ] X+ XY+ YZ+ ZIV+ IV-] M3 M4 M5 M8 M9 FAST RELEASE 256 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 Manual do PLC FIRST_VK (FOCO) VK_GOTO_PROGRAM_EDITOR VK_GOTO_EXEC_MONITOR_CNT VK_GOTO_PARAM_EDITOR VK_GOTO_TOOL_EDITOR VK_GOTO_MEMORY_DUMP_PLC VK_GOTO_ORIGINS_EDITOR VK_GOTO_TRACER VK_GOTO_SCOPE VK_GOTO_LOGIC_ANALYZER VK_GOTO_ALARMS VK_GOTO_EXEC_MONITOR_STEP VK_GOTO_MDI VK_GOTO_CALCULATOR VK_GOTO_HELP VK_GOTO_MEMORY_DUMP_H VK_GOTO_BIG_AXIS_POSITION VK_GOTO_LOG_MONITOR VK_GOTO_TOOL_EDITOR_2D VK_GOTO_TOOL_EDITOR_3D VK_GOTO_MUTINGA VK_GOTO_DATAVIEW_TBL VK_GOTO_DATAVIEW_GRF VK_GOTO_RECIPE_EXPLORER VK_GOTO_AXIS_ANALYZER NÃO UTILIZADO NÃO UTILIZADO NÃO UTILIZADO VK_GOTO_TOOL_CHANGER VK_GOTO_CUT_MONITOR VK_GOTO_TOUCH_CALIBRATION NÃO UTILIZADO VK_GOTO_TOUCH_TEST V1.00 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 286 Manual do PLC V1.00 16 MODOS VK_MODE_0 VK_MODE_1 VK_MODE_2 VK_MODE_3 VK_MODE_4 VK_MODE_5 VK_MODE_6 VK_MODE_7 VK_MODE_8 VK_MODE_9 VK_MODE_10 VK_MODE_11 VK_MODE_12 VK_MODE_13 VK_MODE_14 VK_MODE_15 VK_MODE_16 287 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 Manual do PLC V1.00 VK_CMD_START VK_CMD_STOP VK_CMD_ABORT VK_OPTIONAL_STOP_ON VK_OPTIONAL_STOP_OFF VK_SKIP_ON VK_SKIP_OFF VK_SIM_MODE_OFF VK_SIM_MODE_ON VK_SIM_MODE_ELEMENTS VK_SIM_MODE_DEMO VK_PGM_CALL VK_RESET_CNC VK_REVERSE_EXEC_ON VK_REVERSE_EXEC_OFF VK_STOP_MANUAL_MODE VK_MANUAL_MODE_JOG VK_MANUAL_MODE_INCREMENTAL VK_MANUAL_MODE_WHEEL VK_MANUAL_MODE_JOYSTICK VK_SHOW_SMALL_AXIS_POSITION VK_SHOW_STATUS_BAR VK_SHOW_STATUS_BAR VK_CMD_FIRST_START VK_CMD_RESUME_PGM_EXECUTION VK_CMD_RESUME_PLCPGM_EXEC VK_CMD_RESUME_LAST_BLOCK_ID_E XECUTION 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 421 422 423 424 425 VK_CMD_SELECT_SD_CARD VK_CMD_SELECT_FLASH VK_CMD_IMG_TO_SD_CARD VK_CMD_AUTORUN_TO_SD_CARD VK_CMD_IMG_FROM_SD_CARD 426 427 428 429 430 VK_CMD_RESUME_PGM_EXECUTION_ NO_WAIT VK_CMD_TAKE_FLASH_SNAP_SHOT VK_CMD_TAKE_SDCARD_SNAP_SHOT VK_CMD_RESUME_LAST_BLOCK_ID_ NO_WAIT 431 432 433 434 288 Manual do PLC V1.00 50 CUSTOMSCREENS VK_SCREEN1 VK_SCREEN2 VK_SCREEN50 500 501 . . . 549 VK_FIRST_FIELD_CODE VK_LAST_FIELD VK_NEXT_FIELD VK_PREV_FIELD VK_DESELECT_FIELD 550 551 552 553 554 . . . 289 Manual do PLC V1.00 32 Userfields VK_FIELD1 VK_FIELD2 VK_FIELD3 VK_FIELD4 VK_FIELD5 VK_FIELD6 VK_FIELD7 VK_FIELD8 VK_FIELD9 VK_FIELD10 VK_FIELD11 VK_FIELD12 VK_FIELD13 VK_FIELD14 VK_FIELD15 VK_FIELD16 VK_FIELD17 VK_FIELD18 VK_FIELD19 VK_FIELD20 VK_FIELD21 VK_FIELD22 VK_FIELD23 VK_FIELD24 VK_FIELD25 VK_FIELD26 VK_FIELD27 VK_FIELD28 VK_FIELD29 VK_FIELD30 VK_FIELD31 VK_FIELD32 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 290 Manual do PLC V1.00 SoftKeys FIRST_SOFT KEY_SOFT_LEFT KEY_SOFT_1 KEY_SOFT_2 KEY_SOFT_3 KEY_SOFT_4 KEY_SOFT_5 KEY_SOFT_6 KEY_SOFT_RIGHT KEY_SOFT_V1 KEY_SOFT_V2 KEY_SOFT_V3 KEY_SOFT_V4 KEY_SOFT_V5 KEY_SOFT_V6 KEY_SOFT_V7 KEY_SOFT_V8 KEY_SOFT_V_SWAP KEY_SOFT_RETURN KEY_SOFT_UPDATE LAST_SOFT CÓDIGOS RESERVADOS CNC 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 - 999 CÓDIGOS DE TECLAS ESPECIAS CRIADAS PELO PLC CÓDIGOS TECLAS DO PLC 291 1000 - 9999 Manual do PLC VK_STOP_EDIT VK_EDIT_INCREMENTAL VK_EDIT_NUMERIC VK_EDIT_TEXT VK_EDIT_COMBO LAST_VK KEY_VIRT_KBD_TIMEOUT V1.00 900 901 902 903 904 905 906 292 Manual do PLC V1.00 44 – Variáveis Reservadas // RESERVED REGISTERS // Reserved Address Tags #define RESERVED_REGISTERS_BASE 10000 STDADR_CHANNEL = RESERVED_REGISTERS_BASE, //(+ 00 ) STDADR_PGM, //(+ 01 ) R STDADR_DIR, //(+ 02 ) R STDADR_BLOCK, //(+ 03 ) R STDADR_BLOCKSAHEAD, //(+ 04 ) R STDADR_ELAPSEDTIME, //(+ 05 ) R STDADR_EXECSTATUS, //(+ 06 ) R STDADR_POSTYPE, //(+ 07 ) R STDADR_PLANE, //(+ 08 ) R STDADR_POSMODE, //(+ 09 ) R STDADR_FEEDTYPE, //(+ 10 ) R STDADR_UNITS, //(+ 11 ) R STDADR_RADIUSCOMP, //(+ 12 ) R STDADR_LENGTHCOMP, //(+ 13 ) R STDADR_ORIGIN, //(+ 14 ) R STDADR_SHIFT, //(+ 15 ) R STDADR_SURFSPEED, //(+ 16 ) R STDADR_ACCURACY, //(+ 17 ) R STDADR_SPINDLE, //(+ 18 ) R STDADR_OPSTOP, //(+ 19 ) R STDADR_SPINDLE_MODE, //(+ 20 ) R STDADR_COOLER1, //(+ 21 ) R STDADR_COOLER2, //(+ 22 ) R STDADR_ACTIVETOOL, //(+ 23 ) R STDADR_ACTIVETOOLDEF, //(+ 24 ) R STDADR_LASTMCODE, //(+ 25 ) R STDADR_LASTS, //(+ 26 ) R STDADR_LASTF, //(+ 27 ) R STDADR_POTF, //(+ 28 ) R STDADR_POTS, //(+ 29 ) R STDADR_POSR_A, //(+ 30 ) R STDADR_POSR_B, //(+ 31 ) R STDADR_POSR_C, //(+ 32 ) R STDADR_POSR_U, //(+ 33 ) R STDADR_POSR_V, //(+ 34 ) R STDADR_POSR_W, //(+ 35 ) R STDADR_POSR_X, //(+ 36 ) R STDADR_POSR_Y, //(+ 37 ) R STDADR_POSR_Z, //(+ 38 ) R STDADR_POST_A, //(+ 39 ) R STDADR_POST_B, //(+ 40 ) R STDADR_POST_C, //(+ 41 ) R STDADR_POST_U, //(+ 42 ) R STDADR_POST_V, //(+ 43 ) R 293 R Manual do PLC STDADR_POST_W, STDADR_POST_X, STDADR_POST_Y, STDADR_POST_Z, V1.00 //(+ 44 ) R //(+ 45 ) //(+ 46 ) //(+ 47 ) R R R STDADR_POSF_A, STDADR_POSF_B, STDADR_POSF_C, STDADR_POSF_U, STDADR_POSF_V, STDADR_POSF_W, STDADR_POSF_X, STDADR_POSF_Y, STDADR_POSF_Z, //(+ 48 ) //(+ 49 ) //(+ 50 ) //(+ 51 ) //(+ 52 ) //(+ 53 ) //(+ 54 ) //(+ 55 ) //(+ 56 ) R R R R R R R R R STDADR_POS_A, STDADR_POS_B, STDADR_POS_C, STDADR_POS_U, STDADR_POS_V, STDADR_POS_W, STDADR_POS_X, STDADR_POS_Y, STDADR_POS_Z, //(+ 57 ) //(+ 58 ) //(+ 59 ) //(+ 60 ) //(+ 61 ) //(+ 62 ) //(+ 63 ) //(+ 64 ) //(+ 65 ) R R R R R R R R R STDADR_TOOLRADIUS, STDADR_TOOLENGTH, STDADR_TOOLENGTH2, STDADR_TOOLSIDE, STDADR_FEEDRATE, STDADR_SPINDLESPEED, STDADR_USERLEVEL, //(+ 66 ) //(+ 67 ) //(+ 68 ) //(+ 69 ) //(+ 70 ) //(+ 71 ) //(+ 72 ) R R R R R R R //(+ 73 ) //(+ 74 ) //(+ 75 ) //(+ 76 ) //(+ 77 ) //(+ 78 ) //(+ 79 ) W W R R W W W // data base : banco de dados STDADR_PUT_DATA, STDADR_GET_DATA, STDADR_GET_INDEX, STDADR_PUT_INDEX, STDADR_CLEAR_ALL_DATA, STDADR_SAVE_DATA, STDADR_LOAD_DATA, 294 Manual do PLC // tool data STDADR_TOOL_DATA, STDADR_TOOL_F, STDADR_TOOL_L, STDADR_TOOL_LX, STDADR_TOOL_LZ, STDADR_TOOL_R, STDADR_TOOL_LC, STDADR_TOOL_DL, STDADR_TOOL_DLX, STDADR_TOOL_DLZ, STDADR_TOOL_DR, STDADR_TOOL_TR, STDADR_TOOL_AP, STDADR_TOOL_AC, STDADR_TOOL_DI, STDADR_TOOL_W, STDADR_TOOL_N, STDADR_TOOL_TS, STDADR_TOOL_COR, STDADR_TOOL_UNIT, 295 V1.00 //(+ 80 ) //(+ 81 ) //(+ 82 ) //(+ 83 ) //(+ 84 ) //(+ 85 ) //(+ 86 ) //(+ 87 ) //(+ 88 ) //(+ 89 ) //(+ 90 ) //(+ 91 ) //(+ 92 ) //(+ 93 ) //(+ 94 ) //(+ 95 ) //(+ 96 ) //(+ 97 ) //(+ 98 ) //(+ 99 ) W W W W W W W W W W W W W W W W W W W W STDADR_POSTR_A, STDADR_POSTR_B, STDADR_POSTR_C, STDADR_POSTR_U, STDADR_POSTR_V, STDADR_POSTR_W, STDADR_POSTR_X, STDADR_POSTR_Y, STDADR_POSTR_Z, //(+ 100 ) //(+ 101 ) //(+ 102 ) //(+ 103 ) //(+ 104 ) //(+ 105 ) //(+ 106 ) //(+ 107 ) //(+ 108 ) R R R R R R R R R STDADR_POSTT_A, STDADR_POSTT_B, STDADR_POSTT_C, STDADR_POSTT_U, STDADR_POSTT_V, STDADR_POSTT_W, STDADR_POSTT_X, STDADR_POSTT_Y, STDADR_POSTT_Z, //(+ 109 ) //(+ 110 ) //(+ 111 ) //(+ 112 ) //(+ 113 ) //(+ 114 ) //(+ 115 ) //(+ 116 ) //(+ 117 ) R R R R R R R R R STDADR_POSTF_A, STDADR_POSTF_B, STDADR_POSTF_C, STDADR_POSTF_U, STDADR_POSTF_V, STDADR_POSTF_W, STDADR_POSTF_X, STDADR_POSTF_Y, //(+ 118 ) //(+ 119 ) //(+ 120 ) //(+ 121 ) //(+ 122 ) //(+ 123 ) //(+ 124 ) //(+ 125 ) R R R R R R R R Manual do PLC STDADR_POSTF_Z, V1.00 //(+ 126 ) R 296 Manual do PLC // tracer STDADR_TRACER_RESET, STDADR_TRACER_ENABLE, STDADR_TRACER_DISABLE, //(+ 127 ) W //(+ 128 ) W //(+ 129 ) W // Axes limits REGISTERS STDADR_LIMIT_X_LIMIT, STDADR_LIMIT_X_STATUS, STDADR_LIMIT_X_POS, STDADR_LIMIT_X_NEG, //(+ 130 ) W //(+ 131 ) R //(+ 132 ) W //(+ 133 ) W STDADR_LIMIT_Y_LIMIT, STDADR_LIMIT_Y_STATUS, STDADR_LIMIT_Y_POS, STDADR_LIMIT_Y_NEG, //(+ 134 ) W //(+ 135 ) R //(+ 136 ) W //(+ 137 ) W STDADR_LIMIT_Z_LIMIT, STDADR_LIMIT_Z_STATUS, STDADR_LIMIT_Z_POS, STDADR_LIMIT_Z_NEG, //(+ 138 ) W //(+ 139 ) R //(+ 140 ) W //(+ 141 ) W STDADR_LIMIT_U_LIMIT, STDADR_LIMIT_U_STATUS, STDADR_LIMIT_U_POS, STDADR_LIMIT_U_NEG, //(+ 142 ) W //(+ 143 ) R //(+ 144 ) W //(+ 145 ) W STDADR_LIMIT_V_LIMIT, STDADR_LIMIT_V_STATUS, STDADR_LIMIT_V_POS, STDADR_LIMIT_V_NEG, //(+ 146 ) W //(+ 147 ) R //(+ 148 ) W //(+ 149 ) W STDADR_LIMIT_W_LIMIT, STDADR_LIMIT_W_STATUS, STDADR_LIMIT_W_POS, STDADR_LIMIT_W_NEG, //(+ 150 ) W //(+ 151 ) R //(+ 152 ) W //(+ 153 ) W STDADR_LIMIT_A_LIMIT, STDADR_LIMIT_A_STATUS, STDADR_LIMIT_A_POS, STDADR_LIMIT_A_NEG, 297 V1.00 //(+ 154 ) //(+ 155 ) //(+ 156 ) //(+ 157 ) W R W W STDADR_LIMIT_B_LIMIT, STDADR_LIMIT_B_STATUS, STDADR_LIMIT_B_POS, STDADR_LIMIT_B_NEG, //(+ 158 ) W //(+ 159 ) R //(+ 160 ) W //(+ 161 ) W STDADR_LIMIT_C_LIMIT, STDADR_LIMIT_C_STATUS, STDADR_LIMIT_C_POS, //(+ 162 ) W //(+ 163 ) R //(+ 164 ) W Manual do PLC STDADR_LIMIT_C_NEG, V1.00 //(+ 165 ) W 298 Manual do PLC V1.00 // G99 , G98 and G80 STDADR_CYC_RETURN_TYPE, //(+ 166 ) R STDADR_OVER_METAL, //(+ 167 ) W // SCOPE DATA STDADR_SCOPE_DATA_AXIS_1, STDADR_SCOPE_DATA_AXIS_2, STDADR_SCOPE_DATA_CMD, //(+ 168 ) W //(+ 169 ) W //(+ 170 ) W // Extended TOOL DATA STDADR_TOOL_N_WARN, STDADR_TOOL_N_CORR, STDADR_TOOL_XL_CORR, STDADR_TOOL_ZR_CORR, //(+ 171) //(+ 172) //(+ 173) //(+ 174) //User Tables Read/Write Access STDADR_USER_TABLE_SET_ID, STDADR_USER_TABLE_SET_LIN, STDADR_USER_TABLE_SET_COL, //(+ 180) W //(+ 181) W //(+ 182) W //User Tables Read Access STDADR_USER_TABLE_GET_DATA, STDADR_USER_TABLE_GET_LINS, STDADR_USER_TABLE_GET_COLS, //(+ 183) R //(+ 184) R //(+ 185) R // Table X,FX STDADR_USER_TABLE_SET_XDATA, STDADR_USER_TABLE_GET_LIN_XDATA STDADR_USER_TABLE_SET_COL_FX, STDADR_USER_TABLE_GET_FX , //(+ 186) W //(+ 187) R //(+ 188) W //(+ 189) R // Tool Changer STDADR_TOOL_CHANGER_POSITION STDADR_TOOL_CHANGER_ASK_TOOL STDADR_TOOL_CHANGER_SET_TOOL STDADR_TOOL_CHANGER_TOOL STDADR_TOOL_CHANGER_ASK_POSITION STDADR_TOOL_CHANGER_ASK_FREE_POSITION //(+ 190) W //(+ 191) R //(+ 192) W //(+ 193) W //(+ 194) R //(+ 195) R // Inicialização dos objetos de tela STDADR_MAIN_INITIALIZATION //(+ 200) // Velocidade Atual STDADR_ACTUAL_FEEDRATE //(+ 205 ) R // Ângulo da Parada Indexada STDADR_SPINDLE_INDEX_STOP_ANGLE //(+ 206 ) // Velocidade Teórica S ( considerando todos os fatores ) 299 W W W W R R Manual do PLC STDADR_SPINDLE_THEO_SPEED V1.00 //(+ 207) 300 R Manual do PLC // Preset Absoluto dos Eixos : G54 STDADR_PRESET_A STDADR_PRESET_B STDADR_PRESET_C STDADR_PRESET_U STDADR_PRESET_V STDADR_PRESET_W STDADR_PRESET_X STDADR_PRESET_Y, STDADR_PRESET_Z, STDADR_PRESET_Z, STDADR_SELECT_ORIGIN, //(+ 210 ) //(+ 211 ) //(+ 212 ) //(+ 213 ) //(+ 214 ) //(+ 215 ) //(+ 216 ) //(+ 217 ) //(+ 218 ) //(+ 218 ) //(+ 219 ) // Last Stop Position STDADR_POS_STOP_X, STDADR_POS_STOP_Y, STDADR_POS_STOP_Z, //(+ 220 ) R //(+ 221) R //(+ 222 ) R // Graphic Cutting Status STDADR_GRAPHIC_CUTTING_STATUS, //(+ 223 ) W // Retomada de ciclo em multiplas passadas STDADR_BREAK_POINT_N_TIMES_CONDITION, //(+ 224 ) W // Retomada de ciclo com função M STDADR_BREAK_POINT_M_FUNCITION, //(+ 225 ) W // Define Avanço Programado STDADR_SET_FEEDRATE, //(+ 226 ) W // Bloqueio de Avanço Programado ( != 0) STDADR_SET_LOCK, //(+ 227 ) W // Status do Cursor de Execução STDADR_EXE_CURSOR_STATUS //(+ 228 ) R // RTC Ano STDADR_RTC_YEAR, // RTC Mês STDADR_RTC_MONTH, // RTC Dia STDADR_RTC_DAY, // RTC Hora STDADR_RTC_HOUR, // RTC Minuto STDADR_RTC_MINUTE, // RTC Segundo STDADR_RTC_SECOND, 301 V1.00 W W W W W W W W W W W //(+ 230 ) R //(+ 231 ) R //(+ 232 ) R //(+ 233 ) R //(+ 234 ) R //(+ 235 ) R Manual do PLC V1.00 // RTC YEAR_MONTH_DAY_SINCE_2000 // ( Y – 2000 ) * 2**9 + M * 2**5 + D // EX: D=27 M =10 Y = 2009 // ( 2009 – 2000 ) * 2**9 = 4608 // 10 * 2**5 = 320 // 4608 + 320 + 27 = 4955 STDADR_RTC_YEAR_MONTH_DAYS_SINCE_2000, //(+ 236 ) R // RTC HOUR_MINUTE_SECOND_OF_CURRENT_YEAR // H * 2**12 + M * 2**6 + S // EX: 13:27:45 // 13 * 2 ** 12 = 53248 // 27 * 2**6 = 1728 // 53248 + 1728 + 45 = 55021 STDADR_RTC_HOUR_MINUTE_SECOND_OF_CURRENT_YEAR, //(+ 237 ) R //User Tables Write Access STDADR_USER_TABLE_WR_DATA, STDADR_USER_TABLE_WR_FILE,, //(+ 240 ) W //(+ 241 ) W // Current Block ID STDADR_CURRENT_BLOCK_ID, //(+ 245 ) W // Tool Offsets ONLY for Graphics STDADR_GRAF_TOOL_OFFSET_X , STDADR_GRAF_TOOL_OFFSET_Y , //(+ 246 ) W //(+ 247 ) W // Punch MODE STDADR_SET_PUNCH_MODE , STDADR_SET_PUNCH_DIST , //(+ 248 ) W //(+ 249 ) W // Reverse Execution Status STDADR_REVERSE_EXECUTION_STATUS , //(+ 250 ) R // Generic PLC Serial Comunication Protocol STDADR_PLC_SERIAL_GEN_PROTOCOL_SERVICE , //(+ 255 ) W // GoTo M Table GoTo Line STDADR_ELEMENTS_STORED_ON_M_TABLE , STDADR_CURRENT_MARK_INDEX_FROM_M_TABLE STDADR_GOTO_MARK_INDEX_M_TABLE , STDADR_GOTO_LAST_MARK_LINE_M_TABLE , //(+ 260 ) //(+ 261 ) //(+ 262 ) //(+ 263 ) // Reset Execution Time STDADR_RESET_EXEC_TIMER , //(+ 265 ) W R R W W // Feed Rate PGM Override 302 Manual do PLC STDADR_FEED_RATE_OVERRIDE 303 V1.00 , //(+ 266 ) W Manual do PLC // Distance to the next corner STDADR_DISTANCE_TO_VERTICE // Receipt : BACKUP / RESTORE PLC DATA STDADR_REC_CMD STDADR_REC_CMD_STATUS STDADR_REC_AREA STDADR_REC_SIZE STDADR_REC_BLOCK STDADR_REC_ID STDADR_REC_BLK_ID STDADR_REC_PLC_ADR STDADR_REC_REGISTER STDADR_REC_BLOCK_CNT // CutMonitor STDADR_CUT_GRAPH_OFFSET_X STDADR_CUT_GRAPH_OFFSET_Y STDADR_CUT_GRAPH_Rotation STDADR_CUT_GRAPH_Board_Lenght_X STDADR_CUT_GRAPH_Board_Lenght_Y V1.00 , //(+ 267 ) R , //(+ 270 ) , //(+ 271 ) R , //(+ 272 ) , //(+ 273 ) , //(+ 274 ) , //(+ 275 ) , //(+ 276 ) , //(+ 277 ) , //(+ 278 ) , //(+ 279 ) W W W W W W W W , //(+ 280 ) , //(+ 281 ) , //(+ 282 ) , //(+ 283 ) , //(+ 284 ) W W W W W 304 W Manual do PLC V1.00 45 - Novas Instruções NEWINST: #db ' ' #db 'NOVAS INSTRUCOES' ;; TABELAS COM FLOATS #DEFINE KFLOAT 1.23456F #DEFINE KFLOAT1 27.2727F ;; DEFINE CONSTANTE FLOAT, NÚMERO PRECISA TERMINAR COM A LETRA “F” ;; DEFINE CONSTANTE FLOAT, NÚMERO PRECISA TERMINAR COM A LETRA “F” TABELAF: #DF KFLOAT, KFLOAT1, 1.23456F , 27.2222 ;; TABELA ACEITA CONSTANTES FLOAT ( DEFINES) E NÚMEROS SEGUIDOS OU NÃO DA LETRA “F” ;; INSTRUÇÕES NOVAS PROTEO A MW 1000 ;; OPERAÇÃO LÓGICA AND PARA WORD AN MW 1000 ;; OPERAÇÃO LÓGICA AND NEGADO PARA WORD O MW 1000 ;; OPERAÇÃO LÓGICA OR PARA WORD ON MW 1000 ;; OPERAÇÃO LÓGICA OR NEGADO PARA WORD XO MW 1000 ;; OPERAÇÃO LÓGICA XOR PARA WORD XON MW 1000 ;; OPERAÇÃO LÓGICA XOR NEGADO PARA WORD LFF KF 1.234567 ;; CARREGA ACUMULADOR COM CONSTANTE DE PONTO FLUTUANTE ( CONSTANTE - KF ) LFF MF 20 ;; CARREGA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE CORRESPONDENTE ( MEMÓRIA - MF) LFF IMF 20 ;; CARREGA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE CORRESPONDENTE ( MEMÓRIA INDEXADA - IMF) LFF MF 10027 ;; CARREGA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE CORRESPONDENTE ( #AREA VARIÁVEIS RESERVADAS DO CNC) LFF MF 20027 ;; CARREGA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE CORRESPONDENTE ( #AREA H - MEMÓRIAS DE PONTO FLUTUANTE) LFF MF 30027 ;; CARREGA ACUMULADOR COM PONTO FLUTUANTE CORRESPONDENTE ( PARÂMETROS DE MÁQUINA DO CNC) =FF MF 0272 ;; SALVA ACUMULADOR PONTO FLUTUANTE NA MEMÓRIA CORRESPONDENTE ( MEMÓRIA - MF) =FF IMF 0272 ;; SALVA ACUMULADOR PONTO FLUTUANTE NA MEMÓRIA CORRESPONDENTE ( MEMÓRIA INDEXADA - IMF) =FF MF 10272 ;; SALVA ACUMULADOR PONTO FLUTUANTE NA MEMÓRIA CORRESPONDENTE ( #AREA VARIÁVEIS RESERVADAS DO CNC) =FF MF 20272 ;; SALVA ACUMULADOR PONTO FLUTUANTE NA MEMÓRIA CORRESPONDENTE ( #AREA H - MEMÓRIAS DE PONTO FLUTUANTE) =FF MF 30272 ;; SALVA ACUMULADOR PONTO FLUTUANTE NA MEMÓRIA CORRESPONDENTE ( PARÂMETROS DE MÁQUINA DO CNC) ==F MF 0272 ;; FLAG NZ => SALVA ACUMULADOR PONTO FLUTUANTE NA MEMÓRIA CORRESPONDENTE ( MEMÓRIA - MF) ==F IMF 0272 ;; FLAG NZ => SALVA ACUMULADOR PONTO FLUTUANTE NA MEMÓRIA CORRESPONDENTE ( MEMÓRIA INDEXADA - MF) ==F MF 10272 ;; FLAG NZ => SALVA ACUMULADOR PONTO FLUTUANTE NA MEMÓRIA CORRESPONDENTE ( #AREA VARIÁVEIS RESERVADAS DO CNC) ==F MF 20272 ;; FLAG NZ => SALVA ACUMULADOR PONTO FLUTUANTE NA MEMÓRIA CORRESPONDENTE ( #AREA H - MEMÓRIAS DE PONTO FLUTUANTE) ==F MF 30272 ;; FLAG NZ => SALVA ACUMULADOR PONTO FLUTUANTE NA MEMÓRIA CORRESPONDENTE ( PARÂMETROS DE MÁQUINA DO CNC) LZF MF 1000 ;; COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE IGUAL LZF IMF 1000 ;; COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE IGUAL (MEMÓRIA INDEXADA - IMF) LZF KF 1.2345 ;; COMPARA ACUMULADOR COM CONSTANTE DE PONTO FLUTUANTE E VERIFICA SE IGUAL LNZF MF 1000 ;; COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE DIFERENTE LNZF IMF 1000 ;; COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE DIFERENTE (MEMÓRIA INDEXADA - IMF) LNZF KF 1.2345 ;; COMPARA ACUMULADOR COM CONSTANTE DE PONTO FLUTUANTE E VERIFICA SE DIFERENTE LPF MF MAIOR OU IGUAL 305 1000 ;; COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE Manual do PLC V1.00 LPF IMF 1000 ;; COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE MAIOR OU IGUAL (MEMÓRIA INDEXADA - IMF) LPF KF 1.2345 ;; COMPARA ACUMULADOR COM CONSTANTE DE PONTO FLUTUANTE E VERIFICA SE MAIOR OU IGUAL LMF MF 1000 ;; COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE MENOR LMF IMF 1000 ;; COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE MENOR (MEMÓRIA INDEXADA - IMF) LMF KF 1.2345 ;; COMPARA ACUMULADOR COM CONSTANTE DE PONTO FLUTUANTE E VERIFICA SE MENOR AZF MF 1000 ;; AND COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE IGUAL AZF IMF 1000 ;; AND COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E COMPARA SE IGUAL (MEMÓRIA INDEXADA - IMF) AZF KF 1.2345 ;; AND COMPARA ACUMULADOR COM CONSTANTE DE PONTO FLUTUANTE E COMPARA SE IGUAL ANZF MF 1000 ;; AND COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE DIFERENTE ANZF IMF 1000 ;; AND COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE DIFERENTE (MEMÓRIA INDEXADA - IMF) ANZF KF 1.2345 ;; AND COMPARA ACUMULADOR COM CONSTANTE DE PONTO FLUTUANTE E VERIFICA SE DIFERENTE APF MF 1000 ;; AND COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE MAIOR OU IGUAL APF IMF 1000 ;; AND COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE MAIOR OU IGUAL (MEMÓRIA INDEXADA - IMF) APF KF 1.2345 ;; AND COMPARA ACUMULADOR COM CONSTANTE DE PONTO FLUTUANTE E VERIFICA SE MAIOR OU IGUAL AMF MF 1000 ;; AND COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE MENOR AMF IMF 1000 ;; AND COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE MENOR (MEMÓRIA INDEXADA - IMF) AMF KF 1.2345 ;; AND COMPARA ACUMULADOR COM CONSTANTE DE PONTO FLUTUANTE E VERIFICA SE MENOR OZF MF 1000 ;; OR COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE IGUAL OZF IMF 1000 ;; OR COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE IGUAL (MEMÓRIA INDEXADA - IMF) OZF KF 1.2345 ;; OR COMPARA ACUMULADOR COM CONSTANTE DE PONTO FLUTUANTE E VERIFICA SE IGUAL ONZF MF 1000 ;; OR COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE DIFERENTE ONZF IMF 1000 ;; OR COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE DIFERENTE (MEMÓRIA INDEXADA - IMF) ONZF KF 1.2345 ;; OR COMPARA ACUMULADOR COM CONSTANTE DE PONTO FLUTUANTE E VERIFICA SE DIFERENTE OPF MF 1000 ;; OR COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE MAIOR OU IGUAL OPF IMF 1000 ;; OR COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE MAIOR OU IGUAL (MEMÓRIA INDEXADA - IMF) OPF KF 1.2345 ;; OR COMPARA ACUMULADOR COM CONSTANTE DE PONTO FLUTUANTE E VERIFICA SE MAIOR OU IGUAL OMF MF 1000 ;; OR COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE MENOR OMF IMF 1000 ;; OR COMPARA ACUMULADOR COM MEMÓRIA DE PONTO FLUTUANTE E VERIFICA SE MENOR (MEMÓRIA INDEXADA - IMF) OMF KF 1.2345 ;; OR COMPARA ACUMULADOR COM CONSTANTE DE PONTO FLUTUANTE E VERIFICA SE MENOR INCF IZF INZF DECF DZF DNZF FRND FFLUSH ;; ;; ;; ;; ;; ;; ;; INCREMENTA ACUMULADOR INCREMENTA ACUMULADOR CASO IGUAL ( FLAG Z ) INCREMENTA ACUMULADOR CASO DIFERENTE ( FLAG NZ ) DECREMENTA ACUMULADOR DECREMENTA ACUMULADOR CASO IGUAL ( FLAG Z ) DECREMENTA ACUMULADOR CASO DIFERENTE ( FLAG NZ ) ARREDONDA ACUMULADOR PARA INTEIRO MAIS PRÓXIMO ;; CLEAR STACK PONTO FLUTUANTE 306 Manual do PLC V1.00 FPUSH ;; DUPLICA ULTIMO RESULTADO NO STACK - VALOR SOBE NA PILHA FPOP ;; DELETA ULTIMO RESULTADO NO STACK - VALOR DESCE NA PILHA FADD ;; SOMA ACUMULADOR COM VALOR IMEDIATAMENTE ACIMA NA PILHA FSUB ;; SUBTRAI ACUMULADOR COM VALOR IMEDIATAMENTE ACIMA NA PILHA FMULT ;; MULTIPLICA ACUMULADOR COM VALOR IMEDIATAMENTE ACIMA NA PILHA FDIV ;; DIVIDE ACUMULADOR COM VALOR IMEDIATAMENTE ACIMA NA PILHA FABS ;; MODULO ACUMULADOR FNEG ;; NEGA ACUMULADOR FSQRT ;; RAIZ QUADRADA DO ACUMULADOR FDIST ;; RAIZ QUADRADA DA SOMA DOS QUADRADOS DO ACUMULADOR E DO VALOR IMED.ACIMA NA PILHA FSIN ;; SENO DO ACUMULADOR FCOS ;; COSSENO DO ACUMULADOR FTAN ;; TANGENTE DO ACUMULADOR FATAN ;; ARCO TANGENTE DO ACUMULADOR FPOW ;; POTENCIA: ACUMULADOR ELEVADO AO VALOR IMEDIATAMENTE ACIMA NA PILHA FINV ;; INVERSO DO ACUMULADOR ( 1/X ) FINT ;; TRUNCA PARTE FRACIONÁRIA DO ACUMULADOR FLOAT FFRAC ;; RETIRA PARTE INTEIRA DO ACUMULADOR FLOAT FPI ;; NUMERO PI FSWAP ;; TROCA ACUMULADOR COM VALOR IMEDIATAMENTE ACIMA NA PILHA FREAD ;; LE DA VARIÁVEL INDEXADA ( DEFINIR TIPO E INDICE, DA MESMA FORMA QUE INSTRUÇÃO TELA) FWRITE ;; ESCREVE NA VARIÁVEL INDEXADA (( DEFINIR TIPO E INDICE, DA MESMA FORMA QUE INSTRUÇÃO TELA) RZ RNZ IZ IZ INZ INZ DZ DZ DNZ DNZ A O XO 307 MB MW MB MW MB MW MB MW KW KW KW 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ;; RETORNA CASO FLAG ZERO ;; RETORNA CASO FLAG NÃO ZERO ;; INCREMENTA CASO FLAG ZERO ;; INCREMENTA CASO FLAG ZERO ;; INCREMENTA CASO FLAG NÃO ZERO ;; INCREMENTA CASO FLAG NÃO ZERO ;; INCREMENTA CASO FLAG ZERO ;; INCREMENTA CASO FLAG ZERO ;; INCREMENTA CASO FLAG NÃO ZERO ;; INCREMENTA CASO FLAG NÃO ZERO ;; AND ACC COM CONSTANTE WORD ;; OR ACC COM CONSTANTE WORD ;; XOR ACC COM CONSTANTE WORD Manual do PLC V1.00 46 - Alarmes e Erros CNC Proteo Códigos de Erro Erro ( 0 ) Proteo: NO__ERROR Texto: "Código de erro inválido" "Invalid Error Code" Erro ( 1 ) Proteo: ERROR_BP_WAS_UNABLE_TO_OPEN_INPUT_FILE Texto: "Não foi possível abrir o arquivo de entrada" "Unable to open source file" Erro ( 2 ) Proteo: ERROR_BP_PARSER_JAMED Texto: "Interpretador não conseguiu processar linha de comando" "Parser was unable to process line" Erro ( 3 ) Proteo: ERROR_BP_ALREADY_IN_PAUSE_STATE Texto: "Interpretador já estava em modo pausa" "Interpreter is already in pause state" Erro ( 4 ) Proteo: ERROR_BP_IN_RUN_STATE Texto: "Interpretador está executando um programa" "Interpreter is in RUN state" Erro ( 5 ) Proteo: ERROR_BP_EXECUTION_TERMINATE_PREMATURELLY Texto: "Execução terminou prematuramente" "Execution terminated prematurely" Erro ( 6 ) Proteo: ERROR_BP_UNEXPECTED_EVENT Texto: "Interpretador recebeu um evento inesperado" "Interpreter received an unexpected event signal" Erro ( 7 ) Proteo: ERROR_EXE_ALREADY_IN_PAUSE_STATE Texto: "Gerenciador de Execução já estava em modo pausa" "Execution Manager is already in pause state" 308 Manual do PLC V1.00 Erro ( 8 ) Proteo: ERROR_EXE_IN_RUN_STATE Texto: "Gerenciador de Execução está executando um programa" "Execution Manager is in RUN state" Erro ( 9 ) Proteo: ERROR_EXE_UNEXPECTED_EVENT Texto: "Gerenciador de Execução recebeu um evento inesperado" "Execution Manager received an unexpected event signal" Erro ( 10 ) Proteo: ERROR_LBL_IS_NOT_UNIQUE Texto: "Label não é único" "Label is not unique" Erro ( 11 ) Proteo: ERROR_LBL_DOES_NOT_EXIST Texto: "Label não existe" "Label doesn't exist" Erro ( 12 ) Proteo: ERROR_PGM_DOES_NOT_EXIST Texto: "Programa não existe" "Program doesn't exist" Erro ( 13 ) Proteo: ERROR_SECOND_FLOW_COMMAND_NOT_ALLOWED Texto: "Segunda busca não pode ser realizada" "Second flow command not allowed" Erro ( 14 ) Proteo: ERROR_AXIS_COORDINATE_DUPLICATION Texto: "Coordenada de eixo duplicada" "Axis coodinate duplication" Erro ( 15 ) Proteo: ERROR_INCORRECT_CYCLE_PARAMETER Texto: "Parâmetro de ciclo incorreto" "Incorrect cycle parameter" Erro ( 16 ) Proteo: ERROR_ILLEGAL_LABEL_NUMBER Texto: "Número de label ilegal" "Illegal label number" 309 Manual do PLC V1.00 Erro ( 17 ) Proteo: ERROR_ILLEGAL_REPETITION_NUMBER Texto: "Número de repetições ilegal" "Illegal repetition number" Erro ( 18 ) Proteo: ERROR_ILLEGAL_INPUT_BYTE_OFFSET Texto: "Offset de byte de entrada ilegal" "Illegal input byte offset" Erro ( 19 ) Proteo: ERROR_ILLEGAL_INPUT_BIT_OFFSET Texto: "Offset de bit de entrada ilegal" "Illegal input bit offset" Erro ( 20 ) Proteo: ERROR_ILLEGAL_INPUT_BYTE_ADDRESS Texto: "Endereço de byte entrada ilegal" "Illegal input address" Erro ( 21 ) Proteo: ERROR_ILLEGAL_OUTPUT_BYTE_OFFSET Texto: "Offset de byte de saída ilegal" "Illegal output byte offset" Erro ( 22 ) Proteo: ERROR_ILLEGAL_OUTPUT_BIT_OFFSET Texto: "Offset de bit de saída ilegal" "Illegal output bit offset" Erro ( 23 ) Proteo: ERROR_ILLEGAL_OUTPUT_BYTE_ADDRESS Texto: "Endereço de byte saída ilegal" "Illegal output address" Erro ( 24 ) Proteo: ERROR_ILLEGAL_PARAMETER_ADDRESS Texto: "Endereço de parâmtro inválido" "Illegal parameter address" Erro ( 25 ) Proteo: ERROR_ILLEGAL_PGM_NUMBER Texto: "Número de programa ilegal" "Illegal program number" 310 Manual do PLC Erro ( 26 ) Proteo: ERROR_ILLEGAL_OPERAND Texto: "Operando ilegal" "Illegal operand" Erro ( 27 ) Proteo: ERROR_ILLEGAL_PLC_PARAMETER_ADDRESS Texto: "Endereço de memória de PLC ilegal" "Illegal PLC memory address" Erro ( 28 ) Proteo: ERROR_ILLEGAL_PLC_PARAMETER_OFFSET Texto: "Offset de memória de PLC ilegal" "Illegal PLC memory offset" Erro ( 29 ) Proteo: ERROR_ILLEGAL_TDF_DATA_ADDRESS Texto: "Endereço TDF ilegal" "Illegal TDF data address" Erro ( 30 ) Proteo: ERROR_ILLEGAL_TDF_DATA_OFFSET Texto: "Offset TDF ilegal" "Illegal TDF data offset" Erro ( 31 ) Proteo: ERROR_ILLEGAL_REGISTER_ADDRESS Texto: "Endereço de registro ilegal" "Illegal Register address" Erro ( 32 ) Proteo: ERROR_ILLEGAL_REGISTER_OFFSET Texto: "Número de registro ilegal" "Illegal Register offset" Erro ( 33 ) Proteo: ERROR_DIVISION_BY_ZERO Texto: "Divisão por zero" "Division by zero" Erro ( 34 ) Proteo: ERROR_ILLEGAL_INTEGER_DIVISION Texto: "Divisão Ilegal de inteiros" "Illegal integer division" 311 V1.00 Manual do PLC V1.00 Erro ( 35 ) Proteo: ERROR_OPERAND_SHOULD_BE_POSITIVE Texto: "Operando deve ser positivo" "Operand should be positive" Erro ( 36 ) Proteo: ERROR_ILLEGAL_DATA_VALUE Texto: "Valor ilegal" "Illegal Data Value" Erro ( 37 ) Proteo: ERROR_ILLEGAL_FUNCTION_TYPE Texto: "Tipo de função ilegal" "Illegal function type" Erro ( 38 ) Proteo: ERROR_TCP_FILE_NOT_FOUND Texto: "TCP - Arquivo não encontrado" "TCP - File not found" Erro ( 39 ) Proteo: ERROR_TCP_LOST_CONNECTION Texto: "TCP - Aguardando nova conexão" "TCP - Waiting for a new connection" Erro ( 40 ) Proteo: ERROR_OPEN_RASC Texto: "Não conseguiu abrir arquivo temporário" "Could not open temporary file" Erro ( 41 ) Proteo: ERROR_OPEN_SOURCE Texto: "Não conseguiu abrir arquivo" "Could not open Source file" Erro ( 42 ) Proteo: ERROR_READ_SOURCE Texto: "Não conseguiu ler arquivo" "Could not read Source file" Erro ( 43 ) Proteo: ERROR_WRITE_RASC Texto: "Não conseguiu escrever arquivo temporário" "Could not write temporary file" 312 Manual do PLC Erro ( 44 ) Proteo: ERROR_WRITE_TO_FILE_IN_USE Texto: "Não conseguiu escrever no arquivo em uso" "Could not write to a file in use" Erro ( 45 ) Proteo: ERROR_FSEEK_SOURCE Texto: "Não conseguiu buscar posição no arquivo" "Could not fseek Source file" Erro ( 46 ) Proteo: ERROR_ERASE_SOURCE Texto: "Não conseguiu apagar arquivo" "Could not erase Source file" Erro ( 47 ) Proteo: ERROR_RENAME_RASC Texto: "Não conseguiu renomear arquivo temporário" "Could not rename temporary file" Erro ( 48 ) Proteo: ERROR_PLC_TIMEOUT Texto: "PLC muito longo ou em loop: Time-Out" "PLC loop condition detected: Time-Out" Erro ( 49 ) Proteo: ERROR_WHILE_NESTING_LIMIT Texto: "WHILE/END atingiu limite de encadeamento" "WHILE/END nesting limit" Erro ( 50 ) Proteo: ERROR_NEGATSTOP_X Texto: "Fim de Curso Negativo do Eixo X" "Negative Limit - Axis X" Erro ( 51 ) Proteo: ERROR_POSITSTOP_X Texto: "Fim de Curso Positivo do Eixo X" "Positive Limit - Axis X" Erro ( 52 ) Proteo: ERROR_NEGATSTOP_Y Texto: "Fim de Curso Negativo do Eixo Y" "Negative Limit - Axis Y" 313 V1.00 Manual do PLC V1.00 Erro ( 53 ) Proteo: ERROR_POSITSTOP_Y Texto: "Fim de Curso Positivo do Eixo Y" "Positive Limit - Axis Y" Erro ( 54 ) Proteo: ERROR_NEGATSTOP_Z Texto: "Fim de Curso Negativo do Eixo Z" "Negative Limit - Axis Z" Erro ( 55 ) Proteo: ERROR_POSITSTOP_Z Texto: "Fim de Curso Positivo do Eixo Z" "Positive Limit - Axis Z" Erro ( 56 ) Proteo: ERROR_NEGATSTOP_AUX1 Texto: "Fim de Curso Negativo do Eixo Auxiliar 1" "Negative Limit - Auxiliary Axis 1" Erro ( 57 ) Proteo: ERROR_POSITSTOP_AUX1 Texto: "Fim de Curso Positivo do Eixo Auxiliar 1" "Positive Limit - Auxiliary Axis 1" Erro ( 58 ) Proteo: ERROR_NEGATSTOP_AUX2 Texto: "Fim de Curso Negativo do Eixo Auxiliar 2" "Negative Limit - Auxiliary Axis 2" Erro ( 59 ) Proteo: ERROR_POSITSTOP_AUX2 Texto: "Fim de Curso Positivo do Eixo Auxiliar 2" "Positive Limit - Auxiliary Axis 2" Erro ( 60 ) Proteo: ERROR_NEGATSTOP_AUX3 Texto: "Fim de Curso Negativo do Eixo Auxiliar 3" "Negative Limit - Auxiliary Axis 3" Erro ( 61 ) Proteo: ERROR_POSITSTOP_AUX3 Texto: "Fim de Curso Positivo do Eixo Auxiliar 3" "Positive Limit - Auxiliary Axis 3" 314 Manual do PLC Erro ( 62 ) Proteo: ERROR_NEGATSTOP_AUX4 Texto: "Fim de Curso Negativo do Eixo Auxiliar 4" "Negative Limit - Auxiliary Axis 4" Erro ( 63 ) Proteo: ERROR_POSITSTOP_AUX4 Texto: "Fim de Curso Positivo do Eixo Auxiliar 4" "Positive Limit - Auxiliary Axis 4" Erro ( 64 ) Proteo: ERROR_NEGATSTOP_AUX5 Texto: "Fim de Curso Negativo do Eixo Auxiliar 5" "Negative Limit - Auxiliary Axis 5" Erro ( 65 ) Proteo: ERROR_POSITSTOP_AUX5 Texto: "Fim de Curso Positivo do Eixo Auxiliar 5" "Positive Limit - Auxiliary Axis 5" Erro ( 66 ) Proteo: ERROR_POSITSTOP_1 Texto: "Fim de Curso Positivo do Eixo 1" "Positive Limit - Axis 1" Erro ( 67 ) Proteo: ERROR_POSITSTOP_2 Texto: "Fim de Curso Positivo do Eixo 2" "Positive Limit - Axis 2" Erro ( 68 ) Proteo: ERROR_POSITSTOP_3 Texto: "Fim de Curso Positivo do Eixo 3" "Positive Limit - Axis 3" Erro ( 69 ) Proteo: ERROR_POSITSTOP_4 Texto: "Fim de Curso Positivo do Eixo 4" "Positive Limit - Axis 4" Erro ( 70 ) Proteo: ERROR_POSITSTOP_5 Texto: "Fim de Curso Positivo do Eixo 5" "Positive Limit - Axis 5" 315 V1.00 Manual do PLC V1.00 Erro ( 71 ) Proteo: ERROR_POSITSTOP_6 Texto: "Fim de Curso Positivo do Eixo 6" "Positive Limit - Axis 6" Erro ( 72 ) Proteo: ERROR_POSITSTOP_7 Texto: "Fim de Curso Positivo do Eixo 7" "Positive Limit - Axis 7" Erro ( 73 ) Proteo: ERROR_POSITSTOP_8 Texto: "Fim de Curso Positivo do Eixo 8" "Positive Limit - Axis 8" Erro ( 74 ) Proteo: ERROR_NEGATSTOP_1 Texto: "Fim de Curso Negativo do Eixo 1" "Negative Limit - Axis 1" Erro ( 75 ) Proteo: ERROR_NEGATSTOP_2 Texto: "Fim de Curso Negativo do Eixo 2" "Negative Limit - Axis 2" Erro ( 76 ) Proteo: ERROR_NEGATSTOP_3 Texto: "Fim de Curso Negativo do Eixo 3" "Negative Limit - Axis 3" Erro ( 77 ) Proteo: ERROR_NEGATSTOP_4 Texto: "Fim de Curso Negativo do Eixo 4" "Negative Limit - Axis 4" Erro ( 78 ) Proteo: ERROR_NEGATSTOP_5 Texto: "Fim de Curso Negativo do Eixo 5" "Negative Limit - Axis 5" Erro ( 79 ) Proteo: ERROR_NEGATSTOP_6 Texto: "Fim de Curso Negativo do Eixo 6" "Negative Limit - Axis 6" 316 Manual do PLC V1.00 Erro ( 80 ) Proteo: ERROR_NEGATSTOP_7 Texto: "Fim de Curso Negativo do Eixo 7" "Negative Limit - Axis 7" Erro ( 81 ) Proteo: ERROR_NEGATSTOP_8 Texto: "Fim de Curso Negativo do Eixo 8" "Negative Limit - Axis 8" Erro ( 82 ) Proteo: ERROR_INVALID_AXIS Texto: "Eixo Inválido" "Invalid Axis" Erro ( 83 ) Proteo: ERROR_CANT_ADD_SEGMENT Texto: "Não conseguiu adicionar bloco" "Failled to add segment" Erro ( 84 ) Proteo: ERROR_TURNING_COMP_OFF Texto: "Erro ao desligar compensação de ferramenta" "Failled to turn off tool compensation" Erro ( 85 ) Proteo: ERROR_LINE_LINE_COMP Texto: "Erro na compensação de ferramenta (Linha/Linha)" "Tool compensation error (Line/Line)" Erro ( 86 ) Proteo: ERROR_CIRCLE_NULL_RADIUS Texto: "Erro na compensação de ferramenta (Circulo de raio zero)" "Tool compensation error (Circle with null radius)" Erro ( 87 ) Proteo: ERROR_TANGENT_APROACH Texto: "Erro na compensação de ferramenta (Aproximação tangencial)" "Tool compensation error (Tangent approach)" Erro ( 88 ) Proteo: ERROR_TANGENT_EXIT 317 Manual do PLC Texto: V1.00 "Erro na compensação de ferramenta (Saída tangencial)" "Tool compensation error (Tangent exit)" Erro ( 89 ) Proteo: ERROR_LINE_CIRCLE_COMP Texto: "Erro na compensação de ferramenta (Linha/Círculo)" "Tool compensation error (Line/Circle)" Erro ( 90 ) Proteo: ERROR_ROUND_INSERTION_NOT_POSSIBLE Texto: "Erro na compensação de ferramenta (Impossível inserir round)" "Tool compensation error (Can´t insert round)" Erro ( 91 ) Proteo: ERROR_CAN_COMM Texto: "Falha na Comunicação CAN" "CAN communication failled" Erro ( 92 ) Proteo: ERROR_CAN_NODE Texto: "Ocorreu Erro em um dispositivo CAN" "CAN node failled" Erro ( 93 ) Proteo: ERROR_LAG_AXIS1 Texto: "Erro de Acompanhamento no Eixo 1" "Lag Error - Axis 1" Erro ( 94 ) Proteo: ERROR_LAG_AXIS2 Texto: "Erro de Acompanhamento no Eixo 2" "Lag Error - Axis 2" Erro ( 95 ) Proteo: ERROR_LAG_AXIS3 Texto: "Erro de Acompanhamento no Eixo 3" "Lag Error - Axis 3" Erro ( 96 ) Proteo: ERROR_LAG_AXIS4 Texto: "Erro de Acompanhamento no Eixo 4" "Lag Error - Axis 4" Erro ( 97 ) 318 Manual do PLC Proteo: ERROR_LAG_AXIS5 Texto: "Erro de Acompanhamento no Eixo 5" "Lag Error - Axis 5" Erro ( 98 ) Proteo: ERROR_LAG_AXIS6 Texto: "Erro de Acompanhamento no Eixo 6" "Lag Error - Axis 6" Erro ( 99 ) Proteo: ERROR_LAG_AXIS7 Texto: "Erro de Acompanhamento no Eixo 7" "Lag Error - Axis 7" Erro ( 100 ) Proteo: ERROR_LAG_AXIS8 Texto: "Erro de Acompanhamento no Eixo 8" "Lag Error - Axis 8" Erro ( 101 ) Proteo: ERROR_PARAMETER_NOT_VALID Texto: "Erro de Sistema - Parâmetros Inválidos" "System Error - Invalid Parameters" Erro ( 102 ) Proteo: ERROR_PLAN_LINKED_SEGMENT Texto: "Erro no planejamento do bloco (1)" "Block Planning Error (1)" Erro ( 103 ) Proteo: ERROR_PLAN_MAX_INC Texto: "Erro no planejamento do bloco (2)" "Block Planning Error (2)" Erro ( 104 ) Proteo: ERROR_PLAN_NO_SOLUTION Texto: "Erro no planejamento do bloco (3)" "Block Planning Error (3)" Erro ( 105 ) Proteo: ERROR_PLAN_OVERFLOW_NUMPOINTS Texto: "Erro no planejamento do bloco (4)" "Block Planning Error (4)" Erro ( 106 ) 319 V1.00 Manual do PLC V1.00 Proteo: ERROR_CANT_LINK_SEGMENT Texto: "Erro no planejamento do bloco (5)" "Block Planning Error (5)" Erro ( 107 ) Proteo: ERROR_CIRCLE_CENTER_NOT_DEFINED Texto: "Centro do Círculo não definido" "Circle center is not defined" Erro ( 108 ) Proteo: ERROR_DSP_RSVD1 Texto: "Reservado" "Reserved" Erro ( 109 ) Proteo: ERROR_DSP_RSVD2 Texto: "Reservado" "Reserved" Erro ( 110 ) Proteo: ERROR_CAN_COMM_AXIS1 Texto: "Falha na Comunicação CAN - Eixo 1" "CAN communication failled - Axis 1" Erro ( 111 ) Proteo: ERROR_CAN_COMM_AXIS2 Texto: "Falha na Comunicação CAN - Eixo 2" "CAN communication failled - Axis 2" Erro ( 112 ) Proteo: ERROR_CAN_COMM_AXIS3 Texto: "Falha na Comunicação CAN - Eixo 3" "CAN communication failled - Axis 3" Erro ( 113 ) Proteo: ERROR_CAN_COMM_AXIS4 Texto: "Falha na Comunicação CAN - Eixo 4" "CAN communication failled - Axis 4" Erro ( 114 ) Proteo: ERROR_CAN_COMM_AXIS5 Texto: "Falha na Comunicação CAN - Eixo 5" "CAN communication failled - Axis 5" Erro ( 115 ) 320 Manual do PLC Proteo: ERROR_CAN_COMM_AXIS6 Texto: "Falha na Comunicação CAN - Eixo 6" "CAN communication failled - Axis 6" Erro ( 116 ) Proteo: ERROR_CAN_COMM_AXIS7 Texto: "Falha na Comunicação CAN - Eixo 7" "CAN communication failled - Axis 7" Erro ( 117 ) Proteo: ERROR_CAN_COMM_AXIS8 Texto: "Falha na Comunicação CAN - Eixo 8" "CAN communication failled - Axis 8" Erro ( 118 ) Proteo: ERROR_CAN_COMM_MOD0 Texto: "Falha na Comunicação CAN - Módulo 0" "CAN communication failled - Module 0" Erro ( 119 ) Proteo: ERROR_CAN_COMM_MOD1 Texto: "Falha na Comunicação CAN - Módulo 1" "CAN communication failled - Module 1" Erro ( 120 ) Proteo: ERROR_CAN_COMM_MOD2 Texto: "Falha na Comunicação CAN - Módulo 2" "CAN communication failled - Module 2" Erro ( 121 ) Proteo: ERROR_CAN_COMM_MOD3 Texto: "Falha na Comunicação CAN - Módulo 3" "CAN communication failled - Module 3" Erro ( 122 ) Proteo: ERROR_CAN_COMM_MOD4 Texto: "Falha na Comunicação CAN - Módulo 4" "CAN communication failled - Module 4" Erro ( 123 ) Proteo: ERROR_CAN_COMM_MOD5 Texto: "Falha na Comunicação CAN - Módulo 5" "CAN communication failled - Module 5" Erro ( 124 ) 321 V1.00 Manual do PLC V1.00 Proteo: ERROR_CAN_COMM_MOD6 Texto: "Falha na Comunicação CAN - Módulo 6" "CAN communication failled - Module 6" Erro ( 125 ) Proteo: ERROR_CAN_COMM_MOD7 Texto: "Falha na Comunicação CAN - Módulo 7" "CAN communication failled - Module 7" Erro ( 126 ) Proteo: ERROR_CAN_COMM_MOD8 Texto: "Falha na Comunicação CAN - Módulo 8" "CAN communication failled - Module 8" Erro ( 127 ) Proteo: ERROR_CAN_COMM_MOD9 Texto: "Falha na Comunicação CAN - Módulo 9" "CAN communication failled - Module 9" Erro ( 128 ) Proteo: ERROR_CAN_COMM_MOD10 Texto: "Falha na Comunicação CAN - Módulo 10" "CAN communication failled - Module 10" Erro ( 129 ) Proteo: ERROR_CAN_COMM_MOD11 Texto: "Falha na Comunicação CAN - Módulo 11" "CAN communication failled - Module 11" Erro ( 130 ) Proteo: ERROR_CAN_COMM_MOD12 Texto: "Falha na Comunicação CAN - Módulo 12" "CAN communication failled - Module 12" Erro ( 131 ) Proteo: ERROR_CAN_COMM_MOD13 Texto: "Falha na Comunicação CAN - Módulo 13" "CAN communication failled - Module 13" Erro ( 132 ) Proteo: ERROR_CAN_COMM_MOD14 Texto: "Falha na Comunicação CAN - Módulo 14" "CAN communication failled - Module 14" Erro ( 133 ) 322 Manual do PLC Proteo: ERROR_CAN_COMM_MOD15 Texto: "Falha na Comunicação CAN - Módulo 15" "CAN communication failled - Module 15" Erro ( 134 ) Proteo: ERROR_CAN_STT_AXIS1 Texto: "Dispositivo CAN não operacional - Eixo 1" "CAN device non-operational - Axis 1" Erro ( 135 ) Proteo: ERROR_CAN_STT_AXIS2 Texto: "Dispositivo CAN não operacional - Eixo 2" "CAN device non-operational - Axis 2" Erro ( 136 ) Proteo: ERROR_CAN_STT_AXIS3 Texto: "Dispositivo CAN não operacional - Eixo 3" "CAN device non-operational - Axis 3" Erro ( 137 ) Proteo: ERROR_CAN_STT_AXIS4 Texto: "Dispositivo CAN não operacional - Eixo 4" "CAN device non-operational - Axis 4" Erro ( 138 ) Proteo: ERROR_CAN_STT_AXIS5 Texto: "Dispositivo CAN não operacional - Eixo 5" "CAN device non-operational - Axis 5" Erro ( 139 ) Proteo: ERROR_CAN_STT_AXIS6 Texto: "Dispositivo CAN não operacional - Eixo 6" "CAN device non-operational - Axis 6" Erro ( 140 ) Proteo: ERROR_CAN_STT_AXIS7 Texto: "Dispositivo CAN não operacional - Eixo 7" "CAN device non-operational - Axis 7" Erro ( 141 ) Proteo: ERROR_CAN_STT_AXIS8 Texto: "Dispositivo CAN não operacional - Eixo 8" "CAN device non-operational - Axis 8" Erro ( 142 ) 323 V1.00 Manual do PLC V1.00 Proteo: ERROR_CAN_STT_MOD0 Texto: "Dispositivo CAN não operacional - Módulo 0" "CAN device non-operational - Module 0" Erro ( 143 ) Proteo: ERROR_CAN_STT_MOD1 Texto: "Dispositivo CAN não operacional - Módulo 1" "CAN device non-operational - Module 1" Erro ( 144 ) Proteo: ERROR_CAN_STT_MOD2 Texto: "Dispositivo CAN não operacional - Módulo 2" "CAN device non-operational - Module 2" Erro ( 145 ) Proteo: ERROR_CAN_STT_MOD3 Texto: "Dispositivo CAN não operacional - Módulo 3" "CAN device non-operational - Module 3" Erro ( 146 ) Proteo: ERROR_CAN_STT_MOD4 Texto: "Dispositivo CAN não operacional - Módulo 4" "CAN device non-operational - Module 4" Erro ( 147 ) Proteo: ERROR_CAN_STT_MOD5 Texto: "Dispositivo CAN não operacional - Módulo 5" "CAN device non-operational - Module 5" Erro ( 148 ) Proteo: ERROR_CAN_STT_MOD6 Texto: "Dispositivo CAN não operacional - Módulo 6" "CAN device non-operational - Module 6" Erro ( 149 ) Proteo: ERROR_CAN_STT_MOD7 Texto: "Dispositivo CAN não operacional - Módulo 7" "CAN device non-operational - Module 7" Erro ( 150 ) Proteo: ERROR_CAN_STT_MOD8 Texto: "Dispositivo CAN não operacional - Módulo 8" "CAN device non-operational - Module 8" Erro ( 151 ) 324 Manual do PLC Proteo: ERROR_CAN_STT_MOD9 Texto: "Dispositivo CAN não operacional - Módulo 9" "CAN device non-operational - Module 9" Erro ( 152 ) Proteo: ERROR_CAN_STT_MOD10 Texto: "Dispositivo CAN não operacional - Módulo 10" "CAN device non-operational - Module 10" Erro ( 153 ) Proteo: ERROR_CAN_STT_MOD11 Texto: "Dispositivo CAN não operacional - Módulo 11" "CAN device non-operational - Module 11" Erro ( 154 ) Proteo: ERROR_CAN_STT_MOD12 Texto: "Dispositivo CAN não operacional - Módulo 12" "CAN device non-operational - Module 12" Erro ( 155 ) Proteo: ERROR_CAN_STT_MOD13 Texto: "Dispositivo CAN não operacional - Módulo 13" "CAN device non-operational - Module 13" Erro ( 156 ) Proteo: ERROR_CAN_STT_MOD14 Texto: "Dispositivo CAN não operacional - Módulo 14" "CAN device non-operational - Module 14" Erro ( 157 ) Proteo: ERROR_CAN_STT_MOD15 Texto: "Dispositivo CAN não operacional - Módulo 15" "CAN device non-operational - Module 15" Erro ( 158 ) Proteo: ERROR_CAN_NODE_AXIS1 Texto: "CAN: Erro no dispositivo - Eixo 1" "CAN: Error on device - Axis 1" Erro ( 159 ) Proteo: ERROR_CAN_NODE_AXIS2 Texto: "CAN: Erro no dispositivo - Eixo 2" "CAN: Error on device - Axis 2" Erro ( 160 ) 325 V1.00 Manual do PLC V1.00 Proteo: ERROR_CAN_NODE_AXIS3 Texto: "CAN: Erro no dispositivo - Eixo 3" "CAN: Error on device - Axis 3" Erro ( 161 ) Proteo: ERROR_CAN_NODE_AXIS4 Texto: "CAN: Erro no dispositivo - Eixo 4" "CAN: Error on device - Axis 4" Erro ( 162 ) Proteo: ERROR_CAN_NODE_AXIS5 Texto: "CAN: Erro no dispositivo - Eixo 5" "CAN: Error on device - Axis 5" Erro ( 163 ) Proteo: ERROR_CAN_NODE_AXIS6 Texto: "CAN: Erro no dispositivo - Eixo 6" "CAN: Error on device - Axis 6" Erro ( 164 ) Proteo: ERROR_CAN_NODE_AXIS7 Texto: "CAN: Erro no dispositivo - Eixo 7" "CAN: Error on device - Axis 7" Erro ( 165 ) Proteo: ERROR_CAN_NODE_AXIS8 Texto: "CAN: Erro no dispositivo - Eixo 8" "CAN: Error on device - Axis 8" Erro ( 166 ) Proteo: ERROR_CAN_NODE_MOD0 Texto: "CAN: Erro no dispositivo - Módulo 0" "CAN: Error on device - Module 0" Erro ( 167 ) Proteo: ERROR_CAN_NODE_MOD1 Texto: "CAN: Erro no dispositivo - Módulo 1" "CAN: Error on device - Module 1" Erro ( 168 ) Proteo: ERROR_CAN_NODE_MOD2 Texto: "CAN: Erro no dispositivo - Módulo 2" "CAN: Error on device - Module 2" Erro ( 169 ) 326 Manual do PLC Proteo: ERROR_CAN_NODE_MOD3 Texto: "CAN: Erro no dispositivo - Módulo 3" "CAN: Error on device - Module 3" Erro ( 170 ) Proteo: ERROR_CAN_NODE_MOD4 Texto: "CAN: Erro no dispositivo - Módulo 4" "CAN: Error on device - Module 4" Erro ( 171 ) Proteo: ERROR_CAN_NODE_MOD5 Texto: "CAN: Erro no dispositivo - Módulo 5" "CAN: Error on device - Module 5" Erro ( 172 ) Proteo: ERROR_CAN_NODE_MOD6 Texto: "CAN: Erro no dispositivo - Módulo 6" "CAN: Error on device - Module 6" Erro ( 173 ) Proteo: ERROR_CAN_NODE_MOD7 Texto: "CAN: Erro no dispositivo - Módulo 7" "CAN: Error on device - Module 7" Erro ( 174 ) Proteo: ERROR_CAN_NODE_MOD8 Texto: "CAN: Erro no dispositivo - Módulo 8" "CAN: Error on device - Module 8" Erro ( 175 ) Proteo: ERROR_CAN_NODE_MOD9 Texto: "CAN: Erro no dispositivo - Módulo 9" "CAN: Error on device - Module 9" Erro ( 176 ) Proteo: ERROR_CAN_NODE_MOD10 Texto: "CAN: Erro no dispositivo - Módulo 10" "CAN: Error on device - Module 10" Erro ( 177 ) Proteo: ERROR_CAN_NODE_MOD11 Texto: "CAN: Erro no dispositivo - Módulo 11" "CAN: Error on device - Module 11" Erro ( 178 ) 327 V1.00 Manual do PLC V1.00 Proteo: ERROR_CAN_NODE_MOD12 Texto: "CAN: Erro no dispositivo - Módulo 12" "CAN: Error on device - Module 12" Erro ( 179 ) Proteo: ERROR_CAN_NODE_MOD13 Texto: "CAN: Erro no dispositivo - Módulo 13" "CAN: Error on device - Module 13" Erro ( 180 ) Proteo: ERROR_CAN_NODE_MOD14 Texto: "CAN: Erro no dispositivo - Módulo 14" "CAN: Error on device - Module 14" Erro ( 181 ) Proteo: ERROR_CAN_NODE_MOD15 Texto: "CAN: Erro no dispositivo - Módulo 15" "CAN: Error on device - Module 15" Erro ( 182 ) Proteo: ERROR_PARSER_DATABASE Texto: "Falha ao interpretar configuração Base de Dados" "Didn´t understand configuration file for DataBase" Erro ( 183 ) Proteo: ERROR_PARSER_MESSAGES Texto: "Falha ao interpretar configuração Mensagens" "Didn´t understand configuration file for Messages" Erro ( 184 ) Proteo: ERROR_PARSER_USER_SCREEN Texto: "Falha ao interpretar configuração Telas de Usuário" "Didn´t understand configuration file for User Screens" Erro ( 185 ) Proteo: ERROR_PARSER_SOFTKEYS_MAIN Texto: "Falha ao interpretar configuração SoftKeys Main" "Didn´t understand configuration file for SoftKeys Main" Erro ( 186 ) Proteo: ERROR_PARSER_SOFTKEYS_ALT Texto: "Falha ao interpretar configuração SoftKeys Alt" "Didn´t understand configuration file for SoftKeys Alt" 328 Manual do PLC V1.00 Erro ( 187 ) Proteo: ERROR_PARSER_TOOL_EDITOR_2D Texto: "Falha ao interpretar configuração Ferraments 2D" "Didn´t understand configuration file for Tools 2D" Erro ( 188 ) Proteo: ERROR_PARSER_TOOL_EDITOR_3D Texto: "Falha ao interpretar configuração Ferraments 3D" "Didn´t understand configuration file for Tools 3D" Erro ( 189 ) Proteo: ERROR_PARSER_PARAMETERS Texto: "Falha ao interpretar configuração Parâmetros Gerais" "Didn´t understand configuration file for General Parameters" Erro ( 190 ) Proteo: ERROR_PARSER_PARAMETERS_PLC Texto: "Falha ao interpretar configuração Parâmetros PLC" "Didn´t understand configuration file for PLC Parameters" Erro ( 191 ) Proteo: ERROR_DUPLICATE_FILE_DIR Texto: "Encontrou entrada duplicada de arquivo/diretório na FLASH" "Found duplicate file/dir entry in FLASH disk" Erro ( 192 ) Proteo: MAX_ERROR_CODE Texto: "Código de erro Inválido" "Invalid Error Code" 46.1 Códigos de Alarme Alarme ( 10000 ) Proteo: FIRST_ALARM_CODE Texto: "Código de Alarme Inválido" "Invalid Alarm Code" Alarme ( 10001 ) Proteo: ALARM_DIVISION_BY_ZERO Texto: "Divisão por zero" "Division by zero" 329 Manual do PLC V1.00 Alarme ( 10002 ) Proteo: ALARM_ILLEGAL_INTEGER_DIVISION Texto: "Divisão Ilegal de inteiros" "Illegal Integer division" Alarme ( 10003 ) Proteo: ALARM_TCP_FILE_CORRUPTED Texto: "TCP - Arquivo corrompido" "TCP - Corrupted File" Alarme ( 10004 ) Proteo: ALARM_CREATE_RASC Texto: "Não conseguiu criar arquivo temporário" "Could not create temporary file" Alarme ( 10005 ) Proteo: ALARM_LOW_EXECUTION_MEMORY Texto: "Espaço reduzido na memória de Execução" "LOW Execution Memory" Alarme ( 10006 ) Proteo: ALARM_LOW_TOTAL_MEMORY Texto: "Espaço reduzido na memória Geral" "LOW General Memory Alarm" Alarme ( 10007 ) Proteo: ALARM_TOO_MANY_MACROS Texto: "Excesso de Macros ou Ciclos de usuário" "Too many MACROS or User Cycles" Alarme ( 10008 ) Proteo: MAX_ALARM_CODE Texto: "Código de Alarme Inválido" "Invalid Alarm Code" 46.2 Códigos de Warning Warning ( 20000 ) Proteo: FIRST_WARNING_CODE Texto: "Código de Warning Inválido" "Invalid Warning Code" 330 Manual do PLC Warning ( 20001 ) Proteo: WARNING_EXECUTION_ABORTED Texto: "Retomando a Execução" "Resuming Execution" Warning ( 20002 ) Proteo: MAX_WARNING_CODE Texto: "Código de Warning Inválido" "Invalid Warning Code" 46.3 Códigos de Emergência Emergência ( 30000 ) Proteo: FIRST_EMERGENCY_CODE Texto: "Código de Emergência Inválido" "Invalid Emergency Code" Emergência ( 30001 ) Proteo: EMERG_MCS_EVENT_FLAGS_ARE_CORRUPTED Texto: "Controle de eventos está corrompido" "MCS Event Flags are corrupted" Emergência ( 30002 ) Proteo: EMERG_EMERGENCY_MEMORY_IN_USE Texto: "Memória de Emergência já em uso" "Emergency Memory already in use" Emergência ( 30003 ) Proteo: EMERG_MEMORY_FULL Texto: "Memória Cheia" "Memory FULL" Emergência ( 30004 ) Proteo: EMERG_REVIEW_SYSTEM_MEMORY_SIZE Texto: "Memória de Sistema Insuficiente" "System Memory Size Problem" Emergência ( 30005 ) Proteo: EMERG_HEAP_MEMORY_OVERFLOW Texto: "Memória Heap Insuficiente" "Heap Memory Overflow" Emergência ( 30006 ) 331 V1.00 Manual do PLC V1.00 Proteo: EMERG_PEGMSG_MEMORY_OVERFLOW Texto: "Memória Msg Insuficiente" "Msg Memory Overflow" Emergência ( 30007 ) Proteo: EMERG_STACK_MEMORY_OVERFLOW Texto: "Memória Stack Insuficiente" "Stack Memory Overflow" Emergência ( 30008 ) Proteo: EMERG_ARM_DSP_NOT_COMPATIBLE Texto: "ARM & DSP : SOFTWARE BÁSICO INCOMPATÍVEL" "ARM & DSP : FIRMWARES ARE NOT COMPATIBLE" Emergência ( 30009 ) Proteo: MAX_EMERGENCY_CODE Texto: "Código de Emergência Inválido" "Invalid Emergency Code" 332