Comptage industriel

Bonjour a toutes/tous
Je suis un débutant un peu dépassé par sont projet.

Je dois faire un compteur avec un arduino (jusque là, ca va encore ^^).

  • Les contraintes :
    J'ai un arduino uno et un capteur inductif industriel. C'est tout pour le matériel

Les données doivent être récupérées ou récupérables facilement (type excel)

  • mon avancée :
    Je lis les données du capteur et je compte les impulsions.
    J'ai une macro excel qui enregistre mes données.

  • mon problème :
    La macro écrit sur tous les excel ouvert et ca a mis le bazard dans les fichiers de production...(merci les sauvegardes...)
    La carte est liée au fichier excel et ce n'est pas pratique pour etudier les autres postes de l'atelier surtout qu'ils n'ont pas tous un pc.

Mon souhait :
J'aimerais avoir une carte autonome (achat d'un ou plusieurs Shield ?)
Me débarrasser de la maccro excel pour supprimer le problème ^^

Je suis complètement largué, je ne sais pas vers quoi m'orienter ni si des solutions existent déjà.

J'espère que quelqu'un pourra m'aider
Évidemment je suis ouvert à toutes les solutions, tant que j'ai un compteur a la fin,
Je ne fais pas mon difficile.

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

Bonjour micfr74

Est-ce que l'enregistrement sur carte SD et relecture de cette carte sur un PC est suffisant comme autonomie ou les données doivent être accessibles en tout temps?

A+
Cordialement
jpbbricole

L'enregistrement sur carte SD est tout a fait envisageable.
Il faudra juste que je trouve le moyen d'enregistrer les séries de données sur des fichiers différents pour éviter de mélanger les données de production.

Bonjour micfr74

Il suffit de nommer les fichiers en fonction de la date ou de l'heure ou du lieu de mesure ou des 3 en même temps.

Les autres alternatives d'accession aux données, pourraient être via Intranet, le montage servant de serveur et un navigateur ou via Bluetooth et un smartphone ou une tablette. Dans ces deux cas, Intranet et Bluetooth, le montage pourrait se faire autour d'un ESP32 du genre
M5StickC
image

ou
M5Stack.
image
Ce dernier comporte, en plus un slot pour carte SD.
Le 2 ont une horloge RTC

Cordialement
jpbbricole

Je ne connaissais pas du tout ! Ils sont super sympa !

Du coup, le service info n'est pas très ouvert sur les appareils en réseau pour les données de production, donc si je devais choisir, se serait le second pour la carte SD

Je ne suis pas sûr d'avoir tout compris sur les compatibilité du code arduino ^^ (je suis vraiment perdu quand ca touche à ça....je me demande encore pourquoi j'ai hérité de ce projet :sweat_smile:)

Mais en tout merci! C'est déjà une belle piste de recherche

Je ne sais pas si ce sera ma solution finale mais en tout cas elle ressemble beaucoup à ce que je recherche

Bonjour micfr74

Ca se développe avec l'environnement Arduino, comme un Arduino via son IDE.

Pourrais-tu être plus précis pour ce qui est des mesures.
Y as t-il un montage par site de production?
Quel rythme de capture?
Quel fréquence de relevé de données.

Pourrais-tu donner un lien sur le capteur?

Cordialement
jpbbricole

Je mesure des déplacements de vérin
En très résumé : l'opérateur sertie a l'aide d'un vérin et j'ai mon capteur qui est proche de la butée qui détecte la tête du vérin.

Mon capteur est celui-ci https://tesensors.com/fr/fr/product/reference/XS1N05PA311L1

Un capteur inductif qui est branché en analogique sur ma carte -> quand la valeur lu est supérieur a ... alors le compteur prend 1 et écrit l'heure.

Les mesures sont relativement lentes : entre 3 et 10 secondes entre les mesures en fonction des produits. Aujourd'hui mon programme a une routine qui vérifie les valeurs toutes les 1,5s a peu près.

Je n'ai qu'un site de production mais j'ai 4 postes à équiper. Cependant aucune liaison n'est obligatoire entre les postes, ils peuvent rester indépendants les uns des autres.

J'espère avoir répondu à toutes les questions

Bonjour micfr74

Donc on peut imaginer un fichier dans lequel il y aurait des enregistrements qui se composent de:
l'identité du poste, la date YYYY.MM.DD, l'heure HH:MM:SS. compteur
Le non du fichier a peu d'importance du fait que toute l'information se trouve sur chaque enregistrement.
Pour le relevé des données, entre 2 mesures, il suffirait d'extraire la carte SD en cours et d'introduire une nouvelle.

Pourrais-tu mettre ton programme en ligne?

A+
Cordialement
jpbbricole

En soit oui, la donnée qui m'intéresse est le temps total est le temps entre chaque mesure (enfin dans un premier temps ^^).
la solution de changer de carte n'est pas très pratique mais elle a le mérite d'être efficace.

en écrivant je me rends compte que l'idéal serait de pouvoir lire quelques données mais ça peut être simple avec un petit écran :thinking: je verrai en temps voulu pour ça ^^

Voici mon code, dans cette version le compteur indique toujours 1 et c'est voulu, ce n'est pas un oubli
De plus il est fait pour tourner avec une macro PLX-DAQ sur excel

//programme avec condition pour compter un seul sertissage si détection longue par le capteur
int LED = LED_BUILTIN;
int etat = A0;
bool sertissage = false;
int unique = 0;
int x = 1;
int row = 0;                                       // initialise la ligne à 0
/*-------------------------------------------------------------------------------*/
void setup() {
  Serial.begin(9600);                              //lien série sur 9600
  pinMode(LED, OUTPUT);                            //Initialise la LED 13 en OUTPUT
  Serial.println("CLEARDATA");                     //effacer les données de la feuille
  Serial.println("LABEL,Heure sertissage,Nbr,Jour");    //titres des colonnes dans Excel
}
/*-------------------------------------------------------------------------------*/
void loop() {
  int sensorValue = analogRead(etat);              //lire la valeur de etat
  delay(100);                                      //délai
  sertissage = (sensorValue <=800)? false : true;  //test sur la valeur du capteur
/*-------------------------------------------------------------------------------*/
  if ((sertissage == true) && (unique == 0))       //boucle condition sertissage en cours 
  {
    Serial.print("DATA,TIME,");                    //fonction écrire mais je comprends pas tout
    Serial.print(x);     
    Serial.println(",DATE");                       //écrire la valeur de x + retour a la ligne
    digitalWrite(LED, HIGH);                       //allumer LED
    delay(400);                                    //délai
    digitalWrite(LED, LOW);                        //éteindre LED
    unique = 1;                                    //détrompeur passe à 1
    row++;                                         //permet de changer de ligne dans le fichier excel
    //x++;                                           //incrémente x de 1 -> sertissage n°...
  }
/*-------------------------------------------------------------------------------*/
  if ((sertissage == true) && (unique == 1))       //boucle anti-double comptage si détrompeur =1
  {
    delay(100);                                    //délai dans une boucle vide pour stabilité programme
  }
/*-------------------------------------------------------------------------------*/
 else                                              //"sinon"->boucle par défaut
  {
    unique = 0;                                    //détrompeur repasse à 0 pour relancer la boucle normal
    delay(500);                                    //délai pour stabilité programme
  }
/*-------------------------------------------------------------------------------*/  
 }

Bonjour micfr74

Sur un M5Stack Core2, ça ne doit pas être difficile à réaliser. L'écran est capacitif et il y a 3 boutons.

Je n'ai, malheureusement pas ce modèle, seulement des M5Stack "ancien modèle".

A+
Cordialement
jpbbricole

1 Like

Je vais regarder ça avec attention,
Merci pour tous ces conseils

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.