Configuration de la communication et utilisation d’un programme d’exemple
Ce sujet fournit des instructions pour configurer la communication de l’Interface standard basée sur le protocole Snap7 des API Siemens entre un automate Siemens SIMATIC S7 utilisant le logiciel TIA Portal et Mech-Vision et Mech-Viz.
Prérequis matériels et logiciels
|
Les modèles et versions indiqués ci-dessous ont été testés et peuvent être utilisés. Pour d’autres modèles et versions, vous pouvez vous référer à ce guide pour la procédure d’utilisation. En cas de problème, veuillez contacter l’assistance technique de Mech-Mind. |
Matériel
-
Les automates de la série S7 de Siemens suivants sont pris en charge :
-
S7-300: Port réseau PN intégré ou CP343-1
-
S7-400: Port réseau PN intégré ou CP443-1
-
S7-1200: Aucune exigence particulière pour les modules
-
S7-1500: Aucune exigence particulière pour les modules
-
-
Adaptateur d’alimentation : 220 V AC vers 24 V DC
-
IPC ou hôte du système de vision Mech-Mind
-
Câble Ethernet
Logiciel
-
Logiciel de programmation d’API Siemens TIA Portal V15.1
-
Versions de Mech-Vision et Mech-Viz : 2.0.0 ou supérieur
-
Fichiers d’interface pour la communication S7 entre Siemens Tia Portal et Mech-Vision et Mech-Viz :
-
Fichier de bloc de données MM Interface.db pour la communication de données
-
Fichier MM Interface Program.scl pour implémenter les fonctionnalités de diverses commandes d’interface
-
|
Créer et configurer le projet API
Créer un projet API
-
Ouvrez TIA Portal, cliquez sur Créer un nouveau projet, saisissez Nom du projet, sélectionnez un Chemin, puis cliquez sur Créer. Une nouvelle fenêtre s’ouvre. Cliquez sur Ouvrir la vue du projet.
-
Dans la section Arborescence du projet, double-cliquez sur Ajouter un nouvel appareil pour ouvrir la fenêtre. Sous Controllers, sélectionnez le module correspondant à l’API physique. Le nom d’appareil par défaut peut être utilisé. Cliquez sur OK.
-
Sur la page de configuration de l’appareil, cliquez sur Vue de l’appareil, puis double-cliquez sur l’étiquette du port réseau de PLC_1. Sur la page Propriétés/Général, cliquez sur Adresse Ethernet et définissez l’adresse IP sur 192.168.1.22. Le masque de sous-réseau par défaut peut être utilisé (doit être dans le même segment réseau que l’IPC du système de vision).
-
Sélectionnez l’appareil PLC_1 dans l’arborescence du projet, faites un clic droit et sélectionnez Propriétés, puis entrez successivement dans le menu dans la fenêtre contextuelle. Sous Niveau d’accès, cochez Accès total (aucune protection). Sous Mécanismes de connexion, cochez Autoriser l’accès avec la communication PUT/GET depuis un partenaire distant. Cliquez sur OK pour enregistrer le projet.
Importer le fichier d’interface de communication S7
-
Sous l’arborescence du projet, cliquez sur Fichiers source externes et Ajouter un nouveau fichier externe. Dans la fenêtre contextuelle, sélectionnez les fichiers MM Interface.db, MM Interface Program.scl, puis cliquez sur Ouvrir pour importer les fichiers dans le nouveau projet.
-
Sélectionnez les fichiers source externes nouvellement importés (sélectionnez d’abord MM Interface.db, puis MM Interface Program.scl), faites un clic droit et sélectionnez Générer des blocs à partir de la source. Cliquez sur OK dans la fenêtre contextuelle (cette opération écrasera les FB et DB portant les mêmes noms dans le projet, et sélectionnera automatiquement un numéro libre).
Si les opérations ne sont pas effectuées dans l’ordre des fichiers sélectionnés ci-dessus, un message d’erreur apparaîtra dans la fenêtre de journal. -
Les FB et blocs de données générés par le fichier source externe sont les suivants, où le numéro de DB de MM Interface doit être cohérent avec le numéro de DB défini dans la Configuration de la communication du robot dans Mech-Vision. Le DB Camera_User stocke les données utilisateur.
-
Dans le projet, afin de faciliter la maintenance des FB et DB, vous pouvez faire un clic droit sur Blocs de programme, sélectionner Ajouter un nouveau groupe, et le nommer “Mech-Mind”. Ensuite, sélectionnez tous les FB et DB nouvellement générés et déplacez-les dans le dossier du groupe.
Télécharger le fichier d’interface de communication S7
-
Cliquez sur Enregistrer le projet, puis dans l’arborescence du projet, faites un clic droit sur le nouveau projet PLC_1. Sélectionnez successivement , et la fenêtre de téléchargement s’affichera.
-
Dans la fenêtre de téléchargement, sélectionnez le pilote de carte réseau connecté à l’API pour l’interface PG/PC, sélectionnez Direct at slot ‘1 X1’ pour Connexion à l’interface/sous-réseau, sélectionnez Show all compatible devices pour Sélectionner l’appareil cible, puis cliquez sur Démarrer la recherche. Sélectionnez l’appareil CPU détecté, cliquez sur Télécharger, puis cliquez sur Terminer une fois le téléchargement terminé.
Configurer l’IPC et initier la communication
Configurer la communication du robot
-
Assurez-vous que l’adresse IP de l’IPC est sur le même sous-réseau que l’API, par exemple 192.168.1.10. Ouvrez l’Invite de commandes sur l’IPC et pingez l’adresse IP de l’API pour vérifier qu’ils sont bien connectés.
-
Ouvrez Mech-Vision, et vous pouvez accéder à différentes interfaces. Créez une nouvelle solution en suivant les instructions ci-dessous.
-
Si vous êtes entré dans l’interface d’accueil, cliquez sur Nouvelle solution vierge.
-
Si vous êtes entré dans l’interface principale, cliquez sur dans la barre de menus.
-
-
Cliquez sur Configuration de la communication robot dans la barre d’outils de Mech-Vision.
-
Dans la fenêtre Configuration de la communication robot, effectuez les configurations suivantes.
-
Cliquez sur la liste déroulante Sélectionner le robot, et choisissez soit Robot répertorié soit Robot personnalisé selon le robot utilisé dans votre projet. Cliquez ensuite sur Suivant.
-
Robot répertorié : Convient à la plupart des robots. Cliquez sur Sélectionner le modèle de robot pour choisir le modèle de robot spécifique.
-
Robot personnalisé : Convient aux robots portiques ou aux robots qui ne figurent pas dans la catégorie des robots répertoriés. Il faut sélectionner la Convention des angles d’Euler du robot et le système de coordonnées du robot.
-
-
Dans la zone Mode de communication, sélectionnez Interface standard pour Type de service d’interface, et sélectionnez Siemens PLC Client pour Protocole. Définissez le numéro d’emplacement sur 1, et définissez le numéro de DB (c.-à-d. l’ID de “MM Interface” dans le projet PLC) sur 2.
-
Définissez l'adresse IP du PLC sur 192.168.1.22 (c.-à-d. l’adresse IP du PLC définie précédemment dans SIMATIC Manager)
-
(Facultatif) Sélectionnez Activer automatiquement le service d’interface à l’ouverture de la solution.
-
Cliquez sur Appliquer.
-
Vérifier la communication
-
Sur l’interface principale de Mech-Vision, assurez-vous que l’interrupteur Robot Communication Configuration dans la barre d’outils est activé et est devenu bleu. L’API est connectée avec succès si l’onglet Console du panneau Log de Mech-Vision affiche Connect to PLC server successfully. Sinon, veuillez vérifier la configuration et vérifier si la connexion physique est normale.
-
Revenez à l’interface principale de TIA Portal, sélectionnez l’appareil PLC_1, et cliquez sur Passer en ligne.
-
Sous de l’arborescence du projet, double-cliquez sur le bloc de données MM Interface, puis cliquez sur Tout surveiller
. Si la connexion est établie avec succès, la valeur de surveillance de Heartbeat continuera de changer.
Tester avec des projets Vision
Cette section décrit comment utiliser le programme d’interface Client API Siemens pour le démarrage et l’acquisition de données des projets Mech-Vision et Mech-Viz. Pour les fonctionnalités spécifiques et l’introduction aux paramètres de communication Snap7 des API Siemens, voir API Siemens.
Prérequis
-
Revenez à Mech-Vision et créez un projet Mech-Vision. Cliquez avec le bouton droit sur la solution et sélectionnez Chargement automatique de la solution. Les projets de la solution sont également chargés automatiquement. Entre-temps, le numéro de projet apparaîtra devant chaque nom de projet.
-
Créez un projet Mech-Viz. Cliquez avec le bouton droit sur le nom du projet dans Ressources dans Mech-Viz et sélectionnez Chargement automatique du projet.
Le projet Mech-Viz utilisé pour les tests doit contenir une étape “Branch by Msg” qui a été renommée en 1 comme montré ci-dessous.
Exécuter le projet Mech-Vision et obtenir les points de vision
Configurer les programmes
-
Dans l’interface principale de TIA Portal, sous le , double-cliquez sur Main [OB1] sous Blocs de programme, et faites glisser MM_Start_Vis vers le Réseau 1 du programme principal.
-
Le port EN de “MM_Start_Vis” est connecté au FB qui compare l’ID d’étape, et un FB déclenché sur front montant est défini pour le port d’entrée Start_Vision. Lorsque la valeur du port Vision_Proj_Num est définie sur 1, le projet n° 1 de Mech-Vision sera démarré.
-
Définissez la valeur de Req_Pose_Num à 0, ce qui indique que le projet Mech-Vision enverra tous les points de vision.
-
Définissez la valeur du port Robot_Pose_Type à 0, indiquant qu’aucune pose de prise d’image n’a besoin d’être obtenue du robot (par exemple en mode Eye-to-Hand).
-
Sous l’arborescence du projet, cliquez sur le bloc de données Camera_User, puis faites glisser les paramètres sous la vue Détails vers les ports correspondants de “MM_Start_Vis”. Cliquez sur le bloc de données MM Interface, et faites glisser les paramètres sous la vue Détails vers les ports correspondants de “MM_Start_Vis”.
-
Faites glisser MM_Get_VisData vers le Réseau 2 du programme principal. Le port EN est connecté au FB qui compare l’ID d’étape, et un FB déclenché sur front montant est défini pour le port d’entrée Get_VisData.
-
Définissez la valeur du port Vision_Proj_Num à 1, et le résultat de reconnaissance de la vision du projet n° 1 dans Mech-Vision sera obtenu.
-
Sous l’arborescence du projet, cliquez sur le bloc de données Camera_User, et faites glisser les paramètres sous la vue Détails vers les ports correspondants de “MM_Get_VisData”. Cliquez sur le bloc de données MM Interface, et faites glisser les paramètres sous la vue Détails vers les ports correspondants de “MM_Get_VisData”.
-
Sous l’arborescence du projet, cliquez pour sélectionner PLC_1, sélectionnez . Cliquez sur Charger dans la fenêtre de téléchargement qui s’affiche pour télécharger le dernier programme vers l’API.
Déclencher l’exécution du projet Mech-Vision
-
Dans la fenêtre du programme principal Main [OB1], cliquez sur Activer/Désactiver la surveillance
pour activer la surveillance.
-
Cliquez avec le bouton droit sur “Camera_User”.Step_Num, qui est connecté au port EN de “MM_Start_Vis”, et changez la valeur à 6. Cliquez avec le bouton droit sur la variable d’entrée “Camera_User”.Start_Vis et changez-la à 1 pour déclencher le projet Mech-Vision ; puis, réinitialisez la variable. À ce moment, la variable StatusCode du DB MM Interface devrait avoir une valeur de retour de 1102, indiquant que le projet a démarré avec succès. Sinon, le code d’erreur correspondant sera renvoyé. Veuillez vous référer à Codes d’état et dépannage pour le dépannage.
Obtenir les cibles de vision calculées par Mech-Vision
Cliquez avec le bouton droit sur “Camera_User”.Step_Num, qui est connecté au port EN de “MM_Start_Vis”, et changez la valeur à 8. Cliquez avec le bouton droit sur la variable d’entrée “Camera_User”.Get_VisData et changez-la à 1 pour obtenir des points de vision ; puis, réinitialisez la variable. À ce moment, la variable StatusCode du DB MM Interface devrait avoir une valeur de retour de 1100, indiquant que le projet a démarré avec succès. Sinon, le code d’erreur correspondant sera renvoyé. Veuillez vous référer à Codes d’état et dépannage pour le dépannage.
Les données renvoyées par l’Interface MM sont les suivantes. La valeur de “Number of Pose Sent” est 1, ce qui signifie qu’une pose a été obtenue. Les données de pose sont stockées dans TargetPose.
Exemple de logique de contrôle automatique de Mech-Vision
L’exemple de logique de contrôle automatique de Mech-Vision. Pour plus d’informations, voir MM_S1_Vis_Basic.
Exécuter le projet Mech-Viz et obtenir le trajet planifié
Configurer les programmes
-
Faites glisser MM_Empty_Target vers le Réseau 3 du programme principal. Le port EN est connecté au FB qui compare l’ID d’étape, et un FB normalement ouvert est défini pour le port d’entrée Start_Empty.
-
Cliquez respectivement sur les blocs de données Camera_User et MM Interface, et faites glisser les paramètres dans la vue détaillée vers les ports côté entrée correspondants de \"MM_Empty_Target\".
-
Faites glisser MM_Start_Viz, MM_Set_Branch, MM_Get_VizData vers les Réseaux 4, 5 et 6 respectivement.
-
Définissez la valeur du port Robot_Pose_Type à 0, indiquant qu’aucune pose de prise d’image n’a besoin d’être lue depuis le robot (par exemple en mode Eye to Hand). Cliquez sur le bloc de données Camera_User, puis faites glisser les paramètres dans la vue détaillée vers les ports côté entrée correspondants de “MM_Start_Viz”.
-
Définissez les valeurs de Branch_Name et Branch_Exit_Port à 1, ce qui signifie que Mech-Viz prendra la sortie 1 pour l’étape “Branch by Msg” dont l’ID d’étape est 1. Cliquez sur le bloc de données Camera_User, puis faites glisser les paramètres dans la vue détaillée vers les ports côté entrée correspondants de “MM_Set_Branch”.
-
Modifiez la valeur de “Request_Pose_Type” à 1, et Mech-Viz renverra les données sous forme de positions articulaires. Cliquez sur le bloc de données Camera_User, puis faites glisser les paramètres dans la vue détaillée vers les ports côté entrée correspondants de “MM_Get_VizData”.
Request_Pose_Type ici et Robot_Pose_Type dans les commandes MM_Start_Vis et MM_Start_Viz correspondent au même paramètre Pose Type dans le bloc de données MM Interface. Si les valeurs définies sont différentes, elles ne peuvent pas prendre effet en même temps.
-
Sous l’arborescence du projet, faites un clic droit sur PLC_1, sélectionnez . Cliquez sur Charger dans la fenêtre de téléchargement qui s’affiche pour télécharger le dernier programme vers l’API.
Déclencher l’exécution du projet Mech-Viz
-
Dans la fenêtre du programme principal Main [OB1], cliquez sur Activer/Désactiver la surveillance
pour activer la surveillance.
-
Cliquez avec le bouton droit sur “Camera_User”.Step_Num, qui est connecté au port EN de \"MM_Empty_Target\", et changez la valeur à 14. Cliquez avec le bouton droit sur la variable d’entrée “Camera_User”.Start_Empty et changez-la à 1 pour effacer le résultat de vision obtenu précédemment ; puis, réinitialisez la variable.
À ce moment, la valeur du bloc de données Target Pose du DB MM Interface a été effacée.
-
Cliquez avec le bouton droit sur “Camera_User”.Step_Num, qui est connecté au port EN de “MM_Start_Viz”, et changez la valeur à 18. Cliquez avec le bouton droit sur la variable d’entrée “Camera_User”.Start_Vis et changez-la à 1 pour déclencher le projet Mech-Viz ; puis, réinitialisez la variable. À ce moment, la variable StatusCode devrait avoir une valeur de retour de 2103, indiquant que le projet a démarré avec succès. Sinon, le code d’erreur correspondant sera renvoyé. Veuillez vous référer à Codes d’état et dépannage pour le dépannage.
Définir le port de sortie de la branche de Mech-Viz
Cliquez avec le bouton droit sur “Camera_User”.Step_Num, qui est connecté au port EN de “MM_Set_Branch”, et changez la valeur à 24. Cliquez avec le bouton droit sur la variable d’entrée “Camera_User”.Set_Branch et changez-la à 1 pour demander au projet Mech-Viz de prendre la sortie 1 à l’étape Branch by Msg avec un ID de 1 ; puis, réinitialisez la variable. À ce moment, le paramètre StatusCode devrait avoir une valeur de retour de 2105, indiquant que le port de sortie a été défini avec succès pour l’étape Branch by Msg. Sinon, le code d’erreur correspondant sera renvoyé. Veuillez vous référer à Codes d’état et dépannage pour le dépannage.
Obtenir le trajet planifié depuis Mech-Viz
Cliquez avec le bouton droit sur “Camera_User”.Step_Num, qui est connecté au port EN de “MM_Get_VizData”, et changez la valeur à 26. Cliquez avec le bouton droit sur la variable d’entrée “Camera_User”.Get_VizData et changez-la à 1 pour obtenir le trajet planifié depuis Mech-Viz ; puis, réinitialisez la variable. À ce moment, le paramètre StatusCode devrait avoir une valeur de retour de 2100, indiquant que le trajet planifié a été obtenu avec succès depuis Mech-Viz. Sinon, le code d’erreur correspondant sera renvoyé. Veuillez vous référer à Codes d’état et dépannage pour le dépannage.
Les données renvoyées par l’Interface MM sont les suivantes. La valeur de Number of Pose Sent est 6, ce qui signifie que 6 ensembles de positions articulaires ont été obtenus ; et les données sont stockées dans TargetPose. La valeur de Index of Vision Picking Point est 3, ce qui signifie que la position du waypoint Vision Move dans l’ensemble du trajet est 3.
Exemple de logique de contrôle automatique de Mech-Viz
L’exemple de logique de contrôle automatique de Mech-Viz. Pour plus d’informations, voir MM_S5_Viz_SetBranch.