Programme logique
| Description |
Les applications PolyScope X peuvent inclure un programme logique qui s'exécute en continu en arrière-plan, indépendamment du programme principal du robot. Cette fonctionnalité est utile pour les tâches qui doivent continuer à s'exécuter lorsque le bras est mis hors tension, que le programme principal est en pause ou arrêté, ou que l'opérateur a pénétré dans une zone de sécurité. Les utilisations typiques comprennent la gestion de la communication par bus de terrain (Modbus, Ethernet/IP, PROFINET, Socket, XmlRPC), la réaction aux entrées de capteurs externes, la transmission de l'état du robot à un automate de production et le contrôle d'équipements externes lorsque le programme principal s'arrête. Le programme logique ne peut pas utiliser de fonctions qui déplacent directement le bras de robot, modifient la charge utile ou modifient les paramètres RTO. |
|
Exemples d'applications avec un programme logique |
|
|
Licence |
Logic Program nécessite une licence, qui peut être achetée via le portail client.
|
|
Contrôle du programme logique |
Dans la page « Programme », sélectionnez « Programme logique » dans la barre latérale. La barre latérale déployée affiche les commandes permettant de naviguer entre les différentes parties du programme logique. Il vous permet également de démarrer, de mettre en pause, d'arrêter et de réinitialiser le programme.
|
||||||
|
|
Le bouton « Exécuter le programme » affiche soit « Exécuter le programme », soit « Arrêter le programme», selon l'état du programme logique. Elle sert de raccourci pour les actions de contrôle de programme disponibles dans le menu contextuel du programme logique.
Les quatre indicateurs du programme Logic indiquent l'état actuel du programme. Ils indiquent également si le programme est configuré pour démarrer automatiquement au lancement d'une application.
|
|
Structure du programme logique |
Un programme logique comporte les mêmes sections structurelles qu'un programme principal :
Le programme du robot et le programme logique disposent chacun de leur propre ensemble de variables globales, d'un pool de threads indépendant et d'un cycle de vie d'exécution indépendant. Le démarrage, l'arrêt ou le dysfonctionnement d'un programme n'entraîne pas l'arrêt de l'autre. Une
|
|
|
Dans la section « Avant de commencer », vous ne pouvez exécuter le programme qu'une seule fois.
Dans la section Modules , vous pouvez consulter la liste des fonctions et des threads disponibles pour le programme.
|
|
Échange de données avec le programme du robot |
Les variables d'application constituent le principal moyen de communication entre le programme du robot et le programme logique. Les variables peuvent être à la fois définies et lues à partir du robot et du programme logique. Cet exemple compte les éléments entrant dans le tampon d'entrée de la cellule robotisée et affiche le nombre au programme du robot. Le compteur continue de s'incrémenter même lorsque le bras de robot est hors tension.
|
|
Lecture de l'état du robot |
L'état du robot est accessible via les variables RTDE intégrées. Ces variables peuvent être lues à l'aide de la fonction de script L'exemple suivant montre comment vérifier si la fonction « Safeguard Stop » est active :
L'exemple suivant vérifie si le programme du robot est en pause :
L'API de contrôle URScript intègre également cette fonctionnalité.
|
|
Lancement automatique d'un programme logique |
Vous pouvez sélectionner un programme qui sera lancé automatiquement au chargement d'une application. Lorsque vous sélectionnez l'option Démarrage automatique , le programme logique démarre immédiatement après le chargement de l'application.
Vous pouvez également lancer automatiquement le programme logique lorsque le contrôleur du robot est mis sous tension et que la dernière application est chargée. La fonction « Autostart » fonctionne quel que soit le mode de fonctionnement ou l'état du bras de robot. Lorsque la fonction Autostart est déclenchée au chargement, une notification de type « snackbar » confirme que le programme logique a démarré.
|
|
|
Le badge situé dans la barre latérale, sur l'icône du programme Logic, indique toujours l'état actuel du programme : s'il est en cours d'exécution ou à l'arrêt.
Il vous incombe de vous assurer que le programme logique est sûr lorsque le robot est sous tension et lorsque différentes applications sont chargées.
Les programmes logiques peuvent activer et désactiver des équipements externes à l'aide de connexions câblées ou de connexions PLC (Modbus, PROFINET, Ethernet/IP, Socket, sorties directes ou autres interfaces).
|
|
Modules et threads |
Les fonctionnalités du programme logique peuvent être organisées en fonctions. Cela fonctionne de la même manière que dans le programme du robot. Chaque fonction peut être marquée comme un thread . Par défaut, les threads ne sont exécutés qu'une seule fois. Cochez la case « Loop » de la fonction de thread pour exécuter le thread en boucle.
|
|
Partage des ressources |
Bien que le programme du robot et le programme logique soient exécutés indépendamment, chacun disposant de son propre pool de threads et de variables, ils partagent tous les mêmes ressources matérielles. Cela impose quelques contraintes dont le programmeur doit tenir compte :
|
|
Limitations |
|