Gestionnaire de scripthooks

Présentation

Le Gestionnaire de scripthooks fournit une interface à plusieurs commandes et événements qu'il est possible d'exécuter en même temps que EcoStruxure Machine Expert. L'exécution de la commande ou la détection de l'événement peut déclencher l'exécution d'un script Python spécifique. Vous pouvez programmer votre propre script Python ou utiliser l'un des modèles Python fournis avec EcoStruxure Machine Expert.

Par exemple, le modèle AutomaticProjectArchiveCreation.py fournit un script Python qui crée une archive de projet. Si différents utilisateurs travaillent sur le même projet, cela permet de s'assurer qu'une archive de projet est créée dès que le projet a été modifié par quelqu'un. Ainsi, chaque utilisateur voit l'état actuel du projet si l'archive de projet la plus récente est utilisée.

Pour plus d'informations, consultez les documents Script Engine - User Guides fourni dans la partie Logiciel - Programmation de l'aide en ligne d'EcoStruxure Machine Expert :

  • CODESYS Script Engine - User Guide

  • EcoStruxure Machine Expert Script Engine - User Guide

Création d'un objet Gestionnaire de scripthooks

Pour créer un objet Gestionnaire de scripthooks, procédez comme suit :

Étape

Action

Commentaire

1

Cliquez avec le bouton droit de la souris sur le nœud Global de l'arborescence Applications et exécutez la commande Ajouter un objet > Gestionnaire de scripthooks.

Résultat : La boîte de dialogue Ajouter Gestionnaire de scripthooks s'ouvre.

2

Sélectionnez l'option appropriée pour créer un script Python.

  • Sélectionnez l'option Nouveau script pour créer un script Python dans Logic Builder.

  • Sélectionnez l'option Modèle source et sélectionnez un modèle Python fourni avec EcoStruxure Machine Expert comme base pour créer un script Python. Les cas d'utilisation couverts par les différents modèles sont expliqués par les commentaires figurant dans les scripts.

  • Sélectionnez l'option Script existant source pour ouvrir un fichier de script Python que vous avez programmé dans un autre outil. Cliquez sur le bouton Sélectionner pour ouvrir une boîte de dialogue d'ouverture de fichier et rechercher le fichier .py.

3

Cliquez sur le bouton Ajouter.

Résultats :

  • Les sous-nœuds Gestionnaire de scripthooks et Script Python sont ajoutés sous le nœud Global de l'arborescence Applications.

  • L'éditeur Gestionnaire de scripthooks s'ouvre.

Editeur Gestionnaire de scripthooks

L'éditeur Gestionnaire de scripthooks affiche les commandes et événements disponibles pour déclencher l'exécution de scripts Python dans la partie gauche.

  • Pour activer une commande ou un événement, sélectionnez l'élément approprié et cliquez sur le bouton Activer le Hook .

  • Pour désactiver une commande ou un événement, sélectionnez l'élément approprié et cliquez sur le bouton Désactiver le Hook .

Ces paramètres d'état sont enregistrés dans le projet. Par exemple, si vous ouvrez un projet déjà enregistré avec un Hook BeforeProjectSave activé, ce Hook reste actif et il est déclenché dès que l'événement ou la commande devient valide.

La partie droite affiche d'autres informations sur la commande ou l'événement sélectionné :

La section Syntaxe de la déclaration fournit la signature de la méthode qui est appelée par le système une fois que EcoStruxure Machine Expert a exécuté la commande ou l'événement. Cliquez sur le bouton Copier le code pour ajouter le code à votre code Python dans l'éditeur Script Python et étendre cette méthode par les commandes Python que vous souhaitez exécuter.

Le bouton Renommer la fonction vous permet de modifier le nom de la fonction Python dans une boîte de dialogue séparée. Si vous l'avez enregistrée sous un autre nom, vérifiez que vous utilisez le bon nom modifié dans votre code Python.

La section Paramètres affiche les paramètres disponibles dans la méthode Python lorsqu'elle est exécutée.

Éditeur Script Python

L'éditeur Script Python vous permet de programmer votre script Python directement dans Logic Builder. Il prend en charge toutes les fonctions de programmation Python, même si la fonction de saisie semi-automatique (IntelliSense) ne propose pas tous les mots-clés Python disponibles.

Selon la sélection effectuée dans la boîte de dialogue Ajouter Gestionnaire de scripthooks, vous disposez de plusieurs méthodes pour créer votre script Python dans l'éditeur Script Python :

  • A partir de zéro, en ouvrant un éditeur Script Python vide, en entrant votre code et en utilisant les extraits de code que vous copiez depuis la section Syntaxe de la déclaration de l'éditeur Gestionnaire de scripthooks.

  • À partir du modèle, en utilisant le script fourni par le modèle sélectionné comme base et en le complétant avec votre code Python.

  • En important le script Python que vous avez programmé dans un autre outil.

NOTE : Une fois que vous avez programmé votre script Python, cliquez sur le bouton Mettre à jour l'étendue du script pour synchroniser le script et appliquer les modifications. Si vous quittez l'éditeur Script Python sans effectuer de synchronisation, les modifications sont enregistrées et restent donc disponibles dans l'éditeur, mais elles ne sont pas appliquées. Le script précédent non modifié est toujours exécuté. Si vous chargez un autre projet ou si vous créez un projet, un script différent (ou aucun script) est disponible.

Avec la procédure Mettre à jour l'étendue du script, le code Python est validé. Les erreurs éventuellement détectées sont indiquées dans lla vue Messages, et le code n'est pas exécuté.

Ignorer plusieurs événements lors de la connexion/déconnexion

NOTE : En raison de limitations techniques, l'événement AfterDeviceLogin et/ou l'événement AfterDeviceLogout peut être déclenché plusieurs fois.

Par exemple, ignorez l'exécution multiple de l'événement AfterDeviceLogin à l'aide d'un indicateur dans le script :

def after_device_login():
    if session_store.get("loginHandled", False) == False:
        print("after_device_login")
        session_store.set("loginHandled", True)
    pass

def after_device_logout():
    print("after_device_logout")
    session_store.set("loginHandled", False)
    pass

Messages Script Hook dans l'affichage Messages

Les textes que vous programmez dans votre code Python avec la commande print s'affichent dans la zone Scripthooks de l'affichage Messages.