- Impressão
Gerenciamento de estados de máquinas e contagens de peças com Edge IO e Node-RED
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:
- Configuração de hardware: Conectar o Edge IO
- Configuração da máquina: Criar uma máquina no Tulip
- 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:
- Current (float) - representa a corrente retornada pelo sensor.
- 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:
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.
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.
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
machineId
da 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
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
- Modo de execução -
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
- Propriedade -
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
comoflow.part
Count - Atributo da Tulip Machine: Contagem de peças
- Definir
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
- Informações do dispositivo* -
Monitorar corrente RMS
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
- Selecionar ADC para configurar -
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
como0
- Eliminar mensagem e incrementar
- Definir
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
- Definir
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
- Propriedade -
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]
- Informações do dispositivo* -
Subfluxo para calcular o estado da máquina
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
comoON
- Estado = OFF
- Definir
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
comoOFF
- Atributo da máquina Tulip: Estado
- Definir
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
- Informações do dispositivo* -
* 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
- Documentação do Node-RED
- Conexão de um sensor de 4-20 mA com Edge IO e Node-RED
- Conexão de um osciloscópio analógico com o Edge IO e o Node-RED
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!