Gestion des états des machines et du nombre de pièces avec Edge IO et Node-RED
  • 04 Nov 2023
  • 10 Minutes à lire
  • Contributeurs

Gestion des états des machines et du nombre de pièces avec Edge IO et Node-RED


Résumé de l’article

Gérer les états des machines et le nombre de pièces avec Edge IO et Node-RED

Apprenez à utiliser le flux Node-RED de visibilité de la machine avec votre Edge IO.

Cet article couvre le flux de travail pour connecter un capteur de faisceau de rupture et un capteur de courant à un Edge IO pour gérer l'état et compter les pièces dans Tulip. Ceci utilise un flux de bibliothèque Tulip Node-RED qui peut être importé sur l'appareil Edge d'un client.

A la fin de cet article, vous aurez le flux suivant dans Node-RED pour envoyer les données de vos capteurs connectés à une machine dans Tulip.

Vous aurez besoin de compléter les étapes suivantes :

  1. Configuration matérielle : Câbler l'Edge IO
  2. Configuration de la machine : Créer une machine dans Tulip
  3. Installation de Node-RED : Importer, éditer et déployer un flux Node-RED depuis la bibliothèque Tulip

Ce dont vous aurez besoin :

  • Un Edge IO enregistré sur votre compte Tulip

  • Un capteur de courant : CR3111-3000 ou un autre transformateur de courant similaire

    • Une résistance de charge correctement dimensionnée pour le transformateur de courant, recommandée à 100 ohms pour le CR3111-3000 (voir Configuration matérielle pour le dimensionnement).
    • Poutre de rupture
    • Tournevis à tête plate de 3,5 mm

1. Configuration du matériel - Câblage de l'Edge IO

Ce processus suppose que vous utiliserez un transformateur de courant et une poutre de rupture connectés à un Edge IO.

Calcul de la taille de la résistance de charge : Si vous utilisez la CR3111-3000, nous recommandons une résistance de 100 ohms. Si vous utilisez une pince de courant différente, vous pouvez calculer la taille maximale autorisée de la résistance(R_burden) à partir du rapport de tours effectif(T_e) et du courant maximal à mesurer(I_max) comme suit : R_burden = 3,12 * T_e / I_max. Votre résistance peut être plus petite que la taille de résistance maximale autorisée ; cela réduira la résolution de votre capteur.

Connectez votre pince de courant (CR3111-3000) et votre faisceau de rupture à votre Edge IO comme suit :

  • Pince de courant

    • Mesure du courant alternatif à travers le câble d'alimentation de votre machine
    • Attachez une résistance entre les deux fils de la pince de courant comme indiqué.
    • Attachez un fil à la borne [+] de l'ADC différentiel et un fil à la borne [-] de l'ADC différentiel.
    • Poutre de rupture
    • Capture de la création d'une pièce
    • Relier le fil marron (+24V) à la borne +24V de l'ADC SAR.
    • Relier le fil bleu (gnd) à la borne de masse de la banque d'entrées numériques.
    • Reliez le fil noir (out) à la broche 1 de la banque d'entrées numériques.

En outre, assurez-vous que vous avez alimenté l'appareil et que vous l'avez connecté à votre réseau en branchant un câble Ethernet sur le port WAN.

2. Configuration de la machine - Créer une machine dans Tulip

Pour envoyer les données de la poutre de rupture et du capteur de courant à Tulip, configurons d'abord une Machine en utilisant l'API de Tulip comme source de données. Référez-vous à la section Configuration d'une nouvelle machine de l'article Comment utiliser l'API d'attributs de machine pour une vue d'ensemble approfondie.

Dans cet exemple, nous avons créé une machine avec deux attributs :

  1. Current (float) - représente le courant renvoyé par le capteur.
  2. Part Count (int) - signal provenant de la poutre de rupture indiquant l'achèvement d'une pièce.

Vous devez noter les valeurs attributeId et machineId pour les transmettre au flux Node-RED.

Vous pouvez également configurer un type de machine à affecter à la machine si vous prévoyez d'utiliser le capteur de courant pour modifier des aspects tels que l'état de la machine ou effectuer des comptages basés sur les sorties du capteur. Reportez-vous à la section Comment configurer les types de machine si cela vous intéresse.

3. Configuration de Node-RED

Ouvrez le portail Edge Device Portal sur l'Edge IO connecté aux capteurs de faisceau de rupture et de courant. Lancez l'éditeur Node-RED en utilisant les informations d'identification suivantes :

  • Nom d'utilisateur : admin
  • Mot de passe : Votre mot de passe Edge IO

Voir plus d'informations ici pour démarrer avec Node-RED sur Edge IO.

3a. Importer le flux de la bibliothèque

Pour importer le flux de la bibliothèque, suivez les étapes de notre document Importation des flux Tulip Node-RED. Le flux à importer est machine_visibility.json et l'importation crée l'onglet Machine Visibility with Current Clamp and Breakbeam dans l'éditeur.

3b. Vue d'ensemble du flux

Ce flux est composé de deux flux de travail distincts :

Compteur de pièces

Le premier chemin consiste à surveiller le nombre de pièces par l'intermédiaire d'un capteur de faisceau de rupture. Ce flux comprend quatre nœuds fonctionnels :

  1. Monitor Pin

    • Objectif : définir la ou les broches GPIO de l'Edge IO à surveiller via la propriété "enabled pin" (broche activée).
    • Filtre pour pinUp
    • Objectif : À partir de la charge utile du message, déterminer si l'événement sur la (les) broche(s) surveillée(s) est vrai.
    • Incrémenter le nombre de pièces
    • Objet : Incrémenter le nombre de pièces de la variable de flux lorsque l'événement de l'épingle est vrai.
    • Attribut de la machine tulipe : Nombre de pièces
    • Objectif : Envoyer la charge utile (partCount) à Tulip via l'API.

Surveillance du courant RMS

Le deuxième chemin consiste à surveiller un capteur de courant connecté à l'entrée ADC (convertisseur analogique-numérique). Ce flux comprend six nœuds fonctionnels.

  1. Lectures différentielles du convertisseur analogique-numérique

    • Objectif : affecter le profil de configuration analogique à l'entrée du convertisseur analogique-numérique.
    • Filtre 1/5 lectures
    • Objectif : Extraire une mesure sur cinq (5 secondes) pour la transmettre à Tulip.
    • Passer le message
    • Objectif : Réinitialiser le compte des lectures pour chaque cinquième mesure (5 secondes) à transmettre à Tulip : Remettre à zéro le compte des lectures pour chaque cinquième message.
    • Drop message & increment
    • Objectif : Pour tous les autres relevés, incrémenter le nombre de relevés à zéro : Pour toutes les autres lectures, incrémenter le nombre de lectures de 1.
    • Mise à l'échelle du CR-3111
    • Objet : Mettre à l'échelle la mesure du capteur en fonction des spécifications du fabricant.
    • Attribut de la machine Tulip : RMS Current
    • Objet : Envoyer la charge utile (partCount) à Tulip via l'API.

Il existe également quatre nœuds optionnels qui sont désactivés par défaut mais qui peuvent être activés pour que l'état de la machine soit déterminé par Node-RED. Notez qu'il est également possible d'utiliser des déclencheurs de machine dans Tulip pour exécuter cette même logique.

  1. Is Current > 100mA ?

    • Objectif : Vérifier si la valeur du courant est supérieure à 100 mA.
    • State = ON
    • Objectif : Mettre la charge utile à ON si le courant est supérieur à 100 mA.
    • État = OFF
    • Objectif : Mettre la charge utile sur OFF si le courant est inférieur ou égal à 100 mA.
    • Attribut de la machine tulipe : État
    • Objet : Envoyer la charge utile (état) à Tulip via l'API.

3c. Modifier le flux

Pour terminer la configuration de ce flux, les informations sur le périphérique pour l'attribut Tulip Machine Attribute : Part Count et Tulip Machine Attribute : RMS Current doivent être incluses avec les champs attributeId et machineIdfde la machine configurée précédemment.

En fonction du capteur que vous utilisez, vous pouvez également éditer le nœud CR-3111 Scaling pour refléter le rapport des tours de votre transformateur de courant.

3d. Déployer le flux

Une fois le flux Node-RED construit et les paramètres nécessaires ajoutés, vous pouvez déployer votre flux et commencer à voir les données de votre faisceau de rupture et de vos capteurs de courant sortir vers Tulip.

En sélectionnant l'option Debug message sur le côté droit de l'éditeur Node-RED, vous devriez être en mesure de voir les réponses et les codes d'état correspondants de l'API Tulip.

Pour obtenir plus d'informations sur les codes d'état, veuillez consulter la documentation de l'API dans votre instance Tulip (c'est-à-dire .tulip.co/apidocs). Spécifiquement, référez-vous à la documentation POST /attributes/report endpoint.

Vous serez maintenant en mesure de voir les données dans Tulip également, en naviguant vers l'onglet de configuration de la machine.

Détails techniques du flux Node-RED

Voici un résumé détaillé des nœuds et de leurs paramètres de configuration par défaut importés avec le fichier machine_visibility.json.

Pièce Compteur

  1. Broche de surveillance

    • Objet : Définir la ou les broches GPIO de l'Edge IO à surveiller via la propriété de broche activée.

    • Type de nœud : Entrée numérique

    • Propriétés par défaut :

      • Mode d'exécution - continu
      • Taux de rafraîchissement - 1 seconde
      • Broches activées - 1
      • Filtre pour pinUp
    • Objet : À partir de la charge utile du message, déterminer si l'événement sur la (les) broche(s) surveillée(s) est vrai.

    • Type de nœud : Commutateur

    • Propriétés par défaut :

      • Propriété - msg.payload
      • Règles - est vrai
      • Incrémenter le nombre de pièces
    • Objectif : Incrémenter le nombre de pièces de la variable de flux sur l'événement true de l'épingle.

    • Type de noeud : Change

    • Propriétés par défaut :

      • Règles :

        • Fixer flow.partCount à l'expression $flowContext('partCount') + 1
        • Fixer msg.payload à flow.partCount
        • Attribut de la machine à tulipes : Nombre de pièces
    • Objectif : Envoyer le payload (partCount) à Tulip via l'API.

    • Type de noeud : Attribut machine

    • Propriétés par défaut :

      • Device Info* - {"attributeId" :"", "machineId" :""}
      • Source de l'attribut - msg.payload

Courant efficace du moniteur

  1. Lectures différentielles de l'ADC

    • Objet : Attribuer le profil de configuration analogique à l'entrée ADC.

    • Node type : Analogique haute vitesse

    • Propriétés par défaut :

      • Analog Config - Differential ADC RMS @ 1kHZ

        • Sélectionner l'ADC à configurer - ADC différentiel
        • Sorties activées - RMS
        • Taille de la mémoire tampon - 1000
        • Fréquence d'échantillonnage (Hz) - 1000+ Type de données - RMS+ Mode de sortie - Continu+ Taux de rafraîchissement (secondes) - 1
        • Filtre 1/5 lectures
    • Objectif : Extraire une mesure sur cinq (5 secondes) pour la transmettre à Tulip.

    • Type de nœud : Commutateur

    • Propriétés par défaut :

      • Propriété - flow.numReadings

      • Règles :

        • == 4
        • sinon
        • Passer le message
    • Objectif : réinitialiser le compte des lectures pour chaque cinquième message à zéro : Remettre à zéro le nombre de lectures pour chaque cinquième message.

    • Type de nœud : Change

    • Propriétés par défaut :

      • Règles :

        • Fixer flow.numReadings à 0
        • Abandonner le message et l'incrémenter
    • Objet : Pour tous les autres relevés, incrémenter le nombre de relevés de 1 : Pour toutes les autres lectures, incrémenter le nombre de lectures de 1.

    • Type de nœud : Change

    • Propriétés par défaut :

      • Règles :

        • Fixer flow.numReadings à l'expression $flowContext('numReadings') + 1
        • CR-3111 Mise à l'échelle
    • Objet : Mettre à l'échelle la mesure du capteur en fonction des spécifications du fabricant.

    • Type de nœud : Modèle de sous-flux

    • Propriétés par défaut :

      • Propriété - données
      • Échelle* - 3000
      • Décalage - 0
      • Attribut de la machine tulipe : RMS Current
    • Objet : Envoyer la charge utile (partCount) à Tulip via l'API.

    • Type de nœud : Attribut machine

    • Propriétés par défaut :

      • Device Info* - {"attributeId" :"", "machineId" :""}
      • Source de l'attribut - msg.data[0]

Sous-flux de calcul de l'état de la machine

  1. Is Current > 100mA ?

    • Objectif : Vérifier si la valeur du courant est supérieure à 100 mA.

    • Type de nœud : Interrupteur

    • Propriétés par défaut :

      • Propriété - msg.data[0]

      • Règles :

        • > 0.1
        • sinon
        • State = ON
    • Objet : Mettre la charge utile à l'état ON si le courant est supérieur à 100 mA.

    • Type de noeud : Change

    • Propriétés par défaut :

      • Règles :

        • Régler msg.payload sur ON
        • État = OFF
    • Objectif : Mettre la charge utile sur OFF si le courant est inférieur ou égal à 100 mA.

    • Node type : Change

    • Propriétés par défaut :

      • Règles :

        • Set msg.payload to OFF
        • Attribut de la machine Tulip : État
    • Objectif : Envoyer le payload (état) à Tulip via l'API.

    • Type de nœud : Attribut machine

    • Propriétés par défaut :

      • Device Info* - {"attributeId" :"", "machineId" :""}
      • Attribut Source - msg.payload

* Les paramètres doivent être mis à jour pour que le flux fonctionne correctement. La valeur d'échelle du capteur de courant doit être modifiée conformément aux recommandations du fabricant.

Pour en savoir plus


Vous avez trouvé ce que vous cherchiez ?

Vous pouvez également vous rendre sur community.tulip.co pour poser votre question ou voir si d'autres personnes ont rencontré une question similaire !


Cet article vous a-t-il été utile ?