Script Hook Manager

Panoramica

Lo Script Hook Manager fornisce un'interfaccia per vari comandi ed eventi che possono essere eseguiti durante l'esecuzione di EcoStruxure Machine Expert. L'esecuzione del comando o il rilevamento dell'evento può attivare l'esecuzione di uno script Python specifico. È possibile programmare il proprio script Python oppure utilizzare uno dei modelli Python forniti con EcoStruxure Machine Expert.

Il modello AutomaticProjectArchiveCreation.py, ad esempio, fornisce uno script Python per la creazione di un archivio di progetto. Se utenti differenti stanno lavorando allo stesso progetto, questo aiuta a garantire che un archivio di progetto sia creato ogni volta che il progetto è stato modificato da una persona. Pertanto, a ciascun utente viene fornito lo stato più recente del progetto se viene utilizzato l'archivio del progetto più recente.

Per ulteriori informazioni, fare riferimento alle seguenti Guide utente di Script Engine, fornite nella sezione Software - Programmazione della Guida in linea di EcoStruxure Machine Expert.

  • CODESYS Script Engine - User Guide

  • EcoStruxure Machine Expert Script Engine - User Guide

Creazione di un oggetto Script Hook Manager

Per creare un oggetto Script Hook Manager, procedere come segue:

Passo

Azione

Commento

1

Fare clic con il pulsante destro del mouse sul nodo Globale della struttura Applicazioni ed eseguire il comando Aggiungi oggetto > Script Hook Manager.

Risultato: viene visualizzata la finestra di dialogo Aggiungi Script Hook Manager.

2

Selezionare l'opzione adatta per la creazione di uno script Python.

  • Selezionare l’opzione Nuovo script per creare un nuovo script Python da zero in Logic Builder.

  • Selezionare l’opzione Da modello e selezionare un modello Python fornito con EcoStruxure Machine Expert come base per la creazione dello script Python. I casi di utilizzo coperti dai diversi modelli sono descritti dai commenti negli script stessi.

  • Selezionare l’opzione Da script esistente per aprire un file di script Python programmato in un altro strumento. Fare clic sul pulsante Seleziona per aprire una finestra di dialogo Apri file per cercare il file .py.

3

Fare clic sul pulsante Aggiungi.

Risultati:

  • Un nodo Script Hook Manager e un nodo Script Python vengono aggiunti come sottonodi del nodo Globale della struttura Applicazioni.

  • Viene aperto l’editor Script Hook Manager.

Editor Script Hook Manager

L’editor Script Hook Manager elenca sul lato sinistro i Comandi e gli Eventi disponibili per attivare l'esecuzione di script Python.

  • Per attivare un comando o un evento, selezionare il rispettivo elemento e fare clic sul pulsante Attiva hook .

  • Per disattivare un comando o un evento, selezionare il rispettivo elemento e fare clic sul pulsante Disattiva hook .

Queste impostazioni di stato vengono salvate nel progetto. Ad esempio, se si apre un progetto salvato in precedenza con un hook BeforeProjectSave abilitato, questo hook rimane attivo e viene attivato non appena l’evento / comando diventa valido.

Sul lato destro vengono presentate ulteriori informazioni per il comando o l'evento selezionato:

La sezione Sintassi dichiarazione fornisce la firma del metodo chiamato dal sistema dopo che l'evento o il comando è stato eseguito da EcoStruxure Machine Expert. Fare clic sul pulsante Copia codice per inserire il codice nel codice Python nell'editor Script Python ed estendere questo metodo con i comandi Python che si desidera eseguire.

Il pulsante Rinomina funzione consente di modificare il nome della funzione Python in una finestra di dialogo separata. Dopo aver salvato un nome differente, assicurarsi di utilizzare la stringa esatta del nome modificato nel codice Python.

La sezione Parametri elenca i parametri disponibili all'interno del metodo Python quando questo viene eseguito.

Editor Script Python

L’editorScript Python consente di programmare lo script Python direttamente in Logic Builder. L'editor supporta tutte le funzionalità di programmazione di Python, anche se la funzione Autocomplete (IntelliSense) non fornisce tutte le parole chiave Python disponibili per la selezione.

In base alla selezione effettuata nella finestra di dialogo Aggiungi Script Hook Manager, sono disponibili le opzioni seguenti per creare lo script Python nell'editor Script Python:

  • Da zero, a partire da un editor Script Python vuoto, immettendo il codice e utilizzando i frammenti di codice copiati dalla sezione Sintassi dichiarazione dell'editor Script Hook Manager.

  • Dal modello, utilizzando lo script fornito dal modello selezionato come base ed estendendolo in base al codice Python specifico.

  • Importando lo script Python programmato in un altro strumento.

NOTA: Dopo aver programmato lo script Python, fare clic sul pulsante Aggiorna ambito script per sincronizzare lo script e applicare le modifiche. Se si esce dall'editor Script Python senza sincronizzazione, le modifiche vengono salvate e sono quindi ancora disponibili nell'editor ma non vengono applicate. Invece viene comunque eseguito lo script precedente senza modifiche. Se si carica un altro progetto o si crea un nuovo progetto, sarà disponibile uno script diverso o nessun script.

Con la procedura Aggiorna ambito script, viene convalidato il codice Python. Eventuali errori rilevati vengono indicati nella vista Messaggi e il codice non verrà eseguito.

Ignorare più eventi durante accesso/disconnessione

NOTA: A causa delle limitazioni tecniche, l'evento AfterDeviceLogin e/o AfterDeviceLogout può essere attivato più volte.

Ignorare, ad esempio, l'esecuzione multipla dell'evento AfterDeviceLogin con l'aiuto di un flag nello 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

Messaggi Script Hook nella vista Messaggi

I testi programmati nel codice Python con il comando print vengono visualizzati nell'area Scripthooks della vista Messaggi.