Resumo da aplicação

A empresa S pretende entregar faróis à empresa de motores H como um fornecedor principal, que emitirá luz sequencialmente. Recebe do sensor o valor do farol do carro e envia-o para o CLP. É um problema que o valor seja enviado em ciclo de 10ms e cada dado periódico é guardado no CLP.

Configuração do sistema

Quando se liga a direção do carro, as luzes dos faróis são ligadas sequencialmente da Lâmpada 1 à Lâmpada 8. O sensor de visão recebe o valor das lâmpadas e armazena-os no CLP. A comunicação deve ser aberta utilizando a comunicação definida pelo usuário, por causa do protocolo privado do sensor de visão.

Produto aplicado

CLP: XGK-CPUHN + XGL-EFMTB

Vantagens

  • Realizar o protocolo privado da outra parte com comunicação Ethernet definida pelo usuário
  • Possível salvar os dados de comunicação desejados usando o flag de comunicação (L)

Requisitos de sistema

O sensor de visão envia dados da Lâmpada 1 à Lâmpada 8 periodicamente quando o sinal de disparo é recebido. Para isso, o CLP torna-se cliente e envia o sinal de disparo para a Key-in e armazena os dados do ciclo de 10ms dado pela Key-in. O mais importante aqui é que os dados do ciclo de 10ms devem ser armazenados em diferentes memórias (devices) e registrados.

Solução aplicada

  1. Configuração cliente-servidor

O manual do sensor mostra que o mesmo enviará dados periodicamente quando um sinal de disparo for recebido. Esta é a configuração do cliente no CLP:

  • IP do CLP: 192.168.0.11
  • IP do Sensor de visão: 192.168.0.10
  • Número Porta do sensor de visão: 8500
  • Método de Comunicação: TCP
  1. Protocolo de comunicação

O gatilho reconhecido como início de comunicação é ‘T1 CR’, em ASCII. Após a introdução do trigger, os dados enviados pelo teclado são ‘X,X,X,X,X,X,X,X,X’. Em outras palavras, um valor 0 ou 1 é enviado como um valor ASCII com uma vírgula. Total 15 bytes.

Quando o bit M00002 é ativado uma vez, ele transmite um sinal de disparo chamado ‘T1 CR’. No sensor, quando esse disparo entra, ele é aceito como o início da comunicação. Quando a comunicação é iniciada, o sensor de visão envia continuamente os dados para o objeto solicitado em um ciclo de 10 ms. Embora o formato do frame recebido transmita apenas 8 bits no lado da chave, o resultado do software WireShark é enviado como um caractere no formato de X, X, X, X, X, X, X, X.  Altere a configuração da visão para desligar a vírgula do meio. Os dados são inseridos no formato ‘XXXXXXXXXX’, onde X é 0 ou 1. É 0 se for reconhecido pelo sensor de visão ou 1 se não for. Quando a visão não ilumina o objeto, os dados são inseridos.

11111111 → 11111110 → 11111100 → 11111000 → 11110000 → 11100000 → 11000000 → 10000000 → 00000000

Estes 8 bytes de dados devem ser recebidos e armazenados na memória do CLP. Note que D0, que é uma área de armazenamento de recepção, será sobrescrito a cada 10ms, portanto é necessário um programa que envie os dados armazenados para outro dispositivo. O índice 0 no bloco P2P é o frame receptor e não pode ser confirmado por P2P_NDR. P2P_SVCCNT é um flag em unidades Dword e armazena a contagem do serviço.

O flag P2P_SVCCNT acumula as contagens de serviço e é armazenado até que o módulo seja reinicializado. Em outras palavras, mesmo que o programa envie uma contagem para 0, ela começa a partir do valor da contagem anterior quando o serviço é iniciado. Use o índice Z para armazenar em D0 [Z0] sempre que a contagem de serviços subir. P10 é um sinal de disparo que proíbe a comunicação com o sensor se a saída é dada pelo CLP. Quando P10 é liberado, deve ser guardado desde o início.

Quando a contagem de serviço é aumentada, ela não é 0 quando se move a Z000. Portanto, a área do buffer (R0) é colocada no meio para armazenar o valor da contagem antes da inicialização. Quando P10, que é proibido acionar, é liberado, a contagem de serviço – dados da área buffer é definida e Z000 conta a partir de 0. E D00000 onde os dados são armazenados são 8 bytes de dados de caracteres, mas na verdade os dados 0 ou 1 binários são alterados para o valor binário usando a instrução HEX. Por ser um dado binário de 8 dígitos, é uma unidade de Dword, deve ser armazenado em buffers intermediários D00050 ~ D00051, e os dados devem ser acumulados em D00100 para serem armazenados. Em conclusão, não perdemos nenhum dado que surja com intervalo de 10ms no sensor, mas cada um precisa ser armazenado em memória separada do CLP, que é convertido em dados binários de 2 palavras e armazenado.

Aplicação disponível

Aplicações que necessitam armazenar alterações periódicas do valor dos dados.