Gerenciamento de estados de máquinas e contagens de peças com Edge IO e Node-RED
  • 04 Nov 2023
  • 9 Minutos para Ler
  • Contribuintes

Gerenciamento de estados de máquinas e contagens de peças com Edge IO e Node-RED


Resumo do artigo

Gerenciando estados de máquinas e contagens de peças com o Edge IO e o Node-RED

Saiba como usar o fluxo do Node-RED de visibilidade da máquina com seu Edge IO

Este artigo aborda o fluxo de trabalho para conectar um sensor de feixe de ruptura e um sensor de corrente a um Edge IO para gerenciar o estado e contar peças no Tulip. Isso utiliza um fluxo de biblioteca Tulip Node-RED que pode ser importado para um dispositivo de borda do cliente.

Ao final deste artigo, você terá o seguinte fluxo no Node-RED para enviar dados de seus sensores conectados a uma máquina no Tulip.

Você precisará concluir as etapas a seguir:

  1. Configuração de hardware: Conectar o Edge IO
  2. Configuração da máquina: Criar uma máquina no Tulip
  3. Configuração do Node-RED: Importar, editar e implementar um fluxo Node-RED da biblioteca do Tulip

O que você precisará é de:

  • Um Edge IO registrado na sua conta do Tulip

  • Sensor de corrente: CR3111-3000 ou outro transformador de corrente semelhante

    • Um resistor de carga de tamanho correto para o transformador de corrente, recomendado 100 ohms se for o CR3111-3000 (consulte Configuração de hardware para saber o tamanho)
    • Feixe de ruptura
    • Chave de fenda de cabeça chata de 3,5 mm

1. Configuração de hardware - Conectar o Edge IO

Este fluxo de trabalho pressupõe que você usará um transformador de corrente e um feixe de interrupção conectado a um Edge IO.

Cálculo do tamanho do resistor de carga: Se estiver usando o CR3111-3000, recomendamos um resistor de 100 ohms. Se estiver usando um grampo de corrente diferente, você poderá calcular o tamanho máximo permitido do resistor(R_burden) a partir da relação de espiras efetiva(T_e) e da corrente máxima a ser medida(I_max) da seguinte forma: R_burden = 3,12 * T_e / I_max. Seu resistor pode ser menor do que o tamanho máximo de resistor permitido; isso reduzirá a resolução do sensor.

Conecte o grampo de corrente (CR3111-3000) e o feixe de interrupção ao Edge IO da seguinte forma:

  • Pinça de corrente

    • Medição da corrente CA através do cabo de alimentação em sua máquina
    • Conecte o resistor entre os dois fios do grampo de corrente, conforme mostrado
    • Conecte um fio ao terminal ADC diferencial [+] e um fio ao terminal ADC diferencial [-].
    • Feixe de ruptura
    • Capturando a criação da peça
    • Conecte o fio marrom (+24V) ao terminal de +24V no SAR ADC
    • Conecte o fio azul (gnd) ao terminal de aterramento do banco de entrada digital
    • Conecte o fio preto (out) ao pino 1 do banco de entrada digital

Além disso, certifique-se de ter ligado o dispositivo e conectado o dispositivo à sua rede, conectando um cabo Ethernet à porta WAN.

2. Configuração da máquina - Criar uma máquina no Tulip

Para enviar dados do feixe de luz e do sensor de corrente para o Tulip, vamos primeiro configurar uma máquina usando a API do Tulip como fonte de dados. Consulte a seção Configurando uma nova máquina do artigo Como usar a API de atributos de máquina para obter uma visão geral detalhada.

Neste exemplo, criamos uma máquina com dois atributos:

  1. Current (float) - representa a corrente retornada pelo sensor.
  2. Part Count (int) - sinal do feixe de ruptura indicando a conclusão de uma peça.

Você deverá anotar os valores attributeId e machineId para passar para o fluxo do Node-RED.

Também é possível configurar um tipo de máquina para atribuir à máquina se você planeja usar o sensor atual para alterar aspectos como o estado da máquina ou realizar qualquer contagem com base nas saídas do sensor. Consulte Como configurar tipos de máquina se isso for de seu interesse.

3. Configuração do Node-RED

Abra o Edge Device Portal no Edge IO conectado ao break beam e aos sensores de corrente. Inicie o Node-RED Editor usando as seguintes credenciais:

  • Nome de usuário: admin
  • Senha: Sua senha do Edge IO

Veja mais informações aqui para começar a usar o Node-RED no Edge IO.

3a. Importar fluxo da biblioteca

Para importar o fluxo da biblioteca, siga as etapas em nosso documento Importing Tulip Node-RED Flows (Importando fluxos do Tulip Node-RED ). O fluxo a ser importado é machine_visibility.json e a importação cria a guia Machine Visibility with Current Clamp and Breakbeam no editor.

3b. Visão geral do fluxo

Esse fluxo é composto por dois fluxos de trabalho separados:

Contador de peças

O primeiro caminho é monitorar a contagem de peças por meio de um sensor de feixe de ruptura. Esse fluxo é composto por quatro nós funcionais:

  1. Monitorar pino

    • Objetivo: definir o(s) pino(s) GPIO no Edge IO para monitorar por meio da propriedade do pino habilitado.
    • Filtro para pinUp
    • Objetivo: A partir da carga útil da mensagem, determinar se o evento no(s) pino(s) monitorado(s) é verdadeiro.
    • Incrementar contagem de peças
    • Finalidade: Incrementar a contagem de peças da variável de fluxo em um evento de pino verdadeiro.
    • Atributo da máquina Tulip: Contagem de peças
    • Finalidade: Enviar o payload (partCount) para a Tulip via API.

Monitorar corrente RMS

O segundo caminho é monitorar um sensor de corrente conectado à entrada do ADC (conversor analógico-digital). Esse fluxo é composto por seis nós funcionais.

  1. Leituras diferenciais de ADC

    • Objetivo: Atribuir o perfil de configuração analógica à entrada do ADC.
    • Filtrar 1/5 leituras
    • Objetivo: Extrair cada quinta medição (5 segundos) para passar para o Tulip.
    • Passar mensagem
    • Propósito: Redefinir a contagem de leituras para cada quinta mensagem de volta a zero.
    • Drop message & increment
    • Objetivo: Para todas as outras leituras, incrementar a contagem de leituras em 1.
    • Escala do CR-3111
    • Finalidade: Dimensionar a medição do sensor com base nas especificações do fabricante.
    • Atributo da máquina Tulip: Corrente RMS
    • Finalidade: Enviar o payload (partCount) para a Tulip via API.

Há também quatro nós opcionais que são desativados por padrão, mas podem ser ativados para ter um estado de máquina determinado pelo Node-RED. Observe que também é possível usar Machine Triggers no Tulip para executar essa mesma lógica.

  1. A corrente é > 100mA?

    • Objetivo: verificar se o valor da corrente é maior que 100 mA.
    • Estado = ON
    • Objetivo: Definir a carga útil como ON se a corrente for maior que 100 mA.
    • Estado = OFF
    • Finalidade: Definir a carga útil como OFF se a corrente for menor ou igual a 100 mA.
    • Atributo da máquina Tulip: State (Estado)
    • Finalidade: Enviar o payload (estado) para a Tulip via API.

3c. Editar o fluxo

Para concluir a configuração desse fluxo, as informações do dispositivo para Tulip Machine Attribute: Part Count e Tulip Machine Attribute: RMS Current nodes devem ser incluídas com os campos attributeId e machineIdda máquina configurada anteriormente.

Dependendo do sensor utilizado, você pode editar adicionalmente o nó CR-3111 Scaling para refletir a relação de espiras do seu transformador de corrente.

3d. Implantar o fluxo

Com o fluxo do Node-RED criado e os parâmetros necessários adicionados, você pode implantar o fluxo e começar a ver os dados do feixe de ruptura e da saída dos sensores de corrente para o Tulip.

Ao selecionar a opção Mensagem de depuração no lado direito do Editor do Node-RED, você poderá ver as respostas e os códigos de status correspondentes da API do Tulip.

Para obter mais informações sobre os códigos de status, navegue até a documentação da API em sua instância do Tulip (ou seja, .tulip.co/apidocs). Especificamente, consulte a documentação do endpoint POST /attributes/report.

Agora você também poderá ver os dados no Tulip, navegando até a guia de configuração da máquina.

Detalhes técnicos do fluxo do Node-RED

Abaixo está um resumo detalhado dos nós e seus parâmetros de configuração padrão importados com o arquivo machine_visibility.json.

Contador de peças

  1. Pino do monitor

    • Objetivo: definir o(s) pino(s) GPIO no Edge IO para monitorar por meio da propriedade do pino habilitado.

    • Tipo de nó: Entrada digital

    • Propriedades padrão:

      • Modo de execução - Contínuo
      • Taxa de atualização - 1 segundo
      • Pinos habilitados - 1
      • Filtro para pinUp
    • Objetivo: A partir da carga útil da mensagem, determinar se o evento no(s) pino(s) monitorado(s) é verdadeiro.

    • Tipo de nó: Switch

    • Propriedades padrão:

      • Propriedade - msg.payload
      • Regras - é verdadeiro
      • Incrementar contagem de peças
    • Finalidade: Incrementar a contagem de partes da variável de fluxo no evento de pino true.

    • Tipo de nó: Alterar

    • Propriedades padrão:

      • Regras:

        • Definir flow.partCount como a expressão $flowContext('partCount') + 1
        • Definir msg.payload como flow.partCount
        • Atributo da Tulip Machine: Contagem de peças
    • Finalidade: Enviar o payload (partCount) para a Tulip via API.

    • Tipo de nó: Atributo de máquina

    • Propriedades padrão:

      • Informações do dispositivo* - {"attributeId":"", "machineId":""}
      • Fonte do atributo - msg.payload

Monitorar corrente RMS

  1. Leituras diferenciais de ADC

    • Objetivo: atribuir o perfil de configuração analógica à entrada do ADC.

    • Tipo de nó: Analógico de alta velocidade

    • Propriedades padrão:

      • Analog Config - Differential ADC RMS @ 1kHZ

        • Selecionar ADC para configurar - ADC diferencial
        • Saídas ativadas - RMS
        • Tamanho do buffer - 1000
        • Frequência de amostragem (Hz) - 1000+ Tipo de dados - RMS+ Modo de saída - Contínuo+ Taxa de atualização (segundos) - 1
        • Filtrar 1/5 leituras
    • Objetivo: Extrair cada quinta medição (5 segundos) para passar para o Tulip.

    • Tipo de nó: Switch

    • Propriedades padrão:

      • Propriedade - flow.numReadings

      • Regras:

        • == 4
        • caso contrário
        • Passar mensagem
    • Objetivo: Redefinir a contagem de leituras para cada quinta mensagem de volta a zero.

    • Tipo de nó: Modificar

    • Propriedades padrão:

      • Regras:

        • Definir flow.numReadings como 0
        • Eliminar mensagem e incrementar
    • Objetivo: Para todas as outras leituras, incrementar a contagem de leituras em 1.

    • Tipo de nó: Alterar

    • Propriedades padrão:

      • Regras:

        • Definir flow.numReadings como a expressão $flowContext('numReadings') + 1
        • Escala do CR-3111
    • Objetivo: Dimensionar a medição do sensor com base nas especificações do fabricante.

    • Tipo de nó: Modelo de subfluxo

    • Propriedades padrão:

      • Propriedade - dados
      • Escala* - 3000
      • Deslocamento - 0
      • Atributo da máquina Tulip: Corrente RMS
    • Finalidade: Enviar a carga útil (partCount) para a Tulip via API.

    • Tipo de nó: Atributo de máquina

    • Propriedades padrão:

      • Informações do dispositivo* - {"attributeId":"", "machineId":""}
      • Fonte do atributo - msg.data[0]

Subfluxo para calcular o estado da máquina

  1. A corrente é > 100mA?

    • Finalidade: Verificar se o valor da corrente é maior que 100 mA.

    • Tipo de nó: Interruptor

    • Propriedades padrão:

      • Propriedade - msg.data[0]

      • Regras:

        • > 0.1
        • caso contrário
        • Estado = ON
    • Objetivo: Definir a carga útil como ON se a corrente for maior que 100 mA.

    • Tipo de nó: Modificar

    • Propriedades padrão:

      • Regras:

        • Definir msg.payload como ON
        • Estado = OFF
    • Objetivo: definir a carga útil como OFF se a corrente for menor ou igual a 100 mA.

    • Tipo de nó: Modificar

    • Propriedades padrão:

      • Regras:

        • Definir msg.payload como OFF
        • Atributo da máquina Tulip: Estado
    • Objetivo: Enviar o payload (estado) para a Tulip via API.

    • Tipo de nó: Atributo de máquina

    • Propriedades padrão:

      • Informações do dispositivo* - {"attributeId":"", "machineId":""}
      • Fonte do atributo - msg.payload

* Os parâmetros devem ser atualizados para que o fluxo funcione adequadamente. O valor da escala do sensor atual deve ser modificado de acordo com a recomendação do fabricante.

Leitura adicional


Encontrou o que estava procurando?

Você também pode ir para community.tulip.co para postar sua pergunta ou ver se outras pessoas tiveram uma pergunta semelhante!


Este artigo foi útil?