1Serviço de Comunicação Serial CNC <=> Periférico Genérico ( ARM 9.22 ) 1.1Descriçã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): Variável Reservada #10255 ( W ) Habilitação do serviço: Base da estrutura precisa conter o valor constante 2727 1.2Parâ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) *FIXO - Número de stop bits da serial (default = 1) *FIXO - Paridade da serial (default = sem paridade) *FIXO - Endereço do CNC na rede Mestre / Escravo e ModBus. 1.3Parâmetros de PLC utilizados 1.4Estrutura 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 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 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 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 = (w) 2727 = (w) 32 = (w) 832 = (w) 32 = (w) 864 = (w) 0 = (w) 0 = (w) 0 = (w) 0 = (w) 62 = (w) 60 = (w) 2 = (w) 0 - - identidade TAMANHO DO BUFFER DE TRANSMISSÃO BUFFER DE TRANSMISSÃO TX TAMANHO DO BUFFER DE RECEPÇÃO BUFFER DE RECEPÇÃO COMANDO ESTADO STATUS TIPO DE PROTOCOLO: 0 = GENÉRICO ASCII TOKEN INICIAL: > TOKEN FINAL: < CHECK_SUM : 2 BYTES TIMEOUT 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.