automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

COGNEX : Lecture Datamatrix en Modbus avec Ignition | Autem

Modbus - Configuration et utilisation d'une caméra COGNEX pour effectuer la lecture des datamatrix avec Ignition.

COGNEX - Découverte

On va regarder ensemble comment configurer une caméra Congnex pour lire un code de type data matrix. Alors pour ce faire, j’ai une caméra Cognex de la gamme DM 260 qui va venir lire un code 2D, un data matrix et ensuite la caméra va envoyer l’info au protocole modbus vers un client modbus qui est Ignition dans le cas de notre démo.

Alors on va configurer dans un premier temps la caméra en tant que serveur modbus et ensuite on regardera comment configurer le client et Ignition pour lire le datamatrix qui est envoyé au protocole modbus. Au niveau de la caméra, là je suis en ligne avec mon DM 260, ma caméra Cognex.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Lorsque je clique sur live ici dans le logiciel “dataman“, je vois en direct les images qui sont lues par la caméra (Voir figure suivante).

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d
automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Alors les étapes de configuration sont assez simples. Quand on se connecte on voit déjà bien l’ensemble des caméras qui apparaissent sur le réseau.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Ici, j’ai cette caméra qui est déjà identifié et lorsque je clique dessus et je clique sur connexion, on peut venir à l’intérieur de la caméra, double-cliquez et voir les différentes étapes de configuration

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Optimisation de l’image

Première étape c’est d’optimiser l’image. Je vais venir ici cliquez sur régler et on laisse la caméra faire son réglage, son autotuning de manière automatique. Cela va régler l’exposition, la luminosité et différents paramétrages pour qu’on soit dans la bonne configuration en termes de distance, en termes de luminosité pour lire le code.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Une fois que le l’optimisation de l’image sera terminée on devrait voir apparaître ici un petit message. On va attendre un peu. Le logiciel nous dit que le tuning est terminé.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Là en particulier, tu vois sur l’écran de droite qu’il y a des lectures qui sont déjà déclenchées. Cela montre bien que les codes sont bien identifiés.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Pour la partie optimisation, c’est bon.

Le type du code à lire

Ensuite je viens ici au niveau des codes choisir le type de code que je veux lire. Là dans mon cas c’est un code 2D de type “data matrix” mais on aurait pu choisir d’autres types de codes.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d
automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Une fois que c’est fait, je passe à l’étape suivante au niveau des détails de l’application.

Le type de déclenchement

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

On a différent mode de déclenchement. On peut soit le déclencher sur un signal qui vient d’un automate ou bien d’une entrée/sortie tout ou rien. On peut aussi déclencher la caméra de manière automatique : la caméra “toutes les x secondes“, va effectuer une lecture.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

C’est cette option que je choisis et ont défini l’intervalle ou plus précisement la fréquence de lecture : là j’ai mis 1 million de microsecondes ce qui correspond à une seconde. A chaque seconde on aura une lecture.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Pour les autres paramètres, je les laissent tels quels. Tout ce qui est exposition vient d’être réglé par la caméra, on passe à la prochaine configuration. Je viens ici dans les formats de données.

Le format de données

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Je coche ici la case datamatrix vu que c’est ce que je lis et je passe à l’étape suivante.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Les Entrées/Sorties

Au niveau des entrées-sorties si j’avais une entrée spécifique que je veux activées depuis un automate, c’est à ce niveau-là que je suis tenu de le faire.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Pour l’instant je laisse tout comme tel et je passe à l’étape suivante au niveau des communications.

Le type de cmmunication

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Alors il faut définir forcément l’adresse IP de la caméra qui est dans la même plage d’adresse que le client ou bien l’ensemble des machines qui vont recevoir les informations. Bien gardez la bonne plage d’adresse IP, le bon masque de sous-réseau et ensuite on choisit le protocole de communication.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Dans mon cas j’ai choisi le protocole modbus TCP sur le port 502 et tu vois ici apparaître la table de registre, les fameux registres dans lesquels on va pouvoir lire les informations qui arrivent en modbus.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Alors pour détailler cette partie-là des registres, on peut regarder en détail la documentation de Cognex.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Je te mettrai un lien est là en bas de l’article pour les détails. Mais globalement on a cette table-là. Et les informations de lecture, on peut les récupérer dans ce registre-là qui s’appelle “PLC Output“.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Au niveau modbus c’est un registre de type “input resister” qui va commencer à l’adresse “2000” et qui se termine “2005 registres plus loin” à l’adresse “4004“. Ce sont ces registres-là qu’on va venir prendre pour envoyer la donnée au format modbus et notamment ce qui s’appelle “result data” qui commence au mot 5 du PLC Output. Par exemple le registre “30000 2005“, ce sera la première chaîne de caractère qui sera envoyée. Ensuite le registre “30000 2006” ce sera la deuxième chaîne de caractères envoyée et ainsi de suite. Encore une fois, pour les détails, je te renvoie à la documentation modbus de Cognex.

Une fois que cela est fait, on a configuré ici les différents registres qui seront utilisés et on peut passer à l’étape suivante qui est tout simplement d’enregistrer les paramètres dans la caméra. Et j’enregistre.

Enregistrement et tests

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d
automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Si tu as une caméra et tu as envie de tester, je peux envoyer le fichier de configuration. Marque juste en commentaire pour que je t’envoie ce fichier-là pour tester. C’est enregistré dans la caméra et on a des lectures qui apparaissent ici. Alors si je zoome tu vois ici la chaîne de caractères qui est remontée et correspondait à ce qui est lu par la caméra.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Là, c'est pour la partie serveur. Ce qu’on a dit c’est que on a une partie client qui reçoit l’info en modbus et dans notre cas c’est “Ignition“. On va configurer maintenant Ignition qui sert tout simplement de clients modbus. Alors au niveau Ignition, si tu es familier avec l’interface Ignition, tu sais qu’il faut d’abord définir des tags. Pour les tags j’ai un modèle de données, un datatype standard que j’ai récupéré sur le même format que la table d’adressage de cognex.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Je reprends ici les différents registres qui sont listés. Tu reconnais ici notamment le registre 2005 pour la première chaîne, le registre 2006 pour la deuxième chaîne de caractères et ainsi de suite. On va venir lire dans les tags les dix premiers caractères de l’information qui est envoyée.

Ensuite, on retrouve ici les différents caractères ASCII qui correspondent à l’information modbus qu’on reçoit.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Et une fois qu’on a cette information au niveau des tags, on peut créer un petit écran, une interface visuelle pour pouvoir tout simplement regarder cette information soit sur une tablette ou bien sur une page web.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Là, j’ai repris tout simplement mes différentes chaînes de caractères (en jaune) une par une et je fais juste une concaténation (en rouge) pour qu’on puisse voir le mot global qui est envoyé.

Une fois qu’on a fini la configuration, on peut ensuite sauvegarder notre page Ignition, notre client modbus. Si tu as envie de recevoir la configuration tu peux juste marquer un message, je t’enverrai aussi pour que tu puisses tester.

Et maintenant on va voir le résultat. Pour tester ce qu’on vient de configurer, je t’invite à vérifier ici ce qui se passe sur cet écran de téléphone. Alors on a notre caméra DM 260 qui sert du serveur modbus pour lire des datamatrix, des codes 2D ici.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Et en fonction de l’info qui est lu, on reçoit sur le client modbus les chaînes de caractères qui correspondent aux codes datamatrix. Là, le client modbus c’est Ignition avec une petite page web sur le téléphone pour monitorer le tout. Là “DM 260” ce sont les caractères qui correspondent à ceux datamatrix-là.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

On va passer au data matrix suivant et tu vas voir ce qui change sur l’écran toujours.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Maintenant les caractères qui apparaissent c’est “Vision” pour “vision“.

On va au datamatrix suivant.

automatisme,industrie40,autem,marc akoto,vision,camera,Cognex,Dataman,DM260,Ignition,lecteur,code barre,modbus,Scanner,datamatrix,code,lecture,communication,client,serveur,demo,live,banc d'essai,configuration,scada,web,supervision,industrie,inductive automation,modbus tcp,protocol,automatisme industriel,grafcet automatisme,apprendre l'automatisme industriel,code 2d

Et on retrouve une autre chaîne du caractère (Caméra). Pareil pour le suivant. Si je change à chaque fois on remonte différentes infos modbus à notre client.

C'est tout pour cet article sur Vision, les caméras qui permettent de lire des codes dans les usines. On a pu configurer et tester une communication modbus entre notre caméra et un client modbus. N’hésite pas, si tu as besoin des fichiers, à le demander.

À bientôt.

Marc Akoto – Intégrateur SCADA